Present Location: News >> Blog >> BIRD Musings

Blog

> BIRD Musings
Posted by prox, from Seattle, on February 22, 2017 at 00:09 local (server) time

I started messing with BIRD the other day to work around some IPv6 issues with Quagga.  The configuration is fairly simple, but I ran into a weird issue where it picks the wrong interface IPv4 address from some of my OpenVPN tunnels.  For example, I've got these interfaces:

(storm:0:06:EST)% ip a s tun0
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1456 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 10.3.254.44 peer 10.3.254.43/32 scope global tun0
       valid_lft forever preferred_lft forever
(storm:0:06:EST)% ip a s tun1
4: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1456 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 10.3.254.81 peer 10.3.254.80/32 scope global tun1
       valid_lft forever preferred_lft forever

Here's what BIRD sees:

bird> show route protocol direct1
10.3.4.64/32       dev lo [direct1 23:53:06] * (240)
10.3.254.43/32     dev tun0 [direct1 23:53:06] * (240)
10.3.254.80/32     dev tun1 [direct1 23:53:06] * (240)
192.168.150.0/24   dev eth0 [direct1 23:53:06] * (240)

The addresses shown are the remote end of the OpenVPN tunnels, not the local end, which I'd expect.

Why?

Update: Well, this should have been obvious:

(storm:0:34:EST)% ip r s p kernel           
10.3.254.43 dev tun0 scope link src 10.3.254.44 
10.3.254.80 dev tun1 scope link src 10.3.254.81 
192.168.150.0/24 dev eth0 scope link src 192.168.150.105

I suppose I'll have to figure out how to get the link source to be visible to BIRD so I can advertise it, which is one of my odd requirements here.

> Add Comment