Разбиение сети на сегменты, выдача адресов, маршруты: всё это упирается в маску подсети и CIDR. Считать в уме адрес сети, broadcast и число хостов можно, но при планировании офиса или VPS проще открыть калькулятор сетевых масок на этом сайте: вводите IP и маску, получаете все параметры подсети.
Классы адресов: откуда всё пошло
До CIDR адресация в IPv4 была классовой: по первому октету адреса определялся класс и маска по умолчанию. На заре интернета это упрощало маршрутизацию, но масштабировалось плохо: сети получались либо слишком большими, либо адресов не хватало.
- Класс A: 0.0.0.0 … 127.255.255.255, маска 255.0.0.0 (/8), около 16 миллионов адресов на сеть;
- Класс B: 128.0.0.0 … 191.255.255.255, маска 255.255.0.0 (/16), около 65 тысяч адресов;
- Класс C: 192.0.0.0 … 223.255.255.255, маска 255.255.255.0 (/24), 254 адреса для хостов (256 минус адрес сети и broadcast);
- Класс D: 224.0.0.0 … 239.255.255.255, multicast, обычным хостам не выдаётся;
- Класс E: 240.0.0.0 … 255.255.255.255, зарезервирован.
Сейчас классы почти ни на что не влияют: важен префикс и маршрутизация, а не то, что адрес «из класса B». Их помнят скорее по привычке и по учебникам.
CIDR: маска как число бит
CIDR (Classless Inter-Domain Routing, RFC 4632) отвязал размер сети от классов. Запись 192.168.1.0/24 значит: первые 24 бита это сеть, оставшиеся 8 бит хосты. То же самое, что маска 255.255.255.0.
Пример для 192.168.1.1/24:
адрес сети: 192.168.1.0 broadcast: 192.168.1.255 хосты: 192.168.1.1 … 192.168.1.254 (254 адреса)
Так можно резать /16 на /24, /25, /27 и мельче, без привязки к классовой маске: меньше пустых адресов и удобнее делить сеть на офис, DMZ и гостевой Wi-Fi.
Что считает калькулятор
В калькуляторе достаточно ввести IP-адрес и маску, в виде числа бит (16) или полностью (255.255.0.0). В ответ он показывает:
- маску в обоих видах и wildcard-маску, которая нужна для ACL на Cisco и в OSPF;
- адрес сети, то есть первый адрес префикса;
- broadcast, последний адрес подсети;
- первый и последний адрес для хостов;
- сколько адресов можно раздать хостам (обычно 2 в степени числа бит хоста минус 2);
- исторический класс адреса, для справки.
Пример: 10.0.1.100/16.
маска: 255.255.0.0 wildcard: 0.0.255.255 сеть: 10.0.0.0 broadcast: 10.0.255.255 хосты: 10.0.0.1 … 10.0.255.254 хостов: 65 534 класс: A
Такая подсеть подходит для большой внутренней инфраструктуры без публичных адресов. На практике /16 обычно режут дальше, чтобы ограничить broadcast-домен и проще писать правила доступа.
Частные и особые диапазоны
Для внутренних сетей RFC 1918 отводит три блока, которые не маршрутизируются в интернете:
- 10.0.0.0/8 (10.0.0.0 … 10.255.255.255);
- 172.16.0.0/12 (172.16.0.0 … 172.31.255.255);
- 192.168.0.0/16 (192.168.0.0 … 192.168.255.255).
Рядом стоит помнить про 127.0.0.0/8 (loopback, сам компьютер), 169.254.0.0/16 (адреса, которые система назначает себе сама, если DHCP не ответил) и 100.64.0.0/10 по RFC 6598: этот блок провайдеры используют для CGNAT. Если у роутера на внешнем интерфейсе адрес из 100.64.0.0/10, значит публичного IP у вас нет.
Два особых случая: в /32 ровно один адрес, так обычно пишут один хост в правилах и маршрутах, а /31 по RFC 3021 используют на линках точка-точка, где оба адреса отдают хостам без адреса сети и broadcast.
Зачем это админу
Неверная маска приводит к пересечению подсетей, «пропавшим» хостам и странным маршрутам. Слишком широкая сеть даёт лишний broadcast и шум, слишком узкая не оставляет места под новое оборудование. Калькулятор не заменяет проектирование, но убирает ошибки в арифметике.
- проект новой локальной сети или VLAN: сколько /24 или /27 нужно под отделы;
- расширение текущей сети: сколько адресов ещё свободно в префиксе;
- проверка перед настройкой роутера, файрвола и пула DHCP;
- учёба: быстро проверить себя после расчёта на бумаге.
В итоге всё сводится к паре чисел: ввели адрес и маску, получили сеть, broadcast, диапазон хостов и их количество. Дальше уже правила доступа, DHCP и документация сети, но начинать лучше с правильной арифметики.