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.

# service flockrsd restart