Static route and arp problem in FreeBSD 13.0

Morgan Wesström freebsd-database at pp.dyndns.biz
Wed Aug 18 22:52:12 UTC 2021


Hi,

I have my stupid hat close, ready to put on because I've most likely missed 
something obvious and I need your help to point it out. :)

I've been using FreeBSD as my router/firewall for 15 years and it's a simple 
and straight setup:

                +--------------+                       +-------------+
                |              |                       |             |
LAN         em1| FreeBSD 12.2 |em0                    | Cable modem | Internet
---------------+              +-----------------------+             +---------
192.168.69.0/24|    router    |DHCP        192.168.0.1| bridge mode |
                |              |public ip              |             |
                +--------------+                       +-------------+

To access the cable modem's web interface, which has a private ip on the public 
facing side of the router, I add the following static route and arp entry in 
the router's /etc/rc.conf:

route_cable="-host 192.168.0.1 -link em0:d8:d7:75:f3:9b:14 -iface -static"
static_routes="cable"
static_arp_cable="192.168.0.1 d8:d7:75:f3:9b:14 pub only"
static_arp_pairs="cable"

The MAC address is the router facing interface on the cable modem. I can now 
access 192.168.0.1 from my LAN and this has worked perfectly for many years 
until I try it on FreeBSD 13.0.

The route/arp is not registered at startup and trying to add the route manually 
results in the following message:

# route add -host 192.168.0.1 -link em0:d8:d7:75:f3:9b:14 -iface -static
route: writing to routing socket: Network is unreachable
add host 192.168.0.1: gateway em0:d8:d7:75:f3:9b:14 fib 0: Network is unreachable

Adding the arp record doesn't work either but that was expected since it 
requires the route to be added first. The most likely scenario is that I missed 
something fundamental in my 13.0 setup but I can't figure out what and the 
error message isn't really helpful.
The less likely reason is that something changed between FreeBSD 12.2 and 13.0 
but I can't spot any changes in the man pages. Any pointers would be greatly 
appreciated.

Regards
Morgan Wesström


More information about the freebsd-questions mailing list