0

I'm using FRR for BGP.

I have the following setup: router 0, 1, and 2 are all part of the same AS (so everything is iBGP). Router 0 is connected to 1 and 2, 1 and 2 are not connected to each other (0 is configured as a route-reflector) Router 0 has router-id 8.8.8.0, while router 1 and 2 both have router-id 8.8.8.10.

I can see that routes from router 2 are advertised to router 1 through router 0. However, these routes aren't learned/injected even though they have a valid nexthop.

In vtysh on router 1, show ip bgp neighbor router0 received-routes displays all the correct routes from router 2 with the correct nexthop (and I have confirmed that the nexthop is reachable). However, these routes don't appear in show ip bgp, only the local routes for router 1 show up.

If I change the router-id of router 1 and router 2 to be different, then this problem disappears and all the right routes get learned. However, I need to have the same router-id for router 1 and router 2.

Here's the config for the routers:

router 0:

router bgp 65100
  bgp log-neighbor-changes
  bgp bestpath as-path multipath-relax
  no bgp default ipv4-unicast
  bgp graceful-restart restart-time 240
  bgp graceful-restart
  bgp router-id 8.8.8.0
  network 8.8.8.0/32
  neighbor 10.2.0.1 remote-as 65100
  neighbor 10.2.0.1 description router1
  address-family ipv4
    neighbor 10.2.0.1 activate
    neighbor 10.2.0.1 soft-reconfiguration inbound
    neighbor 10.2.0.1 route-reflector-client
    neighbor 10.2.0.1 next-hop-self all
    maximum-paths 64
  exit-address-family
  neighbor 10.3.0.1 remote-as 65100
  neighbor 10.3.0.1 description router2
  address-family ipv4
    neighbor 10.3.0.1 activate
    neighbor 10.3.0.1 soft-reconfiguration inbound
    neighbor 10.3.0.1 route-reflector-client
    neighbor 10.3.0.1 next-hop-self all
    maximum-paths 64
  exit-address-family

router 1:

router bgp 65100
  redistribute connected
  bgp log-neighbor-changes
  bgp bestpath as-path multipath-relax
  no bgp default ipv4-unicast
  bgp graceful-restart restart-time 240
  bgp graceful-restart
  bgp router-id 8.8.8.10
  network 8.8.8.8/32
  neighbor 10.2.0.2 remote-as 65100
  neighbor 10.2.0.2 description NAMESPACE0
  address-family ipv4
    neighbor 10.2.0.2 activate
    neighbor 10.2.0.2 soft-reconfiguration inbound
    neighbor 10.2.0.2 next-hop-self all
    maximum-paths 64
  exit-address-family

router 2:

router bgp 65100
  redistribute connected
  bgp log-neighbor-changes
  bgp bestpath as-path multipath-relax
  no bgp default ipv4-unicast
  bgp graceful-restart restart-time 240
  bgp graceful-restart
  bgp router-id 8.8.8.10
  network 8.8.8.8/32
  neighbor 10.3.0.2 remote-as 65100
  neighbor 10.3.0.2 description router0
  address-family ipv4
    neighbor 10.3.0.2 activate
    neighbor 10.3.0.2 soft-reconfiguration inbound
    neighbor 10.3.0.2 next-hop-self all
    maximum-paths 64
  exit-address-family
  • Why on earth would you have two routers with the same ID? – Ron Trunk Jul 02 '19 at 12:19
  • It's a requirement of my project, I can't really talk about it – theasianpianist Jul 02 '19 at 15:43
  • Well, most implementations of BGP will likely reject that. The assumption is that the router id is unique. Of course, different BGP implementations may vary on how well they handle that. Since you're violating a basic assumption of BGP, you're in uncharted territory. – Ron Trunk Jul 02 '19 at 15:48

0 Answers0