Bug!? Bird destroy routing table on exit

Michael Roth roth.michael at web.de
Sun Oct 12 19:45:35 CEST 2003


Hello,

I have a problem with bird (I'm new to bird, ospf and dynamic routing): 
When bird exits (using birdc command "down", or using kill), it destroys
one of my network link I think it shouldn't.

1.) Before I start bird, my configuration of host1 looks like that:

host1:/# ip route
192.168.1.0/24 dev tun10  proto kernel  scope link  src 192.168.1.254 
192.168.11.0/24 dev eth0  proto kernel  scope link  src 192.168.11.9 
default via 192.168.11.254 dev eth0 

host1:/# ifconfig tun10
tun10     Link encap:Ethernet  HWaddr 00:FF:69:85:61:EB  
          inet addr:192.168.1.254  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25736 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28769 errors:0 dropped:66 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:2043460 (1.9 MiB)  TX bytes:13343994 (12.7 MiB)

host1:/# cat /etc/bird.conf:
protocol device {
}
protocol direct {
  interface "eth*";
  interface "tun*";
}
protocol kernel {
  import all;
  export all;
}
protocol ospf {
  area 0 {
    interface "eth*" { };
    interface "tun*" { };
  };
}

The network device 'tun10' is a linux tuntap device which simulates a normal ethernet network device on host1.
The other side of  'tun10' is connected to a linux-user-mode kernel which I will name host2.
Inside host2 the network device 'tun10' of host1 appears as device 'eth0'.
This is a simulated ethernet network with two hosts on it. In host1 the device name of the ethernet card is 'tun10' and in host2 the device name oh the ethernet card is 'eth0'.

The bird configuration of host2 is identical to host1, except that all lines with "tun*" are omitted.
The routing table of host2 before I start bird looks like:

host2:/# ip route
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1 

2.) Now, I start bird on both hosts and after about a minute the routing table of host2 is updated:

host2:/# ip route
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1 
192.168.11.0/24 via 192.168.1.254 dev eth0  proto bird 

The routing table oh host1 doesn't change. I think this is ok, because host1 can't learn new routes from host2 because there aren't any new facts which host2 tells about routing to host1. 
The table of host1 still looks like:

host1:/# ip route
192.168.1.0/24 dev tun10  proto kernel  scope link  src 192.168.1.254 
192.168.11.0/24 dev eth0  proto kernel  scope link  src 192.168.11.9 
default via 192.168.11.254 dev eth0 

3.) Now I stop bird running on host1:

host1:/# killall bird

After this command, the routing table of host1 is destroyed!

host1:/# ip route
192.168.1.0/24 via 192.168.1.1 dev tun10  proto bird 
192.168.11.0/24 dev eth0  proto kernel  scope link  src 192.168.11.9 
default via 192.168.11.254 dev eth0 

Look at the 192.168.1.0/24 entry:
'proto' is changed to 'bird' from 'kernel', the source address is deleted, and the scope is set to 'global' (not printed), and a gateway route via 192.168.1.1 is added?!?!

I think this is totally wrong.

A short note: The device 'tun10' is still correct configured after bird scrambled the routing table:

host1:/# ifconfig tun10
tun10     Link encap:Ethernet  HWaddr 00:FF:69:85:61:EB  
          inet addr:192.168.1.254  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25766 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28800 errors:0 dropped:66 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:2045912 (1.9 MiB)  TX bytes:13346364 (12.7 MiB)

Restarting bird on host1 doesn't work, because there isn't any correct route to the network connected through 'tun10' and bird can't reach host2. The source address is missing and the gateway is just plain wrong.

Is this a bug? Or is this my fault?

cu

Michael Roth

______________________________________________________________________________
Die Besten ihrer Klasse! WEB.DE FreeMail (1,7) und WEB.DE Club (1,9) -
bei der Stiftung Warentest - ein Doppelsieg! http://f.web.de/?mc=021184




More information about the Bird-users mailing list