Networking / Beginners

EIGRP for IPv6

The Cisco proprietary Enhanced Interior Gateway Protocol (EIGRP) was developed to bridge the gap between the traditional distance vector protocols (IGRP, RIP) and the advanced link-state protocols (OSPF, IS-IS). It integrates some of the proven capabilities of the latter to improve the operation and the scalability of the former. Nevertheless, the intent was to avoid some of the topological constraints that are sometimes associated with link-state protocols. The result is a simple yet fast converging, resilient, and scalable routing protocol that is largely adopted in many enterprise networks as well as the edge of some ISP networks.

EIGRP is a distance vector routing protocol based on IGRP that offers the following improvements:

  • Diffusing update algorithm (DUAL) used to determine whether a path advertised by a neighbor is loop-free and to identify alternate paths without waiting on updates from other routers.
  • It stores all routes learned, not only the best one learned from neighbors.
  • EIGRP actively queries neighbors when destinations become unreachable, and that leads to competitive convergence times.
  • Use of Hello packets to maintain neighbor state leads to faster convergence.
  • Use of reliable transport protocol for the exchange of updates eliminates the need for periodic, full updates.
  • EIGRP uses complex metrics that provide flexibility in route selection.

To meet the routing needs of enterprise networks, EIGRP has a modular design with protocol-independent core functionality and protocol-dependent modules that enable it to be used for IPv4, IPX, and AppleTalk.

Support for IPv6

The large deployed base for EIGRP drove the demand for extending its capabilities to support IPv6. The modular implementation of EIGRP simplifies the implementation. It requires the introduction of another protocol-dependent module for IPv6 (protocol identifier 88 was chosen, the same as IPv4) and three new TLVs (IPv6_REQUEST_TYPE [0X0401], IPv6_METRIC_TYPE [0X0402] and IPv6_EXTERIOR_TYPE [0X0403]).

EIGRP for IPv4 and EIGRP for IPv6 have strong similarities. A few differences exist due to some specific aspects of IPv6:

  • The router ID for the EIGRP process remains 32 bits long. It is derived from an IPv4 address found on one of the configured interfaces or is manually configured.
    Note: On an IPv6-only router, the EIGRP process does not start until the ID is manually configured.
  • The source address (SA) of the EIGRP Hello is the link-local address of the transmitting interface; the destination address (DA) is FF02::A (the all EIGRP routers, link-scope multicast address).
    Note: This format of the Hello packet implies that two neighbor routers do not have to share the same prefix on the link to see each other's Hellos. Packets sent to specific peers are unicasted, in which case, sharing the same prefix on the link becomes relevant.
  • EIGRP for IPv4 uses MD5 for authentication, and similar support is provided by EIGRP for IPv6. Although not yet available by the time of this writing, support for IPsec authentication will also be provided on Cisco routers.
  • Automatic summarization enabled by default in EIGRP for IPv4 is disabled in EIGRP for IPv6 because IPv6 is classless.
  • Unlike EIGRP for IPv4, there is no split horizon in EIGRP for IPv6 because in IPv6 multiple prefixes could be present on the same interface of a router.

EIGRP for IPv6 will be enabled to operate within virtual private networks (VPNs) in a similar way as EIGRP for IPv4. Scalability characteristics of EIGRP for IPv6 differ from EIGRP for IPv4 mainly due to the need for extra memory resources.

Configuration Example

Similar to all other IPv6 RPs, EIGRP for IPv6 is enabled on a per-interface basis. If a router is able to acquire its ID from an IPv4 address existent on it, the EIGRP for IPv6 protocol configuration is simple, as illustrated here:

interface Ethernet0
 ipv6 enable
 ipv6 eigrp 100

Note: The EIGRP process does not start on an interface unless the ipv6 enable command is present under that interface.

If the router is IPv6 only, a router ID has to be explicitly configured under the EIGRP process, as illustrated here:

ipv6 router eigrp 100

Note: When configured, the EIGRP process is by default shut down and an explicit no shutdown is necessary to get it started.

Once configured, you can use the following show command to display EIGRP-relevant operational parameters.

Example-3. Displaying EIGRP Parameters
Router1#show ipv6 protocol
IPv6 Routing Protocol is "eigrp 100"
  EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0
  EIGRP maximum hopcount 100
  EIGRP maximum metric variance 1
  Maximum path: 16
  Distance: internal 90 external 170

When established, adjacencies are pointing to the link-local address of the neighbor, as shown in Example-4.

Example-4. EIGRP Neighbor Status
Router1#show ipv6 eigrp neighbor
IPv6-EIGRP neighbors for process 100
H  Address                Interface  Hold Uptime  SRTT  RTO  Q  Seq
                                     (sec)        (ms)      Cnt Num
0  FE80::2B0:4AFF:FE5C:ACA Fa0/1.1   14 00:01:43   1   4500  0  1

The EIGRP for IPv6 topology is independent of IPv4, and when queried, the all-links option should be used to view all equal-cost paths when present, as shown in the following show command.

Example-5. EIGRP Topology
Router1#show ipv6 eigrp topology all-links
IPv6-EIGRP Topology Table for AS(100)/ID(
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status
P 2001:FFFF:FFFF::/64, 1 successors, FD is 28160, serno 1
        via Connected, FastEthernet0/1.1
        via FE80::2B0:4AFF:FE5C:ACA9 (30720/28160), FastEthernet0/1.1

With minor syntax modifications, the commands available for tweaking or troubleshooting EIGRP for IPv4 are available for IPv6, too. For example, the command that enables MD5 authentication for a given interface would in this case be ipv6 authentication mode eigrp 100 md5. Considering their similar mode of operation, you should use the same configuration and troubleshooting guidelines for IPv6 as for IPv4.

[Previous] [Contents] [Next]