Showing posts with label BGP. Show all posts
Showing posts with label BGP. Show all posts

Sunday, December 20, 2020

BGP Nuts - The Crazy Metric Story



Recently ran into an interesting BGP behavior. In order to convey the issue, I have oversimplified the design.

R2 (AS 100) has a network host 22.22.22.22/32 which is trying to reach R7 (AS 200) attached network host 77.77.77.77/32. 

As you can see, between AS 100 & AS 200 we have multiple exit points for the purpose of redundancy. However the interesting twist here is that those BGP next hops are learned from different IGPs.

54.0.0.5 <- Learned from EIGRP
63.0.0.6 <- Learned from OSPF

Given the scenario, what you think about which BGP route and next hop would make into the routing table ?

Well...most likely the answer would be BGP next hop learned from EIGRP because (Assuming... 1. " no auto-summary " is now default for EIGRP (resulting into same Prefix Length for route) , 2. EIGRP AD is 90 compare to OSPF Intra Area route which has AD 110. So based on theory how Router Process this information, the EIGRP learned Next hop (54.0.0.5) should be the one picked up by BGP Best Path Selection Algorithm and should be picked up as the best route over OSPF learned Next Hop (63.0.0.6)

All good ? ... Let's look at the BGP RIB to find it out and How IGP next hops are processed based on standard BGP Next Hop Processing approach that we know from standard BGP theory. Also let's run a quick traceroute towards 77.77.77.77 sourcing from 22.22.22.22 on R2



Now sure if you expected that...right ? :)

From BGP RIB standpoint we can clearly see that BGP route that's making into routing table & FIB essentially is the one that has OSPF learned BGP next hop.

Here is what our OSPF database looks like



Let's do a basic failover test by shutting down interface g6/0 on R3 




So things works fine and as expected here, so let's "un-shut" the interface in order to dig deeper into the behavior ( a little unexpected one)




So why this behavior ?...Well this is where BGP plays a little dumb. It actually ends up comparing METRICs across two IGPs since it doesn't have view of EIGRP Topology Table and OSPF Link State Database. Now if you go back and check IGP metrics for next hops learned from EIGRP vs. OSPF, The metric for EIGRP route is pretty high (in numeric ) as 3072 vs. OSPF route as 2 (Refer to first CLI screenshot in the post)

Now what if we make the OSPF metric look bigger than EIGRP by manually increasing OSPF cost to see if that would allow R2 to install EIGRP learned route as best route





And Yes it works as expected this time too :)

Now for fun let's make the metrics look same by again changing the OSPF cost manually


Well that works too as expected. Now interesting question here is - Since IGP metrics learned from OSPF and EIGRP look same, can we turn ON " i-BGP Multipath " and achieve load balancing.

Let's try that 


Well that works well too and as expected.

One of the problem incase you haven't noticed yet with this design is - Assume the path through OSPF has many more hops added before you reach to the OSPF learned BGP ASN exit point. Since OSPF cost metrics are much lower value compare to EIGRP, You will end up taking sub-optimal path from R2's standpoint in this case which may not be desired behavior. Alternatively You can replace EIGRP with IS-IS and you will by default still end up following OSPF learned BGP next since in most IOS version 10 is the default IS-IS metric for each interface hop. Obviously in practice you should try to run Single IGP across AS 100 here to avoid such issues though M&A scearios are always interesting and challenging. :)

Try this with " DMZ Link-BW " for Unequal Cost Multi-Path and I am pretty sure it will be fun. BGP AIGP NLRI is another interesting bit if you care depending upon the design. 

And of course, the above mentioned logic doesn't apply to following design where we have single exit point being reachable through both IGPs




To learn some more around BGP anomalies and somewhat un-predictable behavior:



And if You want to master BGP from Design Standpoint, I would highly recommend " BGP Zero to Hero Design Masterclass " from my friend Orhan Ergun



HTH...
A Network Artist

Sunday, June 28, 2015

What All Questions A CCDE Candidate Must Ask Himself/Herself While Studying For Given Technology Or Protocol



While I just started studying for CCDE I quick ran into a problem of how to approach a given technology or protocol while.

While to most network engineers having significant experience - the design either looks more of a plumbing job or something they think they deal with on day to day basis. They reach to this state of mind probably considering they have seen & operate enough networks throughout their career and they know how most of technologies work and fit into those designs/requirement. We all deals with new customer requirements every now and then and try to provide solutions for those. But what people usually don't focus is there are many factors that plays a vital role into a successful Network Design.

