Wednesday, August 8, 2012

BGP Next Hop Issues & How Do We Fix It Using Different Ways .... With Some Troubleshooting Along The Way (Not For Soft Heart People ;-p)



R1
===

!
en
!
conf t
!
no ip do lo
no cdp run
!
ho R1
!
int lo0
 ip add 1.1.1.1 255.255.255.255
 exit
!
int f0/0
 ip add 12.12.12.1 255.255.255.0
 no sh
 exit
!
router bgp 100
 no auto
 no sync
 nei 12.12.12.2 remote 200
 net 1.1.1.1 mask 255.255.255.255
 exit
!
end
!
wr
!
#########################

R2
===

!
en
!
conf t
!
no ip do lo
no cdp run
!
ho R2
!
int lo0
 ip add 2.2.2.2 255.255.255.255
 exit
!
int f1/0
 ip add 12.12.12.2 255.255.255.0
 no sh
 exit
!
int f1/1
 ip add 23.23.23.2 255.255.255.0
 no sh
 exit
!
int f2/0
 ip add 24.24.24.2 255.255.255.0
 no sh
 exit
!
router eigrp 200
 no auto
 net 2.2.2.2 0.0.0.0
 net 23.23.23.2 0.0.0.0
 net 24.24.24.2 0.0.0.0
 exit
!
router bgp 200
 no au
 no sync
 nei 3.3.3.3 remote 200
 nei 3.3.3.3 update lo0
 nei 4.4.4.4 remote 200
 nei 4.4.4.4 update lo0
 nei 12.12.12.1 remote 100
 net 2.2.2.2 mask 255.255.255.255
 exit
 end
!
wr
!
#########################

R3
===

!
en
!
conf t
!
no ip do lo
no cdp run
!
ho R3
!
int lo0
 ip add 3.3.3.3 255.255.255.255
 exit
!
int f0/0
 ip add 23.23.23.3 255.255.255.0
 no sh
 exit
!
int f0/1
 ip add 53.53.53.3 255.255.255.0
 no sh
 exit
!
router eigrp 200
 no auto
 net 3.3.3.3 0.0.0.0
 net 23.23.23.3 0.0.0.0
 exit
!
router bgp 200
 no auto
 no sync
 nei 2.2.2.2 remote 200
 nei 2.2.2.2 update lo0
 nei 53.53.53.5 remote 300
 net 3.3.3.3 mask 255.255.255.255
 exit
!
end
!
wr
!
#########################

R4
===

!
en
!
conf t
!
no ip do lo
no cdp run
!
ho R4
!
int lo0
 ip add 4.4.4.4 255.255.255.255
 exit
!
int f0/0
 ip add 24.24.24.4 255.255.255.0
 no sh
 exit
!
int f0/1 
 ip add 46.46.46.4 255.255.255.0
 no sh 
 exit
!
router eigrp 200
 no auto
 net 4.4.4.4 0.0.0.0
 net 24.24.24.4 0.0.0.0
 net 46.46.46.4 0.0.0.0
 exit
!
router bgp 200
 no auto
 no sync
 nei 2.2.2.2 remote 200
 nei 2.2.2.2 update lo0
 nei 2.2.2.2 route-reflector-client
 nei 6.6.6.6 remote 200
 nei 6.6.6.6 update lo0
 nei 6.6.6.6 route-reflector-client
 net 4.4.4.4 mask 255.255.255.255
 exit
!
end
!
wr
!
#########################

R5
===

!
en
!
conf t
!
no ip do lo
no cdp run
!
ho R5
!
int lo0
 ip add 5.5.5.5 255.255.255.255
 exit
!
int f0/0
 ip add 53.53.53.5 255.255.255.0
 no sh
 exit
!
router bgp 300
 no auto
 no sync
 nei 53.53.53.3 remote 200
 net 5.5.5.5 mask 255.255.255.255
 exit
!
end
!
wr
!
#########################

R6
===

!
en
!
conf t
!
no ip do lo
no cdp run
!
ho R6
!
int lo0
 ip add 6.6.6.6 255.255.255.255
 exit
!
int f0/0
 ip add 46.46.46.6 255.255.255.0
 no sh
 exit
!
router eigrp 200
 no auto
 net 6.6.6.6 0.0.0.0
 net 46.46.46.6 0.0.0.0
 exit
