Section 3.5: IP Version 6
IPv4 has a number of disadvantages. The two most important disadvantages is the limited address space, with public IPv4 addresses are becoming scarce; and the lack of built-in security. Instead, security for IPv4 is provided by the use of IPSec. However, IPSec is optional for IPv4 implementations. Because an application cannot rely on IPSec being present to secure traffic, an application might resort to other security standards or a proprietary security scheme.
These and other issues prompted the Internet Engineering Task Force (IETF) to begin the development of IPv6 that would replace IPv4, solve the problems of IPv4, and be extensible to solve additional problems in the future. The IPv6 specification is defined in RFC 2460. Other RFCs that describe IPv6 specifications are 2373, 2374, 2461, 2462, and 2463.
IPv6 offers a number of advantages over IPv4.
- The IPv6 address field is 128 bits long - a significant increase from 32-bits IPv4 address field, and thus provides a larger address space.
- IPv6 has built-in support for IPSec and thus offers better security.
- IPv6 provides a new header format that is streamlined to minimize overhead and provide more efficient processing while crossing intermediate routers.
- All the option fields and any other fields in the header that are not required for routing are placed after the IPv6 header.
- The IPv6 header also added more Quality of Service (QoS) support by adding Flow Label fields that provide special handling for a series of packets that travel between a source and destination.
- IPv6 also provides Neighbor Discovery (ND), which is a set of process and messages that are used in an IPv6 environment to identify relationships between neighboring nodes. This allows hosts to discover routers on the same segment, addresses, and address prefixes. With ND, hosts can also resolve neighboring nodes and determine when the MAC address of a neighbor changes. This is similar to ARP in IPv4.
- ND provides the process for address autoconfiguration, which provides for the dynamic assignment of IPv6 addresses and is referred to as stateless address configuration. In the absence of a stateful address configuration server, such as a DHCP version 6 (DHCPv6) protocol server, ND provides a complex process that allows each interface to use router advertisement messages to define an IPv6 address, and then subsequently ensure the uniqueness of the selected address. However, the standards for DHCPv6 and IPv6 stateful addressing are still under development.
- The new routing structure provides a hierarchical addressing and routing structure that includes a global addressing scheme. Global addresses are the equivalent of public IPv4 addresses and are accessible over the Internet.
- The global addressing scheme defines new ways to summarize global addresses to facilitate smaller routing tables on the Internet backbone, thus improving the efficiency and performance on the Internet.
3.5.1 IPv6 Address Representation
The IPv6 addressing architecture is defined in RFC 2373. IPv6 addresses are 128-bits long with the first 64 bits defining the network address and the last 64 bits defining the host address. An IPv6 address consists of eight 16-bit sections and is represented in hexadecimal format. Each 16-bit section is separated by a colon.
An example of a full IPv6 address is FE36:0000:0000:36F0:0000:0000:004B:04B0. All leading 0s do not need to be represented while all 0 16-bit sections can be compressed to 0. Multiple 16-bit sections of 0s can be represented with a :: symbol, which can appear only once in the number. Thus FE36:0000:0000:36F0:0000:0000:004B:04B0 can be shortened to FE36:0:0:36F0::4B:4B0 or FE36::36F0:0:0:4B:4B0
In a mixed IPv4 and IPv6 environment, addresses can be represented by six hexadecimal 16-bit sections that are concatenated with the dotted-decimal format.
3.5.2 Allocated IPv6 Addresses
The leading bits of an IPv6 address can define the address type. These leading bits are of variable length and are called the format prefix (FP). Table 3.2 shows some allocations of some prefixes.
TABLE 3.1: IPv6 Prefix Allocations
Prefix | Allocation |
---|---|
00 | Unspecified, looback, IPv4-compatible |
2 or 3 | Aggregatable global unicast address |
FE8 | Link-local unicast addresses |
FEC | Site-local unicast addresses |
FF | Multicast addresses |
Note: IPv6 supports unicast addressing, which identifies a single IP host; anycast addressing, which identifies a set of IP hosts and delivers the transmitted packet to nearest of these hosts; and multicast addressing, which identities a set of hosts who can choose to receive the packet or not. IPv6 does not support broadcast addressing and has no broadcast address. IPv6 uses "all-nodes" multicast instead.
To convert a hexadecimal number to a decimal number, you must multiply the decimal value of each digit by 16 to the power n-1 where n is the position of the digit from right to left, and add the resultant decimal values. Thus, to convert 3E8h
to decimal, we would take the third right most digit, 3h
, and convert it to its decimal equivalent, which is 3. We would then multiply 3 by 162 which would give us 768. Next, we would take the second right most digit, Eh
, and convert it to its decimal equivalent, which is 14. We would then multiply 14 by 161 which would give us 224. Next, we would take the right most digit, 8h
, and convert it to its decimal equivalent, which is 8. We would then multiply 8 by 160 which would give us 8.
Finally, we would add the three resultant values: 768, 224 and 8, which would give us 1000.