This article will be about EIGRP for IPv6 which is the EIGRP protocol that can be configured to route IPv6 traffic. We will discuss only about what is specific to EIGRP for IPv6. To get up to speed regarding EIGRP, please go over these resources: Enhanced Interior Gateway Routing Protocol (EIGRP).

After going through the article, you will know:

  • * the differences between EIGRP for IPv4 and EIGRP for IPv6
  • * how to enable IPv6 routing
  • * how to configure basic EIGRP for IPv6
  • * how to change the router-id
  • * how to change the EIGRP for IPv6 timers
  • * how to configure authentication for EIGRP for IPv6

EIGRP for IPv6 is very similar in operational mode to EIGRP for IPv4. Few similarities are:

  • * DUAL is used for route calculation and the same metrics are used
  • * Same neighbor, topology and routing tables are used
  • * Equal and unequal load-balancing can be used

These are a few differences:

  • * EIGRP for IPv6 is enabled directly under the interface
  • * ‘ipv6’ is used instead of ‘ip
  • * There is no ‘network’ statement

The case study will use this topology:

All routers are in AS 100.

Each router has a loopback interface and the following is the addressing:

IPv4: Rx = x.x.x.x/32

IPv6: Rx = 2001:1:1:1::x/128

For instance, R3 has a loopback interface configured with IPv4 3.3.3.3/32 and IPv6 2001:1:1:1::3/128. All the other IPv6 addressing can be seen on the topology.

This case study assumes you know how to configure IPv6 addresses on the interfaces and the starting point will be the EIGRP for IPv6 configuration.

As mentioned before, EIGRP for IPv6 is directly configured on the interface, so these steps should be enough to configure R1 for EIGRP for IPv6:

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface fastEthernet 0/0
R1(config-if)#ipv6 eigrp 100
%IPv6 routing not enabled
R1(config-if)#

So before we enable EIGRP for IPv6, we need first to enable the IPv6 routing:

R1(config)#ipv6 unicast-routing
R1(config)#interface fastEthernet 0/0
R1(config-if)#ipv6 eigrp 100
R1(config-if)#

Also, EIGRP for IPv6 starts in shutdown mode, so you should configure ‘no shutdown’ under routing protocol stanza.

Based on our topology, this would be the configuration needed on R2 to have EIGRP for IPv6 configured properly:

R2#show running-config interface f0/0
Building configuration...

Current configuration : 121 bytes
!
interface FastEthernet0/0
 no ip address
 speed auto
 duplex auto
 ipv6 address 2001:1:2:12::2/64
 ipv6 eigrp 100
end

R2#show running-config interface f0/1
Building configuration...

Current configuration : 121 bytes
!
interface FastEthernet0/1
 no ip address
 speed auto
 duplex auto
 ipv6 address 2001:1:2:23::2/64
 ipv6 eigrp 100
end

R2#show running-config interface loopback 0
Building configuration...

Current configuration : 111 bytes
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
 ipv6 address 2001:1:1:1::2/128
 ipv6 eigrp 100
end

R2#

Always, when you configure EIGRP for IPv6, make sure you either have an interface with an IPv4 address configured or you configure manually a router-ID. Otherwise you will see this message:

R1(config-rtr)#do sh ipv eig nei
EIGRP-IPv6 Neighbors for AS(100)
% No usable Router-ID found
R1(config-rtr)#

As I already mentioned, the operation and maintenance of EIGRP for IPv6 is almost identical to EIGRP for IPv4.

So whatever commands you were using for EIGRP, now you can use the same ones with the difference that you must replace ‘ip’ with ipv6′.

Let’s check if the EIGRPv6 adjacencies were established, which are the neighbors and the default values for few parameters:

R2#show ipv6 eigrp interfaces
EIGRP-IPv6 Interfaces for AS(100)
                              Xmit Queue   PeerQ        Mean   Pacing Time   Multicast    Pending
Interface              Peers  Un/Reliable  Un/Reliable  SRTT   Un/Reliable   Flow Timer   Routes
Fa0/0                    1        0/0       0/0         138       0/0          552           0
Fa0/1                    1        0/0       0/0          85       0/0          368           0
Lo0                      0        0/0       0/0           0       0/0            0           0
R2#

As you can see, EIGRP for IPv6 is running on three interfaces and on each of the FastEthernet interfaces, there is one peer.

Let’s see what the EIGRP for IPv6 neighbors are:

R2#show ipv6 eigrp neighbors detail
EIGRP-IPv6 Neighbors for AS(100)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   Link-local address:     Fa0/1                    14 00:22:25   85   510  0  3
    FE80::C80A:37FF:FEE4:8
   Version 11.0/2.0, Retrans: 1, Retries: 0, Prefixes: 2
   Topology-ids from peer - 0
0   Link-local address:     Fa0/0                    12 00:24:15  138   828  0  9
    FE80::C808:30FF:FED8:8
   Version 11.0/2.0, Retrans: 0, Retries: 0, Prefixes: 2
   Topology-ids from peer - 0
R2#

Here the neighbors are listed based on the link-local address, this is the address used on the subnet only. The packets sent to this IPv6 addresses are not routed. These addresses are used for neighbor relationships.

As you can see, the hold time is 15 seconds and the hello time is five seconds.

Let’s check the EIGRP for IPv6 topology using this command:

R2#show ipv6 eigrp topology
EIGRP-IPv6 Topology Table for AS(100)/ID(2.2.2.2)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 2001:1:1:1::2/128, 1 successors, FD is 128256
        via Connected, Loopback0
P 2001:1:1:1::1/128, 1 successors, FD is 156160
        via FE80::C808:30FF:FED8:8 (156160/128256), FastEthernet0/0
P 2001:1:2:23::/64, 1 successors, FD is 28160
        via Connected, FastEthernet0/1
P 2001:1:1:1::3/128, 1 successors, FD is 156160
        via FE80::C80A:37FF:FEE4:8 (156160/128256), FastEthernet0/1
P 2001:1:2:12::/64, 1 successors, FD is 28160
        via Connected, FastEthernet0/0

R2#

Let’s check the IPv6 route table on R1 and see if we can ping the R3 Loopback IPv6 address:

R1#show ipv6 route eigrp
IPv6 Routing Table - default - 7 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, R - RIP, H - NHRP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE - Destination
       NDr - Redirect, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1
       OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, l - LISP
D   2001:1:1:1::2/128 [90/156160]
     via FE80::C809:30FF:FED8:8, FastEthernet0/0
D   2001:1:1:1::3/128 [90/158720]
     via FE80::C809:30FF:FED8:8, FastEthernet0/0
D   2001:1:2:23::/64 [90/30720]
     via FE80::C809:30FF:FED8:8, FastEthernet0/0
R1#ping 2001:1:1:1::3 source 2001:1:1:1::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:1:1:1::3, timeout is 2 seconds:
Packet sent with a source address of 2001:1:1:1::1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 64/112/224 ms
R1#

Let’s check the router-ID on R2 and let’s change it afterwards:

R2#show ipv6 protocols
IPv6 Routing Protocol is "connected"
IPv6 Routing Protocol is "ND"
IPv6 Routing Protocol is "eigrp 100"
EIGRP-IPv6 Protocol for AS(100)
  Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
  NSF-aware route hold timer is 240
  Router-ID: 2.2.2.2
  Topology : 0 (base)
    Active Timer: 3 min
    Distance: internal 90 external 170
    Maximum path: 16
    Maximum hopcount 100
    Maximum metric variance 1

  Interfaces:
    FastEthernet0/0
    FastEthernet0/1
    Loopback0
  Redistribution:
    None
R2#

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#ipv6 router eigrp 100
R2(config-rtr)#router-id 200.200.200.200
R2(config-rtr)#end
R2#
*Mar  2 22:56:10.343: %SYS-5-CONFIG_I: Configured from console by console
R2#
*Mar  2 22:56:14.479: %DUAL-5-NBRCHANGE: EIGRP-IPv6 100: Neighbor FE80::C80A:37FF:FEE4:8 (FastEthernet0/1) is down: route configuration changed
*Mar  2 22:56:14.515: %DUAL-5-NBRCHANGE: EIGRP-IPv6 100: Neighbor FE80::C808:30FF:FED8:8 (FastEthernet0/0) is down: route configuration changed
*Mar  2 22:56:14.703: %DUAL-5-NBRCHANGE: EIGRP-IPv6 100: Neighbor FE80::C80A:37FF:FEE4:8 (FastEthernet0/1) is up: new adjacency
*Mar  2 22:56:15.195: %DUAL-5-NBRCHANGE: EIGRP-IPv6 100: Neighbor FE80::C808:30FF:FED8:8 (FastEthernet0/0) is up: new adjacency
R2#show ipv6 protocols
IPv6 Routing Protocol is "connected"
IPv6 Routing Protocol is "ND"
IPv6 Routing Protocol is "eigrp 100"
EIGRP-IPv6 Protocol for AS(100)
  Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
  NSF-aware route hold timer is 240
  Router-ID: 200.200.200.200
  Topology : 0 (base)
    Active Timer: 3 min
    Distance: internal 90 external 170
    Maximum path: 16
    Maximum hopcount 100
    Maximum metric variance 1

  Interfaces:
    FastEthernet0/0
    FastEthernet0/1
    Loopback0
  Redistribution:
    None
R2#

As you can see, once the router-ID is changed, the EIGRP adjacencies are flapping.

In order to configure authentication for EIGRP for IPv6, this configuration is needed on both sides of the link:

R1#sh run | section key
key chain cisco
 key 1
   key-string pass_cisco
   accept-lifetime 23:00:00 Mar 2 2014 infinite
   send-lifetime 23:00:00 Mar 2 2014 infinite
R1#sh run interface f0/0
Building configuration...

Current configuration : 208 bytes
!
interface FastEthernet0/0
 no ip address
 speed auto
 duplex auto
 ipv6 address 2001:1:2:12::1/64
 ipv6 eigrp 100
 ipv6 authentication mode eigrp 100 md5
 ipv6 authentication key-chain eigrp 100 cisco
end

R1#

If the other side has the authentication configured, but the local router doesn’t, you will see this message on the console:

R1#
*Mar  2 22:59:51.035: %DUAL-5-NBRCHANGE: EIGRP-IPv6 100: Neighbor FE80::C809:30FF:FED8:8 (FastEthernet0/0) is down: Auth failure

	Let’s change the hello and hold timers intervals to 10 and 30 seconds:

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#int f0/1
R2(config-if)#ipv6 hold-time eigrp 100 30
R2(config-if)#ipv6 hello-interval eigrp 100 10
R2(config-if)#end
R2#show ipv6 eigrp neighbors
EIGRP-IPv6 Neighbors for AS(100)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   Link-local address:     Fa0/1                    28 00:38:31  157   942  0  10
    FE80::C80A:37FF:FEE4:8
R2#

Once you change the hello and hold timers on both routers, as you can above, the new timers are being used.

By reaching this point of the article, you will know:

  • * the difference between EIGRP for IPv4 and IPv6
  • * how to configure a network to run EIGRP for IPv6
  • * how to configure a few of the most common parameters of EIGRP for IPv6
  • * how to configure authentication for EIGRP for IPv6

References: