martedì 28 giugno 2011

EIGRP

Enhanced Interior Gateway Routing Protocol (EIGRP) is a distance vector, classless routing protocol that was released in 1992 with IOS 9.21. As its name suggests, EIGRP is an enhancement of Cisco IGRP (Interior Gateway Routing Protocol). Both are Cisco proprietary protocols and only operate on Cisco routers.

The main purpose in Cisco's development of EIGRP was to create a classless version of IGRP. EIGRP includes several features that are not commonly found in other distance vector routing protocols like RIP (RIPv1 and RIPv2) and IGRP. These features include

  • Reliable Transport Protocol (RTP)
  • Bounded Updates
  • Diffusing Update Algorithm (DUAL)
  • Establishing Adjacencies
  • Neighbor and Topology Tables

Although EIGRP may act like a link-state routing protocol, it is still a distance vector routing protocol.

Roots of EIGRP: IGRP

Cisco developed the proprietary IGRP in 1985, in response to some of the limitations of RIPv1, including the use of the hop count metric and the maximum network size of 15 hops.

Instead of hop count, both IGRP and EIGRP use metrics composed of bandwidth, delay, reliability, and load. By default, both routing protocols use only bandwidth and delay. However, because IGRP is a classful routing protocol that uses the Bellman-Ford algorithm and periodic updates, its usefulness is limited in many of today's networks.

Therefore, Cisco enhanced IGRP with a new algorithm, DUAL and other features. The commands for both IGRP and EIGRP are similar, and in many cases identical.


The Algorithm

Traditional distance vector routing protocols all use some variant of the Bellman-Ford algorithm. These protocols, such as RIP and IGRP, age out individual routing entries, and therefore need to periodically send routing table updates.

EIGRP uses the Diffusing Update Algorithm (DUAL). Although still a distance vector routing protocol, EIGRP with DUAL implements features not found in traditional distance vector routing protocols. EIGRP does not send periodic updates and route entries do not age out. Instead, EIGRP uses a lightweight Hello protocol to monitor connection status with its neighbors. Only changes in the routing information, such as a new link or a link becoming unavailable cause a routing update to occur. EIGRP routing updates are still vectors of distances transmitted to directly connected neighbors.

Path Determination

Traditional distance vector routing protocols such as RIP and IGRP keep track of only the preferred routes; the best path to a destination network. If the route becomes unavailable, the router waits for another routing update with a path to this remote network.

EIGRP's DUAL maintains a topology table separate from the routing table, which includes both the best path to a destination network and any backup paths that DUAL has determined to be loop-free. Loop-free means that the neighbor does not have a route to the destination network that passes through this router.

Convergence

Traditional distance vector routing protocols such as RIP and IGRP use periodic updates. Due to the unreliable nature of periodic updates, traditional distance vector routing protocols are prone to routing loops and the count-to-infinity problem. RIP and IGRP use several mechanisms to help avoid these problems including holddown timers, which cause long convergence times.

EIGRP does not use holddown timers. Instead, loop-free paths are achieved through a system of route calculations (diffusing computations) that are performed in a coordinated fashion among the routers

RTP and EIGRP Packet Types

EIGRP has the capability for routing several different protocols including IP, IPX, and AppleTalk using protocol-dependent modules (PDM). PDMs are responsible for the specific routing tasks for each Network layer protocol.

Reliable Transport Protocol (RTP) is the protocol used by EIGRP for the delivery and reception of EIGRP packets. EIGRP was designed as a Network layer independent routing protocol; therefore, it cannot use the services of UDP or TCP because IPX and Appletalk do not use protocols from the TCP/IP protocol suite.

Although "Reliable" is part of its name, RTP includes both reliable delivery and unreliable delivery of EIGRP packets, similar to TCP and UDP, respectively. Reliable RTP requires an acknowledgement to be returned by the receiver to the sender. An unreliable RTP packet does not require an acknowledgement.

RTP can send packets either as a unicast or a multicast. Multicast EIGRP packets use the reserved multicast address of 224.0.0.10.

