Similar to its IPv4 counterpart, EIGRP for IPv6 exchanges routing information to populate the IPv6 routing table with remote prefixes. EIGRP for IPv6 was made available in Cisco IOS, Release 12.4(6)T.
EIGRP for IPv4 runs over the IPv4 network layer, communicating with other EIGRP IPv4 peers, and advertising only IPv4 routes. EIGRP for IPv6 has the same functionality as EIGRP for IPv4, but uses IPv6 as the network layer transport, communicating with EIGRP for IPv6 peers and advertising IPv6 routes.
EIGRP for IPv6 also uses DUAL as the computation engine to guarantee loop-free paths and backup paths throughout the routing domain.
As with all IPv6 routing protocols, EIGRP for IPv6 has separate processes from its IPv4 counterpart. The processes and operations are basically the same as in the IPv4 routing protocol; however, they run independently.
The following is a comparison of the main features of EIGRP for IPv4 and EIGRP for IPv6:
- Advertised routes – EIGRP for IPv4 advertises IPv4 networks; whereas, EIGRP for IPv6 advertises IPv6 prefixes.
- Distance vector – Both EIGRP for IPv4 and IPv6 are advanced distance vector routing protocols. Both protocols use the same administrative distances.
- Convergence technology – EIGRP for IPv4 and IPv6 both use the DUAL algorithm. Both protocols use the same DUAL techniques and processes, including successor, FS, FD, and RD.
- Metric – Both EIGRP for IPv4 and IPv6 use bandwidth, delay, reliability, and load for their composite metric. Both routing protocols use the same composite metric and use only bandwidth and delay, by default.
- Transport protocol – The Reliable Transport Protocol (RTP) is responsible for guaranteed delivery of EIGRP packets to all neighbors for both protocols, EIGRP for IPv4 and IPv6.
- Update messages – Both EIGRP for IPv4 and IPv6 send incremental updates when the state of a destination changes. The terms, partial and bounded, are used when referring to updates for both protocols.
- Neighbor discovery mechanism – EIGRP for IPv4 and EIGRP for IPv6 use a simple Hello mechanism to learn about neighboring routers and form adjacencies.
- Source and destination addresses – EIGRP for IPv4 sends messages to the multicast address 126.96.36.199. These messages use the source IPv4 address of the outbound interface. EIGRP for IPv6 sends its messages to the multicast address FF02::A. EIGRP for IPv6 messages are sourced using the IPv6 link-local address of the exit interface.
- Authentication – EIGRP for IPv4 and EIGRP for IPv6 use Message Digest 5 (MD5) authentication.
- Router ID – Both EIGRP for IPv4 and EIGRP for IPv6 use a 32-bit number for the EIGRP router ID. The 32-bit router ID is represented in dotted-decimal notation and is commonly referred to as an IPv4 address. If the EIGRP for IPv6 router has not been configured with an IPv4 address, the eigrp router-id command must be used to configure a 32-bit router ID. The process for determining the router ID is the same for both EIGRP for IPv4 and IPv6.
Routers running a dynamic routing protocol, such as EIGRP exchange messages between neighbors on the same subnet or link. Routers only need to send and receive routing protocol messages with their directly connected neighbors. These messages are always sent from the source IP address of the router that is doing the forwarding.
IPv6 link-local addresses are ideal for this purpose. An IPv6 link-local address enables a device to communicate with other IPv6-enabled devices on the same link and only on that link (subnet). Packets with a source or destination link-local address cannot be routed beyond the link from where the packet originated.
EIGRP for IPv6 messages are sent using:
- Source IPv6 address – This is the IPv6 link-local address of the exit interface.
- Destination IPv6 address – When the packet needs to be sent to a multicast address, it is sent to the IPv6 multicast address FF02::A, the all-EIGRP-routers with link-local scope. If the packet can be sent as a unicast address, it is sent to the link-local address of the neighboring router.
Note: IPv6 link-local addresses are in the FE80::/10 range. The /10 indicates that the first 10 bits are 1111 1110 10xx xxxx, which results in the first hextet having a range of 1111 1110 1000 0000 (FE80) to 1111 1110 1011 1111 (FEBF).
1, Link-local for each interafce
Link-local addresses are automatically created when an IPv6 global unicast address is assigned to the interface. Global unicast addresses are not required on an interface; however, IPv6 link-local addresses are.
Unless configured manually, Cisco routers create the link-local address using FE80::/10 prefix and the EUI-64 process. EUI-64 involves using the 48-bit Ethernet MAC address, inserting FFFE in the middle and flipping the seventh bit. For serial interfaces, Cisco uses the MAC address of an Ethernet interface. A router with several serial interfaces can assign the same link-local address to each IPv6 interface, because link-local addresses only need to be local on the link.
Link-local addresses created using the EUI-64 format, or in some cases random interface IDs, make it difficult to recognize and remember those addresses. Because IPv6 routing protocols use IPv6 link-local addresses for unicast addressing and next hop address information in the routing table, it is common practice to make it an easily recognizable address. Configuring the link-local address manually provides the ability to create an address that is recognizable and easier to remember.
Link-local addresses can be configured manually using the same interface configuration mode command used to create IPv6 global unicast addresses, but with different parameters:
Router(config-if)# ipv6 address link-local-address link-local
A link-local address has a prefix within the range FE80 to FEBF. When an address begins with this hextet (16-bit segment), the link-local keyword must follow the address.
2, Configure EIGRP for routing process
ipv6 unicast-routing global configuration mode command enables IPv6 routing on the router. This command is required before any IPv6 routing protocol can be configured. This command is not required to configure IPv6 addresses on the interfaces, but is necessary for the router to be enabled as an IPv6 router.
EIGRP for IPv6
The following global configuration mode command is used to enter router configuration mode for EIGRP for IPv6:
Router(config)# ipv6 router eigrp autonomous-system
Similar to EIGRP for IPv4, the autonomous-system value must be the same on all routers in the routing domain. The EIGRP for IPv6 routing process could not be configured until IPv6 routing was enabled with the ipv6 unicast-routing global configuration mode command.
eigrp router-id command is used to configure the router ID. EIGRP for IPv6 uses a 32 bit value for the router ID. To obtain that value, EIGRP for IPv6 uses the same process as EIGRP for IPv4. The eigrp router-id command takes precedence over any loopback or physical interface IPv4 addresses. If an EIGRP for IPv6 router does not have any active interfaces with an IPv4 address, then the eigrp router-id command is required.
The router ID should be a unique 32-bit number in the EIGRP for IP routing domain; otherwise, routing inconsistencies can occur.
Note: The eigrp router-id command is used to configure the router ID for EIGRP. Some versions of IOS will accept the command router-id, without first specifying eigrp. The running-config, however, will display eigrp router-id regardless of which command is used.
By default, the EIGRP for IPv6 process is in a shutdown state. The no shutdown command is required to activate the EIGRP for IPv6 process. This command is not required for EIGRP for IPv4. Although, EIGRP for IPv6 is enabled, neighbor adjacencies and routing updates cannot be sent and received until EIGRP is activated on the appropriate interfaces.
EIGRP for IPv6 uses a different method to enable an interface for EIGRP. Instead of using the network router configuration mode command to specify matching interface addresses, EIGRP for IPv6 is configured directly on the interface.
Use the following interface configuration mode command to enable EIGRP for IPv6 on an interface:
Router(config-if)# ipv6 eigrp autonomous-system
The autonomous-system value must be the same as the autonomous system number used to enable the EIGRP routing process. Similar to the network command used in EIGRP for IPv4, the ipv6 eigrp interface command:
- Enables the interface to form adjacencies and send or receive EIGRP for IPv6 updates
- Includes the prefix (network) of this interface in EIGRP for IPv6 routing updates
%DUAL-5-NBRCHANGE: EIGRP-IPv6 2: Neighbor FE80::1 (Serial0/0/0) is up: new adjacency
This message indicates that R2 has now formed an EIGRP-IPv6 adjacency with the neighbor at link-local address FE80::1. Because static link-local addresses were configured on all three routers, it is easy to determine that this adjacency is with router R1 (FE80::1).
Passive Interface with EIGRP for IPv6
passive-interface command used for IPv4 is used to configure an interface as passive with EIGRP for IPv6.
Verifying EIGRP IPv6
1, Examing neighbors
Similar to EIGRP for IPv4, before any EIGRP for IPv6 updates can be sent or received, routers must establish adjacencies with their neighbors.
Use the show ipv6 eigrp neighbors command to view the neighbor table and verify that EIGRP for IPv6 has established an adjacency with its neighbors. The output displays the IPv6 link-local address of the adjacent neighbor and the interface that this router uses to reach that EIGRP neighbor. Using meaningful link-local addresses makes it easy to recognize the neighbors R2 at FE80::2 and R3 at FE80::3.
The output from the show ipv6 eigrp neighbors command includes:
- H column – Lists the neighbors in the order they were learned.
- Address – IPv6 link-local address of the neighbor.
- Interface – Local interface on which this Hello packet was received.
- Hold – Current hold time. When a Hello packet is received, this value is reset to the maximum hold time for that interface and then counts down to zero. If zero is reached, the neighbor is considered down.
- Uptime – Amount of time since this neighbor was added to the neighbor table.
- SRTT and RTO – Used by RTP to manage reliable EIGRP packets.
- Queue Count – Should always be zero. If it is more than zero, then EIGRP packets are waiting to be sent.
- Sequence Number – Used to track updates, queries, and reply packets.
The show ipv6 eigrp neighbors command is useful for verifying and troubleshooting EIGRP for IPv6. If an expected neighbor is not listed, ensure that both ends of the link are up/up using the
show ipv6 interface brief command.
2, Show ipv6 protocols: state of any active IPv6 routing protocol processes currently configured on the router.
3, Show ipv6 route: EIGRP for IPv6 routes are denoted in the routing table with a D, similar to its counterpart for IPv4.