Just as in IPv4, the IPv6 address space can be divided by using high-order bits that do not already have fixed values to create subnetted network prefixes. These are used either to summarize a level in the routing or addressing hierarchy (with a prefix length less than 64), or to define a specific subnet or network segment (with a prefix length of 64). IPv4 subnetting differs from IPv6 subnetting in the definition of the host ID portion of the address. In IPv4, the host ID can be of varying length, depending on the subnetting scheme. For currently defined unicast IPv6 addresses, the host ID is the interface ID portion of the IPv6 unicast address and is always a fixed size of 64 bits.
If you are an ISP, subnetting the IPv6 address space consists of using subnetting techniques to divide the NLA ID portion of a global address in a manner that allows for route summarization and delegation of the remaining address space for different portions of your network, for downstream providers, or for individual customers. The global address has a 24-bit NLA ID field to be used by the various layers of ISPs between a top-level aggregator (a global ISP identified by the TLA ID) and a customer site.
For a global address allocated to a top-level aggregator, the first 16 bits of the address are fixed and correspond to the FP (set to 001) and the TLA ID (13 bits in length). The TLA ID is followed by the Res portion, which consists of 8 reserved bits set to 0. Therefore, for subnetting of the NLA ID portion of a global address, the first 24 bits are fixed. In a global address, the Res bits are never shown due to the suppression of leading zeros in IPv6 colon hexadecimal notation.
Subnetting the NLA ID portion of a global address requires a two-step procedure:
The subnetting technique described here assumes that subnetting is done by dividing the 24-bit address space of the NLA ID using the high-order bits in the NLA ID that do not already have fixed values. While this method promotes hierarchical addressing and routing, it is not required. For example, you can also create a flat addressing space for the NLA ID by numbering the subnets from 0 to 16,777,215.
The number of bits being used for subnetting determines the possible number of new subnetted network prefixes that can be allocated to portions of your network based on geographical, customer segment, or other divisions. In a hierarchical routing infrastructure, you need to determine how many network prefixes, and therefore how many bits, you need at each level in the hierarchy. The more bits you choose for the various levels of the hierarchy, the fewer bits you will have available to enumerate individual subnets in the last level of the hierarchy. The last level in the hierarchy is used to assign 48-bit prefixes to customer sites.
For example, a network designer at a large ISP decides to implement a two-level hierarchy reflecting a geographical/customer segment structure and uses 8 bits for the geographical level and 8 bits for the customer segment level. This means that each customer segment in each geographical location has only 8 bits of subnetting space left (24 - 8 - 8), or only 256 (= 28) 48-bit prefixes per customer segment.
On any given level in the hierarchy, you will have a number of bits that are already fixed by the next level up in the hierarchy (f ), a number of bits used for subnetting at the current level in the hierarchy (s), and a number of bits remaining for the next level down in the hierarchy (r). At all times, f + s + r = 24. This relationship is shown in Figure 3-9.
Figure 3-9. The subnetting of an NLA ID
Based on the number of bits used for subnetting, you must list the new subnetted network prefixes. There are two main approaches:
Either method produces the same result: an enumerated list of subnetted network prefixes.
f = m - 24
f is the number of bits within the NLA ID that are already fixed.
n = 2s
n is the number of network prefixes that are obtained.
i = 224-(f+s)
i is the incremental value between each successive NLA ID expressed in hexadecimal form.
l = 24 + f + s
l is the prefix length of the new subnetted network prefixes.
For example, to perform a 3-bit subnetting of the global network prefix 3000:4D:C00::/38, we first calculate the values of the number of prefixes, the increment, and the new prefix length. Our starting values are F = 0x4D0C00, s = 3, and f = 38 - 24 = 14. The number of prefixes is 8 (n = 23). The increment is 0x80 (i = 224-(14+3) = 128 = 0x80). The new prefix length is 41 (l = 38 + 3).
Next, we construct a table with 8 entries. The subnetted network prefix for network prefix 1 is 3000:4D:C00::/41. Additional entries in the table are successive increments of i in the NLA ID portion of the network prefix, as shown in Table 3-4.
Table 3-4. The Hexadecimal Subnetting Technique for Network Prefix 3000:4D:C00::/38
Network Prefix Number | NLA ID (hexadecimal) | Subnetted Network Prefix |
---|---|---|
1 | 4D0C00 | 3000:4D:C00::/41 |
2 | 4D0C80 | 3000:4D:C80::/41 |
3 | 4D0D00 | 3000:4D:D00::/41 |
4 | 4D0D80 | 3000:4D:D80::/41 |
5 | 4D0E00 | 3000:4D:E00::/41 |
6 | 4D0E80 | 3000:4D:E80::/41 |
7 | 4D0F00 | 3000:4D:F00::/41 |
8 | 4D0F80 | 3000:4D:F80::/41 |
RFC 2373 allows the use of subnetted network prefixes where the bits being used for subnetting are set to all zeros (the all-zeros subnetted network prefix) and all ones (the all-ones subnetted network prefix) for any portion of the IPv6 network prefix being subnetted.
f = m - 24
f is the number of bits within the NLA ID that are already fixed.
n = 2s
n is the number of network prefixes that are obtained.
i = 224-(f+s)
i is the incremental value between each successive NLA ID expressed in decimal form.
l = 24 + f + s
l is the prefix length of the new subnetted network prefixes.
D = decimal representation of F
For example, to perform a 3-bit subnetting of the global network prefix 3000:4D:C00::/38, we first calculate the values of the number of prefixes, the increment, and the new prefix length. Our starting values are F = 0x4D0C00, s = 3, and f = 38 - 24 = 14. The number of prefixes is 8 (n = 23). The increment is 128 (i = 224-(14+3) = 128). The new prefix length is 41 (l = 38 + 3). The decimal representation of the starting NLA ID is 5049344 (D = 0x4D0C00 = 5049344).
Next, we construct a table with 8 entries. The subnetted network prefix for network prefix 1 is 3000:4D:C00::/41. Additional entries in the table are successive increments of i in the NLA ID portion of the network prefix, as shown in Table 3-5.
Table 3-5. The Decimal Subnetting Technique for Network Prefix 3000:4D:C00::/38
Network Prefix Number | Decimal Representation of NLA ID | Hexadecimal Representation of NLA ID | Subnetted Network Prefix |
---|---|---|---|
1 | 5049344 | 4D0C00 | 3000:4D:C00::/41 |
2 | 5049472 | 4D0C80 | 3000:4D:C80::/41 |
3 | 5049600 | 4D0D00 | 3000:4D:D00::/41 |
4 | 5049728 | 4D0D80 | 3000:4D:D80::/41 |
5 | 5049856 | 4D0E00 | 3000:4D:E00::/41 |
6 | 5049984 | 4D0E80 | 3000:4D:E80::/41 |
7 | 5050112 | 4D0F00 | 3000:4D:F00::/41 |
8 | 5050240 | 4D0F80 | 3000:4D:F80::/41 |
For most network administrators within an organization, subnetting the IPv6 address space consists of using subnetting techniques to divide the SLA ID portion of the global address or the Subnet ID portion of the site-local address in a manner that allows for route summarization and delegation of the remaining address space to different portions of an IPv6 intranet. The global address has a 16-bit SLA ID field to be used by organizations within their sites. The site-local address has a 16-bit Subnet ID field to be used by organizations within a site.
In both cases, the first 48 bits of the address are fixed. For the global address, the first 48 bits are fixed and allocated by an ISP and correspond to the TLA and NLA ID portions of the global address. For the site-local address, the first 48 bits are fixed at FEC0::/48. In the discussion that follows, the term subnet ID refers to either the SLA ID portion of the global address or the Subnet ID portion of a site-local address.
Subnetting the subnet ID portion of a global or site-local address space requires a two-step procedure:
The subnetting technique described here assumes that subnetting is done by dividing the 16-bit address space of the subnet ID using the high-order bits in the subnet ID. While this method promotes hierarchical addressing and routing, it is not required. For example, in a small organization with a small number of subnets, you can also create a flat addressing space for the subnet ID by numbering the subnets starting at 0.
As described in the "Local-Use Unicast Addresses" section of this chapter, you can use the same subnetting scheme and use the same subnet ID for both site-local and global address network prefixes.
The number of bits being used for subnetting determines the possible number of new subnetted network prefixes that can be allocated to portions of your network based on geographical or departmental divisions. In a hierarchical routing infrastructure, you need to determine how many network prefixes, and therefore how many bits, you need at each level in the hierarchy. The more bits you choose for the various levels of the hierarchy, the fewer bits you will have available to enumerate individual subnets in the last level of the hierarchy.
For example, a network administrator decides to implement a two-level hierarchy reflecting a geographical/departmental structure and uses 4 bits for the geographical level and 6 bits for the departmental level. This means that each department in each geographical location has only 6 bits of subnetting space left (16 - 6 - 4), or only 64 (= 26) subnets per department.
On any given level in the hierarchy, you will have a number of bits that are already fixed by the next level up in the hierarchy (f ), a number of bits used for subnetting at the current level in the hierarchy (s), and a number of bits remaining for the next level down in the hierarchy (r). At all times, f + s + r = 16. This relationship is shown in Figure 3-10.
Figure 3-10. The subnetting of a Subnet ID
Based on the number of bits used for subnetting, you must list the new subnetted network prefixes. There are two main approaches:
Either method produces the same result: an enumerated list of subnetted network prefixes.
f = m - 48
f is the number of bits within the subnet ID that are already fixed.
n = 2s
n is the number of network prefixes that are obtained.
i = 216-(f+s)
i is the incremental value between each successive subnet ID expressed in hexadecimal form.
l = 48 + f + s
l is the prefix length of the new subnetted network prefixes.
For example, to perform a 3-bit subnetting of the site-local network prefix FEC0:0:0:C000::/51, we first calculate the values of the number of prefixes, the increment, and the new prefix length. Our starting values are F = 0xC000, s = 3, and f = 51 - 48 = 3. The number of prefixes is 8 (n = 23). The increment is 0x400 (i = 216-(3+3) = 1024 = 0x400). The new prefix length is 54 (l = 48 + 3 + 3).
Next, we construct a table with 8 entries. The entry for the network prefix 1 is FEC0:0:0:C000::/54. Additional entries in the table are successive increments of i in the subnet ID portion of the network prefix, as shown in Table 3-6.
Table 3-6. The Hexadecimal Subnetting Technique for Network Prefix FEC0:0:0:C000::/51
Network Prefix Number | Subnetted Network Prefix |
---|---|
1 | FEC0:0:0:C000::/54 |
2 | FEC0:0:0:C400::/54 |
3 | FEC0:0:0:C800::/54 |
4 | FEC0:0:0:CC00::/54 |
5 | FEC0:0:0:D000::/54 |
6 | FEC0:0:0:D400::/54 |
7 | FEC0:0:0:D800::/54 |
8 | FEC0:0:0:DC00::/54 |
f = m - 48
f is the number of bits within the subnet ID that are already fixed.
n = 2s
n is the number of network prefixes that are obtained.
i = 216-(f+s)
i is the incremental value between each successive subnet ID.
l = 48 + f + s
l is the prefix length of the new subnetted network prefixes.
D = decimal representation of F
For example, to perform a 3-bit subnetting of the site-local network prefix FEC0:0:0:C000::/51, we first calculate the values of the number of prefixes, the increment, the new prefix length, and the decimal representation of the starting subnet ID. Our starting values are F = 0xC000, s = 3, and f = 51 - 48 = 3. The number of prefixes is 8 (n = 23). The increment is 1024 (i = 216-(3+3)). The new prefix length is 54 (l = 48 + 3 + 3). The decimal representation of the starting subnet ID is 49152 (D = 0xC000 = 49152).
Next, we construct a table with 8 entries. The entry for the network prefix 1 is 49152 and FEC0:0:0:C000::/54. Additional entries in the table are successive increments of i in the subnet ID portion of the network prefix, as shown in Table 3-7.
Table 3-7. The Decimal Subnetting Technique for Network Prefix FEC0:0:0:C000::/51
Network Prefix Number | Decimal Representation of Subnet ID | Subnetted Network Prefix |
---|---|---|
1 | 49152 | FEC0:0:0:C000::/54 |
2 | 50176 | FEC0:0:0:C400::/54 |
3 | 51200 | FEC0:0:0:C800::/54 |
4 | 52224 | FEC0:0:0:CC00::/54 |
5 | 53248 | FEC0:0:0:D000::/54 |
6 | 54272 | FEC0:0:0:D400::/54 |
7 | 55296 | FEC0:0:0:D800::/54 |
8 | 56320 | FEC0:0:0:DC00::/54 |