Good question, there’s a good explanation for this:
iBGP requires a full mesh of peerings because of iBGP split horizon. This is why we use loopback interfaces instead of physical interfaces for the peering. Physical interfaces can go down, loopbacks can’t (unless you shut them). In this example I could have used physical interfaces since there is only one link between R2-R3 and R3-R4, if we had a link between R2-R4 then it would have been a must.
When R4 (or R2) advertises its network on the loopback interface to R3 then R3 will store it in its BGP table but will never forward this network to R2 (or R4) because of iBGP split horizon. It will be impossible to establish iBGP between R2-R4 using loopback interfaces so you are forced to use physical interfaces.
using an IGP (like OSPF) ensures that all iBGP routers can learn about the networks on the loopback interfaces. Also, when a physical link goes down…our IGPs are really fast switching to a backup route, BGP is slow…
Hope this helps, if you need some more detail just let me know ok?
Hello Rene,
Thanks for the clarification, it means IBGP peers require full mesh topology. In order to achieve this use an IGP (EIGRP or OSPF) to ensure IBGP peers can reach other and then establish a connectivity. Hope I understand this correctly.
I did the lab on this lesson and worked fine but when I added 4 routers to the AS 2 I couldn’t ping the advertise network 1.1.1.1, I was able to see it. Do I need to use Route reflector to make it work?
Please advise.
By the way your BGP lessons are well explained and I love them.
Hello Rene,
in the example above i got confused with the next-self-hop command. As we see that R4 have not learned the 192.168.12.0 network!!! i wonder why R4 did not learn it from IGP/iBGP? my question is does IGP carry and advertise iBGP routes? can you please explain the benefit of the next-self-hop command ??? Thanks
I am bit confused when to use iBGP being the end customer. I would appreciate some examples. I understand why ISP would use it but not sure when end customer would use iBGP.
There’s not really a reason to use iBGP on customer networks. Even if a customer uses BGP, it’s typically only used on the border (eBGP). Since your network has only one exit point, you can use a default route in your IGP.
I have a question regarding TTL in iBGP. In your eBGP lesson, you mentioned that when reaching a remote loopback address, there was a need to change the next hop TTL to 2 (ie. … ebgp-multihop 2) so it looks like iBGP does not require this. Why is that?
iBGP has to be configured as a full mesh so that means that you’ll configure neighbor adjacencies with directly and non-directly connected neighbors. For these non-directly connected neighbors, you’ll need a higher TTL so that’s why we don’t use the TTL of 1 by default.
"s" for suppressed: BGP knows this prefix but is not advertising it. This can happen when you advertise a summary route and the prefix falls in the range of your summary.
"d" for dampened: BGP has a feature called "dampening" that allows you to stop advertise prefixes of interfaces that are flapping. Flapping means that an interface is going up, down, up, down, and so on.
"h" for history: BGP has learned this prefix before but currently doesn't have a valid route for it.
"r" for RIB failure: BGP has learned the prefix but did not install it in the routing table. You will see this when another routing protocol has a better administrative distance for the prefix.
"S" for stale: this is used for NSF (Non Stop Forwarding). When the BGP router reestablishes the neighbor adjacency, this prefix has to be refreshed.
NSF (Non Stop Forwarding) is used on devices that have multiple route processors. An example is the 6500 switch with multiple supervisors. All L2/L3 information will be synchronized between the supervisors, when the active one fails then we can keep forwarding packets since we have all information. Without it, the second supervisor would have to re-establish routing protocol neighbor adjacencies and such which adds a lot of delay to the failover.
The RIB (routing information base) is another word for the routing table.
“Technically this is possible…we can run OSPF (or EIGRP) within AS2 and use redistribution between BGP and OSPF. In my example R1 will only have a single prefix so it’s no problem but what if R1 had a full internet routing table? (over 500.000 prefixes since 2014). IGPs like OSPF or EIGRP are not able to handle that many prefixes so you’ll need BGP for this.”
But ultimately we have enabled iBGP on all of our internal routers. Means all will have the routes/prefixes advertised by R1 & R5. I am not getting what we have saved by creating iBGP. Correct me if I am wrong.