On Mon, Sep 21, 2009 at 11:04:36AM +0200, Ondrej Zajicek wrote:
On Mon, Sep 21, 2009 at 10:10:43AM +0200, Dr. Christian Riede wrote:
On Test-Quagga1, I see only 3 accepted prefixes on the sessions to Bird (the direct attached networks). When I shut down all eBGP sessions on Test-Quagga1, I get the expected ~290000 accepted prefixes on the two sessions to the Bird. The routing table grows very slowly.
If I stop Bird and start Quagga on the same system, I see all expected ~290000 prefixes on Test-Quagga1 via iBGP.
It seems that Bird does not re-announce routes to Test-Quagga1 that it learnt via eBGP if it also receives those routes from Test-Quagga1 via iBGP. This behaviour is different to Quagga.
Is my suspicion correct?
Can anyone explain this behaviour?
Perhaps BIRD learned the prefixes from Test-Quagga and prefer that route? In that case, it shouldn't propagate less prefered routes received through Quagga1.
Yes, it is this behavior and it is probably caused by different default value of LOCAL_PREF attribute. This attribute is expected to be configured consistently on all routers in an AS accorrding to a local policy. But it is not specified what is a default value - BIRD uses 0 and Quagga uses 100. Therefore your Bird prefer prefixes received from Test-Quagga as it expected that they come from preferred uplink eBGP. Therefore, you should configure BIRD and Quagga to use the same LOCAL_PREF value for the same eBGP uplink. In BIRD, it should be done using import filters in eBGP protocol: import filter { bgp_local_pref = 100; accept; }; There is also option default_local_pref, it does something different (and is mostly useless). -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."