!
router bgp 200
 no auto
 no sync
 nei 4.4.4.4 remote 200
 nei 4.4.4.4 update lo0
 net 6.6.6.6 mask 255.255.255.255
 exit
!
end
!
wr
!
==============================================================


PEERING STATUS
---------------------------


R1#sh ip bgp summary | b N
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
12.12.12.2      4   200      68      61        8    0    0 00:56:14        4



R2#sh ip bgp summary | b N
Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
3.3.3.3         4          200      53      58       15    0    0 00:47:01        2
4.4.4.4         4          200      21      17       15    0    0 00:09:43        2
12.12.12.1      4          100      62      70       15    0    0 00:57:26        1



R3#sh ip bgp summary | b N
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
2.2.2.2         4   200      58      53        5    0    0 00:47:25        2
53.53.53.5      4   300      33      34        5    0    0 00:28:57        1



R4#sh ip bgp summary | b N
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
2.2.2.2         4   200      51      51       12    0    0 00:10:46        2
6.6.6.6         4   200      33      39       12    0    0 00:10:35        1



R5#sh ip bgp summary | b N
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
53.53.53.3      4   200      36      35        4    0    0 00:30:11        2



R6#sh ip bgp summary | b N
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
4.4.4.4         4   200      40      34       12    0    0 00:11:48        2

=======================================================================


BGP TABLE VIEW
---------------------------


R1#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.1/32       0.0.0.0                  0         32768 i
*> 2.2.2.2/32       12.12.12.2               0             0 200 i
*> 3.3.3.3/32       12.12.12.2                             0 200 i
*> 4.4.4.4/32       12.12.12.2                             0 200 i
*> 6.6.6.6/32       12.12.12.2                             0 200 i



R2#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.1/32       12.12.12.1               0             0 100 i
*> 2.2.2.2/32       0.0.0.0                  0         32768 i
r>i3.3.3.3/32       3.3.3.3                  0    100      0 i
r>i4.4.4.4/32       4.4.4.4                  0    100      0 i
* i5.5.5.5/32       53.53.53.5               0    100      0 300 i
r>i6.6.6.6/32       6.6.6.6                  0    100      0 i



R3#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
* i1.1.1.1/32       12.12.12.1               0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
*> 3.3.3.3/32       0.0.0.0                  0         32768 i
*> 5.5.5.5/32       53.53.53.5               0             0 300 i

R3#sh ip route 12.12.12.1
% Network not in table



R4#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
* i1.1.1.1/32       12.12.12.1               0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
*> 4.4.4.4/32       0.0.0.0                  0         32768 i
r>i6.6.6.6/32       6.6.6.6                  0    100      0 i

R4#sh ip route 12.12.12.1
% Network not in table



R5#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*> 2.2.2.2/32       53.53.53.3                             0 200 i
*> 3.3.3.3/32       53.53.53.3               0             0 200 i
*> 5.5.5.5/32       0.0.0.0                  0         32768 i



R6#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
r>i4.4.4.4/32       4.4.4.4                  0    100      0 i
*> 6.6.6.6/32       0.0.0.0                  0         32768 i

=======================================================================


Fixing Next Hop Issues
-------------------------------


Method 1 => Advertising Next Hop Into IGP
###########################################


R2(config)#router eigrp 200
R2(config-router)#net 12.12.12.2 0.0.0.0
R2(config-router)#end


R3(config)#router eigrp 200
R3(config-router)#net 53.53.53.3 0.0.0.0
R3(config-router)#end


R4 Before
=========

R4#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
* i1.1.1.1/32       12.12.12.1               0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
*> 4.4.4.4/32       0.0.0.0                  0         32768 i
r>i6.6.6.6/32       6.6.6.6                  0    100      0 i

R4#sh ip route 12.12.12.1
% Network not in table


R4 After
========

R4#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32       12.12.12.1               0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
*> 4.4.4.4/32       0.0.0.0                  0         32768 i
r>i6.6.6.6/32       6.6.6.6                  0    100      0 i


R4#sh ip route 12.12.12.1
Routing entry for 12.12.12.0/24
  Known via "eigrp 200", distance 90, metric 284160, type internal
  Redistributing via eigrp 200
  Last update from 24.24.24.2 on FastEthernet0/0, 00:02:25 ago
  Routing Descriptor Blocks:
  * 24.24.24.2, from 24.24.24.2, 00:02:25 ago, via FastEthernet0/0
      Route metric is 284160, traffic share count is 1
      Total delay is 1100 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 1


