memory leak bird

Network Administration noc at clouddancer.com
Thu Jun 22 10:16:27 CEST 2000


   Date: Wed, 21 Jun 2000 23:54:42 +0200
   From: Martin Mares <mj at ucw.cz>

   > Actually, Ethereal would show anything sent out the interface, even
   > broadcast to the wrong address.

   It probably wouldn't since packets with such a wrong address would
   never reach the interface.

depends on default route setup.

   > As I suspected, no change when the broadcast addresses are corrected.  A
   > 2.2.14 kernel, setup with ifconfig, routed works fine (but version 1), and
   > gated RIP broadcasts seen (except by my stub router) prior to trying BIRD.
   > BIRD still DOA.

   The most probable cause is that it has no routes to export -- can you
   try adding a Direct protocol to get at least the device routes?

Ah, kernel routes are insufficient?

/etc }cat bird.conf
# This pseudo-protocol performs synchronization between BIRD's routing
# tables and the kernel. If your kernel supports multiple routing tables
# (as Linux 2.2.x does), you can run multiple instances of the kernel
# protocol and synchronize different kernel tables with different BIRD tables.
protocol kernel {
        persist;                # Don't remove routes on bird shutdown
        scan time 61;           # Scan kernel routing table every N seconds
        import all;
        export all;             # Default is export none
}

# This pseudo-protocol watches all interface up/down events.
protocol device {
        scan time 62;           # Scan interfaces every N seconds
}

# RIP aka Rest In Pieces...  Ignorance of most stub routers.
protocol rip  {
        interface "*" { mode broadcast; };
        import filter { print "importing"; accept; };
        export filter { print "exporting"; accept; };
}

/etc }route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
208.135.194.20  0.0.0.0         255.255.255.252 U     0      0        0 eth1
208.135.194.16  0.0.0.0         255.255.255.252 U     0      0        0 eth0
208.135.194.24  0.0.0.0         255.255.255.248 U     0      0        0 eth2
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         208.135.194.25  0.0.0.0         UG    1      0        0 eth2


/etc }birdc
BIRD 1.0.0 ready.
bird> sh route
bird>



adding:

protocol direct {
        interface "eth*", "*";
}


/etc }birdc
BIRD 1.0.0 ready.
bird> conf
Reading configuration from /usr/local/etc/bird.conf
Reconfigured.
bird> sh rout
208.135.194.16/30  dev eth0 [direct1 20:38] (240)
208.135.194.20/30  dev eth1 [direct1 20:38] (240)
208.135.194.24/29  dev eth2 [direct1 20:38] (240)
127.0.0.0/8        dev lo [direct1 20:38] (240)


and RIP shows up in Ethereal.




More information about the Bird-users mailing list