Jul 2, 2014

BGP Routing Issues Case Study 2 - Unreachable to the learned BGP route

If you have only one BGP router with multi-home ISP uplinks, its much easier to maintain the BGP routing table because it was totally under centralized control.

But as network continue to expand and we start to consider the redundancy issue, then your network will add additional multiple BGP speakers and you must enable IBGP between these BGP routers.






Case Study 2 - Unreachable to the learned BGP route 


So let's imagine there's an scenario as above figure and you are the BGP admin of AS3000 :
  • You have two uplink ISP1 and ISP2
  • You only advertise your own BGP prefix to your uplink ISPs (if you missed BGP Routing Issues Case Study 1 - BGP configuration without filter, its a good chance to review it before you continue to read this article)
    • 30.30.30.0/24
    • 30.30.31.0/24
  • You just added and setup two new BGP routers - R2 and R3
  • You moved ISP2 uplink from R1 to R2 in order to have redundant design
  • Since there are only three IBGP routers so we setup full-mesh IBGP sessions between R1, R2 and R3 without RR deployment

Now, let's see the configuration of these three routers:

R1

hostname R1
!
boot-start-marker
boot-end-marker
!
!
ip subnet-zero
no ip icmp rate-limit unreachable
ip cef
!
!
ip tcp synwait-time 5
no ip domain-lookup
!
no mpls traffic-eng auto-bw timers frequency 0
call rsvp-sync
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 30.30.30.1 255.255.255.255
 no clns route-cache
!
interface FastEthernet0/0
 ip address 100.100.100.2 255.255.255.252
 duplex auto
 speed auto
 no clns route-cache
!
interface FastEthernet0/1
 ip address 30.30.31.1 255.255.255.252
 duplex auto
 speed auto
 no clns route-cache
!
interface FastEthernet1/0
 ip address 30.30.31.9 255.255.255.252
 duplex auto
 speed auto
 no clns route-cache
!
interface FastEthernet1/1
 no ip address
 shutdown
 duplex auto
 speed auto
 no clns route-cache
!
router ospf 1
 log-adjacency-changes
 redistribute static subnets
 network 30.30.30.1 0.0.0.0 area 0
 network 30.30.31.0 0.0.0.3 area 0
 network 30.30.31.8 0.0.0.3 area 0
!
router bgp 3000
 no synchronization
 bgp log-neighbor-changes
 network 30.30.30.0 mask 255.255.255.0
 network 30.30.31.0 mask 255.255.255.0
 neighbor 30.30.30.2 remote-as 3000
 neighbor 30.30.30.2 update-source Loopback0
 neighbor 30.30.30.3 remote-as 3000
 neighbor 30.30.30.3 update-source Loopback0
 neighbor 100.100.100.1 remote-as 100
 neighbor 100.100.100.1 route-map AS100_OUT out
 no auto-summary
!
ip classless
ip route 30.30.30.0 255.255.255.0 Null0
ip route 30.30.31.0 255.255.255.0 Null0
!
no ip http server
!
ip as-path access-list 30 permit ^$
!
!
!
route-map AS100_OUT permit 10
 match as-path 30
!
!
!
control-plane
!
!
dial-peer cor custom
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 no login
!
!
end


R2

hostname R2
!
boot-start-marker
boot-end-marker
!
!
ip subnet-zero
no ip icmp rate-limit unreachable
ip cef
!
!
ip tcp synwait-time 5
no ip domain-lookup
!
no mpls traffic-eng auto-bw timers frequency 0
call rsvp-sync
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 30.30.30.2 255.255.255.255
 no clns route-cache
!
interface FastEthernet0/0
 ip address 200.200.200.2 255.255.255.252
 duplex auto
 speed auto
 no clns route-cache
!
interface FastEthernet0/1
 ip address 30.30.31.5 255.255.255.252
 duplex auto
 speed auto
 no clns route-cache
!
interface FastEthernet1/0
 ip address 30.30.31.10 255.255.255.252
 duplex auto
 speed auto
 no clns route-cache
!
interface FastEthernet1/1
 no ip address
 shutdown
 duplex auto
 speed auto
 no clns route-cache
!
router ospf 1
 log-adjacency-changes
 redistribute static subnets
 network 30.30.30.2 0.0.0.0 area 0
 network 30.30.31.4 0.0.0.3 area 0
 network 30.30.31.8 0.0.0.3 area 0
