Flock Routing Suite Daemon (flockrsd)
flockrsd Configuration
Flock Networks devices are designed to be run with a minimal uniform configuration. This is achieved by making each protocols configuration simple and generic, and allowing the device to auto configure. Specific configuration is supported so that devices can be RFC compliant, but users are encouraged to have as little device specific configuration as possible. Interface specific configuration is strongly discouraged.
OSPFv2 Uniform Configuration
This is the default OSPFv2 configuration shipped with Version 20.0. The Flock Routing Suite is designed for scale, you will not need multiple OSPF areas. (If you are adding a device to an existing multi-area OSPF AS, multiple areas are fully supported, please see Appendix A: Configuration Reference).
cat /etc/flockrsd/ospfv2.toml
[ospf_v2]
# Place all ethernet interfaces into area 0.0.0.0
[[ospf_v2.area]]
area_id = "0.0.0.0"
[[ospf_v2.area.intf]]
# Match any interfaces that have name starting with "en"
name = "^en"
You may wish to redistribute static routes from the RIB into OSPFv2.
[[ospf_v2.redistribute]]
origin = "kernel-static"
metric_type = 2
metric = 1000
By design, just configuring redistribution will not make the router an ASBR. The router will only become an ASBR if it actually has some routes to redistribute. This means the OSPF configuration can be kept the same on each router in the AS.
As a minimum we may want a default route added to the kernel of each ASBR router. This route will appear in the RIB and then be redistributed into OSPFv2. OSPFv2 will advertise this route across the AS, so all nodes learn the route to exit the network. Static routes are added using the Linux command line.
# ip route add 0.0.0.0/0 via 192.168.122.171 dev enp9s0
flockrsd logging
Logging can be viewed using journalctl
# journalctl -u flockrsd --boot
Information
Log level info
/ [INFO]
is used for expected events of note
[INFO flockrsd] START: PID 385 Compile Mode Release Log Level "debug"
[INFO flockrsd::os_intf] Update IntfId(2)] Broadcast Mtu(1500) Up [] event DownToUp
[INFO flockrsd::ospf_intf] IntfId(2), 10.0.1.168/24 state change Wait -> DrOther
[INFO flockrsd::ospf_neigh] RouterId(10.0.100.3), V4(10.0.1.152) neigh state change Loading -> Full
Warning
Log level warn
/ [WARN]
is used for unexpected events signalled from outside the router. It is normal to see warnings whilst the network is converging. Warnings should never be seen after the network has converged and remains stable.
[WARN flockrsd::ospf_neigh] RouterId(10.0.100.2), V4(10.0.3.157) neigh state change Full -> Down
Error
Log level error
/ [ERROR]
is used for unexpected events signalled from inside the router. These are never expected to be seen and indicate a bug. Please email a bug report to: support@flocknetworks.com
.
Debug
Log level debug
/ [DEBUG]
is used for common expected events.
Trace
Log level trace
/ [TRACE]
is used for very common expected events.
Changing the default log level
The default log level can be changed by setting the RUST_LOG
environment variable in the flockrsd systemd service file.
Supported log levels in descending order of importance are error
, warn
, info
, debug
and trace
.
grep RUST_LOG /lib/systemd/system/flockrsd.service
Environment=RUST_LOG="info"
When the systemd service file has changed, systemd needs to be told to reload the new flockrsd configuration.
# systemctl daemon-reload
To enable the new log level, flockrsd needs to be restarted.
# systemctl restart flockrsd