Unix Support

3.1. Ethernet multicast

IPv6 makes heavy use of Ethernet's support for multicast transmissions. These weren't much used by IPv4, so I shall digress briefly to explain how they work.

A multicast Ethernet packet is one that's potentially addressed to more than one host. The set of hosts it's addresses to is called a multicast group, and is identified by a 48-bit address, just like an individual host is. A multicast address is distinguished by having the least-significant bit of its first byte (which is the first bit transmitted over the wire) set, so 00-C0-4F-68-12-CB is a unicast address, while 33-33-FF-68-12-CB is a multicast address. Note that FF-FF-FF-FF-FF-FF, the Ethernet broadcast address, is actually just a special multicast address.

Conceptually, then, an Ethernet interface has to listen not only for packets addressed to its unicast address, but also for packets addressed to any of the multicast groups of which it's a member. Precisely how this is implemented is happily irrelevant to us.

3.2. IPv6 Ethernet encapsulation (RFC 2464)

IPv6 packets are encapsulated in Ethernet packets just like IPv4 packets, but with a new Ethertype (86DD rather than 0800).

3.3. IPv6 multicast over Ethernet

To send an IPv6 multicast packet over Ethernet, one simply takes the last 32 bits of the destination IPv6 address, prepends 33-33- and uses that as the destination Ethernet address. Thus, an IPv6 packet addressed to FF02::1:FF68:12CB would be sent to the Ethernet address 33-33-FF-68-12-CB. Any host which is interested in packets for that IPv6 address is expected to be listening for the corresponding Ethernet address.

3.4. Neighbour discovery (RFC 2461)

Where IPv4 has ARP, IPv6 has NDP, the neighbour discovery protocol. For simple purposes, NDP and ARP are very similar: one node sends out a request packet (called a neighbour solicitation in NDP), and the node it was looking for sends back a reply (neighbour advertisement) giving its link-layer address. NDP is part of ICMPv6, unlike ARP, which doesn't even run over IP. NDP also uses multicast rather than broadcast packets, and that deserves a little more explanation.

For each unicast address it responds to, each host listens on a solicited-node multicast address. The solicited-node multicast address for a given unicast address is constructed by taking the last three octets of the unicast address and prepending FF02::1:FF00:0000/104. Thus, the solicited-node multicast address of 2001:630:200:8100:02C0:4FFF:FE68:12CB is FF02::1:FF68:12CB. It's the solicited-node multicast address that a node uses as the destination of a neighbour solicitation packet. This use of multicast means that most hosts don't get disturbed by neighbour solicitations that aren't either for them or for a host with a very similar IPv6 address.


Prev Home Next
IPv6 addressing (RFC 2373)   Stateless autoconfiguration (RFC 2462)

The title of this document is: IPv6 over Ethernet (and other links)
URL: http://www-uxsup.csx.cam.ac.uk/courses/moved.ipv6_basics/x84.html