Subnet

Subnet
A subnetwork or subnet is a logical subdivision of an IP network. 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, 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 to belong to this network, with as the subnet broadcast address. The IPv6 address specification 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 would have the subnet mask .
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
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 .
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).
In IPv6 this is the only standards-based form to denote network or routing prefixes.
For example, the IPv4 network with the subnet mask is written as , and the IPv6 notation designates the address 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. For IPv6, however, on-link determination is different in detail and requires the Neighbor Discovery Protocol (NDP). 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
Determining the network prefix
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 and its associated subnet mask. The operation is visualized in a table using binary address formats.
The result of the bitwise AND operation of IP address and the subnet mask is the network prefix . The host part, which is , is derived by the bitwise AND operation of the address and the one's complement of the subnet mask.
Subnetting
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.
Special addresses and subnets
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. 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. 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.
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, 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.
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 network can be divided into sixteen usable networks. Each broadcast address, i.e. … reduces only the host count in each subnets.
Subnet host count
The number of subnets available and the number of possible hosts in a network may be readily calculated. For instance, the network may be subdivided into the following four subnets. The highlighted two address bits become part of the network number in this process.
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, 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.
Internet Protocol version 6
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. Given the address size of 128 bits, it therefore has a /64 routing prefix. Although it is technically possible to use smaller subnets, they are impractical for local area networks based on Ethernet technology, because 64 bits are required for stateless address autoconfiguration. The Internet Engineering Task Force recommends the use of subnets for point-to-point links, which have only two hosts.
IPv6 does not implement special address formats for broadcast traffic or network numbers, and thus all addresses in a subnet are acceptable for host addressing. The all-zeroes address is reserved as the subnet-router anycast address. 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. 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 prefix. However, this recommendation was revised to encourage smaller blocks, for example using 56-bit prefixes. Another common allocation size for residential customer networks has a 64-bit prefix.
See also
Autonomous system (Internet)
Network segmentation
References
Further reading
Routing
IP addresses
Internet architecture