!
router bgp 3000
 no synchronization
 bgp log-neighbor-changes
 network 30.30.30.0 mask 255.255.255.0
 network 30.30.31.0 mask 255.255.255.0
 neighbor 30.30.30.1 remote-as 3000
 neighbor 30.30.30.1 update-source Loopback0
 neighbor 30.30.30.3 remote-as 3000
 neighbor 30.30.30.3 update-source Loopback0
 neighbor 200.200.200.1 remote-as 200
 neighbor 200.200.200.1 route-map AS200_OUT out
 no auto-summary
!
ip classless
ip route 30.30.30.0 255.255.255.0 Null0
ip route 30.30.31.0 255.255.255.0 Null0
!
no ip http server
!
ip as-path access-list 30 permit ^$
!
!
!
route-map AS200_OUT permit 10
 match as-path 30
!
!
!
control-plane
!
!
dial-peer cor custom
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 no login
!
!
end

R3

hostname R3
!
boot-start-marker
boot-end-marker
!
!
ip subnet-zero
no ip icmp rate-limit unreachable
ip cef
!
!
ip tcp synwait-time 5
no ip domain-lookup
!
no mpls traffic-eng auto-bw timers frequency 0
call rsvp-sync
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 30.30.30.3 255.255.255.255
 no clns route-cache
!
interface FastEthernet0/0
 ip address 30.30.31.2 255.255.255.252
 duplex auto
 speed auto
 no clns route-cache
!
interface FastEthernet0/1
 ip address 30.30.31.6 255.255.255.252
 duplex auto
 speed auto
 no clns route-cache
!
interface FastEthernet1/0
 no ip address
 shutdown
 duplex auto
 speed auto
 no clns route-cache
!
interface FastEthernet1/1
 no ip address
 shutdown
 duplex auto
 speed auto
 no clns route-cache
!
router ospf 1
 log-adjacency-changes
 network 30.30.30.3 0.0.0.0 area 0
 network 30.30.31.0 0.0.0.3 area 0
 network 30.30.31.4 0.0.0.3 area 0
!
router bgp 3000
 no synchronization
 bgp log-neighbor-changes
 neighbor 30.30.30.1 remote-as 3000
 neighbor 30.30.30.1 update-source Loopback0
 neighbor 30.30.30.2 remote-as 3000
 neighbor 30.30.30.2 update-source Loopback0
 no auto-summary
!
ip classless
!
no ip http server
!
!
!
!
!
!
control-plane
!
!
dial-peer cor custom
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 no login
!
!
end

BGP Issues

After these configurations were applied to the routers, we assume that it should works, however, it was not...:
  1. We can reach AS100 from R1 but we cannot reach AS100 from R2 and R3. 
  2. We can reach AS200 from R2 but we cannot reach AS200 from R1 and R3.
So let's check the BGP status in R1 at first:

R1#sh ip bgp summary
BGP router identifier 30.30.30.1, local AS number 3000
BGP table version is 8, main routing table version 8
4 network entries using 452 bytes of memory
6 path entries using 312 bytes of memory
5/2 BGP path/bestpath attribute entries using 540 bytes of memory
2 BGP AS-PATH entries using 48 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1352 total bytes of memory
BGP activity 7/3 prefixes, 9/3 paths, scan interval 60 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
30.30.30.2      4  3000      69      70        8    0    0 00:53:25        3
30.30.30.3      4  3000      55      64        8    0    0 00:51:00        0
100.100.100.1   4   100     113     147        8    0    0 01:01:21        1

R1 has two IBGP and one EBGP neighbor, all BGP sessions were established without errors.


Let's check R1's BGP table:

R1#sh ip bgp
BGP table version is 8, local router ID is 30.30.30.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
* i30.30.30.0/24    30.30.30.2               0    100      0 i
*>                  0.0.0.0                  0         32768 i
* i30.30.31.0/24    30.30.30.2               0    100      0 i
*>                  0.0.0.0                  0         32768 i
*> 100.100.0.0/16   100.100.100.1                          0 100 i
* i200.200.0.0/16   200.200.200.1            0    100      0 200 i

It seems okay of BGP routes learned from AS100(100.100.0.0/16)...but there's one strange route came from AS200(200.200.0.0/16) via R2 because that prefix has not best route. (* means valid, > means best)


Let's see the routing table of R1:

R1#sh 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, E - EGP
       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

     100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
B       100.100.0.0/16 [20/0] via 100.100.100.1, 00:53:17
C       100.100.100.0/30 is directly connected, FastEthernet0/0
     30.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
