Hour 31: IGP Review EIGRP

EIGRP

Consult the symbols legend at the end of the post for information on symbols.

Metric:

  • AD of 90 internal, AD of 170 external, AD of 5 summary
  • [(RTR)[metric weights <tos #> <k1> <k2> <k3> <k5>] TOS=0 (always) sets what K values are used to calculate the metric
  • Default Metric weights: K1 (BW) = 1; K2 (Load) = 0; K3 (DLY) = 1; K4 (Reliab) = 0, K5 (MTU) = 0
  • Default Metric = Default Metric = 256*(10000000/BW + Delay/10)
  • Delay 1 = 10 microseconds. Delay is cumulative
  • Router uses own interface bandwidth if it’s lower than advertised by peer (Lowest path BW is used) Bandwidth
  • Internal paths are preferred over external paths regardless of metric (because of AD)
  • [(RTR) offset-list <acl> {in | out} <offset> <IF>] Offset-list can be used to manipulate inbound and outbound metric, delay is added
  • [(RTR)metric maximum-hops <1-255>] Changes TTL,  Default Hop Count (TTL) is 100
  • [(ROUTE-MAP)match metric <400> +- <100>] Matches metric from 300 to 500, using a Route-map statement

Neighbors:

  • Hello (keepalive) not acknowledged
  • Must be in the same AS and K-Values must match to form an adjacency
  • Source of Hello is primary subnet on interface
  • Sends Hello multicast to 224.0.0.10, protocol is 88
  • [passive interface <IF>] Stops outbound and inbound hellos on specified interface
  • [(RTR)neighbor <ip> <IF>] Send hellos as unicast, suppress sending any hellos via 224.0.0.10 on specified interface. Static configuration is required on all other peers on the same interface too.
  • Will not form an adjacency with a secondary ip address

Timers:

  • Hello and Holdtime are announced but do NOT have to match. Router uses peer’s values NBM 60 sec hello / 180 sec holdtime, Other 5 sec hello / 15sec holdtime
  • Hello and Hold are changed separately, not like in OSPF where Hello changes Holdtime
  • [(IF) ip hello-interval eigrp <process> <sec>]
  • [(IF) ip hold-time eigrp <process> <sec>
  • [(RTR) timers active-time {<sec> | disabled}] defines time in sec to wait for a response to query, if none is received within this time the route is declared SIA. Queries are always multicast unless they are sent in response to a received query, then they are unicast back.

Summary:

  • [(RTR)no auto-summary] Auto summarization is enabled by default
  • [(IF)ip summary-address eigrp <AS> <network> <mask> %<AD>%] Default AD for EIGRP is 5. Route is pointed to Null0
  • [(IF)ip summary-address eigrp <AS> <network> <mask> %<AD>% leak-map <name>]  Some suppressed routes can be advertised with leak-map keyword, which can be used only if summarization is applied on a physical interface (not available on sub-int). For sub-interfaces, PPP can be used to create VirtualTemplate physical interface.
  • More specific prefixes can be also leaked with more specific summary route. Both leak-map and more specific summary can co-exist together.
  • If Null0 route is poisoned with distance 255 then the Null0 route is not installed in local routing table, but the summary is still advertised on that interface.

Default route:

  • [ip route 0.0.0.0.0 0.0.0.0 null0]  with [(RTR) network 0.0.0.0] Null0 is an interface so 0.0.0.0 will be treated as a connected network and announced via EIGRP
  • [(IF)ip summary-address eigrp <AS> 0.0.0.0 0.0.0.0 200] summarizing into supernet 0.0.0.0. Distance must be higher than current default route so it is not blackholed
  • [ip default-network <classful network>] This network must be in topology table and will be set as candidate default
  • [(RTR)no default-information allowed out] If network is received by one router as a candidate default  “*” and you don’t want to propagate it as default use this command.  It will be passed forward, but not as default candidate anymore.
  • [(RTR) default-information allowed in <ACL>] Router decides which network is to be treated as candidate default if more than one different candidate is received.  All networks are received but only the one matching the ACL becomes the candidate default.

Security:

  • Authentication is per-interface and MD5 only
  • [(IF)ip authentication mode eigrp <as> md5]
  • [(IF)ip authentication key-chain eigrp <as><key-name>]
  • Key rotation with the accept-lifetime and send-lifetime options in key-chain

Filtering:

  • [(RTR)distribute-list <acl> {in | out } <IF>] Filter updates using ACL
  • [(RTR)distribute-list prefix <name> {in | out } <IF>] Prefix list must be used to define source list, not ACL.
  • [(RTR)distance eigrp <internal distance>  <external distance>] Distance set for ALL internal and external prefixes
  • [(RTR)distance eigrp <distance> <source IP> <source mask> %<acl>%] Distance set for specific prefixes originated by specific source. Works ONLY for internal routes. External routes are not matched at all.

Redistribution:

  • EIGRP automatically redistributes IGRP routes if the IGRP process is in the same AS
  • No default metric, MUST be manual set when redistributing into EIGRP
  • Metric is derived automatically for routes redistributed from connected, static or other EIGRP process
  • [(RTR) default-metric <bw> <delay> <reliability> <load> <mtu>]
  • [(RTR) redistribute <protocol> metric <bw> <delay> <reliability> <load> <mtu>]
  • Tags can be added to routes to manipulate route entries and mutual redistribution

DUAL:

  • AD = Advertised Distance is the distance  between the neighbor and the destination
  • Successor = feasible successor that is currently being used as the next hop to the destination
  • FD = Feasible Distance is the best distance to a remote network (successor route) installed in the routing table
  • FS = Feasible successor is not a successor route, but still meets feasibility condition (AD < FD)
  • Metric for each route is show as (Feasible Distance / Advertised Distance)
  • [show ip eigrp topology all-links] shows non-FS

If a route fails:

  1. If FS exists, the lowest metric one is installed and an update is sent to other peers. The FD from the FS does not overwrite FD for the prefix itself (FD stays unchanged) unless active query is performed.
  2. If no FS exists, router performs active query for that prefix.

a)        Router multicasts a query to other peers to find an alternative route to that prefix:

  • A query origin flag (O) is set to 1 – Router originated query
  • All queries and replies must be Acknowledged (RTP)
  • When active query is initiated existing FD/RD is to Infinity, so every new source will be better
  • For each Neighbor to which a query is sent, the router will set a reply status flag (r) to keep track of all outstanding queries. Query scoping is used to avoid Stuck In Active (SIA) and to minimize convergence time. Two ways to do this:

¨        Stub router: See Stub Router section

¨        Route-summarization: If peer has a summarize route it instantly replies negatively without doing own query

b)        Each peer unicasts a reply if they have or don’t have a loop-free route to that prefix

c)        Router updates own topology table only if all neighbors replied

