IPCalc - считаем сети "по правильному"

Версия для печатиОтправить другуPDF version

Есть небольшая утилита, которая существенно упрощает жизнь системному администратору. Если сеть небольшая, и диапазон IP-адресов небольшой, то можно не заморачиваться. А вот если блоки айпишек довольно большие, и соответственно полным ходом используется безклассовая маршрутизация, то без IPCalc уже не обойтись. IPCalc - небольшая утилита для оперирования IP-адресами и масками сетей. Согласен, в основном все считается в уме, но иногда лучше убедиться, что не было допущено ошибки.

Итак, приступаем к установке утилиты из портов:

# cd /usr/ports/net-mgmt/ipcalc/ && make install clean && rehash

Устанавливается за считанные секунды... Что ж, ознакомимся с возможностями. Посчитаем, для примера, сколько хостов может быть в офисной сети :

# ipcalc 192.168.64.0 255.255.255.0
Address:   192.168.64.0         11000000.10101000.01000000. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.64.0/24      11000000.10101000.01000000. 00000000
HostMin:   192.168.64.1         11000000.10101000.01000000. 00000001
HostMax:   192.168.64.254       11000000.10101000.01000000. 11111110
Broadcast: 192.168.64.255       11000000.10101000.01000000. 11111111
Hosts/Net: 254                   Class C, Private Internet
 

Эту же сеть можно "посчитать", указав количество бит в маске:

# ipcalc 192.168.64.0/24
Address:   192.168.64.0         11000000.10101000.01000000. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.64.0/24      11000000.10101000.01000000. 00000000
HostMin:   192.168.64.1         11000000.10101000.01000000. 00000001
HostMax:   192.168.64.254       11000000.10101000.01000000. 11111110
Broadcast: 192.168.64.255       11000000.10101000.01000000. 11111111
Hosts/Net: 254                   Class C, Private Internet
 

Еще пример. Сколько сетей /27 получится из одной сети /24? Как оказалось - 8:

# ipcalc 192.168.64.0/24 /27
Address:   192.168.64.0         11000000.10101000.01000000. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.64.0/24      11000000.10101000.01000000. 00000000
HostMin:   192.168.64.1         11000000.10101000.01000000. 00000001
HostMax:   192.168.64.254       11000000.10101000.01000000. 11111110
Broadcast: 192.168.64.255       11000000.10101000.01000000. 11111111
Hosts/Net: 254                   Class C, Private Internet

 
Subnets after transition from /24 to /27
 
Netmask:   255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Wildcard:  0.0.0.31             00000000.00000000.00000000.000 11111
 
 1.
Network:   192.168.64.0/27      11000000.10101000.01000000.000 00000
HostMin:   192.168.64.1         11000000.10101000.01000000.000 00001
HostMax:   192.168.64.30        11000000.10101000.01000000.000 11110
Broadcast: 192.168.64.31        11000000.10101000.01000000.000 11111
Hosts/Net: 30                    Class C, Private Internet
 
 2.
Network:   192.168.64.32/27     11000000.10101000.01000000.001 00000
HostMin:   192.168.64.33        11000000.10101000.01000000.001 00001
HostMax:   192.168.64.62        11000000.10101000.01000000.001 11110
Broadcast: 192.168.64.63        11000000.10101000.01000000.001 11111
Hosts/Net: 30                    Class C, Private Internet
 
 3.
Network:   192.168.64.64/27     11000000.10101000.01000000.010 00000
HostMin:   192.168.64.65        11000000.10101000.01000000.010 00001
HostMax:   192.168.64.94        11000000.10101000.01000000.010 11110
Broadcast: 192.168.64.95        11000000.10101000.01000000.010 11111
Hosts/Net: 30                    Class C, Private Internet
 
 4.
Network:   192.168.64.96/27     11000000.10101000.01000000.011 00000
HostMin:   192.168.64.97        11000000.10101000.01000000.011 00001
HostMax:   192.168.64.126       11000000.10101000.01000000.011 11110
Broadcast: 192.168.64.127       11000000.10101000.01000000.011 11111
Hosts/Net: 30                    Class C, Private Internet
 
 5.
