=======================[ Readings ]====================== Read about IPv6 in the textbook. There are several helpful links you should be looking at while reading: http://www.cisco.com/en/US/technologies/tk648/tk872/technologies_white_paper0900aecd8054d37d.html Yar Tikhiy's free book has great, in-depth explanations of the "why" and "how" of IPv6. Read: Ch 2, Ch 3 (less 3.3.5), Ch 4.3, Ch 5.1: https://sites.google.com/site/yartikhiy/home/ipv6book A nice graphic of the Neighbor Discovery (ND) state machine: https://njetwork.wordpress.com/2014/01/07/ipv6-nd-state-machine/ ND replaces ARP for IPv6, and forms a part of ICMPv6. See below. Cheat sheets: http://teachmeipv6.com/IPv6-Essentials-Cheat-Sheet.pdf http://www.roesen.org/files/ipv6_cheat_sheet.pdf -------[ Understanding IPv6 Neighbor Discovery (ND) ]------- IPv6, same as IPv4, is a layer 3 protocol that must be carried on the wire in a link-layer (layer 2) wrapper. This means that the IPv6 must establish mappings between IPv6 addresses and MAC addresses in order to make L2 frames. IPv4 users ARP for that. IPv6 does not use ARP. Instead, it uses ICMPv6 Neighbor Discovery (ND) packets to accomplish similar discovery---with a few important differences in behavior. For one thing, the IPv6 ND state machine is precisely specified, unlike IPv4's ARP-related behavior (which differs a lot between systems; e.g., ARP spoofing for some systems is best done with ARP requests, for others with ARP replies). Read about ND in Chapter 5 of "IPv6 for IPv4 Experts" book, and in 6.3 and 6.4. A nice picture of the ND state machine is http://njetwork.wordpress.com/2014/01/07/ipv6-nd-state-machine/ . The file http://www.cs.dartmouth.edu/~sergey/ipv6/ns-na-ping-shortaddr.pcap contains a capture of some of these ND packets (ignore the first MDNS packet; Macs are very chatty and continually announce their presence on the network via the MDNS protocol). Work through this packet capture to see how ND works in ARP-like manner. It is very important to notice that, quite unlike IPv6, the first step an IPv6 host takes when it wants to talk to another host---even on the same LAN---is to contact the router first, not the other host. The router would issue an ICMPv6 Redirect if the other host is on the same LAN and can be communicated with directly. This may seem wasteful, but, should that other host roam away, however, the router would still be able to maintain the connection with it, and forward packets accordingly. Thus, in IPv6 being on the same subnet does not require being on the same LAN, and an IP address that looks like your next-door neighbor on the LAN may in fact be half way across the world. Figs. 5.17--5.25 explain different aspects of this key design decision for IPv6. Make sure you understand them. ---------------------[ Get your IPv6 network! ]--------------------- Go to https://tunnelbroker.net , register for a free account, and get your own /64 IPv6 network prefix. Commands to configure your machine are available in the "Example Configurations". [These commands work best if you have a routable IP address (e.g., in 129.170./16). Doing this behind a NAT depends on the NAT box passing protocol 41 correctly (see below)]. If you set up your IPv6 connectivity from home or otherwise behind a NAT, see my notes under "Getting IPv6 Internet connectivity" in http://www.cs.dartmouth.edu/~sergey/netreads/task5.txt . Test your connection by pinging Google's public DNS servers: ping6 2001:4860:4860::8888 ping6 2001:4860:4860::8844 This file contains a packet capture of ICMPv6 ping on eth0 of one IPv6 host pinging another. Their ICMPv6 traffic is wrapped in IPv4. Note the protocol 41 in the IPv4 header field; this is the 6-in-4 tunneling protocol. The IPv6 packet is included as is, right after the IPv4 header: http://www.cs.dartmouth.edu/~sergey/ipv6/gif1.pcap I will shortly stand up an IPv6 system, and will ask you to ping it (ping6) from your IPv6 network.