R3 Before
=========

R3#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
* i1.1.1.1/32       12.12.12.1               0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
*> 3.3.3.3/32       0.0.0.0                  0         32768 i
*> 5.5.5.5/32       53.53.53.5               0             0 300 i

R3#sh ip route 12.12.12.1
% Network not in table


R3 After
========

R3#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32       12.12.12.1               0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
*> 3.3.3.3/32       0.0.0.0                  0         32768 i
*> 5.5.5.5/32       53.53.53.5               0             0 300 i


R3#sh ip route 12.12.12.1
Routing entry for 12.12.12.0/24
  Known via "eigrp 200", distance 90, metric 284160, type internal
  Redistributing via eigrp 200
  Last update from 23.23.23.2 on FastEthernet0/0, 00:03:58 ago
  Routing Descriptor Blocks:
  * 23.23.23.2, from 23.23.23.2, 00:03:58 ago, via FastEthernet0/0
      Route metric is 284160, traffic share count is 1
      Total delay is 1100 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 1



Getting Rid of BGP Split Horizon Issue By Configuring R2 as Route Reflector
==========================================================

R2(config)#router bgp 200
R2(config-router)#nei 3.3.3.3 route-reflector-client
R2(config-router)#nei 4.4.4.4 route-reflector-client
R2(config-router)#end


R3 Before
=========

R3#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32       12.12.12.1               0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
*> 3.3.3.3/32       0.0.0.0                  0         32768 i
*> 5.5.5.5/32       53.53.53.5               0             0 300 i


R3 After
========

R3#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32       12.12.12.1               0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
*> 3.3.3.3/32       0.0.0.0                  0         32768 i
r>i4.4.4.4/32       4.4.4.4                  0    100      0 i
*> 5.5.5.5/32       53.53.53.5               0             0 300 i
r>i6.6.6.6/32       6.6.6.6                  0    100      0 i


############################################################################


Reachability Check Using TCL Scripting
======================================

tclsh
foreach address {
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5
6.6.6.6
} {ping $address source lo0 repeat 3}



R1#tclsh
R1(tcl)#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 4/4/4 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 112/306/496 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 416/597/876 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 232/378/552 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 616/1136/1624 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 376/642/796 ms


Fixing Next Hop Issues
--------------------------


Method 2 => Redistributing Specific Connected Route Into IGP
#############################################################


Let's Rollback Method 1
===================


R2(config)#router eigrp 200
R2(config-router)#no  network 12.12.12.2 0.0.0.0
R2(config-router)#end

R3(config)#router eigrp 200
R3(config-router)#no  network 53.53.53.3 0.0.0.0
R3(config-router)#end

Let's do reachability test again from R1
==============================

R1#tclsh

R1(tcl)#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 1/3/4 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
.!!
Success rate is 66 percent (2/3), round-trip min/avg/max = 288/334/380 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
...
Success rate is 0 percent (0/3)
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
...
Success rate is 0 percent (0/3)
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
...
Success rate is 0 percent (0/3)
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
...
Success rate is 0 percent (0/3)


Let's try to fix it with second option:
===========================

R2
###

R2(config)#route-map CONN-F1/0 per 10
R2(config-route-map)#match interface f1/0
R2(config-route-map)#exit

R2(config)#router eigrp 200
R2(config-router)#redistribute connected metric 1 1 1 1 1 route-map CONN-F1/0
R2(config-router)#end

R3
###

R3(config)#ip prefix-list CONN-F0/1 pe
R3(config)#ip prefix-list CONN-F0/1 permit 53.53.53.3/24

R3(config)#route-map CONN-F0/1 per 10
R3(config-route-map)#match ip add prefix-list CONN-F0/1
R3(config-route-map)#exit

R3(config)#router eigrp 200
R3(config-router)#redis conn metric 1 1 1 1 1 route-map CONN-F0/1
R3(config-router)#end


Reachability Check Using TCL Scripting From R1
=====================================

tclsh
foreach address {
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5
6.6.6.6
} {ping $address source lo0 repeat 3}



R1#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 1/3/4 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 12/104/168 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 408/572/868 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 388/557/812 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 688/1002/1364 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 996/1112/1212 ms




