IPv6 Design: Forget The IPv4 Rules
September 06, 2011
You've acquired a nice new IPv6 address block, and now you need to come up with an IPv6 address allocation design for your network. If there is one bit of advice I can offer you as you begin your IPv6 address design, it's this: Abandon almost everything you've learned about IPv4 address design. Throw it right out the window.
Yes, an IPv6 address at the binary level is still used the same way an IPv4 address is used. Yes, the address bits are still divided between a network part that specifies the exact location of the link to which a device is attached and a host part that identifies a specific device on the link. Yes, you still use CIDR notation (a forward slash and a number) to specify an address prefix of some length. And, yes, if you want to represent just the prefix you set all the host bits to zero (a 24-bit IPv4 prefix might be written as 192.168.23.0/24; a 48-bit IPv6 prefix might be written as 2001:db8:9c5::/48).
Above those bit-level functional equivalences, it's a whole new ball game.
A single design principle dominates all others in IPv4 address design: address conservation. Variable-Length Subnet Masking (VLSM) is an essential IPv4 design tactic in which the number of hosts required on individual subnets throughout the network is carefully balanced against the total number of subnets your IPv4 prefix can support. You wind up with several different subnet sizes in your network, each allowing for just enough known or forecast host addresses and no more.
In fact, the very concept of subnetting in IPv4 is the idea of borrowing some of the host bits to use as part of the network prefix. This dates back to pre-CIDR days when unicast IPv4 prefixes belonged to one of three classes (/8, /16, or /24). IPv6 prefix assignments, on the other hand, are treated differently. There is always allowance of a 64-bit host portion (the Interface-ID); except for networks that are deemed to only need a single subnet, such as homes or small offices, your prefix assignment will be some length shorter than 64 bits such as /40, /48 or /56. Those bits of the network portion between the fixed prefix assignment and the fixed 64-bit Interface-ID are for subnetting. You don't have to borrow host bits.
IPv6 represents a mind-boggling number of addresses, and that boggleness extends right down into your own network. Think about this: If you are allocated a /40 prefix, you have the capacity to support as many /64 subnets--4.3 billion--as there are individual addresses in the entire IPv4 address space. If you are an enterprise network, you are more likely to get a /48; that's still 65,536 64-bit subnets. And each /64 supports 1.8 x 1,019 individual addresses.