Hi, I'm running carp with rtadvd on 5.4, and see some strange behavior regarding NDP during failover.
I run rtadvd with no configuration file and it runs on the carp interface (carp is using carpdev, so no address on the physical interface) on both carp nodes. When rtadvd starts on the MASTER, it sends a router advertisement to the network from the link-local address of the carp interface (fe80::200:5eff:fe00:101), and the clients sets a default route to this address. So when the clients sends a neighbor sol for fe80::200:5eff:fe00:101, the carp MASTER responds with neighbor adv with tgt lladdr 00:00:5e:00:01:01, and the client populates the NDP table accordingly. But when the current carp BACKUP becomes MASTER (using carpdemote), the new MASTER immediately sends out two neighbor advertisements (one for the link-local address and one for the global address with tgt lladdr as the physical lladdr of the carpdev interface on the new MASTER. This causes the clients to remove their default route to fe80::200:5eff:fe00:101 and all clients are left without a default route until rtadvd on the new MASTER sends out a new router advertisement. In this case, the clients are both OpenBSD and Windows. So with net.inet6.icmp6.nd6_debug=1 on the OpenBSD clients, I see this in the log when neighbor advertisements are sent from the new carp MASTER: ndp info overwritten for fe80:0002::0200:5eff:fe00:0101 by <physical lladdr> on em1 I am able to work around this behavior by restarting rtadvd with ifstated during transition to MASTER so that router advertisement are sent when rtadvd starts. However, this takes some time. So is it possible to not send out neighbor adv with the physical lladdr when transitioning to MASTER? Thanks. -- Ole Myhre