Method 3 => Neighbor Next Hop Self Command
###########################################


Let's Rollback Method 2
==================

R2(config)#router eigrp 200
R2(config-router)#no redistribute connected metric 1 1 1 1 1 route-map CONN-F1/0
R2(config-router)#end

R3(config)#router eigrp 200
R3(config-router)#no redistribute connected metric 1 1 1 1 1 route-map CONN-F0/1
R3(config-router)#end


Reachability Check Using TCL Scripting From R1
=====================================

tclsh
foreach address {
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5
6.6.6.6
} {ping $address source lo0 repeat 3}



R1(tcl)#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 1/3/4 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 32/50/64 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
...
Success rate is 0 percent (0/3)
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
...
Success rate is 0 percent (0/3)
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
...
Success rate is 0 percent (0/3)
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
...
Success rate is 0 percent (0/3)


Let's Try to fix the situation using Next-Hop-Self Option
===========================================


R2(config)#router bgp 200
R2(config-router)#nei 3.3.3.3 next-hop-self
R2(config-router)#nei 4.4.4.4 next-hop-self
R2(config-router)#end


R3(config)#router bgp 200
R3(config-router)#nei 2.2.2.2 next-hop-self
R3(config-router)#end



Let's Verify the solution
==================

R1#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.1/32       0.0.0.0                  0         32768 i
*> 2.2.2.2/32       12.12.12.2               0             0 200 i
*> 3.3.3.3/32       12.12.12.2                             0 200 i
*> 4.4.4.4/32       12.12.12.2                             0 200 i
*> 5.5.5.5/32       12.12.12.2                             0 200 300 i
*> 6.6.6.6/32       12.12.12.2                             0 200 i


R2#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.1/32       12.12.12.1               0             0 100 i
*> 2.2.2.2/32       0.0.0.0                  0         32768 i
r>i3.3.3.3/32       3.3.3.3                  0    100      0 i
r>i4.4.4.4/32       4.4.4.4                  0    100      0 i
*>i5.5.5.5/32       3.3.3.3                  0    100      0 300 i
r>i6.6.6.6/32       6.6.6.6                  0    100      0 i


R3#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32       2.2.2.2                  0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
*> 3.3.3.3/32       0.0.0.0                  0         32768 i
r>i4.4.4.4/32       4.4.4.4                  0    100      0 i
*> 5.5.5.5/32       53.53.53.5               0             0 300 i
r>i6.6.6.6/32       6.6.6.6                  0    100      0 i


R4#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32       2.2.2.2                  0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
r>i3.3.3.3/32       3.3.3.3                  0    100      0 i
*> 4.4.4.4/32       0.0.0.0                  0         32768 i
*>i5.5.5.5/32       3.3.3.3                  0    100      0 300 i
r>i6.6.6.6/32       6.6.6.6                  0    100      0 i


R5#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.1/32       53.53.53.3                             0 200 100 i
*> 2.2.2.2/32       53.53.53.3                             0 200 i
*> 3.3.3.3/32       53.53.53.3               0             0 200 i
*> 4.4.4.4/32       53.53.53.3                             0 200 i
*> 5.5.5.5/32       0.0.0.0                  0         32768 i
*> 6.6.6.6/32       53.53.53.3                             0 200 i


R6#sh ip bgp | b N
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32       2.2.2.2                  0    100      0 100 i
r>i2.2.2.2/32       2.2.2.2                  0    100      0 i
r>i3.3.3.3/32       3.3.3.3                  0    100      0 i
r>i4.4.4.4/32       4.4.4.4                  0    100      0 i
*>i5.5.5.5/32       3.3.3.3                  0    100      0 300 i
*> 6.6.6.6/32       0.0.0.0                  0         32768 i



Reachability Check Using TCL Scripting From R1
=====================================

tclsh
foreach address {
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5
6.6.6.6
} {ping $address source lo0 repeat 3}


R1#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 4/4/4 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 24/53/96 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 48/77/100 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 36/74/132 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 96/138/200 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 80/102/128 ms



Method 4 => Using Default Route For BGP Next-Hop Reachability
##############################################################



Let's Rollback Method 3
===================

R2(config)#router bgp 200
R2(config-router)#no  neighbor 3.3.3.3 next-hop-self
R2(config-router)#no  neighbor 4.4.4.4 next-hop-self
R2(config-router)#end