EIGRP uses five different packet types, some in pairs:

  • Hello packets are used by EIGRP to discover neighbors and to form adjacencies with those neighbors. EIGRP hello packets are multicasts and use unreliable delivery
  • Update packets are used by EIGRP to propagate routing information. Unlike RIP, EIGRP does not send periodic updates. Update packets are sent only when necessary. EIGRP updates contain only the routing information needed and are sent only to those routers that require it. EIGRP update packets use reliable delivery. Update packets are sent as a multicast when required by multiple routers, or as a unicast when required by only a single router
  • Ack packets are sent by EIGRP when reliable delivery is used. RTP uses reliable delivery for EIGRP update, query, and reply packets. EIGRP acknowledgement packets contain a nonzero acknowledgment number and always are sent by using a unicast address
  • Query and reply packets are used by DUAL when searching for networks and other tasks. Queries and replies use reliable delivery. Queries use multicast, whereas replies are always sent as unicast.

Hello Protocol

Before any EIGRP packets can be exchanged between routers, EIGRP must first discover its neighbors. EIGRP routers discover neighbors and establish adjacencies with neighbor routers using the Hello packet. On most networks EIGRP Hello packets are sent every 5 seconds. On multipoint nonbroadcast multiaccess networks (NBMA) such as X.25, Frame Relay, and ATM interfaces with access links of T1 (1.544 Mbps) or slower, Hellos are unicast every 60 seconds. An EIGRP router assumes that as long as it is receiving Hello packets from a neighbor, the neighbor and its routes remain viable.

Holdtime tells the router the maximum time the router should wait to receive the next Hello before declaring that neighbor as unreachable. By default, the hold time is three times the Hello interval, or 15 seconds on most networks and 180 seconds on low speed NBMA networks. If the hold time expires, EIGRP will declare the route as down and DUAL will search for a new path by sending out queries.


EIGRP Bounded Updates

EIGRP uses the term partial or bounded when referring to its update packets. Unlike RIP, EIGRP does not send periodic updates. Instead, EIGRP sends its updates only when the metric for a route changes.

The term partial means that the update only includes information about the route changes. EIGRP sends these incremental updates when the state of a destination changes, instead of sending the entire contents of the routing table.

The term bounded refers to the propagation of partial updates sent only to those routers that are affected by the change. The partial update is automatically "bounded" so that only those routers that need the information are updated.

DUAL

Diffusing Update Algorithm (DUAL) is the convergence algorithm used by EIGRP instead of the Bellman-Ford algorithms used by other distance vector routing protocols, like RIP. Distance vector routing protocols such as RIP prevent routing loops with hold-down timers and split horizon. Although EIGRP uses both of these techniques, it uses them somewhat differently; the primary way that EIGRP prevents routing loops is with the DUAL algorithm.

Distance vector routing protocols such as RIP prevent routing loops with hold-down timers and split horizon. Although EIGRP uses both of these techniques, it uses them somewhat differently; the primary way that EIGRP prevents routing loops is with the DUAL algorithm. The decision process for all route computations is done by the DUAL Finite State Machine. In general terms, a finite state machine (FSM) is a model of behavior composed of a finite number of states, transitions between those states, and events or actions that create the transitions. This finite state machine contains all of the logic used to calculate and compare routes in an EIGRP network. The figure shows a simplified version of the DUAL FSM.

Because recomputation of the DUAL algorithm can be processor-intensive, it is advantageous to avoid recomputation whenever possible. Therefore, DUAL maintains a list of backup routes it has already determined to be loop-free. If the primary route in the routing table fails, the best backup route is immediately added to the routing table. 

Administrative Distance

Administrative distance (AD) is the trustworthiness (or preference) of the route source. EIGRP has a default administrative distance of 90 for internal routes and 170 for routes imported from an external source, such as default routes. When compared to other interior gateway protocols (IGPs), EIGRP is the most preferred by the Cisco IOS because it has the lowest administrative distance.


EIGRP Network Topology

