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:
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 18.104.22.168 /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 22.214.171.124 /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 126.96.36.199 /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.
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 188.8.131.52 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 184.108.40.206 /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 *> 220.127.116.11/24 192.168.23.3 0 0 3 i
R2 has installed 18.104.22.168 /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 * i22.214.171.124/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 126.96.36.199 /24 in the routing table. How can we fix this? I’ll show you two different methods.
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 *>i188.8.131.52/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 184.108.40.206 /24. It can now install this network in the routing table:
R1#show ip route bgp 220.127.116.11/24 is subnetted, 1 subnets B 18.104.22.168 [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
Want to take a look for yourself? Here you will find the final configuration of each device.
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
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
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 22.214.171.124 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…
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?
CCIE R&S - in progress
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.
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
CCIE R&S - in progress
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 126.96.36.199/24 network from R2 and it also installs in BGP table.
When I do “sh ip route bgp” I can see 188.8.131.52/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.
R1 will know how to reach 184.108.40.206 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.