Good evening! When configuring BGP on a site BIRD fails to recognize whether an IP is directly connected. It appears to scan over the list of interfaces and check whether their subnets contain the target IP instead of relying on the route table and checking whether the resulting route has a gateway attribute. This does not work in some edge cases (such as, in our case, the machine being configured for a /128 + a LAN route to avoid some Linux autoconfiguration)
Perhaps a mechanism like [1] is preferable, where BIRD would query a route from the kernel and check if it has a gateway on it. This is, at least semantically, more correct, as the routing table (at least on Linux) reflects on how addresses are reached exactly, whereas the addresses associated with interfaces serve for autoconfiguration purposes. [1]: https://github.com/shemminger/iproute2/blob/a38d305d15c6a27084d5ebc1c79a831d3ac45b22/ip/iproute.c#L1984-L2222 PS: I'm unsure if my assessment of what currently happens is correct, I apologize if I got it wrong, but at any rate, it definitely fails to recognize that the peer is connected properly in our case. Thanks in advance, -- Arsen Arsenović
signature.asc
Description: PGP signature