The figure shows our topology includes the addition of the ISP router. Notice that both the R1 and R2 routers have subnets that are part of the 172.16.0.0/16 classful network, a class B address. The fact that 172.16.0.0 is a class B address is only relevant because EIGRP automatically summarizes at classful boundaries, similar to RIP.

Notice that the ISP router does not physically exist in our configurations. The connection between R2 and ISP is represented with a loopback interface on router R2. A loopback interface can be used to represent an interface on a router that does not have any actual connection to a physical link on the network


Autonomous Systems and Process IDs

An autonomous system (AS) is a collection of networks under the administrative control of a single entity that presents a common routing policy to the Internet.

Both EIGRP and OSPF use a process ID to represent an instance of their respective routing protocol running on the router.

Router(config)#router eigrp autonomous-system

Although EIGRP refers to the parameter as an "autonomous-system" number, it actually functions as a process ID. This number is not associated with an autonomous system number discussed previously and can be assigned any 16-bit value.

Router(config)#router eigrp 1


In this example, the number 1 identifies this particular EIGRP process running on this router. In order to establish neighbor adjacencies, EIGRP requires all routers in the same routing domain to be configured with the same process ID. Typically, only a single process ID of any routing protocol would be configured on a router.

The network command in EIGRP has the same function as in other IGP routing protocols:

  • Any interface on this router that matches the network address in the network command will be enabled to send and receive EIGRP updates.
  • This network (or subnet) will be included in EIGRP routing updates.

The network command is used in router configuration mode.

Router(config-router)#network network-address

The network-address is the classful network address for this interface.  In the figure, a single classful network statement is used on R1 to include both 172.16.1.0/24 and 172.16.3.0/30 subnets:

R1(config-router)#network 172.16.0.0

When EIGRP is configured on R2, DUAL sends a notification message to the console stating that a neighbor relationship with another EIGRP router has been established. This new adjacency happens automatically because both R1 and R2 are using the same eigrp 1 routing process and both routers are now sending updates on the 172.16.0.0 network.

R2(config-router)#network 172.16.0.0
%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 172.16.3.1 (Serial0/0) is up: new adjacency


By default, when using the network command and a classful network address such as 172.16.0.0, all interfaces on the router that belong to that classful network address will be enabled for EIGRP. However, there may be times when the network administrator does not want to include all interfaces within a network when enabling EIGRP. To configure EIGRP to advertise specific subnets only, use the wildcard-mask option with the network command:

Router(config-router)#network network-address [wildcard-mask]

Think of a wildcard mask as the inverse of a subnet mask. The inverse of subnet mask 255.255.255.252 is 0.0.0.3. To calculate the inverse of the subnet mask, subtract the subnet mask from 255.255.255.255:

255.255.255.255
- 255.255.255.252
Subtract the subnet mask
---------------
0. 0. 0. 3

In the figure, R2 is configured with the subnet 192.168.10.8 and the wildcard mask 0.0.0.3.

R2(config-router)#network 192.168.10.8 0.0.0.3


 Verifying EIGRP

Before any updates can be sent or received by EIGRP, routers must establish adjacencies with their neighbors. EIGRP routers establish adjacencies with neighbor routers by exchanging EIGRP Hello packets.

Use the show ip eigrp neighbors command to view the neighbor table and verify that EIGRP has established an adjacency with its neighbors. For each router, you should be able to see the IP address of the adjacent router and the interface that this router uses to reach that EIGRP neighbor. In the figure, we can verify that all routers have established the necessary adjacencies. Each router has two neighbors listed in the neighbor table.


As with RIP, the show ip protocols command can be used to verify that EIGRP is enabled. The show ip protocols command displays different types of output specific to each routing protocol. Remember, the process ID must be the same on all routers for EIGRP to establish neighbor adjacencies and share routing information.

Another way to verify that EIGRP and other functions of the router are configured properly is to examine the routing tables with the show ip route command. Notice that EIGRP routes are denoted in the routing table with a D, which stands for DUAL. Remember, because EIGRP is a classless routing protocol (includes the subnet mask in the routing update), it supports VLSM and CIDR.

