My Blog List

  • Majeshir Anupras Alankar - मराठी भाषा सौंदर्याने नटलेली आहे. तिला अनेक अलंकार प्राप्त आहेत. त्यापैकी अनुप्रास हा एक शब्दालंकार. एखाद्या वाक्यात किंवा कवितेच्या चरणामध्ये जेव्हा एका...
    3 years ago

Monday, November 8, 2010

Understanding Nexus -- Part 19 -- EIGRP


Enhanced Interior Gateway Routing Protocol (EIGRP), a Cisco proprietary protocol, combines the benefits of distance vector protocols with the features of link-state protocols. EIGRP sends out periodic Hello messages for neighbor discovery. Once EIGRP learns a new neighbor, it sends a one-time update of all the local EIGRP routes and route metrics. The receiving EIGRP router calculates the cost based on the received metrics plus the locally assigned cost of the link to that neighbor. After this initial full route table update, EIGRP sends incremental updates only. These updates are sent only to neighbors affected by the route changes. This process speeds convergence and minimizes the bandwidth used by EIGRP.

EIGRP Components
 
EIGRP has the following basic components:
 
  • Reliable Transport Protocol
  • Neighbor Discovery and Recovery
  • Diffusing Update Algorithm

Reliable Transport Protocol
 
RTP guarantees a delivery of EIGRP packets to all neighbors. RTP includes the following message types:
 
Hello - Used for neighbor discovery and recovery. By default, EIGRP sends a periodic multicast Hello message on the local network at the configured hello interval. By default, the hello interval is 5 seconds.
 
Acknowledgement - Sent after reception updates, queries and replies.
 
Updates - Send to affected neighbors when routing information changes. All the update messages contain route destination, address mask, and route metrics such as delay and bandwidth. The update information is stored in the EIGRP topology table.
 
Queries and Replies - Sent as necessary as part of the Diffusing Update Algorithm used by EIGRP.

Neighbor Discovery and Recovery

EIGRP uses Hello messages to discover a neighbor and adds them to the neighbor table. The neighbor table contains neighbor’s IP address, the interface it was learned on, and the hold time. Hold time indicates how long EIGRP should wait before declaring a neighbor unreachable. By default, the hold time is three times the hello interval. In our case Hold time is 15 seconds.

After the neighbor is discovered, EIGRP sends a series of Update messages to new neighbors, just to share the local EIGRP routing information. This route information is stored in the EIGRP topology table. After this initial transmission of the full EIGRP route information, EIGRP sends Update messages only when a routing change occurs.
 
Hello messages are also used as a keepalive to its neighbors.

Diffusing Update Algorithm

DUAL calculates the routing information based on the destination networks in the topology table. The topology table includes the following information:
 
IPv4 or IPv6 address/mask - The network address and its mask for the destination.
 
Successors - The IP address and local interface connection for all feasible successors. Feasible successors are the neighbors that advertise a shorter distance to the destination than the current feasible distance.

Feasibility distance (FD) -
The lowest/shortest calculated distance to the destination. The feasibility distance is the sum of the advertised distance from a neighbor plus the cost of the link to that neighbor.  i.e FD = (Advertised Distance from neighbor) + (Cost of the link to that neighbor).
 
Also there is one thing; EIGRP uses composite metric, which is made up of Bandwidth, Delay, Reliability, MTU and Load. It uses the K value to check which parameter will be used to calculate the metric and what is the weight of that parameter. The formula is
 
metric = [k1*bandwidth + (k2*bandwidth)/(256 - load) + k3*delay] * [k5/(reliability + k4)]
 
In short it looks like,



EIGRP Route Updates
 
Whenever there is change in the network, EIGRP sends an Update message with only the changed routing information to affected neighbors. This is called as partial updates. This Update message includes the distance information to the new or updated network destination.
 
There are 2 types of Route Metrics available in EIGRP, viz Internal and External.
Internal Route Metrics
 
Internal routes are routes between neighbors within the same EIGRP autonomous system. These routes have the following metrics:
 
Next hop - The IP address of the next-hop router.
 
Delay - Sum of the delays configured on the interfaces in a route towards destination network. Configured in tens of microseconds.
 
Bandwidth - The lowest configured bandwidth on an interface in the route towards destination.
 
MTU - The smallest maximum transmission unit value along the route to the destination.
 
Hop count - The number of hops / routers that the route passes through to the destination. This metric is not used for route calculation.
 
Reliability - An indication of the reliability of the links to the destination.
 
Load - An indication of how much traffic is on the links to the destination.
 