R3(config)#router bgp 200
R3(config-router)#no  neighbor 2.2.2.2 next-hop-self
R3(config-router)#end



Now Let's try our Final Method 4
=========================

R2(config)#ip route 0.0.0.0 0.0.0.0 null 0

R2(config)#router eigrp 200
R2(config-router)#redistribute static metric 1 1 1 1 1
R2(config-router)#end


R2#sh ip route 53.53.53.5
% Network not in table


R2#sh ip route | b ^G
Gateway of last resort is 0.0.0.0 to network 0.0.0.0

S*    0.0.0.0/0 is directly connected, Null0
      1.0.0.0/32 is subnetted, 1 subnets
B        1.1.1.1 [20/0] via 12.12.12.1, 00:03:36
      2.0.0.0/32 is subnetted, 1 subnets
C        2.2.2.2 is directly connected, Loopback0
      3.0.0.0/32 is subnetted, 1 subnets
D        3.3.3.3 [90/156160] via 23.23.23.3, 00:03:32, FastEthernet1/1
      4.0.0.0/32 is subnetted, 1 subnets
D        4.4.4.4 [90/156160] via 24.24.24.4, 00:03:32, FastEthernet2/0
      5.0.0.0/32 is subnetted, 1 subnets
B        5.5.5.5 [200/0] via 53.53.53.5, 00:02:47
      6.0.0.0/32 is subnetted, 1 subnets
D        6.6.6.6 [90/412160] via 24.24.24.4, 00:03:32, FastEthernet2/0
      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        12.12.12.0/24 is directly connected, FastEthernet1/0
L        12.12.12.2/32 is directly connected, FastEthernet1/0
      23.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        23.23.23.0/24 is directly connected, FastEthernet1/1
L        23.23.23.2/32 is directly connected, FastEthernet1/1
      24.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        24.24.24.0/24 is directly connected, FastEthernet2/0
L        24.24.24.2/32 is directly connected, FastEthernet2/0
      46.0.0.0/24 is subnetted, 1 subnets
D        46.46.46.0 [90/284160] via 24.24.24.4, 00:03:34, FastEthernet2/0




R3(config)#ip route 0.0.0.0 0.0.0.0 null0

R3(config)#router eigrp 200
R3(config-router)#redistribute static metric 1 1 1 1 1
R3(config-router)#end


R2#sh ip route | b ^G
Gateway of last resort is 0.0.0.0 to network 0.0.0.0

S*    0.0.0.0/0 is directly connected, Null0
      1.0.0.0/32 is subnetted, 1 subnets
B        1.1.1.1 [20/0] via 12.12.12.1, 00:09:18
      2.0.0.0/32 is subnetted, 1 subnets
C        2.2.2.2 is directly connected, Loopback0
      3.0.0.0/32 is subnetted, 1 subnets
D        3.3.3.3 [90/156160] via 23.23.23.3, 00:09:14, FastEthernet1/1
      4.0.0.0/32 is subnetted, 1 subnets
D        4.4.4.4 [90/156160] via 24.24.24.4, 00:09:14, FastEthernet2/0
      5.0.0.0/32 is subnetted, 1 subnets
B        5.5.5.5 [200/0] via 53.53.53.5, 00:08:29
      6.0.0.0/32 is subnetted, 1 subnets
D        6.6.6.6 [90/412160] via 24.24.24.4, 00:09:14, FastEthernet2/0
      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        12.12.12.0/24 is directly connected, FastEthernet1/0
L        12.12.12.2/32 is directly connected, FastEthernet1/0
      23.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        23.23.23.0/24 is directly connected, FastEthernet1/1
L        23.23.23.2/32 is directly connected, FastEthernet1/1
      24.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        24.24.24.0/24 is directly connected, FastEthernet2/0
L        24.24.24.2/32 is directly connected, FastEthernet2/0
      46.0.0.0/24 is subnetted, 1 subnets
D        46.46.46.0 [90/284160] via 24.24.24.4, 00:09:16, FastEthernet2/0


R2(config)#no ip route 0.0.0.0 0.0.0.0 null 0

R2(config)#do sh ip route | b ^G
Gateway of last resort is 23.23.23.3 to network 0.0.0.0

D*EX  0.0.0.0/0 [170/2560002816] via 23.23.23.3, 00:00:18, FastEthernet1/1
      1.0.0.0/32 is subnetted, 1 subnets
