8-5. IPv6 Routing
When interconnecting IPv6 networks together, a routing protocol is required. IPv6 supports static, RIP, OSPF, EIGRP, and IS-IS routing. Most of these protocols had to be revised to be able to deal with IPv6 addresses. However, the routing protocols for IPv6 work the same way as they do with IPv4. In fact, they still maintain the same routing principles. The following material demonstrates how to configure IPv6 routing for static, RIP, OSPF, EIGRP, and ISIS.
Configuring a static route for IPv6 is almost the same as it is in IPv4. In IPv4, one can specify the next hop IP address or/and the exit interface. In IPv6, there is an extra feature. The next hop IP address in IPv6 can either be the link local address or the global address. The following examples show how to configure an IPv6 static route using these three different methods:
Router# conf t Router(config)# ipv6 route 2001:0db8:BEEF::/32 FA1/0 Router(config)# ipv6 route 2001:0db8:BEEF::/32 FA1/0 fe80::2 Router(config)# ipv6 route 2001:0db8:BEEF::/32 2001:0db8:FEED::1
The first static route shows the route to the network 2001:0db8:BEEF::/32 is configured via interface FastEthernet1/0. The second static route gives an option of the link-local next hop address, which is specified with the fe80 prefix. The third static entry shows a route to the network that points to the global IPv6 address of 2001:0db8:FEED::1.
RIP routing using IPv6 requires the use of a RIP version called Routing Information Protocol next generation or RIPng. The basic features of RIPng are the same as RIPv2. For example, this is still a distance vector protocol, there is a maximum hop limitation; however, RIPng is updated to use IPv6 for transport. Also, RIPng uses the IPv6 multicast address of FF02::9 for all RIP updates.
Configuring RIPng on Cisco routers is simple. The biggest difference between configuring RIPv2 and RIPng on Cisco routers is now RIPng must be configured on a per network link or per-interface basis rather than per-network basis as in RIPv2. The following examples demonstrate how to enable RIPng and how to configure RIPng on a Cisco router interface:
Router# conf t Router(config)# Router(config)# ipv6 router rip RIP100 Router(config)# Router(config)# int Gig3/1 Router(config-if)# ipv6 rip RIP100 enable
The command ipv6 router rip rip_tag is used to enable RIPng on Cisco routers. The rip_tag is a tag to identify the RIP process. The RIPng is enabled on the Gigabit interface 3/1 with the command ipv6 rip rip_tag enable. The same command will be used to enable other RIP interfaces. This is different than configuring RIPv2 where the network statement needs to be issued for every RIP network.
The current OSPF version used in IPv4 is OSPFv2. Most of OSPF information relies heavily on the IP number (for example the router ID <area ID> and the link-state ID). To support IPv6, the OSPF routing protocol has been significantly revamped. The new OSPF version for IPv6 is OSPFv3. The basic foundation of OSPF still remains intact—for example, OSPFv3 is still a link state routing protocol. However, OSPFv3 uses the IPv6 link-local multicast addresses of FF02::5 for all OSPF routers and FF02::6 for OSPF designated routers.
OSPFv3 is now enabled on a per-link basis, not on a per-network basis on Cisco routers. This is similar to the changes in RIPng. OSPFv3 indentifies which networks are attached to the link and propagates them into the OSPF area. The following example demonstrates how to enable OSPFv3 and how to configure OSPFv3 on a Cisco router interface:
Router# conf t Router(config)# Router(config)# ipv6 router ospf 99 Router(config)# Router(config)# int Gig3/1 Router(config-if)# ipv6 ospf 99 area 0.0.0.0
The command ipv6 router ospf process_id is used to enable OSPFv3 on Cisco routers. OSPFv3 is enabled on the Gigabit interface 3/1 with the command ipv6 ospf process_id area area_id. The same command is used to enable other OSPF interfaces. The router in this example is configured to be area 0 which is the backbone (area 0.0.0.0).
EIGRP is inherently a multiprotocol routing protocol. It was designed to support non-IP protocols, such as IPX and Appletalk, and it supports the IP protocols IPv4 and now IPv6. IPv6 EIGRP uses the IPv6 link-local multicast addresses of FF02::A for all EIGRP Hello packets and updates.
IPv6 EIGRP is now configured over a network link, so there is no need to configure a network statement as in IPv4 EIGRP. The following example demonstrates how to enable IPv6 EIGRP and how to configure it on a Cisco router interface:
Router# conf t Router(config)# Router(config)# ipv6 router eigrp 999 Router(config-rtr)# no shut Router(config)# int Gig3/1 Router(config-if)# ipv6 eigrp 999
The command ipv6 router eigrp as_number is used to enable EIGRP on Cisco routers. The IPv6 EIGRP protocol is created in a shutdown mode by default. The no shutdown is issued to ensure that the protocol is enabled. Next, the IPv6 EIGRP is enabled on the Gigabit interface 3/1 with the command ipv6 eigrp as_number. The network link is now part of the EIGRP routing network.
As mentioned in Chapter 3, IS-IS is designed to work on the same network layer just like IP. Therefore, it does not require an IP protocol for it to function. Later, IS-IS was adapted to work with IP. Because of its IP independence, IS-IS is much easier than most protocols to incorporate with IPv6. Only a few adjustments to IS-IS have been made to better support IPv6.
Configuring IPv6 IS-IS is very similar to the method used in IPv4. In IPv6, IS-IS is always enabled on a per network link basis. This is the same for the IPv4 configuration. The same global command (clns routing) is used to enable the IS-IS routing protocol. The same NET address is used in the IPv6 configuration as in the IPv4 configuration. The only big difference is the use of keyword ipv6 when enabling the IPv6 IS-IS interface. The following example demonstrates how to enable IPv6 IS-IS and how to configure it on an interface of a Cisco router:
Router# conf t Router(config)# clns routing Router(config)# router isis Router(config-rtr)# net 49.0001.c202.00e8.0202.00 Router(config)# Router(config)# int Gig3/1 Router(config-if)# ipv6 router isis
The command clns routing is used to enable the connectionless network service. The command router isis will allow the IS-IS protocol to be configured. The net NET Address assigns the NET address to IS-IS. Then, the IPv6 IS-IS is enabled on the Gigabit interface 3/1 with the command ipv6 router isis.
This section demonstrated the steps for configuring IPv6 routing for static, RIP, OSPF, EIGRP, and IS-IS. As was demonstrated, the steps are similar to configuring routing for IPv4; however, there are some distinct differences required to enable an IPv6 interface.