‘ipcalc’ не выделяет достаточно большие подсети

Вопрос или проблема

Я не понимаю поведение ipcalc. Допустим, у меня есть адрес CIDR: 192.168.0.0/24, и я хочу разделить его на 2 подсети с только 12 доступными IP в каждой, тогда:

ipcalc 192.168.0.0/24 -s 12 12

должно сработать, верно? Однако я получаю следующий результат:

$ ipcalc 192.168.0.0/24 -s 12 12
Address:   192.168.0.0          11000000.10101000.00000000. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.0.0/24       11000000.10101000.00000000. 00000000
HostMin:   192.168.0.1          11000000.10101000.00000000. 00000001
HostMax:   192.168.0.254        11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255        11000000.10101000.00000000. 11111111
Hosts/Net: 254                   Class C, Private Internet

1. Requested size: 12 hosts
Netmask:   255.255.255.248 = 29 11111111.11111111.11111111.11111 000
Network:   192.168.0.0/29       11000000.10101000.00000000.00000 000
HostMin:   192.168.0.1          11000000.10101000.00000000.00000 001
HostMax:   192.168.0.6          11000000.10101000.00000000.00000 110
Broadcast: 192.168.0.7          11000000.10101000.00000000.00000 111
Hosts/Net: 6                     Class C, Private Internet

2. Requested size: 12 hosts
Netmask:   255.255.255.248 = 29 11111111.11111111.11111111.11111 000
Network:   192.168.0.16/29      11000000.10101000.00000000.00010 000
HostMin:   192.168.0.17         11000000.10101000.00000000.00010 001
HostMax:   192.168.0.22         11000000.10101000.00000000.00010 110
Broadcast: 192.168.0.23         11000000.10101000.00000000.00010 111
Hosts/Net: 6                     Class C, Private Internet

Needed size:  32 addresses.
Used network: 192.168.0.0/26.999999999999999999999999999999999999999
Unused:
192.168.0.32/27
192.168.0.64/26
192.168.0.128/25

Это дает мне только 6 IP на сеть. Я пробовал использовать 14 (чтобы учесть сетевой и широковещательный адреса), но это делает то же самое.

Что я делаю не так?

У вас, должно быть, устаревшая версия ipcalc. С той же командой здесь, версия 0.51 дает:

Address:   192.168.0.0          11000000.10101000.00000000. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.0.0/24       11000000.10101000.00000000. 00000000
HostMin:   192.168.0.1          11000000.10101000.00000000. 00000001
HostMax:   192.168.0.254        11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255        11000000.10101000.00000000. 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.0.0/28       11000000.10101000.00000000.0000 0000
HostMin:   192.168.0.1          11000000.10101000.00000000.0000 0001
HostMax:   192.168.0.14         11000000.10101000.00000000.0000 1110
Broadcast: 192.168.0.15         11000000.10101000.00000000.0000 1111
Hosts/Net: 14                    Class C, Private Internet

2. Requested size: 12 hosts
Netmask:   255.255.255.240 = 28 11111111.11111111.11111111.1111 0000
Network:   192.168.0.16/28      11000000.10101000.00000000.0001 0000
HostMin:   192.168.0.17         11000000.10101000.00000000.0001 0001
HostMax:   192.168.0.30         11000000.10101000.00000000.0001 1110
Broadcast: 192.168.0.31         11000000.10101000.00000000.0001 1111
Hosts/Net: 14                    Class C, Private Internet

Needed size:  32 addresses.
Used network: 192.168.0.0/27
Unused:
192.168.0.32/27
192.168.0.64/26
192.168.0.128/25

Это текущая версия на момент написания, несмотря на то, что она была выпущена в ноябре 2021.

.

Ответ или решение

Проблема с ipcalc: Недостаточный размер подсетей

При использовании утилиты ipcalc для разбиения сети на подсети возникает проблема, когда конечные подсети оказываются недостаточно большими. Давайте разберем возможные причины и решения этого вопроса.

Ход выполнения

Предположим, у нас есть сеть в формате CIDR: 192.168.0.0/24. Необходимо разбить эту сеть на две подсети с 12 доступными IP-адресами в каждой. При вводе команды:

ipcalc 192.168.0.0/24 -s 12 12

вы получаете данные о подсетях с лишь 6 доступными IP-адресами вместо ожидаемых 12.

Возможные причины

  1. Версия ipcalc: Как указывает ваш случай, проблема может заключаться в устаревшей версии ipcalc. В более актуальной версии (0.51), которая вышла в ноябре 2021 года, поведение утилиты по отношению к подобным запросам уже исправлено.

  2. Понимание деления подсетей: Когда вы запрашиваете 12 IP-адресов, следует учитывать, что для обеспечения 12 полезных IP-адресов (без учета сети и широковещательного адреса) необходимо задать маску подсети, позволяющую минимум 14 адресов (192.168.0.0/28). Таким образом, в версии 0.51 запрос 12 адресов приводит к созданию подсетей с 14 адресами, одна из которых будет 192.168.0.0/28.

Решение проблемы

  • Обновление версии ipcalc: Убедитесь, что вы пользуетесь обновленной версией ipcalc. Это можно сделать с помощью менеджера пакетов Linux, например, apt или yum, либо вручную установив последнюю версию с репозитория GitHub.

    sudo apt-get update
    sudo apt-get install ipcalc
  • Подбор подходящего размера и маски подсети: Для достижения желаемого числа доступных IP-адресов нужно помнить о том, что подсети должны учитывать не только доступные IP, но и сетевой и широковещательный адреса. В вашем случае успеха будет достаточно задать 14 в качестве искомого размера, что обеспечит использование подсети с 14 доступными IP.

Заключение

Решение подобной проблемы возможно через комбинацию использования актуальной версии инструмента и правильного понимания формирования подсетей. Поддержка актуального программного обеспечения и точное формулирование запроса позволят избежать подобных недоразумений в будущем.

Оцените материал
Добавить комментарий

Капча загружается...