BGP: RIB-Failure in eBGP
I have this scenario where I have an eBGP routers configured:
R1:
serial 0/1 192.168.1.1 255.255.255.0
loopback 1 1.1.1.1 255.255.255.255
R2:
serial 0/2 192.168.1.2 255.255.255.0
loopback 2 2.2.2.2 255.255.255.255
loopback 22 22.22.22.22 255.255.255.255
They are directly connected thru their serial interfaces, and R1 made R2's loopback as its neighbor, R2 made R1's loopback as its neighbor as well.
Below is the sample command
R1:
configure terminal
router bgp 100
neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 update-source loopback 1
neighbor 2.2.2.2 ebgp-multihop 2
configure terminal
ip route 2.2.2.2 255.255.255.255 192.168.1.2
R2:
configure terminal
router bgp 200
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 update-source loopback 2
neighbor 1.1.1.1 ebgp-multihop 2
configure terminal
ip route 2.2.2.2 255.255.255.255 192.168.1.1
All connections are up and there is a BGP neighbor relationship between R1 and R2. Then I advertise a network from R2 to R1. The network that I advertise is R2's loopback 2 "2.2.2.2/32" and loopback 22 "22.22.22.22/32"
R2:
configure terminal
router bgo 200
network 2.2.2.2 mask 255.255.255.255
network 22.22.22.22 mask 255.255.255.255
Then doing a show ip bgp in R1 I get...
R1:
R1#sh ip bgp
BGP table version is 3, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
r> 2.2.2.2/32 2.2.2.2 0 0 200 i
*> 22.22.22.22/32 2.2.2.2 0 0 200 i
I made some investigation and found out that the reason there is a
"r = RIB-failure" is because there is a route already exist with a HIGHER AD to the network 2.2.2.2 /32 of R2, which is a static route configured above for BGP neighbor to be formed between R1 and R2. While network 22.22.22.22 /32 of R2 was considered a "*=valid" because there was no route exist yet to that network in R1's routing table.
Now my question is:
If a static route has already been configured in loopback interface from R1 to R2 vice versa for BGP neighbors to formed, is it nor necessary to advertise that network as a BGP route? Because as with my post above, it will issue a RIB-FAilURE
Thanks:)
R1:
serial 0/1 192.168.1.1 255.255.255.0
loopback 1 1.1.1.1 255.255.255.255
R2:
serial 0/2 192.168.1.2 255.255.255.0
loopback 2 2.2.2.2 255.255.255.255
loopback 22 22.22.22.22 255.255.255.255
They are directly connected thru their serial interfaces, and R1 made R2's loopback as its neighbor, R2 made R1's loopback as its neighbor as well.
Below is the sample command
R1:
configure terminal
router bgp 100
neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 update-source loopback 1
neighbor 2.2.2.2 ebgp-multihop 2
configure terminal
ip route 2.2.2.2 255.255.255.255 192.168.1.2
R2:
configure terminal
router bgp 200
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 update-source loopback 2
neighbor 1.1.1.1 ebgp-multihop 2
configure terminal
ip route 2.2.2.2 255.255.255.255 192.168.1.1
All connections are up and there is a BGP neighbor relationship between R1 and R2. Then I advertise a network from R2 to R1. The network that I advertise is R2's loopback 2 "2.2.2.2/32" and loopback 22 "22.22.22.22/32"
R2:
configure terminal
router bgo 200
network 2.2.2.2 mask 255.255.255.255
network 22.22.22.22 mask 255.255.255.255
Then doing a show ip bgp in R1 I get...
R1:
R1#sh ip bgp
BGP table version is 3, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
r> 2.2.2.2/32 2.2.2.2 0 0 200 i
*> 22.22.22.22/32 2.2.2.2 0 0 200 i
I made some investigation and found out that the reason there is a
"r = RIB-failure" is because there is a route already exist with a HIGHER AD to the network 2.2.2.2 /32 of R2, which is a static route configured above for BGP neighbor to be formed between R1 and R2. While network 22.22.22.22 /32 of R2 was considered a "*=valid" because there was no route exist yet to that network in R1's routing table.
Now my question is:
If a static route has already been configured in loopback interface from R1 to R2 vice versa for BGP neighbors to formed, is it nor necessary to advertise that network as a BGP route? Because as with my post above, it will issue a RIB-FAilURE
Thanks:)
Comments
-
ColbyG Member Posts: 1,264You don't want that network advertised through BGP (the failure is what you want). That static route is how you form the neighbors.
-
Forsaken_GA Member Posts: 4,024you shouldn't be advertising an inter-as link to BGP anyway. The only two people who care about that route are you and your peer, not the rest of the internet, so you're better off using a static route to the peer. Most upstream AS's will filter out /32's anyway, so there's no point to advertising it via ebgp
The only thing BGP cares about is 'do I have a route to my peer in the routing table?'. It doesn't care how the route gets there, as long as it has one, and if it does, it'll initiate a neighbor connection. If it doesn't, then it won't.
So no, you do not need to advertise your inter-as links via bgp in order to get the neighbor relationship up, and in fact are encouraged not to.