2

Given following setup: network layout

Configuration of the routers is very straight forward. Router BGP1:

interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Loopback9
 ip address 9.9.9.9 255.255.255.255
!
interface GigabitEthernet0/1
 ip address 10.0.0.1 255.255.255.0
!
router bgp 1
 bgp log-neighbor-changes
 redistribute connected
 neighbor 10.0.0.2 remote-as 1
 neighbor 10.0.0.2 next-hop-self

Router BGP2:

interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface GigabitEthernet0/1
 ip address 10.0.0.2 255.255.255.0
!
interface GigabitEthernet0/3
 ip address 20.0.0.1 255.255.255.0
!
router bgp 1
 bgp log-neighbor-changes
 redistribute connected
 neighbor 10.0.0.1 remote-as 1
 neighbor 10.0.0.1 next-hop-self
 neighbor 20.0.0.2 remote-as 1
 neighbor 20.0.0.2 next-hop-self

Router BGP3:

interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface GigabitEthernet0/3
 ip address 20.0.0.2 255.255.255.0
!
router bgp 1
 bgp log-neighbor-changes
 redistribute connected
 neighbor 20.0.0.1 remote-as 1
 neighbor 20.0.0.1 next-hop-self

So I added interface loopback9 to Router BGP1 to see if this gets across BGP3. But this is not the case. I can see the route coming into BGP2 from BGP1:

BGP2#show ip route bgp | begin 1.0
      1.0.0.0/32 is subnetted, 1 subnets
B        1.1.1.1 [200/0] via 10.0.0.1, 00:10:07
      3.0.0.0/32 is subnetted, 1 subnets
B        3.3.3.3 [200/0] via 20.0.0.2, 00:10:07
      9.0.0.0/32 is subnetted, 1 subnets
B        9.9.9.9 [200/0] via 10.0.0.1, 00:10:07

But this does not get advertised to Router BGP3:

BGP2#show ip bgp neighbors 20.0.0.2 advertised-routes | begin Networ
     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       0.0.0.0                  0         32768 ?
 *>  10.0.0.0/24      0.0.0.0                  0         32768 ?
 *>  20.0.0.0/24      0.0.0.0                  0         32768 ?

IGP synchonisation is disabled on all devices:

BGP2# show ip protocols | include synch
  IGP synchronization is disabled

So how can i fix this? I know you are supposed to be running an IGP under BGP, but lets just assume that this is not possible in this scenario. What are my options?

  • See RFC7938 for details on how to use BGP without an IGP (or, more accurately, BGP as your IGP) – Bruno Rijsman May 15 at 5:59
5

The iBGP rule is that an iBGP router cannot learn an iBGP originated prefix from an iBGP neighbor. If BGP2 learns a prefix via iBGP from either BGP1 or BGP3, it cannot advertise that prefix to the other router.

You must have a full mesh for iBGP, or you could use a mitigation (route reflector or confederations). You could create a tunnel between BGP1 and BGP3 to create a full mesh. You could also configure BGP2 as a route reflector.

1

Ron Maupin is correct in this regard. What you have is a partial mesh of iBGP peers.

The behavior of iBGP is that when a Router advertises a route to an iBGP peer, that iBGP peer does not advertise those same prefixes to another IBGP peer.

Two solutions for this issue are:

Creating a full mesh of iBGP peers

Or

Redistributing your BGP routes into your IGP ( with BGP synchronization enabled on your iBGP peers)

  • I advise you to not redistribute from BGP into an IGP in a production network unless you know exactly what you are doing. IGPs are not designed to handle the hundreds of thousands of routes in a typical BGP table, and horrific outages can result. In the lab, of course, it all seems to work fine. – Darrell Root Aug 11 at 22:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.