Eigrp IPv4 and IPv6

1. Eigrp Protocol

  • IP port 88
  • Classless
  • Multicast 224.0.0.10, FF02::A
  • Administrative Distance: 5-summary route, 90-internal eigrp, 170-external eigrp
  • Distance vector protocol: it involves two factors: the distance, or metric, of a destination, and the vector, or direction to take to get there. Routing information is only exchanged between directly connected neighbors. This means a router knows from which neighbor a route was learned, but it does not know where that neighbor learned the route; a router can’t see beyond its own neighbors. Measures like split horizon and poison reverse are employed to avoid routing loops.

2. Eigrp Messages (RTP – Reliable Transfer Protocol)

  1. Hello – multicast message sent to form adjacency.
  2. Update – multicast/unicast message sent to inform about routing updates.
  3. Query and Reply – used for searching networks(query=multicast, reply=unicast).
  4. ACK – used to acknowledge update, query and reply messages.

3. Timers

  • Hello Time – 5 seconds(P2P), 60 seconds(NBMA)
  • Hold Down Time – 15 sec(P2P), 180 sec(NBMA)
R(config-if)#ip hello-interval eigrp <as-number> <seconds>
R(config-if)# ip hold-time eigrp <as-number> <seconds>

4. Metric

The following indicators are used when calculating the metric: Bandwidth, Delay, Reliability, Load, MTU. The last 3 are used for differentiation in case Bandwidth and Delay are equal. In case all 5 are equal the router will Load Balance. For unequal Load Balancing the secondary route must be a Feasible Successor and the “variance” must be set.

Metric = [lowest BW + Σ delays]*256 = 256*((K1*Scaled Bw) + (K2*Scaled Bw)/(256 – Load) + (K3*Scaled Delay)*(K5/(Reliability + K4)))

K1 = Bandwidth modifier = 1 (default)
K2 = Load modifier = 0 (default)
K3 = Delay modifier = 1 (default)
K4 = Reliability modifier = 0 (default)
K5 = Additional Reliability modifier = 0 (default)

5. DUAL

Diffusing Update ALgorithm uses a feasibility condition to ensure that only loop-free routes are ever selected.

DUAL elements:

  • Successor – it is shown in the RIB
  • Feasible Distance – the smallest metric (Successors metric)
  • Feasible Successor – smallest loop free path that satisfies the Feasible Condition
  • Reported Distance
  • Feasible Condition -FC=FD>RD

6. Conditions for adjacency

  1. Same AS number
  2. Same K values
  3. Authentication (optional)

7. EIGRP Tables

  • Neighbors table – shows NH and interface
#show ip eigrp neighbor
  • Topology table – shows Successor and Feasible Successor
#show ip eigrp topology [all-link]
  • RIB table
#show ip route eigrp

8. EIGRP Stub routers

EIGRP Stub routers can help improve network stability, reduce resource utilization, and simplify stub router configuration. The command is executed at the process level:

R(config-router)# eigrp stub [stub type]
  • EIGRP Stub – This is the default stub configuration if additional syntax is not specified such as the following listed below; the default stub will send both connected and summary routes and receive all routes from upstream neighbors.
  • EIGRP Stub Connected – Configures a router as a stub router that advertises only directly connected routes. This type of stub can be used in conjecture with the other stub types excluding receive-only.
  • EIGRP Stub Leak-Map – Configures a router as a stub router that advertises only route prefixes that match a specific ip prefix-list.
  • EIGRP Stub Receive-Only – Configures an EIGRP router as a stub router that will ONLY receive routes from upstream and not advertise any routes to its neighboring routers. When using this stub type; static routes must be configured upstream to reach networks within this stub area.
  • EIGRP Stub Redistribute – Configures an EIGRP router as a stub router that will only advertise redistributed routes. This type of stub can be used in conjecture with the other stub types excluding receive-only.
  • EIGRP Stub Static – Configures an EIGRP router as a stub router that will only advertise static routes. This type of stub can be used in conjecture with the other stub types excluding receive-only.
  • EIGRP Stub Summary – Configures an EIGRP router as a stub router that will only advertise summary routes. This type of stub can be used in conjecture with the other stub types excluding receive-only.

9. EIGRP Summary

Summarization reduces the size of routing tables on the routers and also limits the query scope. Manual summarization is configured at the interface level.

R(config-if)# ip summary-address eigrp 10 10.0.0.0/13 [AD]
//the AD value 255 will eliminate the route from RIB

10. Redistribution

If you want to insert OSPF routes into EIGRP on a router that is configured with both these 2 routing protocols or if you want to insert static routes into EIGRP, the following commands need to be used:

R(config-router)#redistribute static
R(config-router)#redistribute ospf 1 metric 1500 2000 255 1 1500 
//bandwidth,delay,reliability,load,MTU
R(config-router)#default metric 1500 2000 255 1 1500
//default redistributed metric is infinit

11. Router ID

The router ID is selected according to the following rules:
1. manual configuration

R(config-router)# eigrp router-id 1.1.1.1

2. highest up/up loopback
3. highest up/up physical interface

12. EIGRP Process configuration

R(config)# router eigrp <AS>
R(config-router)# network <IP> <WCM>
R(config-router)# passive-interface <interface>     
//on this interface the router will not send and will not receive any updates, but will include the connected network in its updates.
R(config-router)# no auto-summary

IPv4 Example

Untitled

IPv4 EIGRP configuration on R1:

R1(config)#router eigrp 10
R1(config-router)#network 10.0.0.0   0.0.0.3
R1(config-router)#network 10.0.0.4   0.0.0.3
R1(config-router)#passive-interface fa1/0
R1(config-router)#no auto-summary

Route Redistribution:

R1(config)#ip route 0.0.0.0 0.0.0.0 fa0/0
R1(config)#router eigrp 10
R1(config-router)#redistribute static
R1(config-router)#redistribute ospf 1 metric 1500 2000 255 1 1500 //bandwidth,delay,reliability,load,MTU

Hello Intervals and Hold times:

R1(config)#interface fa0/0
R1(config-if)#ip hello-interval eigrp 10 60
R1(config-if)#ip hold-time eigrp 10 180

Eigrp authentication with MD5(on both routers):

//Create Keychain and Key
R1(config)#key chain LANT1
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string cisco

//Configure interface to use authentication
R1(config)#interface fa0/0
R1(config-if)#ip authentication mode eigrp 10 md5
R1(config-if)#ip authentication key-chain eigrp 10 LANT1

IPv6 Example

Untitled

Enable IPv6 routing:

R1(config)#ipv6 unicast-routing

Configure Eigrp for IPv6:

R1(config)#ipv6 router eigrp 1
R1(config-rtr)#eigrp router-id 10.0.0.1    //required if there is no IPv4 configured on the router; router id is important in order to form an adjacency; when using EIGRP an adjacency will form even if two routers have the same router id, but problems can appear when using redistrigution.
R1(config-rtr)#no auto-summary             //starting with IOS 15 auto-summary is deactivated
R1(config-rtr)#passive-interface fa0/1     //no updates sent on this interface
R1(config-rtr)#no shutdown                     //by default, EIGRP for IPv6 process is shutdown

Enable Eigrp IPv6 on every interface(including loopbacks):

R1(config)#interface fa0/1
R1(config-if)#ipv6 eigrp 1
R1(config-if)#interface fa0/0
R1(config-if)#ipv6 eigrp 1

Leave a comment