12.8. Description of the Tests
This next section has a description of some tests that I created and analyzed in trace files.
12.8.1. Pinging with IPv6
On the command prompt of host Marvin, I entered the following command:
The %4 at the end of the address is not a typo; it is mandatory when pinging an IPv6 link-local address. It identifies the source interface from which the ICMPv6 packet should be sent. In this case, the interface number for the local area connection is 4. To find the interface number on a Windows host, use the command netsh interface ipv6 show interface. On a Linux host, set the parameter -I interface name instead of the %interface number.
The result in the trace file is shown in Figure 12-9.
Figure 12-9. Tracefile with an IPv6 ping
Frame 1 is the Echo Request sent out by Marvin; Frame 2 is the Echo Reply from the other host, Ford. In the DLC header, we see the link-layer addresses of the source and the destination interface. The Ethertype is set to 86DD for IPv6. In the Source and Destination address fields in the IPv6 header, you can see how the MAC address is used to build the link-local IPv6 address with the prefix FE80. Between the third and fourth byte of the MAC address, FFFE is inserted. The Payload Length field tells us the length of the data carried after the header. The Next Header field is the same field as the Protocol Type field in IPv4. Protocol number 58 specifies ICMPv6. The ICMPv6 header shows what type of ICMPv6 message this is. Message type 128 is an Echo Request, and 129 is an Echo Reply. The identifier and sequence number are used to match requests and replies. All these fields are important when you need to troubleshoot.
12.8.2. Pinging the 6Bone over the IPv4 Infrastructure
The trace file in Figure 12-10 shows a ping to a remote host on the Internet. Because our ISP does not offer native IPv6, I've configured a 6to4 Gateway internally, so we have the possibility to tunnel our IPv6 data over an IPv4 route. In the IPv4 header (marked gray) you see the public IPv4 address of the 6to4 relay (126.96.36.199), which receives and decapsulates the IPv4 packet and forwards the IPv6 packet to an IPv6 host. The IPv4 sender address (188.8.131.52) is the address of our 6to4 gateway.
Figure 12-10. Pinging the 6bone through an IPv4 infrastructure
The IPv6 address of the remote host is 2002:836B:9820::836B:9820. The summary line shows the Echo Request, the Echo Reply, and the two beautiful IPv6 addresses. The Protocol field in the IPv4 header, which cannot be seen in this screenshot, has the value 41 for IPv6.
12.8.3. Traceroute with IPv6
The screenshot in Figure 12-11 shows the output of a traceroute command. As described in Chapter 4, traceroute uses the Echo Request and Reply messages. By raising the hop limit by one for every packet, traceroute forces all routers on the path to a given destination to send back an ICMP Time Exceeded message. This way, the source host gets a list of all routers along the path.
Figure 12-11. tracert6 to www.6bone.net
I issued tracert6.exe for 3FFE:B00:C18:1::10, the IPv6 address of www.6bone.net. The first hop, 2002:836B:9820::836B:9886, is the endpoint of the tunnel. To get there, any number of IPv4 hops is possible. tracert6 cannot provide any information about the tunnel. Only the hops from the endpoint of the tunnel to the final destination are displayed.
Figure 12-12 shows this same command when tracing it with Sniffer.
Figure 12-12. tracert6 to the 6Bone in the trace file
The first frame shows the first Echo Request sent to the final destination. This packet has a hop limit of 1. The first router in the path, 2002:836B:9820::836B:9886, replies with a Time Exceeded message. Frames 2, 4, 6, 8, and 10 are the replies from the routers along the path to the destination. Compare the source address of these replies with the tracert6 output in Figure 12-11, and hey, do they match?
12.8.4. Browsing with IPv6
There are many IPv6-accessible web sites in the World Wide Web. For a list of IPv6-accessible web sites, go to http://www.ipv6.org/v6-www.html. To test your IPv6 connectivity, you can also try our web site, http://ipv6.sunny.ch. It's accessible only over IPv6. Current browser implementations on IPv6-capable and -enabled operating systems are usually able to display IPv6 web sites. If you have a proxy server configured in your browser configuration, make sure it's also IPv6-compatible. If not, you need to disable the proxy server for IPv6 surfing.
Figure 12-13 shows a Firefox screenshot of an interesting web site that is accessible only over IPv6.
Figure 12-13. Browsing over IPv6 with Mozilla Firefox
As a test, I chose Peter Bieringer's IPv6 web site at http://www.ipv6.bieringer.de. The screenshot shows interesting details about my IPv6 connection. It was taken on a Debian Linux host with the IPv6-capable browser Mozilla Firefox.
This should be enough to whet your appetite. I hope this chapter gives you some ideas to start playing with IPv6. Have fun! And remember: "Experience is what you get if you don't get what you wanted."