On Tue, Jan 07, 2020 at 12:45:43PM -0800, Ben Tremblay wrote: > Hi all, > > I have encountered a problem with how BIRD opens the listening socket for > strict bind BGP. > > In particular, BIRD sometimes tries to open the listening socket for > the protocol when the configured local IP is not yet present on the > interface. It seems that BIRD will try to bind the BGP socket to the > configured IP if any address exists on the protocol interface that can be > used to reach the neighbor. Let me give an example to clarify.
Hi Yes, there is this issue with strict bind that availability of local IP is not explicitly monitored. Generally, listening socket is started when associated protocol is started/ready. Which means always for multihop BGP, and when peer IP is reachable for direct BGP. But as you noted, it is possible that peer IP is reachable without local IP is reachable, which makes problem with combination with strict bind. > So, I have two questions: > > 1. Is this correct behaviour? Well, i would not call that correct but also not a bug. Perhaps rough edge / flaw. We should fix that. > 2. Can I configure BIRD so that my protocol is able to recover after > suffering a socket error like this? Probably not. I would suggest the workaround with nonlocal_bind sysctl. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: [email protected]) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
