EIGRP is another routing protocol from Cisco; it is, however, more than a simple enhance- ment of IGRP. The one thing in common between IGRP and EIGRP is the composite metric.
Although EIGRP is also from the distance vector protocol family, in many ways it is com- pletely different from protocols such as RIP and IGRP. A major difference is that EIGRP pro- vides loop-free routing; this is accomplished through diffusing computation discussed earlier in Section 3.3.5; this also shows that not every distance vector protocol uses a straightforward Bellman–Ford computation for shortest path routing. There is an active coordination phase before routing computation when a link fails or link cost changes; to do that, additional infor- mation is sought for which the diffusing update algorithm (DUAL) needs to maintain states.
DUAL allows EIGRP to attain faster convergence. In addition, EIGRP includes a hello proto- col for neighbor discovery and recovery, and a reliable transfer mechanism for exchange of distance vector data.
EIGRP is provided directly over IP using protocol number 88. Furthermore, all EIGRP related message communication is multicast on the address 224.0.0.10; however, acknowl- edgments are unicasted. Since EIGRP requires reliable delivery, and given that the protocol is built directly over IP and multicast addressing is used, a reliable multicast mechanism is used.
5.6.1 Packet Format
The EIGRP packet is divided into two parts: an EIGRP header part, which is 20 bytes long, fol- lowed by various entities that are encoded using a variable-length TLV (Type-Length-Value)
F I G U R E 5.7 EIGRP packet header.
format (refer to Section 1.13.1). In the EIGRP header, there are seven fields (see Figure 5.7), which are described below:
• Version (1 byte): This field is set to 1.
• OpCode (1 byte): This field is used to specify the EIGRP packet type. There are four key types for IP networks: update, query, reply, and hello. Note that the need for these fields has been already discussed in Section 3.3.5.
• Checksum (2 bytes): Checksum is calculated over the entire EIGRP packet.
• Flags: If this value is 1, it indicates a new neighbor relationship. This value is set to 2 to indicate a conditional receive bit for a propriety multicast algorithm Cisco implements for reliable delivery using the multicast address 224.0.0.10.
• Sequence: This is a 32-bit sequence number used by the reliable delivery mechanism.
• ACK: This field lists the sequence number from the last heard from neighbor. For an initial hello packet, this field is set to zero. A hello packet type with a nonzero ACK value is an acknowledgment to an initial hello message. An important distinction is that acknowledg- ment is sent as a unicast message; this ACK field is nonzero only for unicast.
• Autonomous system number: This identifies the EIGRP domain.
Beyond the header, different entities are separated using the TLV format in an EIGRP packet (see Figure 5.8). Each TLV entity is of variable length where the type field is fixed at 1 byte, the length field is fixed at 1 byte, while the value field is of variable length; the length of the value field is indicated through the length field. Most importantly, through the type field, the packet type is identified; this field is not to be confused with the OpCode in the header field used for message type. Cisco has defined abilities to do different types such as general information, or network-specific information, such as whether the packet is for IP or other networks (e.g., IPX, developed by Novell NetWare, which many organizations deployed).
In our discussion, we specifically consider two types that are relevant and important:
(1) EIGRP parameters and (2) IP internal routes. The type field is set with value 0x0001 for an EIGRP parameter description in which the information content includes coefficients K1,K2,K3,K4, and K5, which are used in the calculation of the composite cost metric (see
F I G U R E 5.8 Data encoding in EIGRP packet: Generic TLV format.
Figure 5.9). Thus, unlike IGRP, EIGRP allows coefficients used by a router to be communi- cated to its neighboring routers. Despite that, a router has no way of knowing if the same or all coefficient values are used by all routers internally in their computation and in determining the shortest paths. Thus, inconsistency in computing the route, if different coefficient values are used by different routers, cannot be completely ruled out.
For the distance vector packet type for internal routes for IP networks, the type field is set to 0x0102; this type is for the route table entry having fields similar to the fields used in IGRP (compare Figure 5.10 with Figure 5.6). Thus, let us consider only the key differences between EIGRP and the other protocols. A next hop field is included in EIGRP much like RIPv2; this is not done in IGRP. Delay and bandwidth fields are 4 bytes long in EIGRP instead of 3 bytes in
F I G U R E 5.9 EIGRP: TLV type for EIGRP parameters.
F I G U R E 5.10 EIGRP: TLV type for communicating distance vector of an internal route.
IGRP since EIGRP uses a 256 multiplier for a finer metric granularity than IGRP; thus, if the composite metric as given in Eq. (5.5.1) for IGRP is denoted byCIGRP, the composite metric, CEIGRP, for EIGRP can be written as follows:
CEIGRP=256×CIGRP. (5.6.1)
Through the combination of PrefixLength and Destination fields, variable-length subnet masking is communicated. For example, if an addressable network is 10.1.0.0/16, Pre- fixLength is 16 and Destination field will contain 10.1. If the addressable network is 167.168.1.128/25, PrefixLength will be 25 and the Destination field will be set to 167.168.1.128.