Recent from talks
Contribute something
Nothing was collected or created yet.
Subnet
View on Wikipedia
A subnet, or subnetwork, is a logical subdivision of an IP network.[1]: 1, 16 The practice of dividing a network into two or more networks is called subnetting.
Computers that belong to the same subnet are addressed with an identical group of its most-significant bits of their IP addresses. This results in the logical division of an IP address into two fields: the network number or routing prefix, and the rest field or host identifier. The rest field is an identifier for a specific host or network interface.
The routing prefix may be expressed as the first address of a network, written in Classless Inter-Domain Routing (CIDR) notation, followed by a slash character (/), and ending with the bit-length of the prefix. For example, 198.51.100.0/24 is the prefix of the Internet Protocol version 4 network starting at the given address, having 24 bits allocated for the network prefix, and the remaining 8 bits reserved for host addressing. Addresses in the range 198.51.100.0 to 198.51.100.255 belong to this network, with 198.51.100.255 as the subnet broadcast address. The IPv6 address specification 2001:db8::/32 is a large address block with 296 addresses, having a 32-bit routing prefix.
For IPv4, a network may also be characterized by its subnet mask or netmask, which is the bitmask that, when applied by a bitwise AND operation to any IP address in the network, yields the routing prefix. Subnet masks are also expressed in dot-decimal notation like an IP address. For example, the prefix 198.51.100.0/24 would have the subnet mask 255.255.255.0.
Traffic is exchanged between subnets through routers when the routing prefixes of the source address and the destination address differ. A router serves as a logical or physical boundary between the subnets.
The benefits of subnetting an existing network vary with each deployment scenario. In the address allocation architecture of the Internet using CIDR and in large organizations, efficient allocation of address space is necessary. Subnetting may also enhance routing efficiency or have advantages in network management when subnets are administratively controlled by different entities in a larger organization. Subnets may be arranged logically in a hierarchical architecture, partitioning an organization's network address space into a tree-like routing structure or other structures, such as meshes.
Network addressing and routing
[edit]
Computers participating in an IP network have at least one network address. Usually, this address is unique to each device and can either be configured automatically by a network service with the Dynamic Host Configuration Protocol (DHCP), manually by an administrator, or automatically by the operating system with stateless address autoconfiguration.
An address fulfills the functions of identifying the host and locating it on the network in destination routing. The most common network addressing architecture is Internet Protocol version 4 (IPv4), but its successor, IPv6, has been increasingly deployed since approximately 2006. An IPv4 address consists of 32 bits. An IPv6 address consists of 128 bits. In both architectures, an IP address is divided into two logical parts, the network prefix and the host identifier. All hosts on a subnet have the same network prefix. This prefix occupies the most significant bits of the address. The number of bits allocated within a network to the prefix may vary between subnets, depending on the network architecture. The host identifier is a unique local identification and is either a host number on the local network or an interface identifier.
This addressing structure permits the selective routing of IP packets across multiple networks via special gateway computers, called routers, to a destination host if the network prefixes of origination and destination hosts differ, or sent directly to a target host on the local network if they are the same. Routers constitute logical or physical borders between the subnets and manage traffic between them. Each subnet is served by a designated default router but may consist internally of multiple physical Ethernet segments interconnected by network switches.
The routing prefix of an address is identified by the subnet mask, written in the same form used for IP addresses. For example, the subnet mask for a routing prefix that is composed of the most-significant 24 bits of an IPv4 address is written as 255.255.255.0.
The modern standard form of specification of the network prefix is CIDR notation, used for both IPv4 and IPv6. It counts the number of bits in the prefix and appends that number to the address after a slash (/) character separator. This notation was introduced with Classless Inter-Domain Routing (CIDR).[2] In IPv6 this is the only standards-based form to denote network or routing prefixes.
For example, the IPv4 network 192.0.2.0 with the subnet mask 255.255.255.0 is written as 192.0.2.0/24, and the IPv6 notation 2001:db8::/32 designates the address 2001:db8:: and its network prefix consisting of the most significant 32 bits.
In classful networking in IPv4, before the introduction of CIDR, the network prefix could be directly obtained from the IP address, based on its highest-order bit sequence. This determined the class (A, B, C) of the address and therefore the subnet mask. Since the introduction of CIDR, however, the assignment of an IP address to a network interface requires two parameters, the address and a subnet mask.
Given an IPv4 source address, its associated subnet mask, and the destination address, a router can determine whether the destination is on a locally connected network or a remote network. The subnet mask of the destination is not needed, and is generally not known to a router.[3] For IPv6, however, on-link determination is different in detail and requires the Neighbor Discovery Protocol (NDP).[4][5] IPv6 address assignment to an interface carries no requirement of a matching on-link prefix and vice versa, with the exception of link-local addresses.
Since each locally connected subnet must be represented by a separate entry in the routing tables of each connected router, subnetting increases routing complexity. However, by careful design of the network, routes to collections of more distant subnets within the branches of a tree hierarchy can be aggregated into a supernetwork and represented by single routes.
Internet Protocol version 4
[edit]Determining the network prefix
[edit]An IPv4 subnet mask consists of 32 bits; it is a sequence of ones (1) followed by a block of zeros (0). The ones indicate bits in the address used for the network prefix and the trailing block of zeros designates that part as being the host identifier.
The following example shows the separation of the network prefix and the host identifier from an address (192.0.2.130) and its associated /24 subnet mask (255.255.255.0). The operation is visualized in a table using binary address formats.
| Binary form | Dot-decimal notation | |
|---|---|---|
| IP address | 11000000.00000000.00000010.10000010
|
192.0.2.130 |
| Subnet mask | 11111111.11111111.11111111.00000000
|
255.255.255.0 |
| Network prefix | 11000000.00000000.00000010.00000000
|
192.0.2.0 |
| Host identifier | 00000000.00000000.00000000.10000010
|
0.0.0.130 |
The result of the bitwise AND operation of IP address and the subnet mask is the network prefix 192.0.2.0. The host part, which is 130, is derived by the bitwise AND operation of the address and the ones' complement of the subnet mask.
Subnetting
[edit]Subnetting is the process of designating some high-order bits from the host part as part of the network prefix and adjusting the subnet mask appropriately. This divides a network into smaller subnets. The following diagram modifies the above example by moving 2 bits from the host part to the network prefix to form four smaller subnets, each one quarter of the previous size.
| Binary form | Dot-decimal notation | |
|---|---|---|
| IP address | 11000000.00000000.00000010.10000010
|
192.0.2.130 |
| Subnet mask | 11111111.11111111.11111111.11000000
|
255.255.255.192 |
| Network prefix | 11000000.00000000.00000010.10000000
|
192.0.2.128 |
| Host part | 00000000.00000000.00000000.00000010
|
0.0.0.2 |
Special addresses and subnets
[edit]IPv4 uses specially designated address formats to facilitate recognition of special address functionality. The first and the last subnets obtained by subnetting a larger network have traditionally had a special designation and, early on, special usage implications.[6] In addition, IPv4 uses the all ones host address, i.e. the last address within a network, for broadcast transmission to all hosts on the link.
The first subnet obtained from subnetting a larger network has all bits in the subnet bit group set to zero. It is therefore called subnet zero.[7] The last subnet obtained from subnetting a larger network has all bits in the subnet bit group set to one. It is therefore called the all-ones subnet.[8]
The IETF originally discouraged the production use of these two subnets. When the prefix length is not available, the larger network and the first subnet have the same address, which may lead to confusion. Similar confusion is possible with the broadcast address at the end of the last subnet. Therefore, reserving the subnet values consisting of all zeros and all ones on the public Internet was recommended,[9] reducing the number of available subnets by two for each subnetting. This inefficiency was removed, and the practice was declared obsolete in 1995 and is only relevant when dealing with legacy equipment.[10]
Although the all-zeros and the all-ones host values are reserved for the network address of the subnet and its broadcast address, respectively, in systems using CIDR, all subnets are available in a subdivided network. For example, a /24 network can be divided into sixteen usable /28 networks. Each broadcast address, i.e., *.15, *.31, …, *.255, reduces only the host count in each subnets.
Subnet host count
[edit]The number of subnets available and the number of possible hosts in a network may be readily calculated. For instance, the 192.168.5.0/24 network may be subdivided into the following four /26 subnets. The highlighted two address bits become part of the network number in this process.
| Network | Network (binary) | Broadcast address |
|---|---|---|
| 192.168.5.0/26 | 11000000.10101000.00000101.00000000
|
192.168.5.63 |
| 192.168.5.64/26 | 11000000.10101000.00000101.01000000
|
192.168.5.127 |
| 192.168.5.128/26 | 11000000.10101000.00000101.10000000
|
192.168.5.191 |
| 192.168.5.192/26 | 11000000.10101000.00000101.11000000
|
192.168.5.255 |
The remaining bits after the subnet bits are used for addressing hosts within the subnet. In the above example, the subnet mask consists of 26 bits, making it 255.255.255.192, leaving 6 bits for the host identifier. This allows for 62 host combinations (26−2).
In general, the number of available hosts on a subnet is 2h−2, where h is the number of bits used for the host portion of the address. The number of available subnets is 2n, where n is the number of bits used for the network portion of the address.
There is an exception to this rule for 31-bit subnet masks,[11], which means the host identifier is only one bit long for two permissible addresses. In such networks, usually point-to-point links, only two hosts (the endpoints) may be connected and a specification of network and broadcast addresses is not necessary.
| Mask | IP addresses | Hosts | Netmask |
|---|---|---|---|
| /31 | 2 | 2 | 255.255.255.254 |
| /30 | 4 | 2 | 255.255.255.252 |
| /29 | 8 | 6 | 255.255.255.248 |
| /28 | 16 | 14 | 255.255.255.240 |
| /27 | 32 | 30 | 255.255.255.224 |
| /26 | 64 | 62 | 255.255.255.192 |
| /25 | 128 | 126 | 255.255.255.128 |
| /24 | 256 | 254 | 255.255.255.0 |
| /23 | 512 | 510 | 255.255.254.0 |
| /22 | 1024 | 1022 | 255.255.252.0 |
| /21 | 2048 | 2046 | 255.255.248.0 |
| /20 | 4096 | 4094 | 255.255.240.0 |
| /19 | 8192 | 8190 | 255.255.224.0 |
| /18 | 16384 | 16382 | 255.255.192.0 |
| /17 | 32768 | 32766 | 255.255.128.0 |
| /16 | 65536 | 65534 | 255.255.0.0 |
Internet Protocol version 6
[edit]The design of the IPv6 address space differs significantly from IPv4. The primary reason for subnetting in IPv4 is to improve efficiency in the utilization of the relatively small address space available, particularly to enterprises. No such limitations exist in IPv6, as the large address space available, even to end-users, is not a limiting factor.
As in IPv4, subnetting in IPv6 is based on the concepts of variable-length subnet masking (VLSM) and the Classless Inter-Domain Routing methodology. It is used to route traffic between the global allocation spaces and within customer networks between subnets and the Internet at large.
A compliant IPv6 subnet always uses addresses with 64 bits in the host identifier.[12] Given the address size of 128 bits, it therefore has a /64 routing prefix. Although it is technically possible to use smaller subnets,[13] they are impractical for local area networks based on Ethernet technology, because 64 bits are required for stateless address autoconfiguration.[14] The Internet Engineering Task Force recommends the use of /127 subnets for point-to-point links, which have only two hosts.[15][16]
IPv6 does not implement special address formats for broadcast traffic or network numbers,[17] and thus all addresses in a subnet are acceptable for host addressing. The all-zeroes address is reserved as the subnet-router anycast address.[18] The subnet router anycast address is the lowest address in the subnet, so it looks like the “network address”. If a router has multiple subnets on the same link, then it has multiple subnet router anycast addresses on that link.[19] The first and last address in any network or subnet is not allowed to be assigned to any individual host.
In the past, the recommended allocation for an IPv6 customer site was an address space with a 48-bit (/48) prefix.[20] However, this recommendation was revised to encourage smaller blocks, for example using 56-bit prefixes.[21] Another common allocation size for residential customer networks has a 64-bit prefix.
See also
[edit]References
[edit]- ^ Jeffrey Mogul; Jon Postel (August 1985). Internet Standard Subnetting Procedure. IETF. doi:10.17487/RFC0950. RFC 950. Updated by RFC 6918.
- ^ V. Fuller; T. Li (August 2006). Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan. Network Working Group. doi:10.17487/RFC4632. RFC 4632.
- ^ R. Braden, ed. (October 1989). Requirements for Internet Hosts -- Communication Layers. Network Working Group IETF. sec. 3.3.1. doi:10.17487/RFC1122. RFC 1122. Updated by RFC 1349, RFC 4379, RFC 5884, RFC 6093, RFC 6298, RFC 6633, RFC 6864, RFC 8029.
- ^ T. Narten; E. Nordmark; W. Simpson; H. Soliman (September 2007). Neighbor Discovery for IP version 6 (IPv6). Network Working Group. doi:10.17487/RFC4861. RFC 4861.
- ^ H. Singh; W. Beebee; E. Nordmark (July 2010). IPv6 Subnet Model: The Relationship between Links and Subnet Prefixes. IETF. doi:10.17487/RFC5942. RFC 5942.
- ^ "Document ID 13711 - Subnet Zero and the All-Ones Subnet". Cisco Systems. 2005-08-10. Archived from the original on 2014-02-09. Retrieved 2010-04-25.
Traditionally, it was strongly recommended that subnet zero and the all-ones subnet not be used for addressing. [...] Today, the use of subnet zero and the all-ones subnet is generally accepted and most vendors support their use.
- ^ "Document ID 13711 - Subnet Zero and the All-Ones Subnet". Cisco Systems. 2005-08-10. Archived from the original on 2014-02-09. Retrieved 2010-04-23.
the first [...] subnet[...], known as subnet zero
- ^ "Document ID 13711 - Subnet Zero and the All-Ones Subnet". Cisco Systems. 2005-08-10. Archived from the original on 2014-02-09. Retrieved 2010-04-23.
[...] the last subnet[...], known as [...] the all-ones subnet
- ^ Jeffrey Mogul; Jon Postel (August 1985). Internet Standard Subnetting Procedure. IETF. p. 6. doi:10.17487/RFC0950. RFC 950.
It is useful to preserve and extend the interpretation of these special addresses in subnetted networks. This means the values of all zeros and all ones in the subnet field should not be assigned to actual (physical) subnets.
- ^ Troy Pummill; Bill Manning (December 1995). Variable Length Subnet Table For IPv4. IETF. doi:10.17487/RFC1878. RFC 1878.
This practice is obsolete! Modern software will be able to utilize all definable networks.
(Informational RFC, demoted to category Historic) - ^ A. Retana; R. White; V. Fuller; D. McPherson (December 2000). Using 31-Bit Prefixes on IPv4 Point-to-Point Links. doi:10.17487/RFC3021. RFC 3021.
- ^ R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture - section 2.5.1. Interface Identifiers. IETF. sec. 2.5.1. doi:10.17487/RFC4291. RFC 4291.
For all unicast addresses, except those that start with the binary value 000, Interface IDs are required to be 64 bits long and to be constructed in Modified EUI-64 format.
(Updated by RFC 5952, RFC 6052, RFC 7136, RFC 7346, RFC 7371, RFC 8064.) - ^ S. Thomson; T. Narten; T. Jinmei (September 2007). IPv6 Stateless Address Autoconfiguration - section 5.5.3.(d) Router Advertisement Processing. IETF. sec. 5.5.3. doi:10.17487/RFC4862. RFC 4862.
It is the responsibility of the system administrator to ensure that the lengths of prefixes contained in Router Advertisements are consistent with the length of interface identifiers for that link type. [...] an implementation should not assume a particular constant. Rather, it should expect any lengths of interface identifiers.
(Updated by RFC 7527.) - ^ M. Crawford (December 1998). Transmission of IPv6 Packets over Ethernet Networks - section 4 Stateless Autoconfiguration. IETF. sec. 4. doi:10.17487/RFC2464. RFC 2464.
The Interface Identifier [AARCH] for an Ethernet interface is based on the EUI-64 identifier [EUI64] derived from the interface's built-in 48-bit IEEE 802 address. [...] An IPv6 address prefix used for stateless autoconfiguration [ACONF] of an Ethernet interface must have a length of 64 bits.
(Updated by RFC 6085, RFC 8064.) - ^ M. Kohno; B. Nitzan; R. Bush; Y. Matsuzaki; L. Colitti; T. Narten (April 2011). Using 127-Bit IPv6 Prefixes on Inter-Router Links. IETF. doi:10.17487/RFC6164. RFC 6164.
On inter-router point-to-point links, it is useful, for security and other reasons, to use 127-bit IPv6 prefixes.
- ^ W. George (February 2012). RFC 3627 to Historic Status. IETF. doi:10.17487/RFC6547. RFC 6547.
This document moves "Use of /127 Prefix Length Between Routers Considered Harmful" (RFC 3627) to Historic status to reflect the updated guidance contained in "Using 127-Bit IPv6 Prefixes on Inter-Router Links" (RFC 6164).
- ^ R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture - section 2 IPv6 Addressing. IETF. sec. 2. doi:10.17487/RFC4291. RFC 4291.
There are no broadcast addresses in IPv6, their function being superseded by multicast addresses. [...] In IPv6, all zeros and all ones are legal values for any field, unless specifically excluded.
- ^ R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture - section 2.6.1 Required Anycast Address. IETF. sec. 2.6.1. doi:10.17487/RFC4291. RFC 4291.
This anycast address is syntactically the same as a unicast address for an interface on the link with the interface identifier set to zero.
- ^ "Subnet Router Anycast Addresses – what are they, how do they work? – Into6". 30 March 2014. Archived from the original on 2022-07-02. Retrieved 2022-06-09.
- ^ "IPv6 Addressing Plans". ARIN IPv6 Wiki. Archived from the original on 2010-04-26. Retrieved 2010-04-25.
All customers get one /48 unless they can show that they need more than 65k subnets. [...] If you have lots of consumer customers you may want to assign /56s to private residence sites.
- ^ T. Narten; G. Huston; L. Roberts (March 2011). IPv6 Address Assignment to End Sites. IETF. doi:10.17487/RFC6177. ISSN 2070-1721. BCP 157. RFC 6177.
APNIC, ARIN, and RIPE have revised the end site assignment policy to encourage the assignment of smaller (i.e., /56) blocks to end sites.
Further reading
[edit]- Requirements for IPv4 Routers. doi:10.17487/RFC1812. RFC 1812.
- Utility of subnets of Internet networks. doi:10.17487/RFC0917. RFC 917.
- DNS Encodings of Network Names and Other Type. doi:10.17487/RFC1101. RFC 1101.
- Blank, Andrew G. (2006). TCP/IP Foundations. Wiley. ISBN 9780782151138.
- Lammle, Todd (2005). CCNA Cisco Certified Network Associate Study Guide 5th Edition. San Francisco, London: Sybex.
- Groth, David; Skandier, Toby (2005). Network + Study Guide (4th ed.). San Francisco, London: Wiley.
Subnet
View on GrokipediaFundamentals of Subnets
Definition and Purpose
A subnet, or subnetwork, is a logically visible subdivision of an IP network, consisting of one or more physical networks that share a common network prefix and function as a single entity within the broader internetwork.[5] This logical division enables the segmentation of a larger network into smaller, manageable portions without requiring separate physical infrastructure, allowing hosts within the same subnet to communicate directly while isolating them from other parts of the network.[1] The concept of subnetting originated in the mid-1980s as the Internet grew beyond its initial two-level hierarchy of networks and hosts, necessitating more granular address management. Formalized in RFC 950, published in August 1985 by the Network Working Group, subnetting was introduced to enable organizations to divide a single network into multiple subnets, supporting hierarchical addressing and enhancing routing efficiency by reducing the propagation of local connectivity details to global routing tables.[5] This standard built on earlier proposals, such as RFC 917 from 1984, and marked a pivotal shift toward hierarchical addressing in TCP/IP networks. The primary purposes of subnetting include optimizing IP address utilization by allocating smaller address blocks where full network prefixes would be wasteful, thereby conserving IPv4 resources.[7] It also improves network security by isolating traffic between segments, limiting the scope of broadcasts and potential attack vectors; enhances traffic management by containing broadcasts within subnets to reduce congestion; and supports scalability in large environments by enabling modular network growth without overhauling the entire addressing scheme.[8] These benefits collectively address the limitations of flat network topologies, promoting more efficient and secure operations.[5] In real-world applications, subnetting is widely used in organizational networks to segregate departments—for instance, assigning distinct subnets to human resources and engineering teams to enforce access controls and monitor traffic separately.[1] In data centers, it facilitates virtualization by mapping virtual machines to isolated subnets, optimizing resource allocation and supporting cloud-scale deployments.[8]Basic Components
A subnet's fundamental structure relies on partitioning IP addresses into two primary components: the network prefix, which uniquely identifies the subnet within the larger address space, and the host identifier, which distinguishes individual devices or hosts connected to that subnet. This division enables efficient organization and routing of traffic by isolating groups of addresses logically. The network prefix ensures that all addresses within a subnet share the same initial bits, while the host identifier allows for unique assignment to endpoints like computers or routers.[3][9] At the binary level, IP addresses form fixed-length strings—32 bits for IPv4 and 128 bits for IPv6—that are segmented based on the prefix length, commonly expressed in slash notation such as /24, where the number indicates the count of bits allocated to the network prefix. The remaining bits then serve as the host identifier, determining the number of possible unique hosts in the subnet. This binary delineation provides a scalable framework for address allocation across diverse network sizes. For IPv6, the extended bit length supports vastly larger address pools while maintaining the same prefix-host separation principle.[10] Subnet masks play a crucial role in this partitioning by acting as binary overlays that delineate the boundary between prefix and host bits through a series of 1s followed by 0s. In IPv4, a mask like 255.255.255.0 (binary 11111111.11111111.11111111.00000000) corresponds to a /24 prefix, masking the first 24 bits as the network portion. This mechanism facilitates the logical isolation of subnets without altering the underlying address format.[11][9] Subnets are designed as contiguous blocks of sequential IP addresses to promote routing efficiency, as routers can aggregate these ranges into summarized routes, reducing table sizes and processing overhead in large networks. This contiguity ensures that all addresses in a subnet fall within a continuous numeric sequence, optimizing path determination and minimizing broadcast domains.[12]Subnetting in IPv4
Address Structure and Prefix Determination
IPv4 addresses consist of 32 bits, typically represented in dotted decimal notation as four octets separated by periods, where each octet ranges from 0 to 255 (e.g., 192.168.1.1).[13] This format facilitates human readability while encoding the binary structure used in network protocols.[13] In the initial classful addressing system outlined in RFC 791, IPv4 addresses were categorized into classes A, B, and C based on the leading bits of the first octet, which implicitly defined the network prefix length: class A addresses (first octet 1–126) allocated 8 bits for the network, class B (128–191) used 16 bits, and class C (192–223) employed 24 bits.[13] This rigid structure, while simplifying early allocations, proved inefficient for varying network sizes and contributed to address space exhaustion.[13] The shift to classless addressing, enabled by Classless Inter-Domain Routing (CIDR) in RFC 1519 (1993), eliminated class boundaries and introduced variable prefix lengths to optimize address allocation and routing table efficiency.[14] In contrast to classful addressing, classless addressing allows the dividing line between network and host portions to fall anywhere along the string of binary bits in an IP address. The placement of this line is unrelated to the numerical value of the octets. Shifting this dividing line allows for segmenting various sizes of networks within networks in a process called subnetting.[14] Under CIDR, the prefix length is explicitly specified (e.g., /16 for a 16-bit network portion), allowing subnets to borrow bits from the host portion of any classful address. To identify the network prefix, administrators apply a subnet mask—a 32-bit value with consecutive 1s from the left indicating the network bits—or the equivalent slash notation prefix length.[15] The network address is derived by performing a bitwise AND operation between the full IP address and the subnet mask, isolating the network portion while zeroing the host bits.[15] For instance, the private address block 10.0.0.0/8, reserved per RFC 1918, uses a subnet mask of 255.0.0.0 to denote an 8-bit prefix covering all addresses from 10.0.0.0 to 10.255.255.255.[16] In practice, command-line tools assist in prefix determination without manual computation. The ipcalc utility, for example, processes an address and prefix to output the network range; invoking ipcalc 172.16.0.0/12 yields the network as 172.16.0.0/12, confirming the prefix for that private block.[17][16] Legacy systems may use ifconfig to display interface details, including the inet address and netmask (e.g., Mask:255.255.255.0 implying /24), while modern Linux distributions favor the ip command for similar output, such as ip addr show revealing prefix lengths in CIDR notation.Subnet Mask Mechanics
A subnet mask in IPv4 is a 32-bit value that delineates the network portion from the host portion of an IP address by using contiguous 1s in the binary representation for the network bits followed by 0s for the host bits.[15] For instance, a /24 prefix corresponds to the binary mask 11111111.11111111.11111111.00000000, which in dotted decimal notation is 255.255.255.0.[18] This structure allows routers and hosts to identify the boundaries of a local network efficiently.[15] The primary mechanism of a subnet mask involves the bitwise AND operation, which extracts the network address from any IP address within the subnet. The formula is: network address = IP address bitwise AND subnet mask. In binary, the AND operation retains bits where both the IP address and mask have 1s, effectively zeroing out the host bits. For example, the IP address 192.168.1.100 (binary: 11000000.10101000.00000001.01100100) AND the mask 255.255.255.0 (binary: 11111111.11111111.11111111.00000000) yields 192.168.1.0 (binary: 11000000.10101000.00000001.00000000), confirming the network prefix.[3] This operation is fundamental for determining whether a destination IP is local or requires routing.[15] Subnet masks can be expressed in three equivalent notations: dotted decimal (e.g., 255.255.255.0), binary (e.g., 11111111.11111111.11111111.00000000), and CIDR slash notation (e.g., /24), where the slash indicates the number of leading 1 bits in the mask.[18] The CIDR notation, introduced to support classless addressing, simplifies representation of variable prefix lengths without altering the underlying binary mask.[18] Common subnet masks from /8 to /30 are summarized in the following table, showing the CIDR prefix, dotted decimal equivalent, and usable host range (calculated as 2^(32 - prefix length) - 2, excluding network and broadcast addresses; note that /31 supports 2 hosts for point-to-point links per RFC 3021, and /32 supports 1 host).[19]| CIDR Prefix | Subnet Mask (Decimal) | Usable Hosts |
|---|---|---|
| /8 | 255.0.0.0 | 16,777,214 |
| /16 | 255.255.0.0 | 65,534 |
| /24 | 255.255.255.0 | 254 |
| /25 | 255.255.255.128 | 126 |
| /26 | 255.255.255.192 | 62 |
| /27 | 255.255.255.224 | 30 |
| /28 | 255.255.255.240 | 14 |
| /29 | 255.255.255.248 | 6 |
| /30 | 255.255.255.252 | 2 |
Subnet Division Process
The subnet division process in IPv4 involves systematically partitioning a given network address space into smaller subnetworks by extending the subnet mask through bit borrowing from the host portion. This procedure begins with selecting a base network, such as 192.168.0.0/16, which provides a large address pool for subdivision.[20] The next step is to determine the required number of subnets and hosts per subnet, then borrow the appropriate number of bits from the host field to create subnet bits; for instance, extending from /16 to /24 borrows 8 bits, yielding 2^8 = 256 subnets, each capable of supporting up to 254 usable hosts after reserving the network and broadcast addresses.[5] Finally, calculate the address ranges for each subnet by incrementing the subnet identifier in the borrowed bits while keeping the host bits variable within each block, such as 192.168.0.0/24 (ranging from 192.168.0.0 to 192.168.0.255) and 192.168.1.0/24 (ranging from 192.168.1.0 to 192.168.1.255).[20] The number of subnets created follows the power-of-2 rule based on the borrowed bits (n), resulting in 2^n possible subnets, though early implementations excluded the all-zeroes and all-ones subnets, limiting usable subnets to 2^n - 2; modern practices, enabled by commands like Cisco's "ip subnet-zero," allow full utilization.[5] Similarly, the size of each subnet is determined by the remaining host bits (h), providing 2^h addresses total, with 2^h - 2 usable for hosts to account for the reserved network and broadcast addresses.[21] These calculations ensure efficient allocation without overlap, adhering to the contiguous bit positioning recommended for subnet fields.[5] A practical example illustrates this process: dividing the Class A network 10.0.0.0/8 into /20 subnets borrows 12 bits from the 24 available host bits, creating 2^12 = 4096 subnets, each with 2^12 - 2 = 4094 usable hosts.[20] The subnet ranges increment by 16 in the third octet (since 2^4 = 16, reflecting the 4 bits in the third octet used for subnetting beyond /16). The first few ranges are: 10.0.0.0/20 (10.0.0.0 to 10.0.15.255), 10.0.16.0/20 (10.0.16.0 to 10.0.31.255), and 10.0.32.0/20 (10.0.32.0 to 10.0.47.255).[20] To automate these calculations and reduce errors, network administrators often use software tools such as online subnet calculators or integrated utilities in network management software.[11] On Cisco IOS routers, while there is no built-in command for automatic subnet generation, administrators configure subnets directly via interface commands like "ip address 192.168.1.1 255.255.255.0" after manual or tool-assisted planning, with verification using "show ip interface brief."[22]Host Capacity and Special Addresses
In IPv4 subnetting, the capacity for usable host addresses within a subnet is determined by the number of bits allocated to the host portion of the address. If represents the number of host bits, the total number of possible addresses is , but two addresses are reserved: one for the network identifier and one for the broadcast address. Thus, the formula for usable hosts is . For example, a /24 subnet, with 8 host bits, provides usable host addresses.[15][23] Special addresses within a subnet include the network address, formed by setting all host bits to 0 (e.g., 192.168.1.0 for a /24 subnet), which identifies the subnet itself and cannot be assigned to a host, and the broadcast address, formed by setting all host bits to 1 (e.g., 192.168.1.255 for the same subnet), used to send packets to all hosts on that subnet. Additionally, the loopback address block 127.0.0.0/8 is reserved for internal communication within a host, where packets sent to addresses in this range (typically 127.0.0.1) are looped back by the local IP stack without transmission over the network.[15][24] Historically, RFC 950 prohibited the use of the subnet-zero (all subnet bits 0) and all-ones subnet (all subnet bits 1) to avoid ambiguity with non-subnetted special addresses, such as the all-zeros network identifier. However, this restriction was lifted in 1995 by RFC 1878 to improve address efficiency, allowing all possible subnets to be utilized in modern implementations.[15][23] For edge cases like point-to-point links, /31 subnets (31-bit prefixes) provide exactly two usable addresses without a dedicated broadcast or network address, as both endpoints share the link and use limited broadcast (255.255.255.255) instead; this conserves addresses while supporting direct connections. Similarly, /32 prefixes define a single-host subnet with one usable address, suitable for host routes or looped configurations on such links.[25]Subnetting in IPv6
IPv6 Address Hierarchy
IPv6 addresses are 128-bit identifiers expressed in hexadecimal notation, divided into eight groups of four hexadecimal digits separated by colons, such as2001:0db8:85a3:0000:0000:8a2e:0370:7334, with compression allowed using double colons (::) to represent one or more consecutive groups of zeros, for example 2001:db8:85a3::8a2e:370:7334.[26] This notation supports prefix length indication in CIDR format, like 2001:db8::/32, to denote the network portion.[26]
The structure of a global unicast IPv6 address follows a hierarchical division into three main fields: the global routing prefix (typically 48 bits, assigned by upstream providers for internet routing), the subnet ID (16 bits, used to identify individual subnets or links within a site), and the interface ID (64 bits, uniquely identifying a network interface on the link).[26] This division totals 128 bits, with the first 64 bits dedicated to routing and subnetting (global routing prefix + subnet ID) and the remaining 64 bits for host identification, enabling stateless autoconfiguration via mechanisms like SLAAC.[26]
At the hierarchical levels, the provider prefix (global routing prefix) forms the top tier for regional and global routing, followed by the site prefix (often a /48 allocation encompassing the global routing prefix and subnet ID space), which allows sites to delegate subnets automatically.[26] Within a site, the subnet prefix (typically /64) is used for local area networks (LANs), providing 2^64 addresses per subnet for hosts, while the interface ID ensures uniqueness at the device level.[26] This layered approach—provider, site, subnet—facilitates scalable delegation without address exhaustion concerns.[26]
The IPv6 addressing architecture is defined in RFC 4291, published in 2006, which outlines the format, types, and hierarchical model for unicast addresses.[26] Complementing this, RFC 6177 from 2011 provides guidance on end-site assignments, recommending a /56 prefix for typical sites to yield 256 /64 subnets, while mandating /64 for individual LANs to support autoconfiguration and avoid fragmentation.[27]
Compared to IPv4's flat 32-bit structure, IPv6's 128-bit expanse eliminates address scarcity, allocating vast blocks (e.g., 2^80 per /48 site prefix) that reduce the need for complex conservation techniques, while the inherent hierarchy streamlines subnetting and routing aggregation.[26][27]