Проблема, которую решает 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, чтобы увидеть его адрес сети, широковещательный адрес, маску и счёт используемых хостов, вычисленные мгновенно, целиком в вашем браузере.