C       30.30.31.8/30 is directly connected, FastEthernet1/0
O       30.30.31.4/30 [110/2] via 30.30.31.10, 01:03:42, FastEthernet1/0
                      [110/2] via 30.30.31.2, 01:03:42, FastEthernet0/1
O       30.30.30.2/32 [110/2] via 30.30.31.10, 01:03:42, FastEthernet1/0
O       30.30.30.3/32 [110/2] via 30.30.31.2, 01:03:42, FastEthernet0/1
S       30.30.30.0/24 is directly connected, Null0
C       30.30.31.0/30 is directly connected, FastEthernet0/1
S       30.30.31.0/24 is directly connected, Null0
C       30.30.30.1/32 is directly connected, Loopback0

Now you can confirm that there is one issue in R1 => R1 learned the AS200 BGP routes from R2 but it cannot be used for unknown reason.

Let's check R2's BGP neighbor status:

R2#sh ip bgp summary
BGP router identifier 30.30.30.2, local AS number 3000
BGP table version is 6, main routing table version 6
4 network entries using 452 bytes of memory
6 path entries using 312 bytes of memory
5/2 BGP path/bestpath attribute entries using 540 bytes of memory
2 BGP AS-PATH entries using 48 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1352 total bytes of memory
BGP activity 6/2 prefixes, 8/2 paths, scan interval 60 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
30.30.30.1      4  3000      85      84        6    0    0 01:08:57        3
30.30.30.3      4  3000      70      80        6    0    0 01:06:16        0
200.200.200.1   4   200     124     155        6    0    0 01:13:02        1

All IBGP/EBGP sessions were established successfully. So there's no any problem here.

So let's check R2's BGP table: 

R2#sh ip bgp
BGP table version is 6, local router ID is 30.30.30.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
* i30.30.30.0/24    30.30.30.1               0    100      0 i
*>                  0.0.0.0                  0         32768 i
* i30.30.31.0/24    30.30.30.1               0    100      0 i
*>                  0.0.0.0                  0         32768 i
* i100.100.0.0/16   100.100.100.1            0    100      0 100 i
*> 200.200.0.0/16   200.200.200.1                          0 200 i

Here you found a similar issue with R1, the route learned from AS200 is okay but the route learned from AS100 via R1 has unknown problem.

You can check R2's routing table to confirm the problem:

R2#sh 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, E - EGP
       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

     200.200.200.0/30 is subnetted, 1 subnets
C       200.200.200.0 is directly connected, FastEthernet0/0
     30.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
C       30.30.31.8/30 is directly connected, FastEthernet1/0
C       30.30.31.4/30 is directly connected, FastEthernet0/1
C       30.30.30.2/32 is directly connected, Loopback0
O       30.30.30.3/32 [110/2] via 30.30.31.6, 01:13:17, FastEthernet0/1
S       30.30.30.0/24 is directly connected, Null0
O       30.30.31.0/30 [110/2] via 30.30.31.9, 01:13:17, FastEthernet1/0
                      [110/2] via 30.30.31.6, 01:13:17, FastEthernet0/1
S       30.30.31.0/24 is directly connected, Null0
O       30.30.30.1/32 [110/2] via 30.30.31.9, 01:13:17, FastEthernet1/0
B    200.200.0.0/16 [20/0] via 200.200.200.1, 01:02:12

Just exactly the same with R1, there's no valid route of AS100 in R2. That's why R2 cannot reach AS100.

We can check R3 to have more complete information:

R3#sh ip bgp
BGP table version is 5, local router ID is 30.30.30.3
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
r i30.30.30.0/24    30.30.30.2               0    100      0 i
r>i                 30.30.30.1               0    100      0 i
r i30.30.31.0/24    30.30.30.2               0    100      0 i
r>i                 30.30.30.1               0    100      0 i
* i100.100.0.0/16   100.100.100.1            0    100      0 100 i
* i200.200.0.0/16   200.200.200.1            0    100      0 200 i


R3#sh 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, E - EGP
       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

     30.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
O       30.30.31.8/30 [110/2] via 30.30.31.5, 01:15:23, FastEthernet0/1
                      [110/2] via 30.30.31.1, 01:15:23, FastEthernet0/0
C       30.30.31.4/30 is directly connected, FastEthernet0/1
O       30.30.30.2/32 [110/2] via 30.30.31.5, 01:15:23, FastEthernet0/1
C       30.30.30.3/32 is directly connected, Loopback0
O E2    30.30.30.0/24 [110/20] via 30.30.31.5, 01:15:23, FastEthernet0/1
                      [110/20] via 30.30.31.1, 01:15:23, FastEthernet0/0