d)        If peer does not have a route to the queried prefix, it withholds reply and performs its own active query to all peers except the one from which initial query was received from. A query origin flag (O) is set to 0 – router received query and started its own query.

e)        If router stays too long in active query the route becomes SIA

  • [(RTR) timers active-time {<minutes> | disabled} Changes SIA timer. If active timer (default 3 minutes) expires; all peers which did not reply to query are reset.
  • The SIA-retransmit timer is set to one-half of the value of the active timer: (default 90 seconds)
  • The routers will send up to 3 SIA-queries as long as SIA-replies are received, before resetting a neighbor

Load-balancing:

  • [(RTR)variance <multiplier>] Multiplier is multiplied by FD. Any metric which is lower or equal than this value and meets FS condition is considered a valid route for load balancing.
  • [(RTR)maximum-paths <1-16>] By default EIGRP will load balance across 4 equal paths, this command changes the default
  • [(RTR)traffic-share min across-interfaces] traffic is sent only across the minimum-cost path, even when there are multiple paths in the routing table. This is identical to the forwarding behavior without use of the variance command. However, if you use the traffic-share min command and the variance command, all feasible routes get installed into the routing table, which decreases convergence times.

Unequal

Stub:

  • Stub by default announces connected and summary only. Connected means covered by network statement or redistributed as connected. Redistributed routes cover only those not covered by network statement.
  • [(RTR)eigrp stub {connected | summary | static | redistributed | receive-only} %leak <route-map>%]
  • Routers do not query stub routers at all. Stub is announced in Hello
  • Stub routers should NOT be used as transit

Split-horizon and bandwidth

  • [(IF)no ip split-horizon eigrp <AS>] Split horizon is enable for all interfaces by default except physical with Frame Relay
  • [(IF) ip bandwidth-percent eigrp <AS> <%>] EIGRP traffic uses a max of 50% of bandwidth for control traffic.

NSF

  • [(RTR)timers nsf hold-route <sec>] NSF is enabled by default for EIGRP. It must be supported on both peers to be used. By default Routes are held for 240 sec.
  • Capability is exchanged via Hello. Forwarding is provided by CEF

Symbols Legend:

[ ] = command

<> = input

% % = optional

{  } = available options separated by |

(RTR) = in router eigrp <as>

(IF) = interface <interface name> x/x , for example: interface fastethernet0/0

Thank you to Krzysztof Zaleski for his notes.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s