BIRD BGP and VRF - Cannot assign requested address

Ondrej Zajicek santiago at
Fri Aug 4 23:00:59 CEST 2017

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.


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 at
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3,
"To err is human -- to blame it on a computer is even more so."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <>

More information about the Bird-users mailing list