Incorrect handling of primary/secondary IP address status.

Alexander aldem-bird.201704 at nk7.net
Fri Dec 17 18:57:44 CET 2021


On 2021-12-17 18:26, Ondrej Zajicek wrote:

> That is interesting. If i remember correctly, in the past Linux removed
> all secondary addresses (ones from the same net) when the primary 
> address
> was removed (so only addresses from other networks were considered 
> relevant).

Perhaps it was long before promote_secondary in sysctl was introduced.

> So it is possible that Linux promotes an address to
> primary, but does not sent a notification about that. Will check that.

Unlikely, then bird wouldn't see any addresses at all. This is what 
happens on empty interface after adding few addresses and then deleting 
primary:

# ip -d mon ad
2: enp6s20    inet 192.168.111.1/24 scope global enp6s20
        valid_lft forever preferred_lft forever
2: enp6s20    inet 192.168.111.2/24 scope global secondary enp6s20
        valid_lft forever preferred_lft forever
2: enp6s20    inet 192.168.111.3/24 scope global secondary enp6s20
        valid_lft forever preferred_lft forever
2: enp6s20    inet 192.168.111.4/24 scope global secondary enp6s20
        valid_lft forever preferred_lft forever

# Now deleting primary 192.168.111.1/24
Deleted 2: enp6s20    inet 192.168.111.1/24 scope global enp6s20
        valid_lft forever preferred_lft forever
2: enp6s20    inet 192.168.111.2/24 scope global enp6s20
        valid_lft forever preferred_lft forever

As you could see, primary is deleted but now next existing is announced 
without "secondary" flag - I guess the problem is that flags are not 
checked on updates thus existing addresses are simply ignored.

Perhaps another option would be to allow to use secondary addresses when 
explicitly requested by "preferred" in device configuration (and this 
makes sense), though this is more complicated to implement, of course.

Best regards,
Alexander.


More information about the Bird-users mailing list