跳至主要内容

Host inventory

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 routerd checks

  • 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