An IPv6 address consists of 128 bits and includes bits to be used for subnetting. The first half of the subnet (64 bits) consists of routing prefix (48 bits) and subnet ID (16 bits) and the second half of the address (64 bits) is used for hosts only. This is in contrast with the IPv4 network, wherein the host bits are borrowed to divide the network into subnets. In IPv6, the least significan 64 bits are always used for representing hosts. 16 bits are separately identified for subnetworks.
/48 prefix is allocated to an organization which can offer up to /64 subnet prefixes, equivalent to 65535 sub-networks, each having 264 hosts. A /64 prefix can be assigned to a point-to-point connection where there are only two hosts (or IPv6 enabled devices) on a link. Typical allowcation of IPv6 addresses is given below:
IPv6 CIDR Subnet Number of IPs
Residential – /64 18,446,744,073,709,551,616
Business – /48 1,208,925,819,614,629,174,706,176
ISP – /32 79,228,162,514,264,337,593,543,950,336
As you may see from the above table, residential user is allocated /64 prefix address, business user may be allocated /48 address, and ISPs will have /32 address prefix, I’m not sure if there is any term to describe the numbers;
An example of IPv6 address subnetting:
Assume that an ISP has provided a 48-bit prefix to the user. Consider the address and prefix
2001:0867:5208/48 for instance. Because each four hexadecimal digits are 16 bits, and the last 64 bits are usually the interface identifier (the “host” portion of the address in IPv4), this leaves 16 bits for subnetting. Assume the subnet bits, assigned locally, for a certain subnet are 72cd.
This subnet would allow addresses in the range:
2001:0867:530972cd:0000:0000:0000:0001 to 2001:0867:530972cd:ffff:ffff:ffff:ffff
So, when subnetted, an IPv6 address consists of three parts:
- The global routing prefix (2001:0867:5309/48 in this example)
- The subnet identifier (9abc in this example)
- The interface identifier or “host address” (the remaining 64 bits in this example)
By comparison with IPv4, subnetting IPv6 is very similar, except that IPb6 allocates 16 bits for subnets, and all 64 bits are allocated to host portion. The 16-bit Subnet ID field provides as many as 65,536 subnets in a flat subnet structure.
IPv6 has three types of addresses, which can be categorized by type and scope:
- Unicast addresses. A packet is delivered to one interface.
- Multicast addresses. A packet is delivered to multiple interfaces.
- Anycast addresses. A packet is delivered to the nearest of multiple interfaces (in terms of routing distance).
IPv6 does not use broadcast messages.
Unicast and anycast addresses in IPv6 have the following scopes (for multicast addresses, the scope is built into the address structure):
- Link-local. The scope is the local link (nodes on the same subnet).
- Site-local. The scope is the organization (private site addressing).
- Global. The scope is global (IPv6 Internet addresses).
In addition, IPv6 has special addresses such as the loopback address.