12.6. Cisco Router
This section contains a short description of how to configure a Cisco router for IPv6. Configuration of other routers might be fairly similar. If you are familiar with your routing hardware, you will figure out how to do it, or your vendor can provide the necessary information.
Cisco's IPv6 support begins with the Cisco IOS 12.2(2) Technology release. Make sure you are using the latest release because new features will be supported with every update.
Figure 12-6 shows the interface configuration options.
Figure 12-6. Cisco Interface configuration options
First, I needed to enable IPv6 packet forwarding. This is not enabled by default (different from IPv4). It is done with the global command ipv6 unicast-routing (not shown on the screenshot). Next, I configured the interface Ethernet 0/0. By typing ipv6 ?, I received a list of available commands. From this screen, the IPv6 address can be configured, as well as options for linking MTU, Neighbor Discovery, routing, and filters. The command ipv6 nd ? displays the options available for the configuration of Neighbor Discovery. From this screen, you can configure flags to specify whether hosts on this link should use DHCP for address-related or non-address-related information and different intervals, such as the router advertisement interval. The subnet prefix and the lifetime advertised in Router Advertisement messages are also configured here. I made the first configuration steps and set this router up as a 6to4 tunnel with the Microsoft 6to4 relay router as tunnel destination.
Here are some interesting ND commands that you can use on your Cisco router. This is not a complete list, but it should help you get started and give an idea of how you can configure your routers:
For a complete list of router configuration commands, refer to your Cisco documentation. For a discussion of routing protocols, refer to Chapter 8.
The next step I performed was to verify my interface configuration. Figure 12-7 shows the output.
Figure 12-7. Verifying the interface configuration
The output shows that I have a link-local address with the prefix FE80 and a global unicast address with the prefix 2001. Both addresses have the same interface identifier of 210:7BFF:FE0B:75A0. The multicast group addresses joined are FF02::1 (all nodes), FF02::2 (all routers), and FF02::1:FF0B:75A0 (solicited-node multicast address). A list with all the configuration options follows, stating timers, intervals, and address configuration options. As you can see on this screenshot, there is also an interface called tunnel0. It shows the current configuration of our tunnel to the as8758 Tunnel Broker. The tunnel entry point on our side has the global unicast address of 2001:08E0:ABCD::2CE. This address must be known to the tunnel exit pointin this situation, by as8758.
Other tools that can be used on Cisco's current IOS are ping, traceroute, and a DNS client, all operational in IPv6.
Figure 12-8 shows the Router Advertisement in the trace file.
Figure 12-8. Router Advertisement in the trace file
The router sends the advertisement to the all-nodes multicast address FF02::1, so all nodes on the link receive it. Looking at this packet in the detail window, we can see how the router is configured. The hop limit is set to 32. DHCP (administered protocol) is not used for address information, but is to be used by the hosts to get non-address-related information through DHCP. The lifetime is configured for 1,800 seconds. The first option of type 1 contains the router's link-layer address. The Type field of the second option is set to 3 for prefix information. The prefix length is 64 bits, and the lifetime is set to infinite. The prefix advertised in this case is CAFF:CA01:0:56::/64. This is what I had configured on the router prior to taking this trace file. All hosts that boot on this link send out a Router Solicitation message and receive this Router Advertisement. They learn all the parameters, including the prefix information from the router and autoconfigure for one or more IPv6 address(es).