An Engineer by Heart !!! A Dreamer, A Pioneer, A Blogger. A Network Engineer Trying to overtake the world with his network engineering skills :) Opinions expressed here are solely my own and do not express the views or opinions of my Present or Past employer.
Tuesday, November 30, 2010
Passing BGP Updates Through Network of Non-BGP Speakers - How Cool is that ?
In my last post - http://deepakarora1984.blogspot.com/2010/11/transiting-non-bgp-speaking-devices.html
I presented a scenario in which we need to pass BGP updates between two AS through a Transit AS. But in Transit AS some of the devices were not BGP capable devices for say. So what we gonna do now ?
Redistribution of BGP routes into IGP could be another Idea, but in real world we usually avoid such things.
Hmmm....so what else we can try ?
Lets first setup the network and see what can be done a little later.
Lets get started:
### R1 ###
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no ip do lo
Router(config)#line con 0
Router(config-line)#no exec-time
Router(config-line)#exit
Router(config)#ho R1
R1(config)#int lo0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
R1(config-if)#exit
R1(config)#int f0/0
R1(config-if)#ip add 12.12.12.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int f0/1
R1(config-if)#ip add 51.51.51.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip route 5.5.5.5 255.255.255.255 f0/1 51.51.51.5
R1(config)#router eigrp 100
R1(config-router)#no au
R1(config-router)#net 1.1.1.1 0.0.0.0
R1(config-router)#net 12.12.12.1 0.0.0.0
R1(config-router)#exit
R1(config)#router bgp 123
R1(config-router)#no au
R1(config-router)#no sync
R1(config-router)#nei 5.5.5.5 remote 15
R1(config-router)#nei 5.5.5.5 update lo0
R1(config-router)#nei 5.5.5.5 ebgp
R1(config-router)#nei 3.3.3.3 remote 123
R1(config-router)#nei 3.3.3.3 update lo0
R1(config-router)#nei 3.3.3.3 next-hop-self
R1(config-router)#exit
=============================================================
### R2 ###
Router>en
Router#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ho R2
R2(config)#no ip do lo
R2(config)#line con 0
R2(config-line)#no exec-time
R2(config-line)#exit
R2(config)#int f0/0
R2(config-if)#ip add 12.12.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int f0/1
R2(config-if)#ip add 23.23.23.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#router eigrp 100
R2(config-router)#no au
R2(config-router)#net 0.0.0.0
R2(config-router)#exit
### R3 ###
Router>en
Router#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ho R3
R3(config)#no ip do lo
R3(config)#line con 0
R3(config-line)#no exec-time
R3(config-line)#exit
R3(config)#int lo0
R3(config-if)#ip add 3.3.3.3 255.255.255.255
R3(config-if)#exit
R3(config)#int f0/0
R3(config-if)#ip add 23.23.23.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int f0/1
R3(config-if)#ip add 43.43.43.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#ip route 4.4.4.4 255.255.255.255 f0/1 43.43.43.4
R3(config)#router eigrp 100
R3(config-router)#no au
R3(config-router)#net 3.3.3.3 0.0.0.0
R3(config-router)#net 23.23.23.3 0.0.0.0
R3(config-router)#exit
R3(config)#router bgp 123
R3(config-router)#no au
R3(config-router)#no sync
R3(config-router)#nei 4.4.4.4 remote 34
R3(config-router)#nei 4.4.4.4 update lo0
R3(config-router)#nei 4.4.4.4 ebgp
R3(config-router)#nei 1.1.1.1 remote 123
R3(config-router)#nei 1.1.1.1 update lo0
R3(config-router)#nei 1.1.1.1 next-hop-self
R3(config-router)#exit
==============================================================
### R4 ####
Router>en
Router#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ho R4
R4(config)#no ip do lo
R4(config)#line con 0
R4(config-line)#no exec-time
R4(config-line)#exit
R4(config)#int lo0
R4(config-if)#ip add 4.4.4.4 255.255.255.255
R4(config-if)#exit
R4(config)#int lo1
R4(config-if)#ip add 44.44.44.44 255.255.255.255
R4(config-if)#exit
R4(config)#int f0/0
R4(config-if)#ip add 43.43.43.4 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#ip route 3.3.3.3 255.255.255.255 f0/0 43.43.43.3
R4(config)#router bgp 34
R4(config-router)#no au
R4(config-router)#no sync
R4(config-router)#nei 3.3.3.3 remote 123
R4(config-router)#nei 3.3.3.3 update lo0
R4(config-router)#nei 3.3.3.3 ebgp
R4(config-router)#net 44.44.44.44 mask 255.255.255.255
R4(config-router)#exit
========================================================
### R5 ###
Router>en
Router#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ho R5
R5(config)#no ip do lo
R5(config)#line con 0
R5(config-line)#no exec-time
R5(config-line)#exit
R5(config)#int lo0
R5(config-if)#ip add 5.5.5.5 255.255.255.255
R5(config-if)#exit
R5(config)#int lo1
R5(config-if)#ip add 5.5.5.5 255.255.255.255
R5(config-if)#exit
R5(config)#int lo1
R5(config-if)#ip add 55.55.55.55 255.255.255.255
R5(config-if)#exit
R5(config)#int f0/0
R5(config-if)#ip add 51.51.51.5 255.255.255.0
R5(config-if)#no sh
R5(config-if)#exit
R5(config)#ip route 1.1.1.1 255.255.255.255 f0/0 51.51.51.1
R5(config)#router bgp 15
R5(config-router)#no au
R5(config-router)#no sync
R5(config-router)#nei 1.1.1.1 remote 123
R5(config-router)#nei 1.1.1.1 update lo0
R5(config-router)#nei 1.1.1.1 ebgp
R5(config-router)#net 55.55.55.55 mask 255.255.255.255
R5(config-router)#exit
================================================================
R1(config)#do sh ip bgp | b Net
Network Next Hop Metric LocPrf Weight Path
*>i44.44.44.44/32 3.3.3.3 0 100 0 34 i
*> 55.55.55.55/32 5.5.5.5 0 0 15 i
R5(config)#do sh ip bgp | b Net
Network Next Hop Metric LocPrf Weight Path
*> 44.44.44.44/32 1.1.1.1 0 123 34 i
*> 55.55.55.55/32 0.0.0.0 0 32768 i
HTH...
Deepak Arora
I presented a scenario in which we need to pass BGP updates between two AS through a Transit AS. But in Transit AS some of the devices were not BGP capable devices for say. So what we gonna do now ?
Redistribution of BGP routes into IGP could be another Idea, but in real world we usually avoid such things.
Hmmm....so what else we can try ?
Lets first setup the network and see what can be done a little later.
Physical Topology
Logical Topology
Lets get started:
### R1 ###
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no ip do lo
Router(config)#line con 0
Router(config-line)#no exec-time
Router(config-line)#exit
Router(config)#ho R1
R1(config)#int lo0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
R1(config-if)#exit
R1(config)#int f0/0
R1(config-if)#ip add 12.12.12.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int f0/1
R1(config-if)#ip add 51.51.51.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip route 5.5.5.5 255.255.255.255 f0/1 51.51.51.5
R1(config)#router eigrp 100
R1(config-router)#no au
R1(config-router)#net 1.1.1.1 0.0.0.0
R1(config-router)#net 12.12.12.1 0.0.0.0
R1(config-router)#exit
R1(config)#router bgp 123
R1(config-router)#no au
R1(config-router)#no sync
R1(config-router)#nei 5.5.5.5 remote 15
R1(config-router)#nei 5.5.5.5 update lo0
R1(config-router)#nei 5.5.5.5 ebgp
R1(config-router)#nei 3.3.3.3 remote 123
R1(config-router)#nei 3.3.3.3 update lo0
R1(config-router)#nei 3.3.3.3 next-hop-self
R1(config-router)#exit
=============================================================
### R2 ###
Router>en
Router#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ho R2
R2(config)#no ip do lo
R2(config)#line con 0
R2(config-line)#no exec-time
R2(config-line)#exit
R2(config)#int f0/0
R2(config-if)#ip add 12.12.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int f0/1
R2(config-if)#ip add 23.23.23.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#router eigrp 100
R2(config-router)#no au
R2(config-router)#net 0.0.0.0
R2(config-router)#exit
=============================================================
### R3 ###
Router>en
Router#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ho R3
R3(config)#no ip do lo
R3(config)#line con 0
R3(config-line)#no exec-time
R3(config-line)#exit
R3(config)#int lo0
R3(config-if)#ip add 3.3.3.3 255.255.255.255
R3(config-if)#exit
R3(config)#int f0/0
R3(config-if)#ip add 23.23.23.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int f0/1
R3(config-if)#ip add 43.43.43.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#ip route 4.4.4.4 255.255.255.255 f0/1 43.43.43.4
R3(config)#router eigrp 100
R3(config-router)#no au
R3(config-router)#net 3.3.3.3 0.0.0.0
R3(config-router)#net 23.23.23.3 0.0.0.0
R3(config-router)#exit
R3(config)#router bgp 123
R3(config-router)#no au
R3(config-router)#no sync
R3(config-router)#nei 4.4.4.4 remote 34
R3(config-router)#nei 4.4.4.4 update lo0
R3(config-router)#nei 4.4.4.4 ebgp
R3(config-router)#nei 1.1.1.1 remote 123
R3(config-router)#nei 1.1.1.1 update lo0
R3(config-router)#nei 1.1.1.1 next-hop-self
R3(config-router)#exit
==============================================================
### R4 ####
Router>en
Router#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ho R4
R4(config)#no ip do lo
R4(config)#line con 0
R4(config-line)#no exec-time
R4(config-line)#exit
R4(config)#int lo0
R4(config-if)#ip add 4.4.4.4 255.255.255.255
R4(config-if)#exit
R4(config)#int lo1
R4(config-if)#ip add 44.44.44.44 255.255.255.255
R4(config-if)#exit
R4(config)#int f0/0
R4(config-if)#ip add 43.43.43.4 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#ip route 3.3.3.3 255.255.255.255 f0/0 43.43.43.3
R4(config)#router bgp 34
R4(config-router)#no au
R4(config-router)#no sync
R4(config-router)#nei 3.3.3.3 remote 123
R4(config-router)#nei 3.3.3.3 update lo0
R4(config-router)#nei 3.3.3.3 ebgp
R4(config-router)#net 44.44.44.44 mask 255.255.255.255
R4(config-router)#exit
========================================================
### R5 ###
Router>en
Router#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ho R5
R5(config)#no ip do lo
R5(config)#line con 0
R5(config-line)#no exec-time
R5(config-line)#exit
R5(config)#int lo0
R5(config-if)#ip add 5.5.5.5 255.255.255.255
R5(config-if)#exit
R5(config)#int lo1
R5(config-if)#ip add 5.5.5.5 255.255.255.255
R5(config-if)#exit
R5(config)#int lo1
R5(config-if)#ip add 55.55.55.55 255.255.255.255
R5(config-if)#exit
R5(config)#int f0/0
R5(config-if)#ip add 51.51.51.5 255.255.255.0
R5(config-if)#no sh
R5(config-if)#exit
R5(config)#ip route 1.1.1.1 255.255.255.255 f0/0 51.51.51.1
R5(config)#router bgp 15
R5(config-router)#no au
R5(config-router)#no sync
R5(config-router)#nei 1.1.1.1 remote 123
R5(config-router)#nei 1.1.1.1 update lo0
R5(config-router)#nei 1.1.1.1 ebgp
R5(config-router)#net 55.55.55.55 mask 255.255.255.255
R5(config-router)#exit
================================================================
R1(config)#do sh ip bgp | b Net
Network Next Hop Metric LocPrf Weight Path
*>i44.44.44.44/32 3.3.3.3 0 100 0 34 i
*> 55.55.55.55/32 5.5.5.5 0 0 15 i
R5(config)#do sh ip bgp | b Net
Network Next Hop Metric LocPrf Weight Path
*> 44.44.44.44/32 1.1.1.1 0 123 34 i
*> 55.55.55.55/32 0.0.0.0 0 32768 i
Hmmm...so far everything looks good. Lets trace R4's Lo1 from R5
R5(config)#do trace 44.44.44.44 so lo1
Type escape sequence to abort.
Tracing the route to 44.44.44.44
1 51.51.51.1 4 msec 12 msec 8 msec
2 * * *
3 * * *
Hmmm...Things doesn't look quite working yet.
Lets hop on to R2 and check it's routing table:
R2(config)#do sh ip ro | b ^G
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
D 1.1.1.1 [90/409600] via 12.12.12.1, 01:47:22, FastEthernet0/0
3.0.0.0/32 is subnetted, 1 subnets
D 3.3.3.3 [90/409600] via 23.23.23.3, 01:43:41, FastEthernet0/1
23.0.0.0/24 is subnetted, 1 subnets
C 23.23.23.0 is directly connected, FastEthernet0/1
12.0.0.0/24 is subnetted, 1 subnets
C 12.12.12.0 is directly connected, FastEthernet0/0
so here is the problem. R2 has no knowledge about who is 44.44.44.44, so when it receive packets destined for 44.44.44.44; it checks its local routing table and as it doesn't find any entry in there it simply drops the packets. One work around could be redistributing BGP into EIGRP but thats restricted here. So what else ?
Hmmm...how about our old friend tunnels ? :-)
Okay... I am certainly not a patient of Tarsal Tunnel Syndrome :-P
But lets see how we can fix this with tunnels.
R1(config)#int tu13
R1(config-if)#ip add 13.13.13.1 255.255.255.0
R1(config-if)#tu so f0/0
R1(config-if)#tu dest 23.23.23.3
R1(config-if)#exit
R3(config)#int tu 13
R3(config-if)#ip add 13.13.13.3 255.255.255.0
R3(config-if)#tu so f0/0
R3(config-if)#tu dest 12.12.12.1
R3(config-if)#exit
*Mar 1 01:48:46.071: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel13, changed state to up
R1(config)#router bgp 123
R1(config-router)#nei 13.13.13.3 remote 123
R1(config-router)#nei 13.13.13.3 update tu13
R1(config-router)#nei 13.13.13.3 next-hop-s
R1(config-router)#exit
R3(config)#router bgp 123
R3(config-router)#nei 13.13.13.1 remote 123
R3(config-router)#nei 13.13.13.1 update tu13
R3(config-router)#nei 13.13.13.1 next-hop-s
R3(config-router)#exit
*Mar 1 01:53:16.167: %BGP-5-ADJCHANGE: neighbor 13.13.13.1 Up
R5(config)#do trace 44.44.44.44 so lo1
Type escape sequence to abort.
Tracing the route to 44.44.44.44
1 51.51.51.1 4 msec 12 msec 8 msec
2 13.13.13.3 24 msec 16 msec 16 msec
3 43.43.43.4 52 msec * 24 msec
R4(config)#do trace 55.55.55.55 so lo1
Type escape sequence to abort.
Tracing the route to 55.55.55.55
1 43.43.43.3 8 msec 12 msec 8 msec
2 13.13.13.1 16 msec 20 msec 20 msec
3 51.51.51.5 24 msec * 64 msec
R4(config)#do ping 55.55.55.55 so lo1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 55.55.55.55, timeout is 2 seconds:
Packet sent with a source address of 44.44.44.44
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/42/60 ms
HTH...
Deepak Arora
Thursday, November 25, 2010
Cisco's Internet Protocol Journal
Not sure how come I never came across this earlier. But some greats things are there to read about.
http://www.cisco.com/web/about/ac123/ac147/archived_issues/index.html
HTH...
Deepak Arora
Monday, November 22, 2010
Some Basic Networking Videos In Free - From CCIE Keith Barker
BGP basic configuration > https://learningnetwork.cisco.com/docs/DOC-9011
Private Vlans > https://learningnetwork.cisco.com/docs/DOC-9653#cf
SVI vs VLAN > https://learningnetwork.cisco.com/docs/DOC-7501
L2 vs L3 > https://learningnetwork.cisco.com/docs/DOC-7494
&
Many More : http://www.youtube.com/user/Keith6783#p/u
HTH...
Deepak Arora
Private Vlans > https://learningnetwork.cisco.com/docs/DOC-9653#cf
SVI vs VLAN > https://learningnetwork.cisco.com/docs/DOC-7501
L2 vs L3 > https://learningnetwork.cisco.com/docs/DOC-7494
&
Many More : http://www.youtube.com/user/Keith6783#p/u
HTH...
Deepak Arora
Thursday, November 18, 2010
Transiting Non-BGP Speaking Devices
Note: Click Images To Enlarge
Requirements :
1. Establish Connectivity between R4(Lo1) <--> R5(Lo1). Lo0 interfaces are used just to setup BGP session.
Restrictions:
1. R2 can't run BGP instance, no static routes or
default routes/PBR.
2. No redistribution is allowed anywhere to establish full
connectivity between R4 & R5's Loopback 1 Interfaces.
Info:
1. R1/R3's Lo0 interfaces are advertised into EIGRP.
2. R1/R3 points a host static route towards R5/R4
respectively & Vice Versa to obtain basic reachability to
Lo0 interfaces.
Solution: Coming Soon....
HTH...
Deepak Arora
Wednesday, November 17, 2010
Tuesday, November 16, 2010
Auto-Negotiation ON vs OFF - Welcome Back To Ethernet World
Auto negotiation is one of those thing which comes back to every network engineer at some point. There is always so much talk about idea that - if we should keep auto-negotiation "ON" or should we turn it "OFF" and hard-cord the "Duplex" & "Speed" settings.
There are always two schools of thoughts about this and you may choose which one you like more.
So idea boils down to which school you prefer.
But...
Here are some of drawbacks or I should say list of things which you won't be able to figure out easily or will not work at all if you turn off auto-negotiation over interface:
1. Performance Issue
2. Link failures
3. Pause Frames or Flow Control
4. Bad Cable Problem
5. Link Partner Capabilities
6. Auto-MDIX will not work
For more:
http://en.wikipedia.org/wiki/Autonegotiation
http://etherealmind.com/ethernet-autonegotiation-works-why-how-standard-should-be-set/
http://www.sun.com/blueprints/0704/817-7526.pdf
http://www.cisco.com/en/US/docs/internetworking/troubleshooting/guide/tr1923.html
http://www.cisco.com/en/US/products/hw/switches/ps700/products_tech_note09186a00800a7af0.shtml
http://blog.ine.com/2008/07/08/802-3x-flow-control/
HTH...
Deepak Arora
There are always two schools of thoughts about this and you may choose which one you like more.
So idea boils down to which school you prefer.
But...
Here are some of drawbacks or I should say list of things which you won't be able to figure out easily or will not work at all if you turn off auto-negotiation over interface:
1. Performance Issue
2. Link failures
3. Pause Frames or Flow Control
4. Bad Cable Problem
5. Link Partner Capabilities
6. Auto-MDIX will not work
For more:
http://en.wikipedia.org/wiki/Autonegotiation
http://etherealmind.com/ethernet-autonegotiation-works-why-how-standard-should-be-set/
http://www.sun.com/blueprints/0704/817-7526.pdf
http://www.cisco.com/en/US/docs/internetworking/troubleshooting/guide/tr1923.html
http://www.cisco.com/en/US/products/hw/switches/ps700/products_tech_note09186a00800a7af0.shtml
http://blog.ine.com/2008/07/08/802-3x-flow-control/
HTH...
Deepak Arora
EIGRP Variance & Unequal Cost Load Balancing Demystified - With Little GNS Bug
It's been a month since I posted my EIGRP challenge lab:
http://deepakarora1984.blogspot.com/2010/10/eigrp-challenge-lab-1.html
So today it's time to show you how to do it. I won't be spending much time today in explaining theory behind all this as so many people have already written about it but of-course that doesn't mean they covered it from all aspects.
But still I'll provide some reference links in the end of this post to make sure you don't have any gaps regarding concepts.
So lets load the initial configurations which I provided in original post and lets get started :
Note: Click Images To Enlarge
so far we can see the route is in routing table of R4, but we don't see redundant path as yet because of it's higher cost.
Lets calculate variance to install redundant route in routing table:
For those who don't understand variance yet here is the link:
http://www.networkworld.com/community/node/29966
Lets first examine the difference between two metrics that belong to both links for same route:
Now to calculate the required variance use the equation: Higher FD / Lower FD, and result will be:
As variance can't be fractional, so we need to take higher value, which will be 4
Lets's use variance value 4 and take a look at routing table:
Looks like both routes now have made it to routing table. So first objective is achieved. Now lets take a look at Traffic Share Count for both links for same route:
so as you can see that current traffic share count is 21:80. Traffic share count is inversely proportional to metric difference between both links.
So next step is to somehow make it as 1:1 :-)
As you might be thinking that Mr. Garcia (Creator Of EIGRP) should be around :-)
so lets take a look at first how much difference is there between both metrics:
Now lets subtract the lower metric from higher metric: By Metric I mean FD AKA RD:
So the difference comes as - 30000128
Now in next step lets add this metric to link with lower metric using "offset-list".
Here offset List calling ACL "0" means matching all routes... just for your sake :-)
Lets check again different EIGRP tables and see if it works:
Duhhh....looks like GNS is creating pain in butt again.... tired of GNS bugs :-(
Actually to over come this issue I had to jump to real equipments with same configuration and here are the results:
Though IOS ver "15.x" was not liking somehow idea of offset-list 0, so I had to create a specific ACL for this route:
So all functional and we have traffic share count of 1:1 between both links though they have different bandwidth.
Some more interesting reads on EIGRP or I should say "Must" read documents on EIGRP Load Balancing:
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094823.shtml
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094820.shtml
http://www.cisco.com/en/US/tech/tk827/tk831/technologies_white_paper09186a00800a62d9.shtml
http://www.cisco.com/en/US/products/hw/modules/ps2033/prod_technical_reference09186a00800afeb7.html/
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a008009437d.shtml
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a00800c2d96.shtml
HTH...
Deepak Arora
http://deepakarora1984.blogspot.com/2010/10/eigrp-challenge-lab-1.html
So today it's time to show you how to do it. I won't be spending much time today in explaining theory behind all this as so many people have already written about it but of-course that doesn't mean they covered it from all aspects.
But still I'll provide some reference links in the end of this post to make sure you don't have any gaps regarding concepts.
So lets load the initial configurations which I provided in original post and lets get started :
Note: Click Images To Enlarge
so far we can see the route is in routing table of R4, but we don't see redundant path as yet because of it's higher cost.
Lets calculate variance to install redundant route in routing table:
For those who don't understand variance yet here is the link:
http://www.networkworld.com/community/node/29966
Lets first examine the difference between two metrics that belong to both links for same route:
Now to calculate the required variance use the equation: Higher FD / Lower FD, and result will be:
As variance can't be fractional, so we need to take higher value, which will be 4
Lets's use variance value 4 and take a look at routing table:
Looks like both routes now have made it to routing table. So first objective is achieved. Now lets take a look at Traffic Share Count for both links for same route:
so as you can see that current traffic share count is 21:80. Traffic share count is inversely proportional to metric difference between both links.
So next step is to somehow make it as 1:1 :-)
As you might be thinking that Mr. Garcia (Creator Of EIGRP) should be around :-)
so lets take a look at first how much difference is there between both metrics:
Now lets subtract the lower metric from higher metric: By Metric I mean FD AKA RD:
So the difference comes as - 30000128
Now in next step lets add this metric to link with lower metric using "offset-list".
Here offset List calling ACL "0" means matching all routes... just for your sake :-)
Lets check again different EIGRP tables and see if it works:
Duhhh....looks like GNS is creating pain in butt again.... tired of GNS bugs :-(
Actually to over come this issue I had to jump to real equipments with same configuration and here are the results:
Though IOS ver "15.x" was not liking somehow idea of offset-list 0, so I had to create a specific ACL for this route:
So all functional and we have traffic share count of 1:1 between both links though they have different bandwidth.
Some more interesting reads on EIGRP or I should say "Must" read documents on EIGRP Load Balancing:
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094823.shtml
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094820.shtml
http://www.cisco.com/en/US/tech/tk827/tk831/technologies_white_paper09186a00800a62d9.shtml
http://www.cisco.com/en/US/products/hw/modules/ps2033/prod_technical_reference09186a00800afeb7.html/
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a008009437d.shtml
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a00800c2d96.shtml
HTH...
Deepak Arora
Labels:
Access List,
CCDA,
CCDE,
CCDP,
CCIE Service Provider,
CCIE Written,
CCNA,
CCNP Troubleshoot Exam,
DOC CD,
EIGRP,
Free CCIE Labs,
Load Sharing Vs Load Balancing,
Network Designing,
Routing
Cisco ISP Essentials - E-Book (Free)...No Piracy :-)
ftp://ftp-eng.cisco.com/cons/isp/documents/IOSEssentialsPDF.zip
HTH...
Deepak Arora
Wednesday, November 10, 2010
Difference Between Routing Table & RIB (Routing Information Base) - Short Post
It's been long time since I wanted to talk over my blog about this. I have seen many people and books claiming that RIB is just another name of I should say fancy term to describe our old friend Routing Table. But In my personal opinion there is a significant difference between both.
RIB or Routing Information Base is local view about information from Routing Protocol Prospective. For example each routing protocol including BGP generates BGPtables in General. Yeah I know there are some more details as far how BGP builds its BGP Table :-). But for now lets talk about BGP table in short.
BGP table is local view of routing information received and generated locally. If you have ever run BGP than you must be aware about situations where you find some routing information which is in BGP table but when you run "show ip route" command , you don't see this information there.
There are many possible reason for that in BGP like "Un-Reachable Next Hop" Address.
So what actually we see with "show ip bgp" is RIB built by BGP. On the other hand what we see with "show ip route" is Routing table which is derived from that RIB information. Or in other words best and valid information picked by router from BGP Table and placed it into routing table.
so next idea comes into mind is that how we check RIB for each protocol ?
And here is answer :-)
RIP - "sh ip rip database"
OSPF - Older way > "sh ip ospf database"
Modern Way > "sh ip ospf rib detail"
EIGRP - "sh ip eigrp topology all-links"
BGP - "sh ip bgp"
IS-IS - "sh isis database"
With the "sh ip eigrp topology all-links" command you can actually see routes that failed the feasibility check.
Also one of the reason that support idea of RIB being different from Routing Table is - In OSPF for example if Forwarding Address (FA) for LSA 5 is not reachable, in such case you will see entries for those LSAs in "OSPF database" with command " sh ip ospf database" but on the other hand you won't find those routes in Routing table when you run command "sh ip route"
HTH...
Deepak Arora
Subscribe to:
Posts (Atom)