- About EIGRP
- Path Selection
- Loop Free Logic
- Successor / Feasible Successor Selection
- Load Balancing
- Auto Summarisation
- Passive Interface
- Stub Router
Link State Protocol : Link State knows every thing about the network. Distance Vector Protocol : Distance Vector is what the neighbor router has told it.
RIP is a true distance vector routing protocol and very simple: - No neighbor discovery.
Compare this with Hello Packets- Periodic updates. - Vulnerable to loops.
Compare it with EIGRPs loop free logic- Simple metric (hop count).
Compare it with EIGRP K Values
Cisco added some of the features from link-state routing protocols to EIGRP which makes it far more advanced than a true distance vector routing protocol like RIP. This is why (probably the marketing department) calls EIGRP an advanced distance vector or hybrid routing protocol.
- EIGRP does not use broadcast packets to send information to other neighbors but will use multicast or unicast.
- Besides IPv4 you can also use EIGRP to route IPv6 or even some older network layer protocols like IPX or AppleTalk.
- EIGRP is 100% loop-free and I’m going to show you why this is true.
EIGRP Protocol Number is
88, EIGRP runs directly on top of the IP header. If you look at the picture above you see we have a frame header (for example an Ethernet Frame), an IP Header (we are using IPv4) and inside the IP packet you’ll find EIGRP.
EIGRP uses RTP (Reliable Transport Protocol) and its function is to deliver EIGRP packets between neighbors in a reliable and ordered way. Reliability means that there is acknowledgement for an operation , which makes it a reliable protocol.
EIGRP has 3 tables :
Global Routing Table
Hello packets are not acknowledged since the EIGRP used a holdown time. It can use Multicast or Unicast for the same . Since sending “individual” hellos to each of the routers, hence multicast is more efficient.
Different types of EIGRP Packets:
Hello: These are used for neighbor discovery.
Updates: Updates are for sending routing information updates .
Query: When the router has lost information on a certain network and does not have a back path , it send the query request.
Reply: Reply packets are used in response to the query packets and are reliable.
Advertised Distance : Is what your neigbor told you the cost to the distance is.
Feasible Distance : Is what your neigbor told you plus the cost to reach the neighbor .
So in the above example ,
R2 that the cost to go to destination is
5 (Advertised Distance) but
R2 knows that the Feasible Distance is
5 + 4 (Actual Distance)
Please note that on Only
SUCCESSORis added to the route table.
Loop Free Logic
R2about the destination,
R2will not advertise on the same link back to
R3about its path to destination. Split Horizon
Note: Considerig the cost to Reach destination from R4 is 1
In the example above , we have the
DESTINATION connection to the R4 router.
We are looking the topology from router
|Router||Advertised Distance||Feasible Distance|
In the example above ,
Advertised Distance is what other routers have told
Feasible Distance is what it takes
R3 to reach other routers.
Successor / Feasible Successor Selection
The path with the lowest FD will be selected as the
Feasible Successor to be selected the following criteria should be fullfilled:
Advertised Distance of Feasible Sucessor < Feasible Distance of Successor`
In the table above neither
R2 satisfied that criteria hence are not selected as the backup paths
Lets take an example of the following EIGRP routing table :
|Router||Advertised Distance||Feasible Distance||Sucessor|
In the above example , since
R2 has lowest FD it becomes the
Now the question to ask for Feasible Successor Selection is :
Advertised Distanceless than the
FDof Successor ?
Since in the above table
9 is less than
FD 10 , it is selected as the
Note that even though
R3has a highher FD of
109, it is selected over the
R1which is just
15This is by design since at the heart EIGRP is a distance vector protocol.
Now coming back to load balancing
In the table above
In order to be able to do Load Balancing to the FS, the FD (total distance) should be less than
SUCCESSOR x MULTIPLIER
So in the above example , the let say the
variance is set to 2 which means :
10 x 2 = 20which is < than
109; So no load balancing.
Again , changing the successor to
10 x4 = 40which is < than
109. So no load balancing.
- Finally :
10 x10 = 100which is > than
109. So Load balancing happens now .
With Auto Summarization, any network configured on the routers is summarised back to the subnet mask they fall under as per the above table .
So in the example above , the
172.16.0.0 will be advertised by default to
Hearts and he wouldnt know where to send the packets.
no auto-summary under the EIGRP process will eleviate this issue.
So what do you have to do when you want to advertise a network without sending EIGRP packets on the interface and forming EIGRP neighbors? Use the
passive interface command.
R2#show ip eigrp neighbors EIGRP-IPv4 Neighbors for AS(100) H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 192.168.1.1 Et1/2 7 00:00:09 23 138 0 2 R2#
In the above table :
Hold : The Holddown timer
SRTT : Smooth Round Trip Time , milliseconds it takes to send an eigrp packet and receive an ack.
R2#show ip eigrp topology EIGRP-IPv4 Topology Table for AS(100)/ID(22.214.171.124) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 126.96.36.199/32, 1 successors, FD is 128256 via Connected, Loopback3 P 10.0.0.0/24, 1 successors, FD is 409600 via 192.168.1.1 (409600/128256), Ethernet1/2 P 192.168.1.0/30, 1 successors, FD is 281600 via Connected, Ethernet1/2 P 10.0.0.1/32, 1 successors, FD is 128256 via Connected, Loopback0
PASSIVE : Means that I have the route and I am no longer looking for it .
Active Active is not good since it means we have lost information about a certain network and EIGRP doesn’t know another way of reaching this network.
SIA Stuck in Active : Its BAD , it means that EIGRP has not reveived a reply to a query .
Ethernet1/2 : Is the interface we are using to send our packets in order to reach this network.
Keep in mind that the AS Numbers have to match to form neighborship
EIGRP Metric = 256*((K1*Bw) + (K2*Bw)/(256-Load) + K3*Delay)*(K5/(Reliability + K4)))
Don’t worry it is not used as is . The values of interest are K1,K2 ,K3,K4,K5
- Bandwidth (
- Load (
- Delay (
- Reliability (
- MTU (
K1,K2 etc values are not mapped to correspoding data , for example
K1 is not 1:1 mapped with the
bandwidth. The K values are only numbers to scale numbers
R2#show ip protocols *** IP Routing is NSF aware *** Routing Protocol is "eigrp 100" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Default networks flagged in outgoing updates Default networks accepted from incoming updates EIGRP-IPv4 Protocol for AS(100) Metric weight K1=1, K2=0, K3=1, K4=0, K5=0 NSF-aware route hold timer is 240 Router-ID: 188.8.131.52 Topology : 0 (base) Active Timer: 3 min Distance: internal 90 external 170 Maximum path: 4 Maximum hopcount 100 Maximum metric variance 1 Automatic Summarization: disabled Maximum path: 4 Routing for Networks: 184.108.40.206/32 0.0.0.0 Routing Information Sources: Gateway Distance Last Update 192.168.1.1 90 00:10:03 Distance: internal 90 external 170
By default only
K3 are enabled and we don’t use
K4. This means that only bandwidth and delay are used in the formula.
Why not? Because loading and reliability are dynamic values and they can change over time. You don’t want your EIGRP routers calculating 24/7 and sending updates
R2#show interfaces e1/2 | inc BW MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec,
You can tweak it using the
bandwith command for the interface.
R2#show interfaces e1/2 | inc load reliability 255/255, txload 1/255, rxload 1/255
R2#show interfaces e1/2 | inc DLY MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec,
Can be tweaked by
delay command at the interface level
R2#show interfaces e1/2 | inc relia reliability 255/255, txload 1/255, rxload 1/255
Reliability at 255/255 is 100%. This means that you don’t have issues on the physical or data-link layer.
R2#show interfaces e1/2 | inc MTU MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec,
K3 are enabled we can simplify the EIGRP formula:
> Metric = bandwidth (slowest link) + delay (sum of delays)
Which further expands to:
> Metric = (107 / slowest link bandwidth) * 256 + (sum of delays of the path) * 256
The metrics in EIGRP are a pain to work with since the values are so LARGE! If you want to practice with EIGRP you can try to disable all the K-values except K3. This will make EIGRP only use delay as metric.
Good Documentation on EIGRP Metric Calculation
EIGRP Scalability Issues
EIGRP is designed for large enterprise networks but having one big EIGRP network (5000+ prefixes and many hops) can lead to some problems:
- Lots of EIGRP prefixes equal a large topology table and routing table.
- Calculating the successor router will take longer if you have many EIGRP neighbors and different paths.
- If there are many backup paths EIGRP will have to see if there are 1 or more feasible successors, this will take longer.
- More information means our EIGRP routers have to work harder to process everything.
- When EIGRP loses a route and there is no feasible successor the route will go from passive to active and the router starts sending queries to its neighbors.
- EIGRP sends queries on all interfaces except the interface of the successor.
An EIGRP router that is configured as a stub does not receive queries when one of its neighbors loses a network.
In the above example when you make
Jack the stub router , when lo0 (220.127.116.11) goes down it will send out a
But John will not send any query to Jack because it knows that it is a Stub router .
When we say a switch is a Stub EIGRP Switch , it means that the Switch will learn the information about others in the network , but no it will not be able to advertise what it knows as John will not be able to send
QUERYto it .
How to see if a router is Stub or not
In the example below , it means that the stub is Adverstising CONNECTED SUMMARY routes
EIGRP-IPv4 Neighbors for AS(100) H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 192.168.1.1 Et1/2 10 00:06:33 16 100 0 5 Version 11.0/2.0, Retrans: 0, Retries: 0, Prefixes: 1 Topology-ids from peer - 0 Stub Peer Advertising (CONNECTED SUMMARY ) Routes Suppressing queries
In the example below , it means that the stub is a receive only neighbour
EIGRP-IPv4 Neighbors for AS(100) H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 192.168.1.1 Et1/2 14 00:00:27 12 100 0 10 Version 11.0/2.0, Retrans: 0, Retries: 0 Topology-ids from peer - 0 Receive-Only Peer Advertising (No) Routes Suppressing queries
So basically , you can be learning routes from the network as an update , but NO one will ask you (The Stub) for routes.
Different types of Stub Options
R1(config-router)#eigrp stub ? connected Do advertise connected routes leak-map Allow dynamic prefixes based on the leak-map receive-only Set receive only neighbor redistributed Do advertise redistributed routes static Do advertise static routes summary Do advertise summary routes <cr>
Name EIGRP Instance Example
R1(config)#router eigrp HELLO_WORLD R1(config-router)#address-family ipv4 autonomous-system 333 R1(config-router-af)#network 18.104.22.168 0.0.0.0 R1(config-router-af)#
R2#debug eigrp packets ? SIAquery EIGRP SIA-Query packets SIAreply EIGRP SIA-Reply packets ack EIGRP ack packets all Display all EIGRP packets hello EIGRP hello packets query EIGRP query packets reply EIGRP reply packets request EIGRP request packets retry EIGRP retransmissions stub EIGRP stub packets terse Display all EIGRP packets except Hellos update EIGRP update packets <cr>
R2#clear ip eigrp neighbors R2# Show up eigrp neighbours Show ip protocol
R2#show ip protocols *** IP Routing is NSF aware *** Routing Protocol is "eigrp 100" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Default networks flagged in outgoing updates Default networks accepted from incoming updates EIGRP-IPv4 Protocol for AS(100) Metric weight K1=1, K2=0, K3=1, K4=0, K5=0 NSF-aware route hold timer is 240 Router-ID: 22.214.171.124 Topology : 0 (base) Active Timer: 3 min Distance: internal 90 external 170 Maximum path: 4 Maximum hopcount 100 Maximum metric variance 1 Automatic Summarization: disabled Maximum path: 4 Routing for Networks: 126.96.36.199/32 0.0.0.0 Routing Information Sources: Gateway Distance Last Update Distance: internal 90 external 170 R2#show ip eigrp topology EIGRP-IPv4 Topology Table for AS(100)/ID(188.8.131.52) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 184.108.40.206/32, 1 successors, FD is 128256 via Connected, Loopback3 P 10.0.0.0/24, 1 successors, FD is 409600 via 192.168.1.1 (409600/128256), Ethernet1/2 P 192.168.1.0/30, 1 successors, FD is 281600 via Connected, Ethernet1/2 P 10.0.0.1/32, 1 successors, FD is 128256 via Connected, Loopback0 R2#
How to Debug Interesting Packet :
Jack(config)# access-list 100 permit ip any 192.168.200.20 0.0.0.0 Jack(config)#exit Jack# debug ip packet 100 IP packet debugging is on for access list 100
Subscribe via RSS