Skip to main content

Host inventory

Diagram showing host inventory detection of OS, service manager, commands, kernel features, and paths feeding platform decisions and validation or planning output

routerd inspects the host's operating system, available commands, and network features. This inventory is used by the renderers and the apply path to make OS-specific decisions explicit instead of failing at runtime.

What routerctl plans

  • Operating system and release
  • Service-management scheme (systemd, rc.d, NixOS modules)
  • Available commands (iproute2, nftables, conntrack, dnsmasq, radvd, pppd, WireGuard, strongSwan, etc.)
  • Kernel features (IPv6, VRF, VXLAN, WireGuard)
  • Whether /run/routerd and /var/lib/routerd are usable

How it informs behaviour

  • On Ubuntu, routerd targets systemd and the Linux networking stack.
  • On NixOS, declarative generation takes priority over runtime mutation.
  • On FreeBSD, routerd uses daemon(8) and rc.d for service control.

If a configuration depends on a feature the host does not provide, routerd reports the gap during validation or planning rather than failing halfway through apply.

Common commands routerd looks for

CommandPurpose
ip, bridgeAddresses, routes, DS-Lite, VRF, VXLAN
nftNAT, firewall, route marks
dnsmasqDHCPv4, DHCPv6, RA
conntrackIPv4/IPv6 connection observation
pppd, pppPPPoE
wgWireGuard
tailscaleTailscale exit-node and subnet-router advertisement
swanctlIPsec
radvdOptional radvd RA path
sysctlKernel settings
systemctl, resolvectl, networkctl, journalctlsystemd environment management
service, sysrc, pfctlFreeBSD environment management
dig, ping, ping6, tcpdump, tracepath, traceroute, netstat, sockstatDiagnostics

See also