# Netom Configuration # # This is an example Netom configuration file. It is in TOML format. # This file has 2 sections: Global settings and Component definitions. # # TODO: write our own configuration format documentation. ### 1. Global Settings log_level = "info" # "error", "warn", "info", "debug" or "trace" log_target = "stderr" # "stderr", "file" or "syslog" # log_facility = "daemon" # used if log_target is "syslog" # log_file = "./netom.log" # used if log_target is "file" # the path to the file that holds all Roto filters. When specified as a # relative path, this is relative to the working directory of the Netom # application binary. # roto_script = "filters.roto" http_listen = ["[::]:8080"] ### 2. Component Definitions ## BMP [units.bmp-in] type = "bmp-tcp-in" listen = "0.0.0.0:11019" # Verbatim Route Monitoring copies for the bmp-out fastpath are emitted by # default; set to false in pipelines without a bmp-tcp-out unit: # forward_raw_updates = true ## BGP # [units.bgp-in] # type = "bgp-tcp-in" # listen = "10.1.0.254:179" # my_asn = 64512 # my_bgp_id = [10,1,0,254] # [units.bgp-in.peers."10.1.0.1"] # name = "PeerA" # remote_asn = [] # md5_key = "shared-secret" # protocols = ["Ipv4Unicast", "Ipv4Multicast", "Ipv6Unicast"] # Extended Message capability is enabled by default. Disable it per peer to # retain the legacy 4096-byte BGP message limit: # extended_messages = false # [units.bgp-in.peers."10.1.0.2"] # name = "PeerB" # remote_asn = [] # protocols = ["Ipv4Unicast", "Ipv6Unicast"] # Active mode: connect to the peer ourselves, for peers that will not # initiate the TCP connection. Requires an exact peer address (not a prefix). # We keep listening for this peer as well; whichever side connects first wins. # [units.bgp-in.peers."10.1.0.3"] # name = "PeerC" # remote_asn = 64513 # connect = true # remote_port = 179 # default # source_addr = "10.1.0.254" # optional, e.g. a loopback the peer expects # connect_retry_secs = 30 # default ## MRT # [units.mrt-in] # type = "mrt-file-in" # filename = ["path/to/bview.mrt", "path/to/update1.mrt", ..] # update_path = "path/to/updates" ## RTR # [units.rtr] # type = "rtr-tcp-in" # remote = "[::1]:3323" # retry = 60 # retry delay in seconds, default 60 # # # In case of compatibility issues between Netom and the cache in use, force # # the initial (and thus maximum) version. Defaults to version 2. Note that # # some types of RPKI objects are not available in earlier versions of the # # protocol (e.g. ASPA). # initial_version = 2 ## RIB [units.rib] type = "rib" # When enabling the RTR unit above, make sure it's listed as a source for this # rib unit, e.g.: # sources = ["bmp-in", "rtr"] sources = ["bmp-in"] # Set to false to replace withdrawn route attributes with an empty tombstone in # the RIB, reducing memory at the cost of losing last-seen attributes for # withdrawn routes. # retain_withdrawn_attributes = false # Set to true to share identical path attribute blobs between stored routes. # This reduces memory when many peers announce routes with the same attributes. # deduplicate_path_attributes = true ## BMP TCP Out # [units.bmp-out] # type = "bmp-tcp-out" # listen = "0.0.0.0:10001" # sources = ["rib"] # acl = ["0.0.0.0/0", "::/0"] # Verbatim restreaming of live Route Monitoring ("fastpath") is on by # default; set to false if downstream must see roto-filtered data only: # fastpath = true # tls = true # tls_cert = "/etc/netom/bmp-out.crt" # tls_key = "/etc/netom/bmp-out.key" ## Null Target [targets.null] type = "null-out" sources = ["rib"] ## File out Target #[targets.logfile] #type = "file-out" #sources = "bmp-in" #format = "json" # "json", "json-min", "csv" #filename = "/tmp/netom.csv" ## MQTT Target # [targets.mqtt] # type = "mqtt-out" # sources = ["bmp-in", "bgp-in", "rib"] # destination = "localhost" # client_id = "netom"