EBGP Multihop

(Rene Molenaar) #1

This topic is to discuss the following lesson:

Why the first example eBGP Multihop doesnt work?
(Hamood R) #2

I thought multi-hop is only when we have two BGP neighbors are not directly connected. I can see in the example when loopback addresses are used to configure BGP neighbors you are using multi-hop command even thoug the routers are directly connected.
In the first example and your note says having non BGP router between two BGP routers is not a good idea. For instance if we have no choice then how can we make sure R1 and R3 networks are reachable?
Please clarify.


(Rene Molenaar) #3

Hi Hamood,

That’s right, if you source eBGP from the loopback interfaces then you’ll need multihop.

The problem with the R1-R2-R3 scenario is that R2 will never learn about any prefixes, when R1 tries to reach a network behind R3 (or R3 wants to reach something behind R1) then R2 will receive an IP packet with a destination it doesn’t know about.

If you really had to use eBGP between R1 and R3 then a GRE tunnel might be a solution…


(rouzbeh t) #4

Hello Rene,

If we use static routes then why we use BGP? couldn’t we advertise the subnets with network command in BGP?


(Rene Molenaar) #5

Hi Rouzbeh,

In the example with the two interfaces, we use static routes only for the neighbor adjacency. Once BGP is up and running, we’ll use it to advertise networks. With only two routers there’s no need to run BGP, just imagine that R1 and R2 are part of a much larger network with multiple ASes, routers, etc. :slight_smile:


(rouzbeh t) #6

Is BGP neighbor command not enough to build the adjacency? I mean with 2 routers static route is mandatory?


(Rene Molenaar) #7

Hi Rouzbeh,

If you are using the IP addresses on the directly connected links then yes, all you need is the neighbor command. If you establish it between two loopback interfaces then your routers need to know how to reach each other’s loopback interface.


(rouzbeh t) #8

True, but my question is if the loopbacks are learned by routing tables which they are because they are directly connected then BGP will learn them as well, please correct me if I am wrong.


(Rene Molenaar) #9

Hi Rouzbeh,

The static routes are required otherwise there’s no way to create the BGP neighbor adjacency between the loopbacks. The routers don’t know how to reach each others loopbacks. Once the BGP neighbor adjacency, you could advertise the loopbacks but they will never be installed in the routing table since the static routes have a lower AD.


(rouzbeh t) #10

understood, thank you so much Rene

(kam a) #11

“ip route”

Hi Rene, in the above statement, why are you using a 32 bit mask while you only have a /24 configured on the interface?

(Rene Molenaar) #12

Hi Kam,

I did this because the router only needs to know how to reach this particular IP address, it doesn’t matter if you use a /24 or /32 in this example :slight_smile:


(madimba t) #13

Hi Rene is there any config where we can use (ebgp-multihop 1)?

(Rene Molenaar) #14

Hi Madimba,

Not really, the default TTL for BGP is 1 so you’ll need at least a TTL of 2 when you configure ebgp-multihop.


(Hussein Samir) #15

Hi Rene,

Why you enable the directly connected check again when you increase the TTL ?


(Rene Molenaar) #16

By default the TTL for eBGP is 1. If you want to get around this then you can disable “disable-connected-check” or you can increase the ebgp multihop. Both options will work and it’s one of the two that you should use.

To demonstrate multihop, I enabled the disable-connected-check again. Otherwise there would be no point demonstrating it :slight_smile:

(Hussein Samir) #17

thanks Rene I understood that we have tow options to use, but in the first option they will not become neighbor even though “disable-connected-check” since by default the TTL for eBGP is 1 so finally we need to increase the TTL if we use the first option ? right ?

(Hussein Samir) #18

in the other word what is the benefit of disabling connected check, since when we increase the TTL the routers will know that they are not direct contacted ?

(Rene Molenaar) #19

Hi Hussein,

Disabling the connected-check is only useful when you have two routers and you want to connect through eBGP using their loopback interfaces. This is the only scenario where it will work. If the routers are not directly connected then you always have to increase the TTL, there’s no point disabling the connected check then.

There’s not really any benefit “over” increasing the TTL, both will work.


(Diana M) #20

Hi Rene,

What do you think to create a GRE tunnel between R1 and R3 so that BGP neighbors can reach the other one? Is that possible? I think in this way R2 doesn’t have to know anything about the BGP routes.