BGP strict bind socket error

Alexander Zubkov green at qrator.net
Thu Jan 9 20:15:25 CET 2020


Hi,

Ondrej, what do you think of adding some option to bind socket in
Linux with IP_FREEBIND or IP_TRANSPARENT setsockopt?

On Thu, Jan 9, 2020 at 6:19 PM Ondrej Zajicek <santiago at crfreenet.org> wrote:
>
> 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: santiago at crfreenet.org)
> OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
> "To err is human -- to blame it on a computer is even more so."


More information about the Bird-users mailing list