CARP Backup node null routed.

I have setup a pair of CARP servers and just wondering why does the backup get null routed? The machines are configured with a real IP assigned to their respective interfaces, in my case a LACP lagg and then a shared alias that floats based the advskew. Why does the real IP get null routed? When I run netstat -rn the configured routes are the same, and both the real IP on both machines and the alias are on the same subnet, so that default route would be valid for any of the above. Anyway, just seems like there would need to be a pretty compelling reason for this to be on purpose, as being able to take a machine down for maintenance, which may very well involve updating things from beyond the local LAN, is kinda one of the reasons to use CARP. Given that the real IP is assigned to the interface and the correct default route is added, this seems like some intentional blocking for some reason, like what?
 
...and just to be clear, whichever machine is the "master" routes, whichever one is not doesn't. Local LAN is fine whichever, so passes traffic within the defined mask.
 
Exactly the same, here is the current master:
Screenshot NASA.png

And the Backup:
Screenshot NASB.png

10.10.10.10 is the shared alias (present in the master, absent in the backup, as expected), it's the only difference between the 2. Oh and the 10.0.10.0/24 net is a backend back to back (switchless) between the 2 to sync ZFS send/recv.
 
Figured it out, there is many examples of how to configure rc.conf for laggs, apparently when I eenie meenied, I chose the wrong moe. I'd used ipv4_addrs_lagg0= to assign the IP and didn't just add the IP/mask at the end of the same ifconfig_lagg0= I defined the laggproto in. not sure why that would null the route in the Backup and not do the same in the Master, but there you go. And I suppose if you want this behavior, well that's how to do it.

Interestingly the output of netstat -rn still looks exactly the same.
 
I'm assuming that has something to do with it being a lagg.
No, it happens with any interface. The IP address(es) of the host itself always get routed to lo0.

Code:
dice@molly:~ % netstat -rn4
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            192.168.10.1       UGS         em0
127.0.0.1          link#3             UH          lo0
192.168.10.0/24    link#2             U           em0
192.168.10.190     link#3             UHS         lo0
192.168.10.202     link#3             UH          lo0
As you can see this host has two IP addresses (one is actually assigned to a jail), and both IP addresses are routed to lo0. This makes sense if you consider that the IP address isn't actually tied to an interface but to the host itself.
 
Back
Top