Lesson Contents
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 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…
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
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
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
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
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