Let's discuss a quick example:-

Most of the Network Engineers probably that passed CCNP Route Exam (BSCI in old days) are familiar with concept BGP Route Reflectors. The idea behind having route-reflectors in a network running BGP (ibgp) is to solve a simple problem of scalability within a Autonomous System. The golden rule of BGP says " A route learned by one iBGP neighbor cannot be advertised to another iBGP neighbor ". The rule basically was defined to work as Loop prevention mechanism within Autonomous System. Which essentially means either we follow this rule and create a full mesh of iBGP peerings or We break this golden rule by introducing things like Route Reflectors or Confederations.

Even most of CCIE book texts doesn't talk about this decision further and create a mindset among Network Engineers that in a given BGP network they should rather use Route Reflectors all the time and it mimics a good BGP design. But a real Design Engineer would probably look at many other factors before making such decision like :

- Business Requirements ( Though more of a Architect Guys Job )
- Do we really need a Route Reflector in a given BGP Network ?
- What are the uptime and convergence requirements ?
- Would introducing Route Reflectors alone solve my problems ?
- What are different underlying technologies that would need to be 
   introduced or would require fine tuning as well ?
- Whats are the Pros & Cons of Introducing Route Reflectors ?
- Why not BGP confederations ?
- What are the best practices or considerations for a successful route 
   reflector deployment ?
- What about - " Hierarchical Route Reflector design " , " Shadow 
   Route Reflectors " , " Optimal Route Reflection " " Diverse-Path 
   Route    Reflector" options etc ?
- How to plan the migration (migration steps )?
- During migration to Route Reflectors can we encounter temporarily 
   Routing loops into the network ? 
- Should I have Route Reflectors per Service (IPv4 vs IPv6 vs VPNv4)/        
  (Intranet vs Internet) on different physical or virtual (NFV) boxes or not ?
- What should be physical vs logical topology for route reflectors into the    
   network ?
- What are different options to solve "Next Hop Unchanged " problem 
   of iBGP and what are options to solve this problem with respect 
   to understanding pros and cons of each ?
-  Should we use One route reflector pair or more ?
-  Should we use same cluster id or different cluster id in a given pair or pairs 
-  Hot Potato & Cold Potato Routing considerations (With and Without RR)
-  Do we want Load Balancing ?
-  What impact Route Reflector introduction may have in terms of
    increased network complexity...etc

So as you can see there are way too many things to consider while just working on a Route Reflector Design alone :-)

Also there is a misconception that Design & Architecture are same thing or terms that can be interchanged. While the short answer is "They are not " but I'll probably talk about difference between these two terms in a separate blog post in coming weeks.