External Route Metrics  
External routes are routes that occur between neighbors in different EIGRP autonomous systems. These routes have the following metrics:
 
Next hop - The IP address of the next-hop router.
 
Router ID - The router ID of the redistribution router on which routes have been redistributed into EIGRP.
 
AS Number - The autonomous system number of the destination.
 
Protocol ID - A code that represents the routing protocol that learned the destination route.
 
Tag - An arbitrary tag that can be used for route maps.
 
Metric - The route metric for this route from the external routing protocol.
 

Address Families
 
EIGRP supports both IPv4 and IPv6 address families
 
Authentication
EIGRP authentication can be configured per virtual routing and forwarding (VRF) instance or interface using key-chain management. EIGRP supports MD5 authentication. 

Stub Routers
 
Stub routing is a feature which improves network stability, reduce resource usage, and simplify stub router configuration. This is mostly used in Hub-Spoke router topology, where spoke routers become Stub Routers.

A router that is configured as a stub, will send a special peer information packet to all neighboring routers, saying that he is a stub router.

Any neighbor that receives this packet, will not query the stub router for any routes. The stub router will depend on the Hub router, to send the proper routes to all other routers.

This is simply configured to reduce SIA occurence.
 
Summarization
 
You can configure a summarization on an interface basis. EIGRP will advertise the summary route only from a specified interface. The Metric of summary address is equal to the lowest metric of the more specific routes.
In NX-OS EIGRP does not support automatic route summarization.

Load Balancing
 
Cisco NX-OS supports the Equal Cost Multiple Paths (ECMP) feature with up to 16 equal-cost paths in the routing table. By default 8 paths are enabled.
 
NX-OS does not support unequal cost load balancing.

Split Horizon
 
Since EIGRP is a kind of Distance Vector protocol, it requires Split Horizon. NX-OS does not send update and query packets for destinations that were learned from the specific interface. Split horizon with poison reverse can also be configured.
 
By default, the split horizon feature is enabled on all interfaces.

Graceful Restart and High Availability
 
NX-OS supports nonstop forwarding (NSF) and graceful restart for EIGRP.
NSF is handy when there is a failure of SUP in a router. Previously whenever there was a Sup-failure, the data traffic used to stop. With NSF, neighboring devices do not experience routing flaps. During failover, data traffic is forwarded through intelligent modules while the standby supervisor becomes active.
 
For Graceful Restart, the routers should be capable of it. NX-OS supports graceful restart. During graceful restart, router uses Hello messages to notify its neighbors that graceful restart operation has started. Then both routers immediately exchange their topology tables. The neighbor router then performs the following actions to support the restarting router:
 
  1. Neighbor router ends its ‘Hello hold timer’. So when the restarting router comes online it can immediately send him hello message and all the updates.
  2. Neighbor router starts the ‘Route-hold timer’. Default time period is 240 seconds.
  3. Neighbor router maintains adjacency, and holds known routes for the restarting neighbor. If the route-hold timer expires then it discards held routes and treats the restarting router as a new router joining the network and reestablishes adjacency.
Enable graceful restart to support in-service software upgrades (ISSU) for EIGRP. If you disable graceful restart, Cisco NX-OS issues a warning that ISSU cannot be supported with this configuration.

Configuring EIGRP
 
NX-OS EIGRP is compatible with EIGRP in the Cisco IOS software.
 
NX-OS supports only IP… No Appletalk, No DecNet
 
Auto summarization is disabled by default.
 
The basic EIGRP can be configured as follows:
 
switch# config t
switch(config)# feature eigrp                            - Enable EIGRP
switch(config)# router eigrp Test1             
               - instance tag is case-sensitive, alphanumeric, max 20 characters.
switch(config-router)# autonomous-system 33   
                - ranges from 1 to 65535.
 
Adding an Interface…
 
switch(config)# interface ethernet 1/2
switch(config-if)# ip router eigrp Test1

Restarting EIGRP
 
switch(config)# flush-routes                            - Flushes all EIGRP when this EIGRP instance restarts.
 
switch(config)# restart eigrp Test1                     - Restarts the EIGRP instance
 
Shutting Down EIGRP
 
You can gracefully shut down EIGRP.
 
switch(config-router)# shutdown
 
Passive Interface
 
It suppresses EIGRP hellos, which prevents neighbors from forming and sending routing updates on an EIGRP interface. But it can receive the updates from other router.
 
switch(config-if)# ip passive-interface eigrp Test1
 
Shutting Down EIGRP on Interface
 
You can gracefully shut down EIGRP on an interface.
 
switch(config-router)# ip eigrp Test1 shutdown
 
