Cisco designed the new EIGRPv6 (EIGRP for IPv6) to be almost identical to EIGRPv4 (EIGRP for IPv4). The IPv4 and IPv6 versions of EIGRP are even closer to each other than the two corresponding versions of OSPF. EIGRPv6 has to be enabled on all routers in the network just like EIGRPv4. EIGRPv6 then exchange messages allowing the routers to discover neighbors, form neighbor relationships, and finally advertise subnets along with the metric components for each route. EIGRPv6 also has the same successor and feasible successor (FS) concepts.
EIGRPv6 Configuration
EIGRPv6 involves the following configuration steps:
- Enable IPv6 routing using ipv6 unicast-routing command.
- Create an EIGRPv6 process using ipv6 router eigrp asn command.
- Assign an EIGRPv6 router ID using the eigrp router-id router-id command in router configuration mode.
- Enable EIGRPv6 on interfaces using the ipv6 eigrp asn command in interface configuration mode.
We will use the topology consisting of four routers as shown in Figure 13-9 for this example. The topology consists of four routers and some of you may have noticed that the topology is the same that we used for multi-area OSPFv3 configuration earlier in the chapter, and also uses identical IPv6 addressing scheme. The only difference is that there are no areas in EIGRPv6.
Figure 13-9 EIGRPv6 Routing Domain
R1 Configuration:
R2 Configuration:
R3 Configuration:
R4 Configuration:
You should carefully review the configuration for each router shown above. The number used in the ipv6 router eigrp asn command is the ASN (autonomous system number) and not the process ID as used by OSPFv3. The ASN must match for all the routers in the routing domain or autonomous system (AS). We have used the number 1 for the ASN on all routers. After this, all routers must explicitly set the RID (router ID) using the eigrp router-id command in router configuration mode. EIGRPv6 also uses a 32-bit RID llike OSPFv3, with identical rules for how the router picks the value. The rest of the configuration simply enables EIGRPv6 on all interfaces using the ASN to associate with the interface, using the ipv6 eigrp asn command.
Please keep in mind that if you do not use the same ASN on two EIGRP routers, they can never become neighbors. The Cisco IOS allows the EIGRPv6 routing process to be disabled and enabled using the shutdown and no shutdown commands in router configuration mode. The default status of the EIGRPv6 routing process when it’s created may depend on the IOS version you are using. The newer IOS versions usually have the EIGRPv6 routing process enabled by default. But we have included the explicit no shutdown command in router configuration mode to make sure EIGRPv6 works even if you happen to use an older IOS version to practice the example.
Table 13-6 Comparison EIGRPv4 and EIGRPv6 Configuration Commands
Function | EIGRPv4 | EIGRPv6 |
Create routing process and assign ASN (global configuration mode) | router eigrp asn | ipv6 router eigrp asn |
Define router ID explicitly (router configuration mode) | eigrp router-id rid | eigrp router-id rid |
Change number of multiple routes to same subnet (router configuration mode) | maximum-paths num | maximum-paths num |
Set the variance (router configuration mode) | variance multiplier | variance multiplier |
Set interface bandwidth and delay to influence metric calculation (interface configuration mode) | bandwidth valuedelay value | bandwidth valuedelay value |
Change hello and hold timers (interface configuration mode) | ip hello-interval eigrp asn timeip hold-time eigrp asn time | ipv6 hello-interval eigrp asn timeipv6 hold-time eigrp asn time |
Enable EIGRP on an interface | network ip [wildcard-mask](router configuration mode) | ipv6 eigrp asn(interface configuration mode) |
Additional EIGRPv6 Configuration
We have covered the core configuration of EIGRPv6 so far. In this section, we are going to cover several additional configuration options for EIGRPv6.
Bandwidth and Delay to Influence EIGRPv6 Metric
EIGRPv6 uses the exact same parameters, specifically the interface bandwidth and delay, which are used by EIGRPv4 to calculate the metric for each route. The IOS configuration commands to set those parameters, specifically the bandwidth and delay commands used in interface configuration mode, are also the same for EIGRPv4 and EIGRPv6. The similarities do not end here and the exact same formula is used by EIGRPv4 and EIGRPv6 to calculate the metric for a route.
Let us consider a design with all the routers are dual-stack running both IPv4 and IPv6, with EIGRPv4 and EIGRPv6 enabled on all interfaces. In some conditions, the EIGRPv4 metric for a route to an IPv4 subnet will be the same as the EIGRPv6 metric from the same router to an IPv6 subnet in the same location.
EIGRP Load Balancing
EIGRPv6 and EIGRPv4 use the same concepts and configuration commands for equal-cost and unequal-cost load balancing. The configuration settings are made with the maximum-paths and variance commands in EIGRPv6 router configuration mode, reached with the ipv6 router eigrp command. EIGRPv4 also uses the same commands in EIGRPv4 router configuration mode, reached with the router eigrp command. Please keep in mind that these settings have to be configured separately for EIGRPv4 and EIGRPv6 on dual-stack routers despite the fact that same configuration commands are used.
EIGRP Timers
EIGRPv6 uses the same concepts for the Hello and Hold timers as does EIGRPv4. The commands used to set these parameters have to be used in global configuration mode. In order to set these parameters separately for EIGRPv6 and EIGRPv4, the Cisco IOS uses the ipv6 keyword for EIGRPv6 commands and the ip keyword for the EIGRPv4 commands.
In the above example, we have set the Hello timer equal to 3 and 5 seconds for EIGRPv6 and EIGRPv4 respectively. Please note that these values are absolutely arbitrary and will likely have the same values for both EIGRPv4 and EIGRPv6 in a real network.
EIGRPv6 Verification and Troubleshooting
We have talked a lot about similarities between EIGRPv6 and EIGRPv4 concepts and configuration commands. In this section, we look at EIGRPv6 verification and troubleshooting, discovering even more similarities between EIGRPv6 and its predecessor EIGRPv4.
There are lot more similarities than differences, so it makes sense to list the few differences that exist between the two protocols. The list is pretty short:
- EIGRPv6 advertises IPv6 prefixes, while EIGRPv4 not surprisingly advertises IPv4 subnets.
- EIGRPv6 show commands for verification and troubleshooting use the ipv6 keyword as compared with ip keyword by WIGRPv4 show commands.
- EIGRPv6 routers use the same checks for deciding whether to become neighbors, except that EIGRPv6 routers may become neighbors even if they are in different subnets. You may recall that EIGRPv4 neighbors must be in the same IPv4 subnet to become neighbors.
In this section on EIGRPv6 verification and troubleshooting, we follow the same sequence that is used by EIGRPv6 itself when bringing up the EIGRPv6 routing process. We will examine EIGRPv6 interfaces, neighbors, topology and finally routes installed by EIGRPv6 in the IPv6 routing table.
The verification and troubleshooting examples in this section will all use the topology shown earlier, composed of routers R1, R2, R3 and R4.
EIGRPv6 Interfaces
When you enable EIGRPv6 on an interface using the ipv6 eigrp asn command, the router would start discovering neighbors off that interface. The first step in EIGRPv6 verification would be to make sure it is enabled on all the right interfaces. One of the most common problems associated with EIGRPv6 probably is that it is not enabled on an interface.
Before we jump into the specifics of relvent show commands here, let’s first make FastEthernet 0/0 of R1 a passive interface.
You may use the show ipv6 eigrp interfaces command to verify if EIGRPv6 has been enabled on correct interfaces:
The show ipv6 eigrp interfaces command shows three interfaces that have EIGRPv6 enabled. But it does not list FastEthernet 0/0 despite the fact it has EIGRPv6 enabled, just because it is configured as passive interface. You can use the show ipv6 protocols command to list all EIGRPv6-enabled interfaces including passive interfaces.
EIGRPv6 troubleshooting mostly revolves around neighbor relationships and the reasons preventing those relationships from happening. You may revisit the EIGRPv6 configuration earlier in the chapter at this point and note that we used the ipv6 eigrp 1 command under interface FastEthernet0/0. There are no other EIGRPv6 routers reachable off FastEthernet0/0 of R1 and the omission of ipv6 eigrp 1 command from FastEthernet0/0 will not impact any EIGRPv6 neighbors. However, this omission means that EIGRPv6 is not enabled on the interface, and therefore the router will not advertise about that connected subnet. As a result, the rest of the routers in the topology will not be aware of the subnet and will not be able to route packets to the subnet.
You may also run into issues related to the passive interface feature of EIGRPv6. When a potential EIGRPv6 neighbor is connected to an interface and you make the interface passive to the EIGRPv6 process, neighbor relationships cannot form off that interface. Please keep in mind that even if only one of the two routers has a passive interface, the neighbor relationship will fail.
Let’s just disable EIGRPv6 on FastEthernet0/1 of R4 and see its effect in the IPv6 routing tables of other routers. Before doing that, you may examine the IPv6 routing table of R1 to verify that the subnet corresponding to FastEthernet0/1 of R4 is listed.
Let’s disable EIGRPv6 on FastEthernet0/1 of R4.
You may display the IPv6 routing table of R1 again, and the subnet corresponding to FastEthernet0/1 of R4 will no longer be listed
EIGRPv6 Neighbors
When two EIGRPv6 routers are present on the same data link, they receive each other’s Hello messages. The Hello messages enable routers to discover each other and also contain some parameters. EIGRPv6 routers check the Hello parameters to determine if they should become neighbors. If the parameters do match, the two routers become neighbors and each router adds the other to its EIGRPv6 neighbor table, as listed with the show ipv6 eigrp neighbors command. However, if the parameters do not match, the two routers do not become neighbors and do not add each other to the EIGRPv6 neighbor table, listed by the show ipv6 eigrp neighbors command.
You have to understand which parameters must match for EIGRPv6 routers to become neighbors, in order to troubleshoot EIGRPv6 neighbor relationships. EIGRPv6 uses the same list of parameters as EIGRPv4 except one difference. EIGRPv6 does not require neighbors to be in the same subnet as EIGRPv4 does.
Table 13-7 EIGRP Neighbor Checklist
Requirement | EIGRPv4 | EIGRPv6 |
Interface is in up/up state | Yes | Yes |
Interface addresses are in the same subnet | Yes | No |
The same ASN is used on router eigrp/ipv6 router eigrp commands | Yes | Yes |
Hello and hold timers have to match | No | No |
RIDs (router IDs) have to be unique | No | No |
K-values (used in EIGRP metric calculation formula) have to match | Yes | Yes |
EIGRP authentication must pass (optional) | Yes | Yes |
You have to check all these conditions, if EIGRPv6 routers are not able to become neighbors. The show ipv6 protocols commands lists a lot of useful information for troubleshooting EIGRPv6, including ASN (autonomous system number), K-values, and EIGRPv6 interfaces.
The show ipv6 eigrp neighbors command lists each neighbor using link-local IPv6 address along with local interface.
The shaded IPv6 address in above output should match the link-local IPv6 address on FastEthernet0/0 of R4 that is the only router reachable off FastEthernet0/1 of R1. The show ipv6 interface brief command executed on R4 confirms that the IPv6 link-local address of FastEthernet0/0 matches the address listed on R1 for the EIGRPv6 neighbor, as shown below:
EIGRPv6 Topology Database
Once two EIGRPv6 routers become neighbors, they should exchange all appropriate network topology information. EIGRPv6 uses bandwidth, delay, reliability and load as metric components just like EIGRPv4. The metric calculation formula used by EIGRPv6 is also identical to the one used by EIGRPv4. The best route to a network is known as successor router to EIGRPv4 and EIGRPv6 retains the concept. The FS (feasible successor) is a route that meets the feasibility condition and can potentially become the successor route if the successor route fails. EIGRPv4 and EIGRPv6 both have the same concept of FS route. The feasibility condition dictates that the reported distance (the composite metric reported by a neighbor to reach a subnet) is better (lower) than the currently best metric (successor metric) to reach the same subnet.
The output of show ipv6 eigrp topology command executed on R1 is show below:
The highlighted part in above output provides loads of useful EIGRPv6 topology information. The remote subnet 2001:DB8:1:4::/64 is in passive state as indicated by code P. The passive state is the desired stable state of EIGRPv6 routes. The subnet has one successor, which has an FD (feasible distance) of 307200. The subnet is reachable via next-hop link-local IPv6 address FE80::C003:10FF:FECC:0. The two numbers 307200/281600 listed in round brackets represent the FD (metric) and the RD (reported distance) respectively. The subnet is reachable off local interface FastEthernet0/1.
The show ipv6 eigrp topology command provides more detailed topology information about the subnet, as shown below:
EIGRPv6 IPv6 Routes
The ultimate goal of any dynamic IPv4/IPv6 routing protocol is to find routes to all subnets and install those routes in the IPv4/IPv6 routing table, and EIGRPv6 is no exception.
The IPv6 routing table of R1 displayed above has several subnets, but two of them are highlighted. The first highlighted subnet 2001:DB8:1:4::/64 has a single route off FastEthernet0/1 with an AD (administrative distance) of 90 and metric (feasible distance) of 307200. The second highlighted subnet 2001:DB8:1:23::/64 has two routes off Serial0/1 and Serial0/0. Both the routes have an AD 90 and metric 2195456 and are listed on two separate lines.