Unnumbered interface incorrectly marked DOWN

Tore Anderson tore.anderson at redpill-linpro.com
Wed Aug 22 14:32:39 CEST 2012


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



More information about the Bird-users mailing list