Unnumbered interface incorrectly marked DOWN
Hi, I'm trying to migrate to BIRD 1.3.8 from Quagga, and have run across a problem with a unnumbered tun interface. BIRD seems to think that it is DOWN, even though it isn't - and therefore don't export its defined static device routes to the kernel table (they're marked "dormant"). My complete configuration is as follows: log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug }; protocol kernel { scan time 20; export where source = RTS_STATIC_DEVICE; } protocol device { scan time 10; } protocol static { route 172.40.33.3/32 via "nat64"; route 172.40.60.0/26 via "nat64"; } protocol ospf { area 0.47.1.2 { nssa; interface "eth*" { type broadcast; }; stubnet 172.40.33.3/32; stubnet 172.40.60.0/26; }; } Even though the device is clearly UP, BIRD thinks it's DOWN: $ ip address 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:16:3e:d7:0f:8e brd ff:ff:ff:ff:ff:ff inet 172.40.62.91/31 brd 172.40.62.91 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fed7:f8e/64 scope link valid_lft forever preferred_lft forever 10: nat64: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 500 link/none $ birdc show interfaces BIRD 1.3.8 ready. lo up (index=1) MultiAccess AdminUp LinkUp Loopback Ignored MTU=16436 127.0.0.1/8 (Primary, scope host) eth0 up (index=2) MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500 172.40.62.91/31 (Primary, opposite 172.40.62.90, scope univ) nat64 DOWN (index=10) PtP Multicast AdminUp LinkUp MTU=1500 $ birdc show static BIRD 1.3.8 ready. 172.40.33.3/32 dev nat64 (dormant) 172.40.60.0/26 dev nat64 (dormant) As soon as I add any bogus IP address to the device, everything starts working just fine: $ ip address add 192.0.2.0/32 dev nat64 $ birdc show interfaces BIRD 1.3.8 ready. lo up (index=1) MultiAccess AdminUp LinkUp Loopback Ignored MTU=16436 127.0.0.1/8 (Primary, scope host) eth0 up (index=2) MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500 172.40.62.91/31 (Primary, opposite 172.40.62.90, scope univ) nat64 up (index=10) PtP Multicast AdminUp LinkUp MTU=1500 192.0.2.0/32 (Primary, scope univ) $ birdc show static BIRD 1.3.8 ready. 172.40.33.3/32 dev nat64 172.40.60.0/26 dev nat64 $ ip route show proto bird 172.40.33.3 dev nat64 172.40.60.0/26 dev nat64 While this is an acceptable workaround for me, this behaviour must be a bug, right? For what it's worth, Quagga never complained about the unnumbered interface. Best regards, -- Tore Anderson Redpill Linpro AS - http://www.redpill-linpro.com
On Wed, Aug 22, 2012 at 02:32:39PM +0200, Tore Anderson wrote:
$ birdc show static BIRD 1.3.8 ready. 172.40.33.3/32 dev nat64 172.40.60.0/26 dev nat64 $ ip route show proto bird 172.40.33.3 dev nat64 172.40.60.0/26 dev nat64
While this is an acceptable workaround for me, this behaviour must be a bug, right? For what it's worth, Quagga never complained about the unnumbered interface.
Hello This is not exactly a bug, but it is strange behavior. For some historical reasons, BIRD elects 'primary IP' for iface and requires at least one IP to consider interface UP (so there is always 'primary IP' if iface is UP). It is almost not necessary today and it has some annoying consequences (like this or like if you add IP to iface and new IP is elected 'primary' then your OSPF adjacencies on that ifaces are restarted), so it will probably go away during some major interface revision. -- 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."
participants (2)
-
Ondrej Zajicek -
Tore Anderson