EIGRP Composite Metric and K Values

EGRP uses the following values in its composite metric to calculate the preferred path to a network:

  • Bandwidth
  • Delay
  • Reliability
  • Load

The figure shows the composite metric formula used by EIGRP. The formula consists of values K1 through K5, known as EIGRP metric weights. By default, K1 and K3 are set to 1, and K2, K4, and K5 are set to 0. The result is that only the bandwidth and delay values are used in the computation of the default composite metric.

The default K values can be changed with the EIGRP router command:

Router(config-router)#metric weights tos k1 k2 k3 k4 k5


The show ip protocols command is used to verify the K values.


EIGRP Metrics

You now know the defaults for the K values. By using the show interface command we can examine the actual values used for bandwidth, delay, reliability, and load in the computation of the routing metric. The output of command show interface s0/0/0 on R1 is:

MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255


The bandwidth metric (1544 Kbit) is a static value used by some routing protocols such as EIGRP and OSPF to calculate their routing metric. Always verify bandwidth with the show interface command. The value of the bandwidth may or may not reflect the actual physical bandwidth of the interface. Modifying the bandwidth value does not change the actual bandwidth of the link. If actual bandwidth of the link differs from the default bandwidth value, then you should modify the bandwidth value. On most serial links, the bandwidth metric will default to 1544 Kbits. Use the interface command bandwidth to modify the bandwidth metric:

Router(config-if)#bandwidth kilobits


Use the interface command no bandwidth to restore the default value. We can verify the change using the show interface command. It is important to modify the bandwidth metric on both sides of the link to ensure proper routing in both directions.

Note: A common misconception for students new to networking and the Cisco IOS is to assume that the bandwidth command will change the physical bandwidth of the link. As stated in the previous section, the bandwidth command only modifies the bandwidth metric used by routing protocols such as EIGRP and OSPF

Delay is a measure of the time it takes for a packet to traverse a route. The delay (DLY) metric is a static value based on the type of link to which the interface is connected and is expressed in microseconds. Delay is not measured dynamically. In other words, the router does not actually track how long packets are taking to reach the destination. The delay value, much like the bandwidth value, is a default value that can be changed by the network administrator.

MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255


The table in the figure shows the default delay values for various interfaces.


Reliability is a measure of the probability that the link will fail or how often the link has experienced errors. Unlike delay, Reliability is measured dynamically with a value between 0 and 255, with 1 being a minimally reliable link and 255 one hundred percent reliable. Reliability is calculated on a 5-minute weighted average to avoid the sudden impact of high (or low) error rates.

Reliability is expressed as a fraction of 255 - the higher the value, the more reliable the link. So, 255/255 would be 100 percent reliable, whereas a link of 234/255 would be 91.8 percent reliable.

Remember: By default, EIGRP does not use reliability in its metric calculation

Load reflects the amount of traffic utilizing the link. Like reliability, load is measured dynamically with a value between 0 and 255. Similar to reliability, load is expressed as a fraction of 255. However, in this case a lower load value is more desirable because it indicates less load on the link. So, 1/255 would be a minimally loaded link. 40/255 is a link at 16 percent capacity, and 255/255 would be a link that is 100 percent saturated.

Remember: By default, EIGRP does not use load in its metric calculation.


Calcutating the EIGRP Metric

The figure shows the composite metric used by EIGRP. Using the default values for K1 and K3, we can simplify this calculation to: the slowest bandwidth (or minimum bandwidth) plus the cumulative sum of all of the delays.

In other words, by examining the bandwidth and delay values for all of the outgoing interfaces of the route, we can determine the EIGRP metric. First, determine the link with the slowest bandwidth. That bandwidth is used for the (10,000,000/bandwidth) * 256 portion of the formula. Next, determine the delay value for each outgoing interface on the way to the destination. Sum the delay values and divide by 10 (sum of delay/10) and then multiply by 256 (* 256). Add the bandwidth and sum of delay values to obtain the EIGRP metric.



DUAL Concepts

