[prev in list] [next in list] [prev in thread] [next in thread] 

List:       zebra
Subject:    [zebra 22742] Bug: ripd keeps deleted route
From:       "Daniel Hobi" <dhobi () gmx ! net>
Date:       2006-02-16 11:56:43
Message-ID: 52D00EBDF4ECC74389E3B4F3D39F8A29307B8C () ZHEXCHANGE ! schmid-telecom ! com
[Download RAW message or body]

Hi,

In zebra-0.95a, the following bug occurs:

When an interface address is changed by ifconfig to a classless address,
the kernel (or ifconfig?) first assigns a classful address, removes that
address immediatly and assigns the classless address (observed in kernel
2.4.20 as well as 2.6.5).

While the routing part of the zebra module handles this rapid change
correctly, the rip module does not. It ends up having the networks
associated to both addresses in its routing table and does propagate
both!

The following example shows this behavior:

host>ifconfig eth1 192.168.0.1 netmask 255.255.255.224
2006/02/16 11:49:19 ZEBRA: MESSAGE: ZEBRA_INTERFACE_ADDRESS_ADD
192.168.0.1/24 on eth1
2006/02/16 11:49:19 RIP: connected address 192.168.0.1/24 is added
2006/02/16 11:49:19 ZEBRA: MESSAGE: ZEBRA_INTERFACE_ADDRESS_DELETE
192.168.0.1/24 on eth1
2006/02/16 11:49:19 ZEBRA: MESSAGE: ZEBRA_INTERFACE_ADDRESS_ADD
192.168.0.1/27 on eth1
2006/02/16 11:49:19 RIP: connected address 192.168.0.1/24 is deleted
2006/02/16 11:49:19 RIP: connected address 192.168.0.1/27 is added

zebra> show ip route
C>* 192.168.0.0/27 is directly connected, eth1

ripd> show ip rip
C(i) 192.168.0.0/24     0.0.0.0               1 self
C(i) 192.168.0.0/27     0.0.0.0               1 self


By exchanging the address and netmask arguments to ifconfig, the
classless address is not assigned on the first invocation (a bug in
ifconfig?). In the following example, this "flaw" is used to introduce a
delay before deleting the classful address, which leads to correct
behavior of the rip daemon.

host>ifconfig eth1 netmask 255.255.255.224 192.168.0.1
2006/02/16 11:52:03 ZEBRA: MESSAGE: ZEBRA_INTERFACE_ADDRESS_ADD
192.168.0.1/24 on eth1
2006/02/16 11:52:03 RIP: connected address 192.168.0.1/24 is added

host>ifconfig eth1 netmask 255.255.255.224 192.168.0.1
2006/02/16 11:52:04 ZEBRA: MESSAGE: ZEBRA_INTERFACE_ADDRESS_DELETE
192.168.0.1/24 on eth1
2006/02/16 11:52:04 ZEBRA: MESSAGE: ZEBRA_INTERFACE_ADDRESS_ADD
192.168.0.1/27 on eth1
2006/02/16 11:52:04 RIP: connected address 192.168.0.1/24 is deleted
2006/02/16 11:52:04 RIP: connected address 192.168.0.1/27 is added

zebra> show ip route
C>* 192.168.0.0/27 is directly connected, eth1

ripd> show ip rip
C(i) 192.168.0.0/24     0.0.0.0              16 self            01:37
C(i) 192.168.0.0/27     0.0.0.0               1 self

Regards,
Daniel


_______________________________________________
Zebra mailing list
Zebra@ml.zebra.org
http://ml.zebra.org/mailman/listinfo/zebra
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic