If you studied already other IGP protocols like OSPF or EIGRP you might find BGP kind of strange.
BGP is complex, it’s big and always it has another hidden configuration parameter; there is always something new to find about BGP.
Moreover, BGP do not even behave like it little IGP brothers. It does things it’s way.
You might hate BGP for several reasons, let’s discuss my top 3 reasons:
Reason# 1 Why don’t you come up? Please?
I’ll start by sharing with you my frustrations when configuring or tshooting BGP in a form of a helpful text.
BGP don’t come up for many reasons, specially eBGP it’s very picky. iBGP it’s easier(not really).
Scenario 1 – The most simple eBGP
! Just the basic config to bring them up
Router bgp 100
Neighbor 126.96.36.199 remote-as 200
Router bgp 200
Neighbor 188.8.131.52 remote-as 100
! Yeah, that’s it.
Scenario 2 – Multihop nightmare, eBGP style
Ip route 184.108.40.206 255.255.255.0 220.127.116.11
Ip route 18.104.22.168 255.255.255.0 22.214.171.124
Router bgp 100
neighbor 126.96.36.199 remote-as 200
neighbor 188.8.131.52 update-source loop1
neighbor 184.108.40.206 ebgp-multihop 2
Ip route 220.127.116.11 255.255.255.0 18.104.22.168
Ip route 22.214.171.124 255.255.255.0 126.96.36.199
router bgp 200
neighbor 188.8.131.52 remote-as 100
neighbor 184.108.40.206 update-source loop1
neighbor 220.127.116.11 ebgp-multihop 2
Reason# 2 I don’t understand show ip bgp output
Here we have some examples of a busy BGP neighborhood, explained as best as I can to fit it here.
Below, in yellow color, an extended explanation about “rib failure”.
— Click on the pictures to enlarge them —
Reason# 3 iBGP neighbors, aka why I cannot ping the other side?
Step#1: Here is a typical scenario below, AS#200 R2 announced a route coming from R1 network 18.104.22.168/24 to its neighbor R3.
Step#2: R2 and R3 are iBGP neighbors, iBGP by default will not change the next-hop of the route, meaning the route will be send with “reach via 10.12.1.1” which is the link between R1 and R2. R2 normally won’t redistribute into iBGP or IGP the external link to R1.
R3 has no idea how to reach network 10.12.1.0 so it won’t install it into the RIB and that route won’t be used for now. Will be shown as inaccessible.
Step#3: We add a command in R2 that tells any route to announce to R3 to set the next-hop as itself. Now the route will be forwarded again to R3 with R2 as a next hop.
Step #4: Now the new route will come to R3 with the next hop via R2, in this case R3 knows how to reach R2.
Step #5: R3 will have reachability to R2 and to the route, it will be installed in the RIB and start forwarding.
BGP it’s a very powerful protocol/application, but with great power comes great complexity.
But that’s ok, soon or later BGP and you will be friends. And who knows, maybe more.
I hope I can help you to make that transition from BGP hate to BGP love faster.
What do you think? Which BGP part drives you mad?
#Check here for BGP part 1 for an introduction
# Check here for BGP filtering tricks.
We are sorry that this post was not useful for you!
Let us improve this post!
Tell us how we can improve this post?