DUAL (Diffusing Update Algorithm) is the algorithm used by EIGRP. This section will discuss how DUAL determines the best loop-free path and loop-free backup paths. DUAL uses several terms:

  • Successor
  • Feasible Distance (FD)
  • Feasible Successor (FS)
  • Reported Distance (RD) or Advertised Distance (AD)
  • Feasible Condition or Feasibility Condition (FC)

These terms and concepts are at the center of DUAL's loop avoidance mechanism


Successor, Feasible Distance, Feasible Successor, Condition and Reported Distance

A successor is a neighboring router that is used for packet forwarding and is the least-cost route to the destination network. The IP address of a successor is shown in a routing table entry right after the word via.

Feasible distance (FD) is the lowest calculated metric to reach the destination network. FD is the metric listed in the routing table entry as the second number inside the brackets. As with other routing protocols this is also known as the metric for the route.

One of the reasons DUAL can converge quickly after a change in the topology is because it can use backup paths to other routers known as feasible successors without having to recompute DUAL.

The feasibility condition (FC) is met when a neighbor's reported distance (RD) to a network is less than the local router's feasible distance to the same destination network. The reported distance or advertised distance is simply an EIGRP neighbor's feasible distance to the same destination network. The reported distance is the metric that a router reports to a neighbor about its own cost to that network.




 A feasible successor (FS) is a neighbor who has a loop-free backup path to the same network as the successor by satisfying the feasibility condition. In our topology, would R2 consider R1 to be a feasible successor to network 192.168.1.0/24? In order to be a feasible successor, R1 must satisfy the feasibility condition (FC).

If R3 is the successor, can the neighbor R1 be a feasible successor to this same 192.161.0/24 network? In other words, if the link between R2 and R3 fails can R1 immediately be used as a backup path without a recomputation of the DUAL algorithm? R1 can only be a feasible successor if it meets the feasibility condition.

In the figure, R1 is reporting to R2 that its feasible distance to 192.168.1.0/24 is 2172416. From R2's perspective, 2172416 is R1's reported distance. From R1's perspective, 2172416 is its feasible distance. R2 examines the reported distance (RD) of 2172416 from R1. Because the reported distance (RD) of R1 is less than R2's own feasible distance (FD) of 3014400, R1 meets the feasibility condition. R1 is now a feasible successor for R2 to the 192.168.1.0/24 network.

Why isn't R1 the successor if its reported distance (RD) is less than R2's feasible distance (FD) to 192.168.1.0/24? Because the total cost for R2, its feasible distance (FD), to reach 192.168.1.0/24 is greater through R1 than it is through R3.

The successor, feasible distance, and any feasible successors with their reported distances are kept by a router in its EIGRP topology table or topology database. As shown in the figure, the topology table can be viewed using the show ip eigrp topology command. The topology table lists all successors and feasible successors that DUAL has calculated to destination networks.




The Null0 Summary Route

By default, EIGRP uses the Null0 interface to discard any packets that match the parent route but do not match any of the child routes. You might think that if we configure classless routing behavior with the ip classless command, EIGRP would not discard that packet but would continue looking for a default or supernet route. However, the EIGRP Null0 summary route is a child route that will match any possible packets of the parent route that do not match another child route. Even with classless routing behavior, ip classless, where you would expect the route lookup process to check for supernets and default routes, EIGRP will use the Null0 summary route and discard the packet because this route will match any packets of the parent that do not have a child route. Regardless of whether classful or classless routing behavior is being used, the null0 summary will be used and therefore denying the use of any supernet or default route. 



In the figure, R1 will discard any packets that match the parent 172.16.0.0/16 classful network but do not match one of the child routes 172.16.1.0/24, 172.16.2.0/24 or 172.16.3.0/24. For example, a packet to 172.16.4.10 would be discarded. Even if a default route was configured, R1 would still discard the packet because it matches the Null0 summary route to 172.16.0.0/16.

D 172.16.0.0/16 is a summary, 00:46:10, Null0

Note: EIGRP automatically includes a null0 summary route as a child route whenever both of following conditions exist:

  • There is at least one subnet that was learned via EIGRP.
  • Automatic summarization is enabled.
