A.3. IPv6
IPv6 is slated to replace the aging IPv4, which is the addressing scheme that is currently used on the Internet. Given the growth of the Internet, it's remarkable that IPv4 has lasted this long. (We have CIDR and NAT to thank for that.)
IPv6 seeks to solve the major problem of IPv4's limited address space by increasing the address size from 32 bits to 128 bits, which gives approximately 3.4 x 1038 possible addresses. By comparison, IPv4 has only 4.2 x 109 possible addresses.
Some of the benefits of IPv6 are:
- Much larger address space
- Authentication and encryption
- Inherits IPv4 characteristics
- Allows for coexistence with IPv4
IPv6 addresses are assigned to interfaces not hosts. So a certain host with more than one interface will have more than one IPv6 address. There are three types of IPv6 addresses: unicast, anycast, and multicast.
Unicast is an identifier for a single interface. A packet that sent to that identifier is for that interface only.
Anycast is an address for a set of interfaces that might belong to different nodes. A packet destined for an anycast address is delivered to the "nearest" interface.
Multicast is an address for a set interfaces that belong to different nodes. A packet that is destined for a multicast address is delivered to all nodes belonging to that address.
IPv6 has no broadcast addresses because their functionality is replaced by the multicast address.
A.3.1. IPv6 Notation
The 128 bits of an IPv6 address are represented as eight hexadecimal numbers separated by colons. For example, consider the following address:
FEC0:0000:0000:0000:1101:0080:F5BF:0001
That is quite an address to type. Fortunately, there are some rules for writing IPv6 addresses in shorthand.
A.3.1.1. Shorthand rule one
The first rule is that leading 0s can be omitted in each field. For example, 001F can be written simply 1F. When we apply this rule to the above address, we are left with this:
FEC0:0:0:0:1101:80:F5BF:1
A.3.1.2. Shorthand rule two
The second rule is that any repeating sets of 0's can be represented with double colons (::), but only once per address. When we apply this rule to the above address, we get this:
FECO::1101:80:F5BF:1
Remember that the :: can only be used once. For example, the following address would be illegal:
FECO::1101::1
Here are two more examples of the :: notation:
FF01:0:0:0:0:0:0:1
0:0:0:0:0:0:0:1
|
As far as subnetting notation, IPv6 follows the same prefix as CIDR in IPv4, which is the address followed by a slash and the subnet bits:
FEC0:0:0:0:1101:80:F5BF:1/60
A.3.2. Important IPv6 Addresses
Table A-9 serves as a guide for the most common IPv6 addresses that you may encounter.
Description |
Address |
Notes |
---|---|---|
APNIC allocated space |
2001:0200::/23 2001:0C00:/23 |
Asia Pacific Network Information Center (APNIC) for use in Asia |
ARIN allocated space |
2001:0400::/23 |
American Registry for Internet Numbers (ARIN) for use in the Americas |
RIPENCC allocated space |
2001:0600::/23 2001:0800::/23 |
Reseaux IP Europeans - Network Coordination Center (RIPE NCC) for use in Europe and the Middle East. |
Global Unicast |
2000::/3 |
Globally unique addresses |
6to4 Tunnels |
2002::/16 |
|
Link Local Use |
FE80::/10 |
For use with auto-configuration |
Site Local Use |
FEC0::/10 |
Equivalent to IPv4 private addresses |
IPv4 Mapped |
::FFFF:xxxx:xxxx |
The x's are the IPv4 address. (192.168.30.1 is ::FFFF:C0A8:1E01) |
Loopback |
::1 |
Similar to 127.0.0.1 in IPv4 |
Multicast |
FF00::/8 |
Full multicast space |
Multicast |
FF01::1 |
All nodes within the host |
Multicast |
FF02::1 |
All nodes on the local link |
Multicast |
FF01::2 |
All routers within the node-local scope |
Multicast |
FF02::2 |
All routers on the link-local scope |
Multicast |
FF05::2 |
All routers in the site-local scope |
A.3.3. Enabling IPv6 on a Router
To enable IPv6 on a router, use the ipv6 unicast-routing command. For example:
ipv6 unicast-routing ! interface ethernet0 ipv6 FECO:110:210:1::/64 eui-64
A.3.4. Using an IPv6 Address in a URL
Since the colon (:) is already used in URL definitions, you can't simply drop an IPv6 address into a URL. To use an IPv6 address in a URL, the address itself must be inside left and right brackets. For example:
http://[FECO::AE14]:80/index.html
Although this is one method for making a URL call directly to an IPv6 address, it is still quite painful. Once again, this illustrates the importance of using DNS in the IPv6 address space.