Отказ от жёстких классов
Раньше адреса делили на классы A, B и C с фиксированными размерами сети. Это оказалось расточительным: организации, которой нужно триста адресов, приходилось брать блок на шестьдесят пять тысяч. В 1990-е годы ввели бесклассовую адресацию, CIDR, где размер блока задаётся произвольно, длиной сетевого префикса.
Запись состоит из адреса и числа после косой черты. Число говорит, сколько старших бит адреса принадлежит сети. В записи 10.0.0.0/8 сетевая часть занимает первый октет, в 172.16.0.0/12 двенадцать бит, в 192.168.0.0/16 шестнадцать.
Как перевести префикс в число адресов
Всего в IPv4 тридцать два бита. Вычтите длину префикса, и получите количество битов хостовой части. Два в этой степени и есть число адресов в блоке. Для /24 это 2 в восьмой, 256. Для /25 семь бит, 128. Для /26 шесть, 64. Для /30 два бита, 4 адреса, из них два рабочих: так раньше делали связки между маршрутизаторами.
Чем больше число после косой черты, тем меньше блок. Путаница возникает именно здесь: /16 больше, чем /24, хотя число меньше.
Соответствие маске и агрегирование
Префикс и маска подсети выражают одно и то же. /24 равно 255.255.255.0, /25 равно 255.255.255.128, /26 равно 255.255.255.192, /16 равно 255.255.0.0. Краткая запись удобнее для человека и занимает меньше места в конфигурациях.
Вторая важная задача CIDR состоит в агрегировании маршрутов. Четыре соседние сети /24, начиная с 192.168.0.0, можно объявить одной записью 192.168.0.0/22. Провайдеры так поступают, чтобы сократить размер глобальных таблиц маршрутизации: вместо сотен записей соседям сообщают один общий префикс. Условие простое: блоки должны идти подряд и выровнены по границе, кратной размеру.
Где встречается
Запись видна в правилах сетевого экрана, в настройках облачных сетей, в конфигурациях виртуальных частных сетей и в таблице маршрутов. Пример из повседневной практики: в правиле разрешить доступ только из 203.0.113.0/24, то есть из целого диапазона одной строкой, или из 203.0.113.5/32, то есть с единственного адреса.
В IPv6 применяется та же логика, но с 128-битными адресами. Стандартная подсеть у конечной сети имеет префикс /64, и этот выбор обусловлен особенностями автоконфигурации.
Как проверить себя
В Linux команда ip a показывает адрес интерфейса сразу с префиксом, например 192.168.1.15/24. В Windows префикс есть в выводе PowerShell для сетевых интерфейсов. Для расчётов удобны онлайн-калькуляторы подсетей, но тренировать навык полезно вручную: тогда границы блоков видны без подсказок.
Простой приём: блоки выравниваются по степеням двойки. В /26 границы идут через 64: 0, 64, 128, 192. Если адрес оканчивается на 100, он лежит в блоке, начинающемся с 64.
Пример агрегирования из практики
Допустим, у организации есть четыре сети: 172.20.0.0/24, 172.20.1.0/24, 172.20.2.0/24 и 172.20.3.0/24. Их адреса подряд, и первый блок начинается на границе, кратной четырём. Значит, их можно объединить в 172.20.0.0/22. Проверка проста: в третьем октете значения от 0 до 3 отличаются только двумя младшими битами, а остальные шесть совпадают, то есть префикс укорачивается на два бита.
Если же взять сети 172.20.1.0/24 и 172.20.2.0/24, они тоже соседние, но объединить их в один блок /23 нельзя: /23 обязано начинаться с чётного значения третьего октета. Такие ограничения заставляют планировать адреса заранее и выдавать блоки, выровненные по границам степеней двойки. Аккуратная схема адресации избавляет от длинных списков правил в фильтрах и экономит место в таблицах маршрутов.
Отдельно стоит запомнить границы частных диапазонов в записи CIDR: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Именно к ним относятся адреса внутренних сетей, а любой другой блок в этих записях уже считается публичным и принадлежит конкретному владельцу.
Хорошая привычка при чтении конфигураций: сразу переводить префикс в размер блока, например /27 в 32 адреса. Тогда правила фильтрации и списки доступа перестают выглядеть набором цифр и превращаются в понятные диапазоны, где легко заметить ошибку выравнивания или пересечение.