BGP Next Hop Self

One potential issue with iBGP is that it doesn’t change the next hop IP address. Sometimes this can cause reachability issues. Let’s look at an example:

BGP Next Hop Self Demo Topology

Above we have R1 and R2 in AS 12 running iBGP. R3 is in AS 3 and we use eBGP between R2 and R3. Once we advertise network 3.3.3.0 /24 on R3 in BGP then R2 will learn this prefix and stores it in its BGP table, the next hop IP adress will be 192.168.23.3.

Once R1 learns about prefix 3.3.3.0 /24 then the next hop IP address will remain 192.168.23.3. When R1 doesn’t know how to reach this IP address then it will fail to install 3.3.3.0 /24 in its routing table.

Let’s take a look at the configuration, I’ll show you two methods how we can deal with this issue.

Configuration

Here’s the BGP configuraton that we will use:

R1(config)#router bgp 12
R1(config-router)#neighbor 192.168.12.2 remote-as 12
R2(config)#router bgp 12
R2(config-router)#neighbor 192.168.12.1 remote-as 12
R2(config-router)#neighbor 192.168.23.3 remote-as 3
R3(config)#router bgp 3
R3(config-router)#neighbor 192.168.23.2 remote-as 12
R3(config-router)#network 3.3.3.0 mask 255.255.255.0

The configuration is pretty straight forward. We use iBGP between R1/R2 and eBGP between R2/R3. On R3 we advertised 3.3.3.0 /24 in BGP. Let’s take a look at the BGP tables:

R2#show ip bgp
BGP table version is 2, local router ID is 192.168.23.2
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
*> 3.3.3.0/24       192.168.23.3             0             0 3 i

R2 has installed 3.3.3.0 /24 in its BGP table and it is a valid route, the next hop is 192.168.23.3. Let’s check R1:

R1#show ip bgp
BGP table version is 1, local router ID is 192.168.12.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
* i3.3.3.0/24       192.168.23.3             0    100      0 3 i

R1 learns the prefix but it’s unable to install it in the routing table:

R1#show ip route bgp

The problem here is that the next hop IP address is 192.168.23.3. Does R1 have any clue how to reach this address?

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.12.0/24 is directly connected, FastEthernet0/0

R1 doesn’t know so it’s impossible to install 3.3.3.0 /24 in the routing table. How can we fix this? I’ll show you two different methods.

Advertise Network

The first solution is simple, we can advertise the network in iBGP (or an IGP if you use one) so that R1 is able to reach the next hop. Let’s advertise 192.168.23.0 /24 in BGP:

R2(config)#router bgp 12
R2(config-router)#network 192.168.23.0 mask 255.255.255.0

Now take a look at R1:

R1#show ip bgp
BGP table version is 3, local router ID is 192.168.12.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
*>i3.3.3.0/24       192.168.23.3             0    100      0 3 i
*>i192.168.23.0     192.168.12.2             0    100      0 i

R1 learns about 192.168.23.0 /24 so now it knows how to reach the next hop for 3.3.3.0 /24. It can now install this network in the routing table:

R1#show ip route bgp
     3.0.0.0/24 is subnetted, 1 subnets
B       3.3.3.0 [200/0] via 192.168.23.3, 00:16:20
B    192.168.23.0/24 [200/0] via 192.168.12.2, 00:16:25

Configurations

Want to take a look for yourself? Here you will find the final configuration of each device.

R1

hostname R1
!
interface fastEthernet0/0
 ip address 192.168.12.1 255.255.255.0
!
router bgp 12
 neighbor 192.168.12.2 remote-as 12
!
end

R2

hostname R2
!
interface fastEthernet1/0
 ip address 192.168.12.2 255.255.255.0
!
interface fastEthernet0/1
 ip address 192.168.23.1 255.255.255.0
!
router bgp 12
 neighbor 192.168.12.1 remote-as 12
 neighbor 192.168.23.3 remote-as 3
 neighbor 192.168.12.1 next-hop-self
 network 192.168.23.0 mask 255.255.255.0
!
end

R3

hostname R3
!
interface fastEthernet0/0
 ip address 192.168.23.3 255.255.255.0
!
router bgp 3
 neighbor 192.168.23.2 remote-as 12
 network 3.3.3.0 mask 255.255.255.0
!
end


This will work but there is another solution that is easier. Let’s clean up before we continue:

R2(config)#router bgp 12
R2(config-router)#no network 192.168.23.0 mask 255.255.255.0

Now we can try something else…

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now!

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You’ve Ever Spent on Your Cisco Career!
  • Full Access to our 800 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)
541 Sign Ups in the last 30 days
satisfaction-guaranteed

  • 100% Satisfaction Guaranteed!
  • You may cancel your monthly membership at any time.
  • No Questions Asked!

Forum Replies

  1. Hi Rene,
    Thanks a lot for explaining the next hop self. That was very detailed. I really appreciate it Sir. Also i have a question, what rental lab racks do you recommend? i know there are a lot but what you think is the best and the cheapest?
    Thanks

    Ammar,
    CCIE R&S - in progress

  2. Hi Ammar,

    Hmm the first thing I would look for is what topology they support. If you use the INE workbooks, make sure the rack rental is cabled for their topology AND has all the startup-configs.

    Also if possible, check if they are located close to you…a high delay can be annoying since the console will be a bit slow.

    Rene

  3. Rene,
    Thanks for you advice. Yes, i will start looking soon. As you know written is not interesting as the lab study. I am focusing now on the written to pass it so i can be fully prepared for the lab. Thanks

    Ammar,
    CCIE R&S - in progress

  4. Rene,
    Great lesson however, I have question. I tried the lab in GNS3 when I make R2 NEXTHOP for R1 and R3. I can see R3 learns about 3.3.3.0/24 network from R2 and it also installs in BGP table.
    When I do “sh ip route bgp” I can see 3.3.3.0/24 with next hop of 192.168.12.2.
    When I ping from R3 it is not ping-able. As soon as I advertized 192.168.23.0 and 192.168.12.0 on R2 it starts pinging. Hope I am not missing any key stuff from the lesson.
    Please advice.
    Thanks
    Hamood

  5. Hi Hamood,

    R1 will know how to reach 3.3.3.3 but there will be one problem left. R3 doesn’t have a clue how to reach 192.168.12.0 /24.

    This is something you’ll have to fix by advertising 192.168.12.0 /24 in BGP on R2.

    Rene

75 more replies! Ask a question or join the discussion by visiting our Community Forum