C       30.30.31.0/30 is directly connected, FastEthernet0/0
O E2    30.30.31.0/24 [110/20] via 30.30.31.5, 01:15:23, FastEthernet0/1
                      [110/20] via 30.30.31.1, 01:15:23, FastEthernet0/0
O       30.30.30.1/32 [110/2] via 30.30.31.1, 01:15:23, FastEthernet0/0

Here you can see that R3 learned those external BGP routes but R3 cannot reach any of them.

Let's investigate in detail of the unreachable BGP route in R1:

R1#sh ip bgp 200.200.0.0
BGP routing table entry for 200.200.0.0/16, version 0
Paths: (1 available, no best path)
  Not advertised to any peer
  200
    200.200.200.1 (inaccessible) from 30.30.30.2 (30.30.30.2)
      Origin IGP, metric 0, localpref 100, valid, internal

Based on above show result, you found that root cause is R1 cannot reach 200.200.200.1 - the next-hop of that BGP route.

So let's check the R1's routing table:

R1#sh ip route 200.200.200.1
% Network not in table

The same show command result in R2:

R2#sh ip bgp 100.100.0.0
BGP routing table entry for 100.100.0.0/16, version 0
Paths: (1 available, no best path)
  Not advertised to any peer
  100
    100.100.100.1 (inaccessible) from 30.30.30.1 (30.30.30.1)
      Origin IGP, metric 0, localpref 100, valid, internal

R2#sh ip route 100.100.100.1
% Network not in table

We can have a final conclusion that root cause is R1's and R2's external uplink interface WAN IP was not advertised to AS3000 other IBGP neighbors properly so that's the root cause of this case.


BGP Best Practice

When EBGP routes advertised to IBGP neighbor, the next-hop will be remain unchanged, so how to ensure all IBGP neighbor can reach the EBGP routes next-hop is important. Even IBGP neighbor learned the BGP routes(in BGP table only), if the next-hop was unreachable then all the BGP routes will become invalid in routing table.

Normally, we can have three methods to prevent this kind of issue:
1. Activate next-hop-self feature over IBGP sessions on EBGP routers only
2. Add those external interface into IGP domain with passive-interface to prevent IGP neighbor established with external party
3. Redistribute the external connected routes into IGP domain to advertise to other IBGP neighbors

Let's see how to fix the issues by first one solution, and I will recommend to use this as SOP for operation team to prevent external routes exists in IGP domain.

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#router bgp 3000
R1(config-router)#neighbor 30.30.30.2 next-hop-self
R1(config-router)#neighbor 30.30.30.3 next-hop-self
R1(config-router)#^Z
R1#

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#router bgp 3000
R2(config-router)#nei
R2(config-router)#neighbor 30.30.30.1 next-hop-self
R2(config-router)#neighbor 30.30.30.3 next-hop-self
R2(config-router)#^Z
R2#

After we activated the next-hop-self feature on R1 and R2, then we can see the R1 and R2 will treat all EBGP routes as valid now:

R1#sh ip bgp
BGP table version is 9, local router ID is 30.30.30.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
* i30.30.30.0/24    30.30.30.2               0    100      0 i
*>                  0.0.0.0                  0         32768 i
* i30.30.31.0/24    30.30.30.2               0    100      0 i
*>                  0.0.0.0                  0         32768 i
*> 100.100.0.0/16   100.100.100.1                          0 100 i
*>i200.200.0.0/16   30.30.30.2               0    100      0 200 i

R1#sh 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, E - EGP
       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

     100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
B       100.100.0.0/16 [20/0] via 100.100.100.1, 01:24:34
C       100.100.100.0/30 is directly connected, FastEthernet0/0
     30.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
C       30.30.31.8/30 is directly connected, FastEthernet1/0
O       30.30.31.4/30 [110/2] via 30.30.31.10, 01:34:59, FastEthernet1/0
                      [110/2] via 30.30.31.2, 01:34:59, FastEthernet0/1
O       30.30.30.2/32 [110/2] via 30.30.31.10, 01:34:59, FastEthernet1/0
O       30.30.30.3/32 [110/2] via 30.30.31.2, 01:34:59, FastEthernet0/1
S       30.30.30.0/24 is directly connected, Null0
C       30.30.31.0/30 is directly connected, FastEthernet0/1
S       30.30.31.0/24 is directly connected, Null0
C       30.30.30.1/32 is directly connected, Loopback0
B    200.200.0.0/16 [200/0] via 30.30.30.2, 00:02:04

