IPv6 Basics

This document only covers IPv6 nodes, not IPv6 routers, although the latter play an important role beyond just routing packets between networks; this was to keep it's length reasonably short.

Starting points for more in depth information are a presentation of Viagenie to RIPE and the collection of documents regarding IPv6 at JOIN. They were also used in creating this text, as were the general parts of the NetBSD IPv6 Networking FAQ.


A New Format For Addresses

The major problem with IPv4 that IPv6 is supposed to fix is the scarcity of public IP address space. IPv4 IP addresses are 32 bit in length; IPv6 IP addresses were chosen to have 128 bit. Of these, 64 bit are for 'local use', and another 16 are for 'site use' in structured networks. This means that in a typical IPv6 site assignement you can have as many networks as you can have hosts in a IPv4 Class B. Of the remaining 48 bit, 11 are in some way or another reserved, 13 bit are planned for top level aggregation (i.e. assignments of BGP speaking providers), and 24 bit are planned for a provider's internal infrastructure. There are 32 times as many 'sites' possible in IPv6 as there are addresses in IPv4. As one person put it: "there's not just enough address space for anybody. There's enough address space for anybody, their fleas and their fleas' fleas". Therefore, the learned reflex of IPv4 admins to preserve addresses is unneccessary in IPv6, and should take a late second to aggregation considerations.

Another problem with current IPv4 space is not by principle, but by history, and that is CIDR and provider-aggregatable (PA) address space having come rather late; thus, 192/8 e.g. produces >10000 routes in the default-free zone, 62/8 will produce only 512 routes max, even though the assignments in the latter space are usually a lot smaller than the typical 192-space /24. Thus, a lower limit of /35 will be strictly enforced in the inter-provider BGP. In order to make this strict provider dependence of addresses easier to digest for end users, the planning people have gone to great lengths to ease renumbering of address space, and it continues to be a design goal that's forever present in IPv6 consciousness. One of the means to gain that goal is to have nearly all hosts have their IP addresses and so on configured from a central location. The most common way is having a host configure their addresses from a combination of announced prefix and MAC address.

128 give a lot of ones and zeroes, and even a conversion to base 10 at byte boundaries give a very long number. Therefore, IPv6 addresses get written as a procession of hex numbers with a ':' between every 4 numbers. 6dns.de.kpnqwest.net thus has 2001:0680:0000:0000:0000:0000:0000:0002 as full IPv6 address. To get that address even shorter, there's the convention of dropping leading zeroes in a number-quartett and to substitute any number of all-zero quartetts by a :: once, so one gets: 2001:680::2 (which is short enough to remember 'just like that' :-).

How a IPv6 Autoconfigured Node Boots Its Networking

As soon as the node has a linklocal address, it can continue with router solicitation, which asks the routers on the LAN (if present) to supply prefixes and a default router (and a lifetime for both values).

IPv6 Config on Solaris8