On 03/06/2013 02:28 PM, Andre Nathan wrote:
My router's network interfaces are configured as follows:
eth0: interface connected to a.b.0.0/23 network eth1: interface for eBGP and iBGP sessions
What happened was that my IP block is a.b.0.0/23, and therefore my router has an IP address with a /23 netmask in eth0 (say, a.b.0.1/23). However, I export two /24 blocks, a.b.0.0/24 and a.b.0.1/24.
I assume you mean to say a.b.1.0/24 instead of a.b.0.1/24?
The router learns these routes from the iBGP session, and since they are more specific than the eth0 interface route, they'll be preferred when compared to the eth0 interface route.
If there a specific need for advertising the routes you want to send to your eBGP peer also via iBGP?
So I ended up with a route to the /23 via eth0 and two routes to the /24 blocks via eth1, with the iBGP peer as the gateway.
I think you do not want to put the /24 routes in iBGP, because if you'd do that on both sides, you'd be creating a loop, because afaik traffic will bounce between them indefinitely and never reach the network on eth0. :)
My first thought is that I need another static protocol block in my configuration:
protocol static { route a.b.0.0/24 via "eth0"; route a.b.0.1/24 via "eth0"; }
Is that a solution to this situation? What's weird to me is that my other router (the iBGP peer of the Bird router) is still running Quagga, and it learns the same two /24 routes via iBGP but does not add them to the kernel routing table. I'm wondering if Quagga is doing some kind of filtering here behind the scenes that isn't done by default in Bird...
I'd suggest only using the /24 routes when talking to the peers outside your network, and use iBGP to only distribute information about routes originating from outside your AS. -- Hans van Kranenburg - System / Network Engineer T +31 (0)10 2760434 | hans.van.kranenburg@mendix.com | www.mendix.com