Internet Protocol version 6 (IPv6 or IPng) was created to fix some of the problems that weren't foreseen when IPv4 was created. Most Internet Service Providers are capable of, and are using IPv6, but the vast majority of Internet users (as of 2010) are still using IPv4. Internet Protocol is what makes the Internet work! Internet Protocol version 6 was designed to make the Internet work better by providing more addresses, and to improve the functionality of multicast and special purpose uses of Internet Protocol.
IPv6 Addresses
An "IP" is an "Internet Protocol" address. IP addresses must be globally unique. All computers that use the Internet use only these unique IP addresses to talk to each other. Names such as http://www.google.com are just for human convenience and are never used for computer communication. Computers use Domain Name Service (DNS) to turn the names humans understand into IP addresses computers understand. There are two addressing schemes: IPv4 and IPv6.
An IPv6 address is not part of the hardware of the computer, it is not a physical address, it is a logical address. An IPv6 address is something you can configure on the computer and is a unique, logical address that is stored in the computer's software. This property of being unique makes it easy to find a specific computer using the IP address. The fact that the IP address does not come from the computer's hardware means that a computer can be replaced and the IP address it was using goes to the new computer instead of being thrown away with the old computer. This also allows you to change the address of the computer when you move the computer to another network. IP addresses are often referred to as logical addresses whereas MAC addresses are referred to as physical addresses.
IPv6 Address Notation
IPv6 addresses in long form are represented as eight sets of four hexadecimal digits separated by colons, but that makes for long addresses (2001:0db8:0000:0000:0000:0000:0002). IPv6 addresses can be written in short hand using two conventions:
- Zero Suppression
- all IPv6 address segments are 16 bits
- The leading zeroes in each segment can be left out of the address segment.
- Zero Compression
- Since all addresses contain 8 segments, following sections of zeroes can be collapsed to a double colon.
Using these two rules, our example IPv6 address 2001:0db8:0000:0000:0000:0000:0002 collapses to 2001:db8::2.
IPv6 Address Types
Address Type | Prefix in Binary | Prefix in Hex |
---|---|---|
IPv6 Unspecified Address | All zeroes | ::/128 |
IPv6 Loopback Address | 000...01 | ::1/128 |
IPv6 to IPv4 mapped Addresses | [80 zeroes]111111111111111[binary IPv4 address)] | ::FFFF:0:0/96 |
IPv6 Multicast Addresses | 11111111... | FF00::/8 |
IPv6 Link-Local Unicast Addresses | 1111111010... | FE80::/10 |
IPv6 Unique Local Unicast (ULA) Addresses | 1111110... | FC00::/7 |
IPv6 Global Unicast Addresses | [all other addresses] | |
IPv6 Global Unicast Addresses in use on the Internet | 2000::/3 |
Unspecified Address
The IPv6 address 0000:0000:0000:0000:0000:0000:0000:0000 is the Unspecified Address (::/128). This address refers to the local host when the local host is obtaining an IPv6 address
IPv6 Global Unicast Address Format (MEUI-64)
Global Unicast addresses are structured as follows:
Global routing prefix | Subnet ID | Interface ID | |
---|---|---|---|
001 | 45 bits |
16 bits | 64 bits |
<-- 128 bits --> |
All Global Unicast IPv6 addresses in MEUI-64 format have their first three bits set to 001.
Global Routing Prefix
The term prefix refers to all the bits to the left of the 'interesting part' of the IPv6 address. Starting from the left the bits identify where the IP addresses are assigned to and where the came from. An initial chunk of addresses and prefix are assigned starting with IANA, a smaller chunk of addresess and subsequent prefix is assigned to the Regional Internet Registries and then a still smaller piece of addresses assigned to the local Intnernet registry or Internet Service Provider, who then assign to the end user organization.
Subnet ID
The Subnet ID is used to identify individual IPv6 networks belonging to the end user organization. The Subnet ID has 16 bits which allows for 65,535 possible networks of 64-bit addresses.Current Internet Protocol addresses in their entirety are 32-bits, so IPv6 provides to each end user thousands of times more space than the entire IPv4 address space assigned to the entire Internet today. Theoretically, once an organization receives an assignment, they may never need any more space. Ever. Or so everyone hopes.
Interface ID
The last 64 bits in an IPv6 Global Unicast address are reserved for interfaces attached to a single network identified by the Subnet ID. This is represented in Modified Extended Unique Identifer-64 (MEUI-64) format as required by RFC 4291. Interface ID's must be unique within the Subnet ID prefix range (unique within the network range of addresses).
IPv6 Multicast Address Format
IPv6 Frame Format
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
Traffic Class (8 bits) |
Flow Label (20 bits) |
|||||||||||||||||||||||||||||
Payload Length (16 bits) |
Next Header (8 bits) |
Hop Limit (8 bits) |
|||||||||||||||||||||||||||||
Source Address (128 bit IPv6 Address) |
|||||||||||||||||||||||||||||||
Destination Address (128 bit IPv6 Address) |
|||||||||||||||||||||||||||||||
Data/Payload (variable length) |
IPv6 Header Version Field
IPv6 Header Traffic Class Field
IPv6 Header Flow Label Field
IPv6 Header Payload Length Field
IPv6 Header Next Header Field
IPv6 Header Hop Limit Field
IPv6 Header Source Address Field
IPv6 Header Destination Address Field
IPv6 Header Data / Payload Field
Where to Get IPv6 Addresses
Most likely, you will get your IPv6 address from a local Internet provider, unless you ARE an Internet provider, in which case the addresses will come from the Regional Internet Registry (ARIN, RIPE, APNIC, AFRINIC, LACNIC) which manages IPv6 address space in that region. I've always wondered how IP addresses would be handled if we ever had bases or colonies on the moon, Mars, Io or elsewhere offworld. Currently
Who 'Owns' all the IPv6 Addresses
IPv6 Addresses, like IPv4 addresses are managed (owned) by the Internet Assigned Numbers Authority (http://www.iana.org/). IANA assigns blocks of addresses to Regional Internet Registries and the RIR's in turn provide addresses to Local Internet Registries and Internet Service providers.
Who Owns the Specific IPv6 Address ...
All the Regional Internet Registries provide a "whois" function, available through the web, or from a Unix or Solaris command line, that will provide the registration information for the organization to which the range of IP addresses is assigned. Typically, this is a block of addresses assigned to an ISP, or Local Internet Registry. You can also use NSLOOKUP to see the fully-qualified host name associated with the IPv6 address which will reveal the domain name of the organization or individual that owns the computer.
NOTES:
This tutorial is still under development. Donate to support further development of this and other tutorials.