Subnetting is a technique to divide a network (a subnet ID or a network range) into several, smaller networks. In other words, subnetting is a method to divide a network range into smaller, multiple networks by "borrowing" the host ID bits and turning them into network ID bits. Let's suppose that a network registrar authority, or an internet service provider (ISP), has assigned you a block of addresses. Or, that the current, internal, networking scheme in your company allows you to use a certain network ID. The network in this example is a class C network, 192.168.0.0, with a subnet mask of 255.255.255.0 and a suffix network of /24:
This configuration gives you only one network with 254 (256-2) addressable host addresses.
In order to be able to accommodate more networks within a given range, you need to subnet the network. If, for example, you need seven networks, then you need to take the number of bits assigned to a host ID portion and assign them to a network ID part of the network.
So, how many bits should you take? The answer is the number of bits that will give you enough network IDs. The simple calculation of 2n, where n is the number of bits you take, will give you the number of available networks. In this case, since you need 7 networks, the calculation of 23 (that is, borrowing 3 bits) will give you a number of 8, which is slightly above your requirements and satisfies the required number of networks. The downside, however, is that subnetting increases the number of networks but decreases the number of hosts (or host IDs). This is logical, because while you have more bits that represent the network ID, you also have fewer bits available for the host ID portion.
So, how do you or the computer know which bits you have borrowed from the host ID portion? Well, the subnet mask provides this information. The subnetting process also involves changing or increasing the subnet mask to the appropriate value that determines which bits are used for the network ID and which are used for the host ID. The following example shows you which bits have been "borrowed", which part is the network ID, and which part is the host ID:
This subnet configuration allows you to have 23=8 networks and 25-2=30 hosts in total. Depending on the number of networks/hosts you need, you can increase or decrease the number of subnet bits (or borrowed bits) to adjust the number of hosts and networks. The following table shows the number of subnets needed and the number of bits to borrow up to the 16 subnet bits. You can easily calculate the number of available subnets all the way to the theoretically borrowed 32 bits if you are subnetting a class A network range:
As mentioned earlier, the network ID portion of an address (where the host ID bits are set to zero) represents a network ID, and the last host ID (where all the host ID bits are set to one) represents a broadcast address. The following table shows the subnetted 192.168.0.0/27 network range with all its corresponding network IDs:
After subnetting 192.168.0.0/24 to 192.168.0.0/27, the available subnet network IDs, host ID address ranges, and broadcast addresses will be as follows:
The IPv4 standard defines the portion of the IPv4 address range that is not routable on the internet and is suitable for private use, hence its name, the private IP address range. These three address ranges are defined solely for private use, that is, in the private addressing schemes using systems that are not directly connected to the internet. To be able to access the internet, a host configured with a private IP address needs to use Network Address Translation (NAT). This allows internal addresses to be mapped to one or more publicly available IP addresses. NAT helps keep an internal network isolated while addressing the shortage of publicly available IP addresses.
The following table shows the list of class A, B, and C private IP address ranges:
The private IP addresses are defined in RFC 1918, which is available at http://tools.ietf.org/html/rfc1918.