Перейти к содержанию
Избранное

Калькулятор CIDR — диапазон IP в CIDR

Обновлено:

Преобразуйте блок CIDR IPv4, например 10.0.0.0/22, в диапазон адресов, маску сети и число хостов; переведите диапазон «первый–последний IP» в минимальный набор блоков CIDR или объедините список блоков в один итоговый список.

Преобразование между диапазонами IP-адресов и CIDR-блоками

Поля ввода
IPv4-адрес с указанием длины префикса (/0–/32); адрес без префикса считается /32.
Начало диапазона (включительно).
Если включено, результат будет автоматически обновляться при изменении любого значения.

Формула CIDR

Формула
\[ N = 2^{32-p} \\\\\\[4pt] \text{маска сети} = \underbrace{111\ldots1}_{p\text{ бит}}\underbrace{000\ldots0}_{32-p\text{ бит}} \\\\\\[4pt] \text{адрес сети} = \text{IP} \mathbin{\&} \text{маска сети} \\\\\\[4pt] \text{широковещательный адрес} = \text{адрес сети} + N - 1 \\\\\\[4pt] \text{доступные хосты} = N - 2 \quad (0 \le p \le 30) \]

Где:

  • \(p\) — длина префикса, то есть число ведущих бит, которые фиксирует блок (0–32)
  • \(N\) — общее количество адресов, охватываемых блоком
  • \(\text{IP}\) — введённый вами адрес; побитовое «И» (&) обнуляет хостовые биты
  • \(\text{адрес сети}\) и \(\text{широковещательный адрес}\) — первый и последний адреса блока

Блок CIDR однозначно задаётся длиной префикса: блок /\(p\) содержит \(2^{32-p}\) адресов, начинается с адреса, младшие \(32-p\) бит которого равны нулю, а в его маске сети ровно \(p\) единичных бит, за которыми идут нули. Обратная (wildcard) маска — это просто побитовая инверсия маски сети.

CIDR — пример расчёта

Пример: преобразуем в диапазон адресов блок 10.0.0.0/22 — значение по умолчанию в калькуляторе.

\[ N = 2^{32-22} = 2^{10} = 1024 \]

\[ \text{маска сети} = 255.255.252.0 \quad \Rightarrow \quad \text{обратная маска} = 0.0.3.255 \]

\[ \text{широковещательный адрес} = 10.0.0.0 + 1023 = 10.0.3.255 \]

Результат: блок 10.0.0.0/22 охватывает диапазон 10.0.0.0 – 10.0.3.255 — всего 1 024 адреса, из которых 1 022 доступны хостам (адрес сети и широковещательный адрес зарезервированы).

Как пользоваться калькулятором

  1. Выберите режим: «CIDR → диапазон адресов», «Диапазон адресов → блоки CIDR» или «Объединение списка CIDR». Показываются только поля, которые нужны в выбранном режиме.
  2. В режиме «CIDR → диапазон адресов» введите блок CIDR, например 10.0.0.0/22. Если указать просто адрес вида 192.168.1.1, он трактуется как /32 (одиночный хост). В результатах выводятся первый адрес (адрес сети), последний адрес (широковещательный), общее число адресов, маска сети, обратная маска и каноническая запись блока.
  3. В режиме «Диапазон адресов → блоки CIDR» введите первый IP-адрес и последний IP-адрес диапазона (оба включительно). Калькулятор вернёт минимальное число блоков CIDR, которые точно, без разрывов и наложений, покрывают диапазон, а также разбивку по каждому блоку.
  4. В режиме «Объединение списка CIDR» вставьте свои блоки в поле блоков CIDR — по одному на строку, хотя запятые и точки с запятой тоже подойдут. Перекрывающиеся и смежные блоки объединяются автоматически, и весь список сводится к наименьшему точному набору блоков.
  5. Загляните в подробности расчёта под результатами — там показана логика по шагам, включая замечание о том, что во введённом адресе были установлены хостовые биты. Если вы планируете подсети вокруг одного блока, калькулятор подсетей выполняет те же операции с точки зрения разбиения на подсети.

Что такое CIDR?

Бесклассовая междоменная маршрутизация (CIDR) заменила прежнюю систему классов A/B/C гибкой записью, в которой адрес и длина префикса указываются вместе: a.b.c.d/p. Префикс \(p\) показывает, сколько ведущих бит совпадают у всех адресов блока; остальные \(32-p\) бит могут свободно меняться, поэтому блок содержит \(2^{32-p}\) адресов. Из одного этого правила следует всё остальное: /24 — это \(2^8 = 256\) адресов и маска 255.255.255.0, /22 — \(2^{10} = 1024\) адреса и маска 255.255.252.0, а /32 — ровно один адрес.

Важное следствие битовой структуры — выравнивание: блок из \(2^k\) адресов может начинаться только с адреса, кратного \(2^k\). Именно поэтому, например, 192.168.1.16/28 корректен (16 адресов, начиная с адреса, кратного 16), а 192.168.1.8/28 — нет: это не граница блока. Когда произвольный диапазон «первый–последний» переводится в CIDR, он редко совпадает с одним блоком, и его приходится разбивать. Калькулятор использует жадный алгоритм: на каждом шаге берётся самый большой блок, который и помещается в оставшиеся адреса, и правильно выровнен, — такой подход доказуемо даёт минимально возможное число блоков.

На практике важно правильно интерпретировать эти числа. «Всего адресов» — это просто размер блока, но при классическом разбиении на подсети (префиксы от /0 до /30) первый адрес резервируется под адрес сети, а последний — под широковещательный, поэтому хостам доступно на два адреса меньше. Исключения — /31 (согласно RFC 3021, для каналов «точка–точка») и /32 (одиночный хост): в них используются все адреса. Если ваша задача — спланировать, как более крупный блок делится на меньшие подсети с подсчётом хостов в каждой, воспользуйтесь калькулятором подсетей; а чтобы проверить арифметику адресов вручную, двоичный конвертер наглядно показывает битовое устройство масок.

