Проблема, которую решает CIDR
Каждому устройству в IP-сети нужен адрес. В IPv4 этот адрес — 32 бита, обычно записываемый как четыре числа от 0 до 255, разделённые точками, как 192.168.1.10. Трудный вопрос никогда не «что такое один адрес», а «как описать диапазон адресов, принадлежащих вместе», один офис, подсеть, выделение клиенту. Нотация — это компактный способ записать тот диапазон.
CIDR означает Classless Inter-Domain Routing (Бесклассовая Междоменная Маршрутизация). Часть «бесклассовая» важна: более старая адресация загоняла диапазоны в фиксированные размеры (старые блоки Класса A, B и C). CIDR убрал эту жёсткость и позволил диапазону иметь любой размер степени двойки, что и есть причина, почему он стандарт сегодня.
Чтение косой черты
Блок CIDR выглядит как 192.168.1.0/24. Часть после косой черты, длина префикса, — это единственное самое важное число. Она говорит: первые N битов адреса фиксированы, а остальные свободны меняться.
/24означает, что первые 24 бита — это фиксированная сетевая часть. Оставшиеся 8 битов (32 − 24) идентифицируют отдельные хосты.- 8 свободных битов дают 2⁸ = 256 возможных комбинаций, так что
192.168.1.0/24описывает 256 адресов от192.168.1.0до192.168.1.255.
Измените префикс, и размер блока меняется вместе с ним. Меньший префикс означает больше свободных битов и больший блок:
/16фиксирует 16 битов, оставляет 16 свободными → 65 536 адресов./25фиксирует 25 битов, оставляет 7 свободными → 128 адресов./30фиксирует 30 битов, оставляет 2 свободными → 4 адреса.
Каждый шаг на единицу в длине префикса вдвое уменьшает или удваивает блок. Это единственное правило и есть вся интуиция.
Сеть, широковещание и используемые хосты
Внутри большинства блоков два адреса особые и не назначаемы хосту:
- Адрес сети — это первый адрес в блоке, все хост-биты установлены в 0 (
192.168.1.0для/24). Он именует сам блок. - Широковещательный адрес — это последний адрес, все хост-биты установлены в 1 (
192.168.1.255). Трафик, отправленный сюда, достигает каждого хоста в блоке.
Так что /24 имеет 256 адресов всего, но 254 используемых для реальных хостов. Цифра «используемых хостов» — это просто всего минус эти два зарезервированных адреса.
Два крайних случая ломают этот шаблон, оба намеренно:
- /31 (RFC 3021) используется для каналов точка-точка между двумя маршрутизаторами. Он имеет лишь 2 адреса и, по замыслу, оба используемы, нет места для отдельного сетевого и широковещательного адреса, и ни один не нужен для канала ровно с двумя концами.
- /32 — это единственный адрес, хост-маршрут. Он описывает ровно одну машину.
Почему это стоит понимать
Длина префикса управляет тем, как сети проектируются, как маршруты суммируются, и как адресное пространство раздаётся. Когда вы видите 10.0.0.0/8 в таблице маршрутизации или 0.0.0.0/0 как маршрут по умолчанию, вы читаете ту же нотацию: базовый адрес плюс длину префикса, которая говорит, сколько его фиксировано. Арифметика никогда не меняется, лишь числа.
Вы можете попробовать любой блок в калькуляторе CIDR, чтобы увидеть его адрес сети, широковещательный адрес, маску и счёт используемых хостов, вычисленные мгновенно, целиком в вашем браузере.