Overview

EIGRPv6 Neighbors share route information that exists in their EIGRPv6 domain. Neighborships can form with devices that share a common link.

For IPv6 neighbors, EIGRPv6 must be used.

The formation of neighbors in EIGRPv6 is simple. With that said, there are differences in the way neighbors will form depending on the topology and configuration.

In the above topology, R-1 shares a common link with R-2 so they can become neighbors. R-2 and R-3 also share a common link so they can become neighbors. R-1 and R-3 do not share a common link so they can't become neighbors.

Since all routers share the same common link via the layer 2 switch, they can all become neighbors.

Having a solid understanding of how neighborships form is a fundamental part of understanding how a routing protocol will behave.

Packet Types

EIGRPv6 communicates with its neighbors with the following five packet types:

  1. Hello
  2. Update
  3. Acknowledgment
  4. Query
  5. Reply

1. Hello Packets

EIGRP uses Hello packets to discover, establish and maintain neighborships.

When EIGRPv6 is enabled on an interface, it will begin to send Hello packets out that interface to try to discover potential EIGRPv6 neighbors on the other side of the link.

When a potential neighbor receives an EIGRPv6 Hello packet, they know that there is a potential EIGRPv6 neighbor on the other side of that link.

Hello packets contain parameters for sharing EIGRPv6 information. For the formation of a neighborship to be successful, specific parameters within the Hello packets sent from each device must match.

After a neighborship is formed, Hello packets are sent at specified intervals as keep-a-lives to maintain the EIGRPv6 neighbor relationship. By default,

  • LAN and Fast WAN interfaces send Hellos every five seconds.
  • Interfaces < 1.544 every 60 seconds.

Hello Packet Parameters

In order for potential EIGRPv6 neighbors on a common link to form a neighborship, the following parameters in the Hello packets must match:

  • Autonomous System (AS)
  • Authentication
  • K Values

Autonomous System (AS) - While in OSPFv3 the Autonomous System (AS) is only significant to the local device, in EIGRPv6 all devices within an EIGRPv6 domain must be configured into the same AS. (A network can contain more than one EIGRPv6 AS.)

Authentication - A neighborship won't form if authentication isn't proper. So if a neighborship has formed and there is an issue with EIGRPv6, we know that authentication is not the culprit. Like OSPFv3, EIGRPv6 doesn't have its own authentication mechanism. It uses the authentication that's built into IPv6.

K Values - The same K values must be enabled. Note that the K values themselves can actually differ and a neighborship will form. For example, devices on either side of a link can have K1 (Bandwidth) enabled but the bandwidth values can be different. A neighborship will form, however the slower bandwidth value will be used for the Distance calculation. The DUAL Metrics for EIGRPv6 discusses calculating Distance in detail.

* It's interesting that EIGRPv6 interfaces on either side of a link do not need to have Global Unicast Addresses (GUIs) in the same subnet. This is because Link Local Addresses (LLAs) are used to create and maintain the neighborship.

2. Update Packets

After a neighborship is formed, devices will exchange Update packets.

Update packets contain information from a device's EIGRPv6 topology table.

The first Update packet will contain route information for the full topology.

After the first Update packet, Updates are only sent if there is a change in a device's EIGRPv6 topology table. This is another reason why EIGRPv6 uses less network resources than other protocols (especially link-state protocols like OSPF).

3. Acknowledgment Packets

An Acknowledgement packet verifies that an Update packet has been received. They're simply a Hello packet with no data.

4. Query Packets

An EIGRPv6 device will send a Query packet only if it loses a route in the IPv6 routing table and there is no backup route in the EIGRPv6 topology table to replace it with.

The Query packet will be sent to the local device's neighbor(s). If they don't have a replacement route, they will forward the Query to their neighbors and so on. The Query will be passed throughout the EIGRPv6 domain until a replacement route is found or until it has been passed to all neighbors in the domain.

5. Reply Packets

Reply packets are used to respond to Query packets.

A response will either contain route information for a queried route or note that it doesn't have an alternate route.