Особенности и ограничения

  • Калькулятор работает только с IPv4 (четыре октета, значения 0–255, префикс /0–/32). Адреса IPv6 не принимаются.
  • Если ввести адрес с установленными хостовыми битами, например 10.0.1.7/22, результат опишет содержащий его блок (10.0.0.0/22), и в подробностях расчёта это будет отмечено. Чтобы всё было однозначно, всегда вводите адрес сети.
  • Диапазон «первый–последний» переводится в минимальный точный набор блоков — покрытие без разрывов и повторов. Именно это обычно и требуется в таблицах маршрутизации и списках контроля доступа.
  • При объединении блоки сливаются, только если перекрываются или граничат напрямую; разрыв даже в один адрес оставляет их раздельными.
  • Очень громоздкие результаты (например, при объединении множества разбросанных /32) могут насчитывать тысячи блоков; таблица показывает первые 200 и сообщает полное количество.

Справочник распространённых префиксов CIDR

Префикс Маска Обратная маска Всего адресов Доступно хостов
/30 255.255.255.252 0.0.0.3 4 2
/29 255.255.255.248 0.0.0.7 8 6
/24 255.255.255.0 0.0.0.255 256 254
/22 255.255.252.0 0.0.3.255 1 024 1 022
/20 255.255.240.0 0.0.15.255 4 096 4 094
/16 255.255.0.0 0.0.255.255 65 536 65 534
/8 255.0.0.0 0.255.255.255 16 777 216 16 777 214

Каждый добавленный бит префикса сокращает блок вдвое, каждый убранный — удваивает. Формулы \(N = 2^{32-p}\) достаточно, чтобы восстановить любую строку этой таблицы.

Часто задаваемые вопросы

Как вычислить диапазон CIDR вручную, без калькулятора?

Возьмите длину префикса p и найдите размер блока \(N = 2^{32-p}\). Запишите маску как p единичных бит, за которыми идут (32 − p) нулевых: для /22 это 11111111.11111111.11111100.00000000 = 255.255.252.0. Примените к адресу побитовое «И» с этой маской — получите адрес сети, затем прибавьте \(N - 1\) и найдите широковещательный адрес. Два полезных ориентира: каждый октет покрывает 256 адресов, а каждый бит префикса уменьшает блок вдвое, поэтому /24 = 256, /23 = 512, /22 = 1024.

Как перевести маску вида 255.255.240.0 в запись CIDR?

Переведите маску в двоичный вид и посчитайте единичные биты. 255.255.240.0 = 11111111.11111111.11110000.00000000 — здесь 20 единичных бит, то есть это /20. Короткий способ: октеты маски всегда равны 255, 254, 252, 248, 240, 224, 192 или 0 (256 минус степень двойки), что соответствует 8, 7, 6, 5, 4, 3, 2 или 0 битам в октете. 255+255+240+0 даёт 8+8+4+0 = 20.

Почему произвольный диапазон IP нельзя записать одним блоком CIDR?

Блок CIDR размером \(2^k\) должен начинаться с адреса, кратного \(2^k\). Например, 192.168.1.16/28 корректен, потому что 16 кратно 16, а 192.168.1.8/28 — нет: это не настоящая граница блока. Если первый и последний адреса не удовлетворяют этому условию выравнивания, диапазон придётся разбить на несколько блоков — жадный алгоритм, который использует калькулятор, всегда даёт минимально возможное их число.

/24 — это то же самое, что прежний класс C?

У /24 тот же размер и та же маска (255.255.255.0), что и у сети класса C, но CIDR полностью отказалась от фиксированных классов: любой префикс от /0 до /32 можно применить к любому адресу, поэтому /24 ничего не говорит о том, к какому классу «относится» адрес. Сегодня актуальны лишь частные диапазоны, определённые RFC 1918: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Блок CIDR из этих диапазонов не маршрутизируется в публичном интернете.

Для чего нужна обратная маска?

Обратная (wildcard) маска — это побитовая инверсия маски сети: у /22 с маской 255.255.252.0 обратная маска равна 0.0.3.255. Она используется в основном в списках контроля доступа Cisco и в командах OSPF network, где бит 0 означает «должен совпадать», а бит 1 — «не важно». Это не то же самое, что маска подсети, поэтому не вводите её там, где ожидается обычная маска, — это распространённая ошибка при настройке.

Почему 10.0.1.7/22 даёт те же результаты, что и 10.0.0.0/22?

10.0.1.7 — не адрес сети блока /22: его последние 10 бит (хостовая часть) не равны нулю. Побитовое «И» с маской /22 (255.255.252.0) обнуляет эти биты и даёт содержащий блок 10.0.0.0/22 — именно его и описывает калькулятор. Если хотите указать блок явно, всегда вводите адрес сети; в подробностях расчёта будет отмечено, если во введённом адресе были установлены хостовые биты.

Сколько подсетей /26 помещается в /22?

Посчитаем разницу префиксов: от /22 до /26 — 4 бита, и каждый заём бита удваивает число подсетей, значит \(2^4 = 16\) подсетей по 64 адреса (62 хоста доступны). В общем случае блок /p содержит \(2^{q-p}\) подсетей размером /q. Если же нужно обеспечить заданное число хостов в подсети, помните: подсети на \(H\) хостов требуется \(H + 2\) адреса (адрес сети и широковещательный зарезервированы) с округлением вверх до степени двойки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *