On Fri, Aug 04, 2017 at 04:43:01PM +0200, Clément Guivy wrote:
Hello, I am trying to set up 2 BIRD routers as AS border routers (on Debian 9). ... I plan to use both ipv4 and ipv6 and also, on BIRD routers both the forwarding and the BGP peerings are to take place in a linux vrf named "internet" (using l3mdev, not namespaces or custom ip rules). At the BIRD level I also set up a table named "internet". ... So overall it seems like BIRD fails to bind to one interface, this is possibly linked to the kernel VRF setup but I can't see why it doesn't work when the peering to downstream routers using the same VRF do work properly.
Hi I guess that the difference is that EBGP sessions are bound to the associated interface (direct mode), while IBGP sessions are multihop and not associated with particular interface (multihop mode). Although a source address is specified, that is used just for the regular bind() operation, which AFAIK does not cause TCP connection to be associated with particular VRF/l3mdev. For that it is necessary to use SO_BINDTODEVICE socket option, which is used just in the direct mode. You could try to use 'direct' option for IBGP to run it in IBGP mode. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@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."