Every router must respond to each Query packet received.

Reliable Transport Protocol (RTP)

When multicast is used to create and maintain neighborships, Reliable Transport Protocol (RTP) is used by EIGRPv6 neighbors to transmit EIGRPv6 packets. (Unicast neighborships are explained later in the lesson.)

RTP provides sequencing and acknowledgment for EIGRP packets between neighbors.

Some EIGRPv6 packets are sent reliably (delivery guaranteed and ordered) and some unreliably. Hello and Acknowledgements packets aren't given a sequence number and are therefore sent unreliably.

When a router sends an Update to the FF02::A multicast address, RTP maintains a list of neighbors and notes which neighbors for which it has received an Acknowledgement.

If the device hasn't received an Acknowledgement (ACK) from a neighbor it will re-send the Update a maximum of 16 times before considering the neighbor down.

This is also called Reliable Multicast.

Note:

Cisco IOS uses two RTP acronyms.
Reliable Transport Protocol - Transmits EIGRPv6 packets to neighbors.
Real-time Transport Protocol - Synchronizes date and time across multiple devices.

Hello and Hold Down Timers

* Give careful consideration before changing the Hello and Hold Down Timer default values.

Hello Timer

Hello packets are used to form neighborships and also to maintain neighborships. The Hello Timer interval is how often Hello packets will be sent.

By default, the Hello Timer is set to:
LAN – 5 seconds
WAN < 1.544 Mbps – 60 seconds

The default Hello Timer interval can be changed by:

R-1(config)#int g0/0
R-1(config-if)#ipv6 hello-interval eigrp 6 ?
  <1-65535>  Seconds between hello transmissions

Hold Down Timer

If a Hello packet isn't received from a neighbor within the Hold Down Timer interval, the device will consider the neighbor down. Then, the EIGRPv6 topology and IPv6 Routing tables will be updated.

Every time a Hello packet is received, the Hold Down timer restarts.

By default, the Hold Down Timer interval is 3X the Hello Timer.

The default Hello Down Timer interval can be changed by:

R-1(config)#int g0/0
R-1(config-if)#ipv6 hold-time eigrp 6 ?
  <1-65535>  Seconds before neighbor is considered down

Hello and Hold Down Timer Verification

The Hello and Hold timer intervals can be verified with the show ipv6 eigrp interfaces detail command. (To view a specific interface use the show ipv6 eigrp interfaces detail [interface] command.)

R-1#show ipv6 eigrp interfaces detail
[Some output omitted]
EIGRP-IPv6 Interfaces for AS(6)
                              Xmit Queue   PeerQ        Mean   Pacing Time   Multicast    Pending
Interface              Peers  Un/Reliable  Un/Reliable  SRTT   Un/Reliable   Flow Timer   Routes
Lo16                     0        0/0       0/0           0       0/0            0           0
  Hello-interval is 5, Hold-time is 15

Gi0/0                    1        0/0       0/0           1       0/0           50           0
  Hello-interval is 5, Hold-time is 15

Listed by interface, we can see the Hello interval is set to five seconds and the Hold Time interval is every 15 seconds.

Multicast Neighbors for EIGRPv6

When EIGRPv6 is configured dynamically to discover, establish and maintain neighborships it uses the FF02::A EIGRPv6 multicast group to do so.

We'll configure and verify with two different topologies.

Topology A Configuration and Verification

In this topology with have three routers that are physically connected serially.

Routers that share a common link can for neighborships. This means that R-1 should become neighbors with R-2 and R-2 should become neighbors with R-3. R-1 and R-3 can't form a neighborship.

EIGRPv6 3 Routers Serial
EIGRPv6 3 Routers Serial

Let's first create the neighborship between R-1 and R-2:

R-1(config)#ipv6 router eigrp 6
R-1(config-rtr)#eigrp router-id 1.1.1.1
R-1(config-rtr)#int lo16
R-1(config-if)#ipv6 eigrp 6
R-1(config-if)#int g0/0
R-1(config-if)#end

R-2(config)#ipv6 router eigrp 6
R-2(config-rtr)#eigrp router-id 2.2.2.2
R-2(config-rtr)#int lo26
R-2(config-if)#ipv6 eigrp 6
R-2(config-if)#int g0/0
R-2(config-if)#end

As soon as R-2's g0/0 is enabled for EIGRPv6, the neighborship between R-1 and R-2 will form. Then, a syslog message is generated on R-1 and R-2 to notify of the new neighborship:

R-1#
*Mar 19 06:16:45.233: %DUAL-5-NBRCHANGE: EIGRP-IPv6 6: Neighbor FE80:12::2 (GigabitEthernet0/0) is up: new adjacency

R-2#
*Mar 19 06:16:45.267: %DUAL-5-NBRCHANGE: EIGRP-IPv6 6: Neighbor FE80:12::1 (GigabitEthernet0/0) is up: new adjacency

Note that the neighborships are formed (and maintained) using LLAs.

Next, let's create the neighborship between R-2 and R-3:

R-2(config)#ipv6 router eigrp 6
R-2(config-if)#ipv6 eigrp 6
R-2(config-if)#int g0/1
R-2(config-if)#end

R-3(config)#ipv6 router eigrp 6
R-3(config-rtr)#eigrp router-id 3.3.3.3
R-3(config-rtr)#int lo36
R-3(config-if)#ipv6 eigrp 6
R-3(config-if)#int g0/1
R-3(config-if)#ipv6 eigrp 6
R-3(config-if)#end

Here are the syslog messages for the new neighborship:

R-2#
*Mar 19 06:18:07.302: %DUAL-5-NBRCHANGE: EIGRP-IPv6 6: Neighbor FE80:23::3 (GigabitEthernet0/1) is up: new adjacency

R-3#
*Mar 19 06:18:07.271: %DUAL-5-NBRCHANGE: EIGRP-IPv6 6: Neighbor FE80:23::2 (GigabitEthernet0/1) is up: new adjacency

Let's check the EIGRPv6 neighbor table on all three devices:

R-1#show ipv6 eigrp neighbors 
EIGRP-IPv6 Neighbors for AS(6)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   Link-local address:     Gi0/0                    10 00:15:24    1   100  0  7
    FE80:12::2
---

R-2#show ipv6 eigrp neighbors
EIGRP-IPv6 Neighbors for AS(6)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   Link-local address:     Gi0/1                    12 00:15:12    3   100  0  3
    FE80:23::3
0   Link-local address:     Gi0/0                    13 00:16:35 1280  5000  0  5
    FE80:12::1
---

R-3#show ipv6 eigrp neighbors 
EIGRP-IPv6 Neighbors for AS(6)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   Link-local address:     Gi0/1                    10 00:15:43 1599  5000  0  6
    FE80:23::2

From the output it's easy to see that:

  • R-1 formed a neighborship with R-2
  • R-2 formed a neighborship with both R-1 and R-3
  • R-3 formed a neighborship with R-2
  • We can see the LLA and the egress interface for each neighbor.

* Later in the lesson the EIGRPv6 neighbor table is discussed in more detail.

Topology B Configuration and Verification

In this example, we'll take a look at how neighborships form when three routers are connected via a layer 2 switch.

EIGRPv6 3 routers via L2 Switch
EIGRPv6 3 routers via L2 Switch

Since all three routers are connected via a layer 2 switch, they're all on the same link. Because they're all on the same link, they'll all become neighbors.

R-1(config)#ipv6 router eigrp 16
R-1(config-rtr)#eigrp router-id 1.1.1.1
R-1(config-rtr)#int lo16
R-1(config-if)#ipv6 eigrp 16
R-1(config-if)#int g0/0
R-1(config-if)#ipv6 eigrp 16
R-1(config-if)#end

R-2(config)#ipv6 router eigrp 16
R-2(config-rtr)#eigrp router-id 2.2.2.2
R-2(config-rtr)#int lo26
R-2(config-if)#ipv6 eigrp 16
R-2(config-if)#int g0/0
R-2(config-if)#ipv6 eigrp 16
R-2(config-if)#end

R-1#
*Mar 23 00:17:57.891: %DUAL-5-NBRCHANGE: EIGRP-IPv6 16: Neighbor FE80:123::2 (GigabitEthernet0/0) is up: new adjacency

R-2#
*Mar 23 00:17:57.902: %DUAL-5-NBRCHANGE: EIGRP-IPv6 16: Neighbor FE80:123::1 (GigabitEthernet0/0) is up: new adjacency

Next, to configure R-3:

R-3(config)#ipv6 router eigrp 16
R-3(config-rtr)#eigrp router-id 3.3.3.3
R-3(config-rtr)#int lo36
R-3(config-if)#ipv6 eigrp 16
R-3(config-if)#int g0/0
R-3(config-if)#ipv6 eigrp 16
R-3(config-if)#end

R-3#
*Mar 23 00:30:28.969: %DUAL-5-NBRCHANGE: EIGRP-IPv6 16: Neighbor FE80:123::1 (GigabitEthernet0/0) is up: new adjacency
*Mar 23 00:30:28.969: %DUAL-5-NBRCHANGE: EIGRP-IPv6 16: Neighbor FE80:123::2 (GigabitEthernet0/0) is up: new adjacency

R-3 has EIGRPv6 neighborships with both R-1 and R-2.

Everything looks good as far as the syslog messages go. Let's check the neighbor tables:

R-1#show ipv6 eigrp neighbors
EIGRP-IPv6 Neighbors for AS(16)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   Link-local address:     Gi0/0                    13 00:05:07    5   100  0  6
    FE80:123::3
0   Link-local address:     Gi0/0                    14 00:17:38    1   100  0  5
    FE80:123::2

R-2#show ipv6 eigrp neighbors 
EIGRP-IPv6 Neighbors for AS(16)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   Link-local address:     Gi0/0                    14 00:05:34    5   100  0  6
    FE80:123::3
0   Link-local address:     Gi0/0                    14 00:18:05 1278  5000  0  5
    FE80:123::1

R-3#show ipv6 eigrp neighbors 
EIGRP-IPv6 Neighbors for AS(16)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   Link-local address:     Gi0/0                    14 00:01:48  819  4914  0  6
    FE80:123::2
0   Link-local address:     Gi0/0                    14 00:01:48 1024  5000  0  6
    FE80:123::1

In this topology, all routers form a neighborship with all other routers.

Reminder

So far, we've discussed dynamic neighbor formation. Dynamic neighbor formation uses multicast via the EIGRPv6 Multicast Group with the address FF02::A.

To see if the router has joined FF02::A, the show ipv6 interface command can be used. To view a specific interface, use the show ipv6 interfaces [interface] command.

R-1#show ipv6 interface g0/0
GigabitEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80:123::1 
  No Virtual link-local address(es):
  Global unicast address(es):
    2001:123::1, subnet is 2001:123::/64 
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::A

Multicast Neighbors for EIGRPv6 Summary

Dynamic EIGRPv6 neighborships via multicast are easy to configure (as it's intended to be). Simply, create the router process, RID and enable per interface.

A syslog will generate a message notifying the new neighborship when routers on a common link have been properly enabled.

The neighborship can be further verified by examining the EIGRPv6 Neighbor table with the show ipv6 eigrp neighbors command.

Unicast Neighbors for EIGRPv6

There are cases where it’s desirable to statically configure neighborships with unicast. For example, we may want more control of a WAN link.

EIGRPv6 Static Neighbors
EIGRPv6 Static Neighbors

Multicast to Unicast

Let's suppose a scenario with the above topology where dynamic (multicast) EIGRPv6 has already been configured between neighbors and we want to change it to static (unicast):

This is done by issuing the neighbor [LLA] [egress interface] command under the EIGRPv6 router process.

R-1(config)#ipv6 router eigrp 36
R-1(config-rtr)#neighbor FE80:12::2 g0/0
R-1(config-rtr)#int g0/0
R-1(config-if)#ipv6 eigrp 36
R-1(config-if)#end
R-1#
*Mar 25 05:51:31.991: %DUAL-5-NBRCHANGE: EIGRP-IPv6 36: Neighbor FE80:12::2 (GigabitEthernet0/0) is down: Static peer replaces multicast

Notice that the neighborship goes down and multicast has been replaced with unicast (static).

To bring up the static neighborship let's configure the WAN router on the other side of the link:

WAN(config)#ipv6 router eigrp 36
WAN(config-rtr)#neighbor FE80:12::1 g0/0
WAN(config-rtr)#int g0/0
WAN(config-if)#ipv6 eigrp 36
WAN(config-if)#end

WAN#
*Mar 25 06:03:25.062: %DUAL-5-NBRCHANGE: EIGRP-IPv6 36: Neighbor FE80:12::1 (GigabitEthernet0/0) is up: new adjacency

Below are the neighbor tables:

R-1#show ipv6 eigrp neighbors 
EIGRP-IPv6 Neighbors for AS(36)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   Link-local address:     Gi0/0                    14 00:01:50    2   100  0  6
    FE80:12::2

WAN#show ipv6 eigrp neighbors 
EIGRP-IPv6 Neighbors for AS(36)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   Link-local address:     Gi0/0                    14 00:02:11    3   100  0  6
    FE80:12::1

Our static neighborship with unicast has been formed.

Let's verify that our neighbors are indeed have a static neighborship. This can be done by adding the keyword detail to the show ipv6 eigrp neighbors command:

R-1#show ipv6 eigrp neighbors detail
[Output abbreviated]
EIGRP-IPv6 Neighbors for AS(6)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   Link-local address:     Gi0/0                    14 00:10:53    1   100  0  6
    FE80:12::2
   Static neighbor

So changing dynamic neighbors to static neighbors is easy. There are times, however, that we may be want to configure static neighbors without first having a dynamic neighborship.

Unicast Only

When configuring routing protocols, there are times where special care is needed to satisfy security concerns. One such case arises when we want to connect to a zone where we have less control. Maybe we're connecting to a WAN link.

In such a case, we don't want any multicasts going out. Next, we'll configure a static neighborship such that no multicasting is used.

To do this, the configuration is similar to forming a dynamic neighborship. There are two additional items to consider:

  • Issue the neighbor [LLA] [egress interface] command under the router process.
  • Enable the EIGRPv6 process under the interface last.

R-1(config)#ipv6 router eigrp 36
R-1(config-rtr)# eigrp router-id 1.1.1.1
R-1(config-rtr)# neighbor FE80:12::2 g0/0
R-1(config-rtr)#int g0/0
R-1(config-if)# ipv6 eigrp 36

R-2(config)#ipv6 router eigrp 36
R-2(config-rtr)# eigrp router-id 2.2.2.2
R-2(config-rtr)# neighbor FE80:12::1 g0/0
R-2(config-rtr)#int g0/0
R-2(config-if)# ipv6 eigrp 36

After R-2 is configured, the syslog messages are generated:

R-1#
*Mar 23 08:09:31.779: %DUAL-5-NBRCHANGE: EIGRP-IPv6 36: Neighbor FE80:12::2 (GigabitEthernet0/0) is up: new adjacency

R-2#
*Mar 23 08:09:31.776: %DUAL-5-NBRCHANGE: EIGRP-IPv6 36: Neighbor FE80:12::1 (GigabitEthernet0/0) is up: new adjacency

We have our neighborship.

Let's confirm that no multicasts have been transmitted with the show ipv6 eigrp interfaces detail [interface] command:

R-2#show ipv6 eigrp interfaces detail g0/0
EIGRP-IPv6 Interfaces for AS(36)
                              Xmit Queue   PeerQ        Mean   Pacing Time   Multicast    Pending
Interface              Peers  Un/Reliable  Un/Reliable  SRTT   Un/Reliable   Flow Timer   Routes
Gi0/0                    1        0/0       0/0           5       0/0           50           0
  Hello-interval is 5, Hold-time is 15
  Split-horizon is enabled
  Next xmit serial <none>
 are transmitted Packetized sent/expedited: 1/0
  Hello's sent/expedited: 40/2
  Un/reliable mcasts: 0/0  Un/reliable ucasts: 2/2

We can see no multicasts have been transmitted and a some unicasts have.

EIGRPv6 Neighbor Table

After neighbor formation, an entry is made and maintained in the EIGRPv6 Neighbor Table.

The EIGRPv6 Neighbor Table can be viewed with the show ipv6 eigrp neighbors command.

R-1#show ipv6 eigrp neighbors
EIGRP-IPv6 Neighbors for AS(6)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   Link-local address:     Gi0/0                    14 00:10:15    1   100  0  7
    FE80:12::2

The output shows us:

  • Autonomous System (AS) - All neighbors must be configured in the same AS. A router can exist in multiple EIGRPv6 domains by running multiple EIGRPv6 ASs.
  • H (Handle) - This number is given to a neighbor in the order the neighborship was created. The first number assigned is 0.
  • Address - This is the IPv6 Link-Local Address (LLA) of the neighbor.
  • Interface: The egress interface of the local device.
  • Hold Time - If the local device hasn't heard from this neighbor and the hold timer expires, it will consider its neighbor down.
  • Uptime - This is the time in hours, minutes, and seconds since the neighborship has formed.
  • Smooth Round Trip Timer (SRTT) - The average time in milliseconds (ms) for the local device to send an EIGRP packet and receive the corresponding Acknowledgement packet. This timer is used to determine the Re-transmit Timeout (RTO).
  • RTO - The amount of time, in milliseconds, that the router waits for an acknowledgment before re-transmitting a reliable packet from the re-transmission queue to a neighbor.
  • Queue count - A value of '0' indicates that no EIGRP packets are in the queue. If there are packets in the queue, there may or may not be delay and/or jitter on the link connected between neighbors. Convergence may also be noticeably slower.
  • Seq Num - The sequence number of the last update, query, or reply packet that was received from the neighbor.

Here are a list of commands that show various output from the EIGRPv6 neighbor table:
show ipv6 eigrp neighbors
show ipv6 eigrp neighbors [interface]
show ipv6 eigrp neighbors detail
show ipv6 eigrp neighbors detail [interface]

Summary

This lesson on EIGRPv6 neighbors covered a lot of ground. Understanding how neighborships form helps to ensure that the EIGRPv6 domain will behave as expected.

This lesson used different topologies to illustrate various ways that neighborships can form.

There are five packet types that neighbors use to communicate routing information

  1. Hello - Used to discover, establish and maintain neighborships.
  2. Update - Used to share a device’s EIGRPv6 topology table.
  3. Acknowledgment - Verifies an Update packet was received.
  4. Query - After the primary route fails and the device doesn't know of an alternative route, it will query neighbors for an alternate route.
  5. Reply - A router that receives a query packet, must reply.

Reliable Transport Protocol (RTP) is used by EIGRPv6 neighbors to transmit the above EIGRPv6 packets.

The Hello Timer is the interval that a device will send Hello packets.

If Hold Down Timer expires for a neighbor, that neighbor is considered down.

Multicast is used for dynamic EIGRPv6 neighbors and Unicast is used for manually configured static neighbors.

Various EIGRPv6 Neighbor Table was covered in detail.

There are several commands that can be used to display information from the EIGRPv6 Neighbor Table. Some commands list different information while some commands can leave out unnecessary information making the output easier to read.

Related Lessons

IPv6 Unicast - Explains the Link Local Address.
EIGRP for IPv6 Introduction
DUAL Metrics for EIGRPv6

RFC 7868: Cisco's Enhanced Interior Gateway Routing Protocol (EIGRP)
CCIE Routing and Switching, v5.0, Volume 1, Fifth Edition
Network Urge: EIGRP Tables
Packet Life: RTP in EIGRP
CCNA Tutorials: Reliable Transport Protocol RTP for EIGRP

To continue reading, please login or become a member for full access...