So while I just started my CCDE Journey ( Though at the moment I don't know how far I would go in terms of lab attempt but rather trying to be better Engineer), I break down the learning curve to have right mindset and approach for a given technology or protocol. Here is my list :

- Understand Technology (Deep Dive)
- Understand Use-Cases
- Understand Design Guidelines & Best Practices
- Understand Limitations of given technology
- Compare with Similar technologies and assess pros and cons
- Try to understand implementation/migration steps     
   in Greenfield & Brownfield deployment/ Network Mergers/Replacement
- Understand Scalability factors & limitations (Scale Out Vs Scale Up)
- Understand HA Side
- Understand Sec side
- Understand Network Physical/Logical Topology Limitations
- Understand Convergence Process
- IPv4 vs IPv6 if applicable
- Overlay Vs Underlay if applicable
- QOS considerations if applicable
- Enterprise vs SP vs DC Deployment considerations if applicable
- Recent developments ( Drafts/RFCs/New Features in IOS/IOS-XE/
   IOS-XR/NX-OS/JUNOS)
- Multicast considerations if applicable
- Operational challenges & considerations
- Dependency on WAN design & topology if applicable
- L1/L2/L3 dependencies from Transport Perspective etc
- Stateful behavior vs not if applicable
- Dependencies on SP/Partner for Deployment if applicable
- Vendor interoperability considerations if applicable
- Does it fit well in virtualized environment with single or multiple layers
- Any sort of heartbeat mechanism involved and it's dependencies
- Network Uptime requirements and SLAs
- Is it a tunneling technique and what all it can tunnel (IP vs Non IP ? )
- Does it require hierarchical addressing & Network design in order to
  work better and scale ?
- Impact on resources (CPU, Memoery etc...) /HW-SW requirements
- Transition/Temp Solution vs Permanent/Long Term Solution
- Immediate vs Long Term Benifits
- Standard vs Proprietary Solution
- Limitations in terms of supported interface types (P2P vs P2M  vs  
  M2M vs Logical vs Subinterfaces etc)
- Overhead & MTU considerations
- OAM considerations
- Compatibility with Non IP Devices (ACT/PASS)
- Can introduction/transition/merger can create Temp L2 or L3 loops
- How it can be optimize from various points (Scalability, Covergence etc)

CCDE: Book of Questions by  Elaine Lopes

https://learningnetwork.cisco.com/blogs/unleashing-ccde/2015/09/04/ccde-book-of-questions

What would you want to add further into this list ? 

Further Readings:

BGP Route Reflector

BGP Case Studies

iBGP – Fully meshed vs Route Reflection

Constrained Route Distribution for BGP/MPLS IP VPNs

Hot,Cold, Mash Potato Routing and BGP Route Reflector Design Considerations

Med-attribute-and-hot-potato-routing

Understanding BGP Convergence

BGP route reflectors

BGP Route Reflector Clusters

Understanding BGP Originator-ID and Cluster-ID

BGP RR Design – Part 1

BGP RR Design – Part 2

FATE SHARING IN IP NETWORKS

DO YOU REALLY NEED TO SEE ALL 512K INTERNET ROUTES?

WHAT IS A VALID BGP ROUTE?

CHANGES IN IBGP NEXT HOP PROCESSING DRASTICALLY IMPROVE BGP-BASED DMVPN DESIGNS

IBGP MIGRATIONS CAN GENERATE FORWARDING LOOPS

CAN BGP ROUTE REFLECTORS REALLY GENERATE FORWARDING LOOPS?

EIBGP LOAD BALANCING

BGP BEST EXTERNAL EXPLAINED

BGP CONVERGENCE OPTIMIZATION

BGP ROUTE REPLICATION IN MPLS/VPN PE-ROUTERS

PREFIX-INDEPENDENT CONVERGENCE (PIC): FIXING THE FIB BOTTLENECK

BGP NEXT HOP PROCESSING

IBGP OR EBGP IN AN ENTERPRISE NETWORK?

BGP/IGP NETWORK DESIGN PRINCIPLES

INTERESTING BGP/IGP INTERACTION PROBLEM

BGP Route Reflector update groups

BGP PEER GROUPS NO LONGER A PERFORMANCE FEATURE

Designing large-scale BGP networks

Network Complexity

Seamless MPLS Architecture

BGP Optimal Route Reflection (BGP-ORR)

BGP Diverse Path Using a Diverse-Path Route Reflector

HTH...
Deepak Arora
Evil CCIE

Sunday, February 9, 2014

Scaling BGP Part 1 - IPv4 RR Implementation Using Table Map Feature

One of the common challenge with almost every routing protocol is SCALABILITY. When it comes to BGP, one of the key requirement under IBGP Specification was to implement Full Mesh. Which is OK most most of Small Enterprises but the solution doesn't scale very well as the Number of IBGP speakers increases. Particularly in Full Mesh Design you need to have n*(n-1)/2 number of peerings which is potentially an Administrative Nightmare.




So couple of solutions were implemented to overcome this issue namely:

> Route-Reflectors(RR)
> Confederations

Technically you can have Route-Reflectors within confederations also but we will not be discussing that or confederations today.

Now one of the potential Scalability issue with Route-Reflector itself is How Many Number of IBGP sessions it can support before it becomes over loaded and we need to introduce another route reflector.

But also part of equation is to figure out if there are any Inbuilt Features into BGP or IOS to help with this scalability problem.

Now in most design or if we follow best practices, the Router Reflector don't need to be/shouldn't be in Traffic Flow Path (Data Plane).

Which means Route Reflector doesn't need to waste it's memory to download BGP routes into its RIB or Routing Table. Which further means avoiding overhead of programming RIB into Hardware and Populate FIB and Going even further if it's a distributed platform and it's using dCEF or something.

So most of the time Number of BGP routes are pretty large in count under most BGP implementations, specially if it's RR and reflecting Internet Routing Table which is about half a million routes these days. 

So won't it be cool if we can avoid Route-Reflector to download BGP routes into RIB and just keep it in BGP RIB (BGP Table). As now we can use lots of this extra memory to build more IBGP peerings and scale out.

The answer to this is something called "TABLE MAP" in BGP.

Table Map is a flexible tool which offers many cool features and one among those is to help with problem we just talked about - Stopping BGP Routes from installing in RIB at Route Reflector.

Here is a quick example of how to use this cool feature:













Dahh...










HTH....
Deepak Arora
Evil CCIE

Saturday, February 1, 2014

How To Change Regular BGP Config Format To Address Family Format

While the World of BGP is keep on changing like any other routing protocol in terms of development, one of the thing that's commonly becoming standard these days or perhaps there is lot of push towards that direction in recent times is adopting the Address Family Structure to keep things neat and clear in terms of configuration review.

Also when it comes to BGP, the configuration lines grow very quickly in Large Enterprise & Data Center environments. And BGP is taking a major place into DMVPN and Large Scale Data Center Environment where Cisco is pushing it under Best Practices in terms of Routing protocol choice.


So one of feature BGP supports to help us with Address Family Structure or it's adoption without creating much pain in butt is - BGP Upgrade CLI.

Here is a quick Example:




HTH...
Deepak Arora
Evil CCIE


Thursday, March 14, 2013

MPLS Inter AS VPN Option B AKA Option 2








R1 Final Configuration

!
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
ip vrf A
 rd 100:1
 route-target export 1:1
 route-target import 1:1
!
ip vrf B
 rd 100:2
 route-target export 2:2
 route-target import 2:2
!
no ip domain lookup
mpls label protocol ldp
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0/0
 ip address 14.0.0.1 255.255.255.0
 ip router isis 1
 duplex auto
 speed auto
 mpls ip
!
interface FastEthernet0/1
 ip vrf forwarding A
 ip address 12.0.0.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet1/0
 ip vrf forwarding B
 ip address 13.0.0.1 255.255.255.0
 duplex auto
 speed auto
!
router eigrp 1
 auto-summary
 !
 address-family ipv4 vrf A
  redistribute bgp 100 metric 1 1 1 1 1
  network 12.0.0.1 0.0.0.0
  no auto-summary
  autonomous-system 100
 exit-address-family
!
router ospf 1 vrf B
 log-adjacency-changes
 redistribute bgp 100 subnets
 network 13.0.0.1 0.0.0.0 area 0
!
router isis 1
 net 49.1456.0000.0000.0001.00
 is-type level-2-only
 passive-interface Loopback0
!
router bgp 100
 no synchronization
 bgp log-neighbor-changes
 neighbor 4.4.4.4 remote-as 100
 neighbor 4.4.4.4 update-source Loopback0
 no auto-summary
 !
 address-family vpnv4
  neighbor 4.4.4.4 activate
  neighbor 4.4.4.4 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf B
  redistribute ospf 1 vrf B match internal external 1 external 2
  no synchronization
 exit-address-family
 !
 address-family ipv4 vrf A
  redistribute eigrp 100
  no synchronization
 exit-address-family
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
no cdp run
!
!
control-plane
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

R2 Final Configuration 

 !
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
no ip domain lookup
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface FastEthernet0/0
 ip address 12.0.0.2 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
router eigrp 100
 network 2.2.2.2 0.0.0.0
 network 12.0.0.2 0.0.0.0
 no auto-summary
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
no cdp run
!
!
control-plane
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

R3 Final Configuration

!
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
no ip domain lookup
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface FastEthernet0/0
 ip address 13.0.0.3 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 3.3.3.3 0.0.0.0 area 0
 network 13.0.0.3 0.0.0.0 area 0
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
no cdp run
!
!
control-plane
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end


R4 Final Configuration

!
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R4
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
no ip domain lookup
mpls label protocol ldp
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
!
interface FastEthernet0/0
 ip address 14.0.0.4 255.255.255.0
 ip router isis 1
 duplex auto
 speed auto
 mpls ip
!
interface FastEthernet0/1
 ip address 45.0.0.4 255.255.255.0
 duplex auto
 speed auto
!
router isis 1
 net 49.1456.0000.0000.0004.00
 is-type level-2-only
 passive-interface Loopback0
!
router bgp 100
 no synchronization
 no bgp default route-target filter
 bgp log-neighbor-changes
 neighbor 1.1.1.1 remote-as 100
 neighbor 1.1.1.1 update-source Loopback0
 neighbor 45.0.0.5 remote-as 200
 no auto-summary
 !
 address-family vpnv4
  neighbor 1.1.1.1 activate
  neighbor 1.1.1.1 send-community extended
  neighbor 1.1.1.1 next-hop-self
  neighbor 45.0.0.5 activate
  neighbor 45.0.0.5 send-community extended
 exit-address-family
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
!
!
control-plane
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end


R5 Final Configuration

!
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R5
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
no ip domain lookup
mpls label protocol ldp
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
interface Loopback0
 ip address 5.5.5.5 255.255.255.255
!
interface FastEthernet0/0
 ip address 56.0.0.5 255.255.255.0
 ip router isis 1
 duplex auto
 speed auto
 mpls ip
!
interface FastEthernet0/1
 ip address 45.0.0.5 255.255.255.0
 duplex auto
 speed auto
!
router isis 1
 net 49.1456.0000.0000.0005.00
 is-type level-2-only
 passive-interface Loopback0
!
router bgp 200
 no synchronization
 no bgp default route-target filter
 bgp log-neighbor-changes
 neighbor 6.6.6.6 remote-as 200
 neighbor 6.6.6.6 update-source Loopback0
 neighbor 45.0.0.4 remote-as 100
 no auto-summary
 !
 address-family vpnv4
  neighbor 6.6.6.6 activate
  neighbor 6.6.6.6 send-community extended
  neighbor 6.6.6.6 next-hop-self
  neighbor 45.0.0.4 activate
  neighbor 45.0.0.4 send-community extended
 exit-address-family
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
no cdp run
!
!
control-plane
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

R6 Final Configuration

!
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R6
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
ip vrf A
 rd 200:1
 route-target export 1:1
 route-target import 1:1
!
ip vrf B
 rd 200:2
 route-target export 2:2
 route-target import 2:2
!
no ip domain lookup
mpls label protocol ldp
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
interface Loopback0
 ip address 6.6.6.6 255.255.255.255
!
interface FastEthernet0/0
 ip address 56.0.0.6 255.255.255.0
 ip router isis 1
 duplex auto
 speed auto
 mpls ip
!
interface FastEthernet0/1
 ip vrf forwarding A
 ip address 67.0.0.6 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet1/0
 ip vrf forwarding B
 ip address 68.0.0.6 255.255.255.0
 duplex auto
 speed auto
!
router eigrp 1
 auto-summary
 !
 address-family ipv4 vrf A
  redistribute bgp 200 metric 1 1 1 1 1
  network 67.0.0.6 0.0.0.0
  no auto-summary
  autonomous-system 100
 exit-address-family
!
router ospf 1 vrf B
 log-adjacency-changes
 redistribute bgp 200 subnets
 network 68.0.0.6 0.0.0.0 area 0
!
router isis 1
 net 49.1456.0000.0000.0006.00
 is-type level-2-only
 passive-interface Loopback0
!
router bgp 200
 no synchronization
 bgp log-neighbor-changes
 neighbor 5.5.5.5 remote-as 200
 neighbor 5.5.5.5 update-source Loopback0
 no auto-summary
 !
 address-family vpnv4
  neighbor 5.5.5.5 activate
  neighbor 5.5.5.5 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf B
  redistribute ospf 1 vrf B match internal external 1 external 2
  no synchronization
 exit-address-family
 !
 address-family ipv4 vrf A
  redistribute eigrp 100
  no synchronization
 exit-address-family
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
no cdp run
!
!
control-plane
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

R7 Final Configuration

!
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R7
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
no ip domain lookup
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
interface Loopback0
 ip address 7.7.7.7 255.255.255.255
!
interface FastEthernet0/0
 ip address 67.0.0.7 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
router eigrp 100
 network 7.7.7.7 0.0.0.0
 network 67.0.0.7 0.0.0.0
 no auto-summary
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
no cdp run
!
!
control-plane
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

R8 Final Configuration

!
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R8
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
no ip domain lookup
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
interface Loopback0
 ip address 8.8.8.8 255.255.255.255
!
interface FastEthernet0/0
 ip address 68.0.0.8 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 8.8.8.8 0.0.0.0 area 0
 network 68.0.0.8 0.0.0.0 area 0
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
no cdp run
!
!
control-plane
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

Further Readings:







Deepak Arora
Evil CCIE

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