Like RIP, EIGRP automatically summarizes at major network boundaries. In the next topic, you will see that disabling automatic summarization will remove the Null0 summary route and allow EIGRP to look for a supernet or default route when an EIGRP child route does not match a destination packet.

Disabling Automatic Summarization

Like RIP, EIGRP automatically summarizes at major network boundaries using the default auto-summary command. As in RIPv2, automatic summarization can be disabled with the no auto-summary command. The router configuration command eigrp log-neighbor-changes is on by default on some IOS implementation.

DUAL takes down all neighbor adjacencies and then reestablishes them so that the effect of the no auto-summary command can be fully realized. All EIGRP neighbors will immediately send out a new round of updates that will not be automatically summarized.

EIGRP no longer includes the Null0 summary route, because automatic summarization has been disabled with no auto-summary. As long as the default classless routing behavior (ip classless) is in effect, supernet and default routes will be used when there is not a match with a subnet route.

Manual Summarization

EIGRP can be configured to summarize routes, whether or not automatic summarization (auto-summary) is enabled. Because EIGRP is a classless routing protocol and includes the subnet mask in the routing updates, manual summarization can include supernet routes. Remember, a supernet is an aggregation of multiple major classful network addresses.

To establish EIGRP manual summarization on all interfaces that send EIGRP packets, use the following interface command:

Router(config-if)#ip summary-address eigrp as-number network-address subnet-mask


Example:


Router(config)#int s0/0/0
Router(config-if)ip summary-address eigrp 1 192.168.0.0 255.255.252.0

Summary routes also require less bandwidth utilization for the routing updates because a single route can be sent instead of multiple individual routes.

EIGRP Default Route

Using a static route to 0.0.0.0/0 as a default route is not routing protocol dependent. The "quad zero" static default route can be used with any currently supported routing protocols. The static default route is usually configured on the router that has a connection to a network outside the EIGRP routing domain, for example, to an ISP.

EIGRP requires the use of the redistribute static command to include this static default route with its EIGRP routing updates. The redistribute static command tells EIGRP to include this static route in its EIGRP updates to other routers.

The entry for the static default route on R1 is the following:

D*EX 0.0.0.0/0 [170/3651840] via 192.168.10.6, 00:01:08, Serial0/1

  • D - This static route was learned from an EIGRP routing update.
  • * - The route is a candidate for a default route.
  • EX - The route is an external EIGRP route, in this case a static route outside of the EIGRP routing domain.
  • 170 - This is the administrative distance of an external EIGRP route.

Default routes provide a default path to outside the routing domain and, like summary routes, minimize the number of entries in the routing table.


Fine-tuning EIGRP

By default, EIGRP will use only up to 50 percent of the bandwidth of an interface for EIGRP information. This prevents the EIGRP process from over-utilizing a link and not allowing enough bandwidth for the routing of normal traffic. The ip bandwidth-percent eigrp command can be used to configure the percentage of bandwidth that may be used by EIGRP on an interface.

Router(config-if)#ip bandwidth-percent eigrp as-number percent

The configuration to limit how much bandwidth EIGRP uses is shown, along with the bandwidth command. The ip bandwidth-percent eigrp command uses the amount of configured bandwidth (or the default bandwidth) when calculating the percent that EIGRP can use.

Hello intervals and hold times are configurable on a per-interface basis and do not have to match with other EIGRP routers to establish adjacencies. The command to configure a different hello interval is:

Router(config-if)#ip hello-interval eigrp as-number seconds

If you change the hello interval, make sure that you also change the hold time to a value equal to or greater than the hello interval. Otherwise, neighbor adjacency will go down after the hold time expires and before the next hello interval. The command to configure a different hold time is:

Router(config-if)#ip hold-time eigrp as-number seconds

The seconds value for both hello and hold time intervals can range from 1 to 65,535. This range means that you can set the hello interval to a value of just over 18 hours, which may be appropriate for a very expensive dialup link.

Nessun commento:

Posta un commento