Network:   192.168.64.128/27    11000000.10101000.01000000.100 00000
HostMin:   192.168.64.129       11000000.10101000.01000000.100 00001
HostMax:   192.168.64.158       11000000.10101000.01000000.100 11110
Broadcast: 192.168.64.159       11000000.10101000.01000000.100 11111
Hosts/Net: 30                    Class C, Private Internet
 
 6.
Network:   192.168.64.160/27    11000000.10101000.01000000.101 00000
HostMin:   192.168.64.161       11000000.10101000.01000000.101 00001
HostMax:   192.168.64.190       11000000.10101000.01000000.101 11110
Broadcast: 192.168.64.191       11000000.10101000.01000000.101 11111
Hosts/Net: 30                    Class C, Private Internet
 
 7.
Network:   192.168.64.192/27    11000000.10101000.01000000.110 00000
HostMin:   192.168.64.193       11000000.10101000.01000000.110 00001
HostMax:   192.168.64.222       11000000.10101000.01000000.110 11110
Broadcast: 192.168.64.223       11000000.10101000.01000000.110 11111
Hosts/Net: 30                    Class C, Private Internet
 
 8.
Network:   192.168.64.224/27    11000000.10101000.01000000.111 00000
HostMin:   192.168.64.225       11000000.10101000.01000000.111 00001
HostMax:   192.168.64.254       11000000.10101000.01000000.111 11110
Broadcast: 192.168.64.255       11000000.10101000.01000000.111 11111
Hosts/Net: 30                    Class C, Private Internet
 
Subnets:   8
Hosts:     240

Еще больше усложним пример. Попробуем посчитать, сколько получится сетей, если необходимое количество хостов в одном сегменте - 12:

# ipcalc 192.168.64.0/24 -s 12
Address:   192.168.64.0         11000000.10101000.01000000. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.64.0/24      11000000.10101000.01000000. 00000000
HostMin:   192.168.64.1         11000000.10101000.01000000. 00000001
HostMax:   192.168.64.254       11000000.10101000.01000000. 11111110
Broadcast: 192.168.64.255       11000000.10101000.01000000. 11111111
Hosts/Net: 254                   Class C, Private Internet

 
1. Requested size: 12 hosts
Netmask:   255.255.255.240 = 28 11111111.11111111.11111111.1111 0000
Network:   192.168.64.0/28      11000000.10101000.01000000.0000 0000
HostMin:   192.168.64.1         11000000.10101000.01000000.0000 0001
HostMax:   192.168.64.14        11000000.10101000.01000000.0000 1110
Broadcast: 192.168.64.15        11000000.10101000.01000000.0000 1111
Hosts/Net: 14                    Class C, Private Internet
 
Needed size:  16 addresses.
Used network: 192.168.64.0/28
Unused:
192.168.64.16/28
192.168.64.32/27
192.168.64.64/26
192.168.64.128/25

Возможности програмы по оперированию ip-адресацией довольно большие. Выборка из man-a:

Использование: ipcalc [options] <ADDRESS>[[/]<NETMASK>] [NETMASK]

IPCALC вычисляет широковещательный адрес, диапазон хостов, шаблон сетевой маски по полученному IP и сетевой маске. Может использоваться для конструирования сетей и подсетей, а также в обучающих целях.

Опции:
-n
--nocolor Подавить вывод цветов.
-b --nobinary Подавить поразрядный вывод.
-c --class Показать маску сети по адресу.
-h --html Показать результаты в HTML (не реализовано в этой версии).
-v --version Показать версию программы.
-s --split n1 n2 n3 Разделить сети по размеру n1, n2, n3.
-r --range Исключить диапазон адресов .
--help --Помощь.

Вот так... Надеюсь этот инструмент пригодится каждому, благо научиться им пользоваться не так уж и сложно.

 

Ваша оценка: Нет Средняя: 4.4 (5 голосов)

Вставай, Україно!

Литература