TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #685 13K
После моей статьи в чате началось активное обсуждение, в простонародье именуемое как срач.
ㅤ
Могут ли быть маски подсети /32 или /31?

Я не буду много рассказывать про маски, кому интересно, гляньте в википедии. Мы же остановимся только на масках подсетей /32 /31, потому что они являются исключением из правил.

Физические сети, построенные с этими масками не могут иметь широковещательного адреса. Но это не значит, что данные МАСКИ нельзя использовать.

Да, данные маски нельзя использовать для построения классических сетей (хотя здесь говорят, что /31 - можно), и некоторые маршрутизаторы не дадут этого сделать.

Но данные маски вполне могут (а иногда должны) быть использованы для для разбиения ЛЮБОГО непрерывного диапазона ip на записи в формате CIDR.

И без масок /31 /32 этот ряд будет не полным. Мало того, iptables использует только нотацию CIDR. Например, подсеть /32 задает отдельный ip, поэтому правила, содержащие одиночный адрес, задаются с маской /32, даже если вы это не указали. (192.168.0.1=192.168.0.1/32)

Маска 31 - задает два рядом стоящих ip и позволяет уменьшить количество записей, увеличив скорость.

Но не любые соседние ip могут быть объединены этой маской, а только отличающихся последним битом,

Например: 192.168.0.1 и 192.168.0.0 можно объединить в 192.168.0.0/31, а 192.168.0.1 и 192.168.0.2 - нельзя.

Ну и теперь посмотрим, что об этой фигне говорят сетевые калькуляторы ipcalc и sipcalc.

Я тут из вывода удалил менее информативные поля. Если кому интересно - смотрите полный вывод сами.

apt install ipcalc sipcalc
sipcalc 192.168.0.1/32

# вывод
Host address - 192.168.0.1
Network address - 192.168.0.1
Network mask (bits) - 32
Broadcast address - 192.168.0.1
Addresses in network - 1
Network rang - 192.168.0.1 - 192.168.0.1

ipcalc -b 192.168.0.1/32
# вывод
Address: 192.168.0.1
Netmask: 255.255.255.255 = 32
Hostroute: 192.168.0.1
Hosts/Net: 1

sipcalc 192.168.0.1/31
# вывод
Host address - 192.168.0.1
Network address - 192.168.0.0
Network mask (bits) - 31
Broadcast address - 192.168.0.1
Addresses in network - 2
Network range - 192.168.0.0 - 192.168.0.1

ipcalc -b 192.168.0.1/31
# вывод
Address: 192.168.0.1
Netmask: 255.255.255.254 = 31
Network: 192.168.0.0/31
HostMin: 192.168.0.0
HostMax: 192.168.0.1
Hosts/Net: 2


На мой взгляд, ipcalc для такой экзотики работает более правильно, поскольку Broadcast для подсетей >30 не выводится.

Вывод: при построении физических сетей с масками >30 возникают трудности.

А при фильтрации маски /31 /32 ничем не отличаются от остальных /1-/30

А как, чем, и для чего разбивать диапазоны ip, читайте в следующей статье.

tags: #networks © by Tagd Tagd
—
🔔 @bashdays➡️ @gitgate
More from @bashdays
  1. Sep 24, 2026Post #1565
  2. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  3. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  4. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
  5. Sep 11, 2026🤖 DevOps в эпоху AI трансформации: что работает уже сейчас! 17 сентября Сбер собирает Dev…
  6. Sep 9, 2026Всем привет, с вами TagdTagd! Я тут вынужденно перешёл на MAX. Просто Telegram перестал ра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →