[quagga-dev 1397] Re: link-detect issues (not quite working)

Paul Jakma paul at clubi.ie
Wed Aug 11 16:09:08 BST 2004

On Wed, 11 Aug 2004, Eric S. Johnson wrote:

> Heh. Well, yeah. That seems to be the thought of some folks.
> Looks like http://www.linuxvirtualserver.org/~acassen/ did just that
> (came up with some kernel patches for 2.4.23 that did that.
> Don't know why/whynot they didn't make it into the 2.6 world.


> But, really, the kernel didn't create the route. Zebra did. 
> ifconfig shows nothing up but lo0 before zebra starts up.

Well, zebra added the address. The connected route is added by the 
kernel as it adds the address.

> The "connected" routes are added by the kernel as zebra brings the 
> interface up due to my interface eth0 ip address commands.
> Get this: If I run my zebra that has the RIB_SYSTEM_ROUTE macro (in 
> zebra_rib.c) changed to allow zebra to mess with connected routes, 
> after startup of zebra I have two entries in the route table for 
> each interface. One kernel and one zebra.

In zebra's route-table? Possibly because you affected the logic that 
allows zebra to recognise that it's own connected route and the 
kernels are one and the same.

> Well, the kernel stuck it there at the request of zebra bringing up 
> the interface.

Right, as it would do if you had used ifconfig or 'ip address add' to 
add the address.

> Im not looking to place blame here :) Just get the proper 
> functionality out of a quagga router. The rib is all correct, but 
> because the fib/kernel is still thinking the interface is down 
> packets get blackholed.
> Since zebra knows the link is down, can't it help the broken kernel 
> out ;)

Possibly, it could be done, yes. But is it wise? Why do want to be 
able to rely on being able to connect to link-specific addresses? You 
could just as easily use link-independent addresses (ie attached to 
loopback or dummy) and rely on those as your always-routable 

Removing the connected route is *not* going to ensure connectivity, 
only link-independent addresses can ensure connectivity so long as a 
path exists.

I question the wisdom of wanting to remove the connected route. It's 
a bad solution to what you want, and the better solution already 

> (side note, would just moving to BSD make my life happier? Does it 
> do the right thing kernel wise when link goes up/down? Im burning a 
> bsd live cd right now as I type... :)

No idea, be interested to hear what it does.

Paul Jakma	paul at clubi.ie	paul at jakma.org	Key ID: 64A2FF6A
Cheops' Law:
 	Nothing ever gets built on schedule or within budget.

More information about the Quagga-dev mailing list