B        1.1.1.1 [20/0] via 12.12.12.1, 00:10:43
      2.0.0.0/32 is subnetted, 1 subnets
C        2.2.2.2 is directly connected, Loopback0
      3.0.0.0/32 is subnetted, 1 subnets
D        3.3.3.3 [90/156160] via 23.23.23.3, 00:10:39, FastEthernet1/1
      4.0.0.0/32 is subnetted, 1 subnets
D        4.4.4.4 [90/156160] via 24.24.24.4, 00:10:39, FastEthernet2/0
      5.0.0.0/32 is subnetted, 1 subnets
B        5.5.5.5 [200/0] via 53.53.53.5, 00:09:54
      6.0.0.0/32 is subnetted, 1 subnets
D        6.6.6.6 [90/412160] via 24.24.24.4, 00:10:39, FastEthernet2/0
      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        12.12.12.0/24 is directly connected, FastEthernet1/0
L        12.12.12.2/32 is directly connected, FastEthernet1/0
      23.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        23.23.23.0/24 is directly connected, FastEthernet1/1
L        23.23.23.2/32 is directly connected, FastEthernet1/1
      24.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        24.24.24.0/24 is directly connected, FastEthernet2/0
L        24.24.24.2/32 is directly connected, FastEthernet2/0
      46.0.0.0/24 is subnetted, 1 subnets
D        46.46.46.0 [90/284160] via 24.24.24.4, 00:10:41, FastEthernet2/0





R1#ping 5.5.5.5

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

R1#sh ip route 53.53.53.0
% Network not in table


R2(config)#do ping 5.5.5.5

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)


R2(config)#do ping 5.5.5.5 so lo0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/85/116 ms



Let's try to combine two solutions
=========================


R2(config)#ip route 0.0.0.0 0.0.0.0 null 0 254

R2(config)#router eigrp 200
R2(config-router)#redistribute static metric 1 1 1 1 1


R3(config)#router bgp 200
R3(config-router)# neighbor 2.2.2.2 next-hop-self
R3(config-router)#end



Final Reachability Check Using TCL Scripting From R1-R6
============================================

tclsh
foreach address {
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5
6.6.6.6
} {ping $address source lo0 repeat 3}


R1#tclsh
R1#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 1/3/4 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 12/32/60 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 48/68/100 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 36/77/104 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 84/112/152 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 80/90/112 ms





R2#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 72/73/76 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 4/5/8 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 48/64/80 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 44/65/104 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 92/104/124 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 92/108/124 ms




R3(tcl)#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 64/70/80 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 24/66/104 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 1/3/4 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 72/84/92 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 32/70/116 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 92/113/140 ms




R4(tcl)#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 4.4.4.4
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 56/80/96 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 4.4.4.4
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 36/48/64 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 4.4.4.4
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 72/82/96 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 4.4.4.4
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 4/4/4 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 4.4.4.4
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 68/109/136 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 4.4.4.4
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 12/49/100 ms




R5(tcl)#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 5.5.5.5
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 96/102/112 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 5.5.5.5
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 40/82/108 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 5.5.5.5
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 40/52/68 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 5.5.5.5
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 64/106/132 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 5.5.5.5
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 4/4/4 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 5.5.5.5
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 132/168/240 ms




R6(tcl)#foreach address {
+>(tcl)#1.1.1.1
+>(tcl)#2.2.2.2
+>(tcl)#3.3.3.3
+>(tcl)#4.4.4.4
+>(tcl)#5.5.5.5
+>(tcl)#6.6.6.6
+>(tcl)#} {ping $address source lo0 repeat 3}

Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 6.6.6.6
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 76/101/128 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 6.6.6.6
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 56/81/116 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 6.6.6.6
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 100/129/156 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
Packet sent with a source address of 6.6.6.6
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 36/54/84 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 6.6.6.6
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 80/133/168 ms
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 6.6.6.6
!!!
Success rate is 100 percent (3/3), round-trip min/avg/max = 4/4/4 ms

HTH...
Deepak Arora

Evil CCIE

1 comment:

Praveen said...

nice share deepak if i ask any think to you i know u won't reply but thanks anyway for wonderful post....


dost i would say to u expert never keep ego they r the best human being like anthony,baker nd brian so on.........