Article based on the original work of Travis Zajkowski first posted on his blog
As first thing, this is a good definition of subner, from wikipedia:
A subnetwork, or subnet, is a logically visible subdivision of an IP network. The practice of dividing a network into two or more networks is called subnetting.
All computers that belong to a subnet are addressed with a common, identical, most-significant bit-group in their IP address. This results in the logical division of an IP address into two fields, a network 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 is expressed in CIDR notation. It is written as the first address of a network, followed by a slash character (/), and ending with the bit-length of the prefix. For example, 192.168.1.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. The IPv6 address specification 2001:db8::/32 is a large address block with 296 addresses, having a 32-bit routing prefix. In IPv4 the routing prefix is also specified in the form of the subnet mask, which is expressed in quad-dotted decimal representation like an address. For example, 255.255.255.0 is the network mask for the 192.168.1.0/24 prefix. Traffic between subnetworks is exchanged or routed with special gateways called routers which constitute the logical or physical boundaries between the subnets.
The benefits of subnetting vary with each deployment scenario. In the address allocation architecture of the Internet using Classless Inter-Domain Routing (CIDR) and in large organizations, it is necessary to allocate address space efficiently. It may also enhance routing efficiency, or have advantages in network management when subnetworks 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.
When you configure a server or a service it’s useful to know what’s the complete IP Address, so there are several different Subnet Calculators available for command line use on Linux. Two popular ones are:
ipcalc
sipcalc
ipcalc
ipcalc provides a simple way to calculate IP information for a host. The various options specify what information ipcalc should display on standard out. Multiple options may be specified. An IP address to operate on must always be specified. Most operations also require a netmask or a CIDR prefix as well.
To install ipcalc on Ubuntu/Debian based systems run:
sudo apt-get install ipcalc |
To install ipcalc on Gentoo run:
emerge ipcalc |
Now that ipcalc is installed, we can begin to use it. To run ipcalc simply use the following:
ipcalc $IP |
Note: Replace $IP with the IP you are trying to look up.
Example:
travis@server ~ $ ipcalc 10.30.6.1 Address: 10.30.6.1 00001010.00011110.00000110. 00000001 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 => Network: 10.30.6.0/24 00001010.00011110.00000110. 00000000 HostMin: 10.30.6.1 00001010.00011110.00000110. 00000001 HostMax: 10.30.6.254 00001010.00011110.00000110. 11111110 Broadcast: 10.30.6.255 00001010.00011110.00000110. 11111111 Hosts/Net: 254 Class A, Private Internet |
This will give you the Netmask, Broadcast and other information about the subnet.
You can also specify ranges with ipcalc with the following:
ipcalc $IP/$SUBNET |
Example:
travis@server ~ $ ipcalc 10.30.6.0/23 Address: 10.30.6.0 00001010.00011110.0000011 0.00000000 Netmask: 255.255.254.0 = 23 11111111.11111111.1111111 0.00000000 Wildcard: 0.0.1.255 00000000.00000000.0000000 1.11111111 => Network: 10.30.6.0/23 00001010.00011110.0000011 0.00000000 HostMin: 10.30.6.1 00001010.00011110.0000011 0.00000001 HostMax: 10.30.7.254 00001010.00011110.0000011 1.11111110 Broadcast: 10.30.7.255 00001010.00011110.0000011 1.11111111 Hosts/Net: 510 Class A, Private Internet |
In this example I used a /23 and I was given the HostMin and HostMax values that fall within that range as well as the total number of hosts I can have on that network.
sipcalc
Sipcalc is an advanced console-based IP subnet calculator. It can take multiple forms of input (IPv4/IPv6/interface/hostname) and output a multitude of information about a given subnet.
To install sipcalc on Ubuntu/Debian based systems run:
sudo apt-get install sipcalc |
To install sipcalc on Gentoo run:
emerge sipcalc |
To use sipcalc you can simply run:
sipcalc $IP |
The syntax is similar to ipcalc in the end.
Example:
travis@server ~ $ sipcalc 10.30.6.1 -[ipv4 : 10.30.6.1] - 0 [CIDR] Host address - 10.30.6.1 Host address (decimal) - 169739777 Host address (hex) - A1E0601 Network address - 10.30.6.1 Network mask - 255.255.255.255 Network mask (bits) - 32 Network mask (hex) - FFFFFFFF Broadcast address - 10.30.6.1 Cisco wildcard - 0.0.0.0 Addresses in network - 1 Network range - 10.30.6.1 - 10.30.6.1 |
Again, as with ipcalc you can use ranges:
travis@server ~ $ sipcalc 10.30.6.1/23 -[ipv4 : 10.30.6.1/23] - 0 [CIDR] Host address - 10.30.6.1 Host address (decimal) - 169739777 Host address (hex) - A1E0601 Network address - 10.30.6.0 Network mask - 255.255.254.0 Network mask (bits) - 23 Network mask (hex) - FFFFFE00 Broadcast address - 10.30.7.255 Cisco wildcard - 0.0.1.255 Addresses in network - 512 Network range - 10.30.6.0 - 10.30.7.255 Usable range - 10.30.6.1 - 10.30.7.254 |
Popular Posts:
- None Found