R2#sh ip bgp
BGP table version is 7, local router ID is 30.30.30.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
* i30.30.30.0/24    30.30.30.1               0    100      0 i
*>                  0.0.0.0                  0         32768 i
* i30.30.31.0/24    30.30.30.1               0    100      0 i
*>                  0.0.0.0                  0         32768 i
*>i100.100.0.0/16   30.30.30.1               0    100      0 100 i
*> 200.200.0.0/16   200.200.200.1                          0 200 i

R2#sh 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, E - EGP
       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

     200.200.200.0/30 is subnetted, 1 subnets
C       200.200.200.0 is directly connected, FastEthernet0/0
     100.0.0.0/16 is subnetted, 1 subnets
B       100.100.0.0 [200/0] via 30.30.30.1, 00:03:41
     30.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
C       30.30.31.8/30 is directly connected, FastEthernet1/0
C       30.30.31.4/30 is directly connected, FastEthernet0/1
C       30.30.30.2/32 is directly connected, Loopback0
O       30.30.30.3/32 [110/2] via 30.30.31.6, 01:35:16, FastEthernet0/1
S       30.30.30.0/24 is directly connected, Null0
O       30.30.31.0/30 [110/2] via 30.30.31.9, 01:35:16, FastEthernet1/0
                      [110/2] via 30.30.31.6, 01:35:16, FastEthernet0/1
S       30.30.31.0/24 is directly connected, Null0
O       30.30.30.1/32 [110/2] via 30.30.31.9, 01:35:16, FastEthernet1/0
B    200.200.0.0/16 [20/0] via 200.200.200.1, 01:24:12

Even R3 is working correctly now:

R3#sh ip bgp
BGP table version is 7, local router ID is 30.30.30.3
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
r i30.30.30.0/24    30.30.30.2               0    100      0 i
r>i                 30.30.30.1               0    100      0 i
r i30.30.31.0/24    30.30.30.2               0    100      0 i
r>i                 30.30.30.1               0    100      0 i
*>i100.100.0.0/16   30.30.30.1               0    100      0 100 i
*>i200.200.0.0/16   30.30.30.2               0    100      0 200 i

R3#sh 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, E - EGP
       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

     100.0.0.0/16 is subnetted, 1 subnets
B       100.100.0.0 [200/0] via 30.30.30.1, 00:05:45
     30.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
O       30.30.31.8/30 [110/2] via 30.30.31.5, 01:37:22, FastEthernet0/1
                      [110/2] via 30.30.31.1, 01:37:22, FastEthernet0/0
C       30.30.31.4/30 is directly connected, FastEthernet0/1
O       30.30.30.2/32 [110/2] via 30.30.31.5, 01:37:22, FastEthernet0/1
C       30.30.30.3/32 is directly connected, Loopback0
O E2    30.30.30.0/24 [110/20] via 30.30.31.5, 01:37:22, FastEthernet0/1
                      [110/20] via 30.30.31.1, 01:37:22, FastEthernet0/0
C       30.30.31.0/30 is directly connected, FastEthernet0/0
O E2    30.30.31.0/24 [110/20] via 30.30.31.5, 01:37:22, FastEthernet0/1
                      [110/20] via 30.30.31.1, 01:37:22, FastEthernet0/0
O       30.30.30.1/32 [110/2] via 30.30.31.1, 01:37:23, FastEthernet0/0
B    200.200.0.0/16 [200/0] via 30.30.30.2, 00:04:16

R3#ping 100.100.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.100.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/48/60 ms

And let's see the detail of the BGP routes next-hop was changed to border router's loopback so all IBGP neighbors can reach it successfully.

R3#sh ip bgp 100.100.0.0
BGP routing table entry for 100.100.0.0/16, version 6
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Not advertised to any peer
  100
    30.30.30.1 (metric 2) from 30.30.30.1 (30.30.30.1)
      Origin IGP, metric 0, localpref 100, valid, internal, best

R3#sh ip bgp 200.200.0.0
BGP routing table entry for 200.200.0.0/16, version 7
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Not advertised to any peer
  200
    30.30.30.2 (metric 2) from 30.30.30.2 (30.30.30.2)
      Origin IGP, metric 0, localpref 100, valid, internal, best

Post a Comment