Authentication 

It can be configured by creating Key-Chain.
 
switch# config t
switch(config)# key chain EIGRP-Key
switch(config-keychain)# key 13
switch(config-keychain-key)# key-string 0 Secure-Key
switch(config)# router eigrp Test1
switch(config-router)# address-family ipv4 unicast
switch(config-router-af)# authentication key-chain EIGRP-Key
switch(config-router-af)# authentication mode md5
switch(config) interface ethernet 1/2
switch(config-if)# ip router eigrp Test1
switch(config-if)# ip authentication key-chain eigrp Test1 EIGRP-Key
switch(config-if)# ip authentication mode eigrp Test1 md5
 
Stub Routing
 
switch# config t
switch(config)# router eigrp Test1
switch(config-router)# address-family ipv6 unicast
switch(config-router-af)# stub direct redistributed
 
Summarization
 
For summary to be advertised, at least one specific route should be present.
 
switch(config)# interface ethernet 1/2
switch(config-if)# ip summary-address eigrp Test1 192.0.2.0 255.255.255.0
 
OR
 
switch(config-if)# ip summary-address eigrp Test1 192.0.2.0/8
 
Load Balancing
 
Just like RIP this is also very simple task.
 
switch# config t
switch(config)# router eigrp Test1
switch(config-router)# address-family ipv4 unicast
switch(config-router-af)# maximum-paths 5
 
Graceful Restart
 
Graceful restart is enabled by default. Also for graceful restart neighboring routers must be NSF-aware or NSF-capable.
 
switch# config t
switch(config)# router eigrp Test1
switch(config-router)# address-family ipv4 unicast
switch(config-router-af)# graceful-restart
switch(config-router-af)# timers nsf converge 100         - range is from 60 to 180 seconds. The default is 120.
switch(config-router-af)# timers nsf route-hold 200       - range is from 20 to 300 seconds. The default is 240.
switch(config-router-af)# timers nsf signal 15            - range is from 10 to 30 seconds. The default is 20.
 
Hello and Hold Time
 
By default, Hello Time is 5 seconds and Hold Time is 3 times of Hello timer… i.e. 15 seconds.
 
switch(config-if)# ip hello-interval eigrp Test1 30       - range is from 1 to 65535 seconds. The default is 5.
 
switch(config-if)# ipv6 hold-time eigrp Test1 30          - range is from 1 to 65535 seconds. The default is 15.
 
Tuning EIGRP
 
switch# config t
switch(config)# router eigrp Test1
switch(config-router)# address-family ipv4 unicast
 
switch(config-router-af)# default-information originate always        - Originates default route with prefix 0.0.0.0/0
 
switch(config-router-af)# distance 25 100                 - administrative distance for EIGRP. The range is from 1 to 255. Default is 90 for internal routes and 170 for external routes.
 
switch(config-router-af)# metric max-hops 70              - maximum allowed hops for an advertised route. Range is from 1 to 255. The default is 100.
 
switch(config-router-af)# metric weights 0 1 3 2 1 0      - metric or K value.
 
switch(config-router-af)# timers active-time 200          - the time router waits in minutes before declaring the route to be stuck in the active (SIA) state. The range is from 1 to 65535. The default is 3.

Parameters in interface configuration mode
 
switch(config-if)# ip bandwidth eigrp Test1 30000         - bandwidth metric for EIGRP on an interface. range is from 1 to 2,560,000,000 Kb/s.
 
switch(config-if)# ip bandwidth-percent eigrp Test1 30    - max percentage of bandwidth that EIGRP might use, when there is a congestion on an interface. It doesn’t use full BW available on interface. It’s because EIGRP allows your data traffic to flow even when EIGRP itself is updating routes. range is from 0 to 100. The default is 50.
 
switch(config-if)# ip delay eigrp Test1 100               - delay metric for EIGRP on an interface. range is from 1 to 16777215 (in tens of microseconds).
 
switch(config-if)# ip distribute-list eigrp Test1 route-map EigrpTest in    - route filtering policy for EIGRP on this interface
 
switch(config-if)# ip next-hop-self eigrp Test1           - By default EIGRP uses the IP address of its interface as a next-hop address. This command allows EIGRP to use the received next-hop address.
 
switch(config-if)# ip offset-list eigrp Test1 prefix-list EigrpList in        - Adds an offset to incoming and outgoing metrics. Just like RIP
 
To Check
 
show ip eigrp Test1
show ip eigrp Test1 interfaces
 
in short,
“show ip eigrp ?”
 
show run eigrp

No comments:

Post a Comment