Глиф Учебники

Что такое маска подсети 255.255.255.0

Справочник · Компьютерные сети · 2 минуты чтения

Маска подсети 255.255.255.0 значит: первые три числа IP-адреса — номер сети, последнее — номер устройства в ней. Компьютер с адресом 192.168.1.25 и такой маской живёт в сети 192.168.1.x: все адреса от 192.168.1.1 до 192.168.1.254 для него «свои», к ним он обращается напрямую. Всё остальное — через шлюз, то есть роутер.

Та же маска коротко пишется как /24: 192.168.1.25/24.

Откуда берётся /24

Адрес IPv4 — это 32 бита, по 8 на каждое из четырёх чисел. Маска — тоже 32 бита: сначала идут единицы (биты номера сети), потом нули (биты номера устройства). Число 255 — это восемь единиц, 0 — восемь нулей:

Python
mask = "255.255.255.0"
print(".".join(f"{int(part):08b}" for part in mask.split(".")))
Вывод
11111111.11111111.11111111.00000000

Единиц 24 — отсюда /24. На устройства остаются 8 бит, то есть 256 адресов. Из них первый (192.168.1.0) — адрес самой сети, последний (192.168.1.255) — широковещательный, для сообщений всем устройствам сразу. Для устройств остаются 254 адреса — дома этого хватает с запасом.

Частые маски

МаскаЗаписьАдресовДля устройств
255.0.0.0/816 777 21616 777 214
255.255.0.0/1665 53665 534
255.255.254.0/23512510
255.255.255.0/24256254
255.255.255.128/25128126
255.255.255.192/266462
255.255.255.252/3042

Каждый бит, отданный сети, вдвое уменьшает число адресов. Таблицу легко проверить на Python — модуль ipaddress из стандартной библиотеки считает сам:

Python
import ipaddress

for prefix in (8, 16, 23, 24, 25, 26, 30):
    net = ipaddress.ip_network(f"10.0.0.0/{prefix}")
    print(f"/{prefix} {net.netmask} {net.num_addresses}")
Вывод
/8 255.0.0.0 16777216
/16 255.255.0.0 65536
/23 255.255.254.0 512
/24 255.255.255.0 256
/25 255.255.255.128 128
/26 255.255.255.192 64
/30 255.255.255.252 4

Своя сеть или чужая

Сравните у двух адресов части, отмеченные маской. При маске 255.255.255.0 это первые три числа:

С маской 255.255.0.0 (/16) своими были бы все адреса 192.168.x.x.

Подводные камни