EIGRP routing protocol Omer ben-shalom Omer Ben-Shalom: Must show how EIGRP is dealing with count to infinity problem Omer Ben-Shalom: Must show how EIGRP is dealing with count to infinity problem
Distance vector VS link state Distance - shares all routes with neighbor routers and advertises many routes on one link change Link state - shares only their own links but with all the routers in the AS/Area Link state need not calculate before update so convergence is faster
Distance vector problems Uses periodic full route update Routing loops Accept any neighbor with lower metric Could have learned this from you or someone you announced to Could fool each other endlessly (Count to infinity), therefore network diameter is limited Some are classfull
Attempted solutions Split Horizon / Poison reverse Do not advertise routes the way received (or) Set distance to on update Problematic in Non broadcast media Hold down timers Hold update to routes with enlarged matrixes Both cause large delay in convergence
Link state protocols problems Each node must know topology of the whole net, on LSA loses can become a problem Complex to calculate: High memory requirements High CPU use if frequent changes Harder to configure and troubleshoot
The EIGRP Challenge Simple to implement like distance vector Quick to converge like link state (By doing distributed calculations) Use low bandwidth and low memory/CPU Loop free Classless
Main features (1) Reliable transport Reliable multicast (proprietary), if no response go to unicast (up to 16) Use Sequence numbers (send/receive) Link discovery - Hello protocol with hold time 3 X hello time (5/60 sec)
Main features (2) Diffusing distributed algorithm (DUAL) Modules to integrate with network layer protocols (IP, AppleTalk, IPX) All updates are non-periodic, partial and bounded
‘DUAL’ - diffusing algorithm. Mark your cost to a route,the next hop (successor) and the lowest cost (Feasible Distance) Keep any neighbor with lower distance as possible replacement (Feasible Successor) Reassess successors on any update or change
‘DUAL’ (2) If successor still best - do nothing (update neighbors) If replacement exist in table the can be no loop so switch to it immediately and update If no replacement change state to active and query all neighbors
‘Dual’ (3) Every neighbor will start own calculation based on data in query Any neighbor not answering in timeout makes route ‘stuck in active mode’, neighbor removed from table and response assumed INF After all ‘reply’ recalculate
a b c d e (0) (1) (2) (3) (2) Example 1 - Feasible successor (All metrics are 1 hop)
a b c d e (0) (1) (2) (3) (2)
a b c d e Q Q ()() (0) (1) (2) (3)
a b c d e R R ()() (0) (1) (2) (3) 3 2
a b c d e U U (0) (1) (2) (3)
a b c d e (0) (1) (3) Example 2 - No feasible successor (Not all metrics are 1 hop) (2) (3)
a b c d e Q Q ()() (0) (1) (3)
a b c d e (0) (1) (3) R Q Q ()() ()() 3
a b c d e (0) (1) (3) R R ()() ()() 3
a b c d e (0) (1) (3) R U ()() (4) 4 4
a b c d e (0) (1) (3) U U (4) 4 4
Main advantages to DUAL Simple Converges as fast as link state Recovery from loss involves no traffic if viable successor No routing loops are possible Prevents problems Does not restrict network diameter
Other interesting EIGRP points Uses a sophisticated matrix of bandwidth, delay, load and reliability Classless routing - carries the subnet mask Allows CIDR (VLSM and route aggregation) Can be authenticated by MD5
Some last notes on EIGRP Proprietary to Cisco On new neighbor discovery - form initial adjacency and pass whole route table
Questions ?
Extra data for questions EIGRP data structures: link state table of neighbors list of neighbor route costs for all neighbors EIGRP sequencing Active (waiting for reply) and passive states explained Init with passive / 0 to self INF to all Drop passive neig with INF cost
More data Router in active does not issue updates or update structures until passive for that route Answer either ‘no path’ or feasible successor for neighbor, only when all arrive change The 4 active states ???
Link state advantages Send only link changes not the resulting route changes (smaller updates) Propagates update before recalculation - faster convergence times. Not prone to routing loops under normal circumstances
Routing loops in distance vec. An error or fail increases matrix for router Paths to routers who are in loop (learned from himself for example) look better then ‘real’ paths Stabilizes when all network learns of failure (potentially very lengthy)
EIGRP packet types All under protocol number 88 Hello (5 sec multicast / 60 sec unicast) ACK Update Query / Reply Request - not implemented
EIGRP HEADER Version Opcode Checksum Flags Sequence Ack AS number TLVs
IP Internal TLV Type = 0x0102 Length Next Hop Bandwidth MTU Hop Count Reliability Load Reserved Destination Prefix len Delay Reserved External ID Flags
IP External TLV Type Length Next Hop Bandwidth MTU Hop Count Reliability Load Reserved Destination Prefix len Originating router Originating AS Arbitrary tag Delay External protocol metric Reserved External ID Flags