Конвертер диапазонов IP и CIDR
Введите начальный и конечный IP-адрес, чтобы получить наименьший набор CIDR-блоков, точно покрывающий этот диапазон (или CIDR-блок, чтобы развернуть его обратно в первый и последний адрес), объедините список CIDR-блоков в минимальный эквивалентный набор и проверьте, входит ли заданный IP в заданную подсеть — всё считается прямо в браузере, данные никуда не отправляются.
Диапазон ↔ CIDR
Некорректный ввод:
Результат
- Начало диапазона
- Конец диапазона
| CIDR-блок |
|---|
Конвертер диапазонов IP и CIDR
Эта страница — для сетевого инженера, у которого есть произвольный диапазон IP-адресов — из лога файрвола, запроса на добавление в allowlist или опубликованного адресного блока облачного провайдера — и который нужно выразить как CIDR, или наоборот. Не каждый диапазон — это один CIDR-блок: размер CIDR-блока должен быть степенью двойки, а его начальный адрес должен приходиться на соответствующую границу, поэтому произвольный диапазон вроде 203.0.113.10–203.0.113.37 (28 адресов, начинается в середине блока) требует нескольких блоков разного размера, состыкованных так, чтобы покрыть его точно, без непокрытых адресов и без выхода за любую из границ.
Конвертер выше находит такой минимальный набор, каждый раз беря самый большой блок, который одновременно начинается точно в текущей позиции и ещё помещается до конца диапазона, затем повторяя с того места, где закончился этот блок. Для 203.0.113.10–203.0.113.37 получаются 5 блоков (.10/31, .12/30, .16/28, .32/30, .36/31) вместо 28 отдельных маршрутов /32 на каждый хост — тот же принцип минимального покрытия, который маршрутизатор использует при сжатии таблицы маршрутизации, и та же причина, по которой allowlist в виде CIDR обычно намного короче, чем в виде списка отдельных адресов. Таблица маршрутизации, набор правил файрвола или ACL с меньшим числом более крупных записей быстрее обрабатывается и проще для человека при аудите, чем список, раздутый записями на один хост.
Инструмент агрегации ниже решает смежную, но другую задачу: имея несколько CIDR-блоков, которые у вас уже есть (не сырой диапазон), объединить любые смежные или пересекающиеся блоки в меньшее число более крупных. 10.0.0.0/25 и 10.0.0.128/25 — смежные половины одного /24 и объединяются в 10.0.0.0/24; два блока, которые просто пересекаются (например, 10.0.0.0/24 и 10.0.0.128/25), объединяются так же, оставляя только покрывающее объединение. Объединённый интервал редко сам по себе выровнен по границе CIDR, поэтому агрегатор заново разбивает каждый объединённый отрезок на минимальные CIDR-блоки тем же алгоритмом, что и конвертер диапазонов выше — два инструмента используют общую арифметику, не только страницу.
Проверка «входит ли IP в подсеть» напрямую отвечает на более узкий, но очень частый вопрос: «входит ли 10.0.0.130 в 10.0.0.0/24, и если да, то каковы адрес сети и broadcast-адрес этой подсети?» — полезно, чтобы быстро подтвердить, что правило файрвола или маршрут действительно соответствует ожидаемому адресу, включая легко упускаемый краевой случай, когда проверяемый адрес — это сам адрес сети или broadcast (он всё равно «входит в подсеть» по определению, просто не является доступным адресом хоста).
Агрегация списка CIDR
Вставьте небольшой, вручную составленный список CIDR-блоков (через запятую или с новой строки), чтобы объединить любые пересекающиеся или смежные записи в минимальный эквивалентный набор. Для суммирования большого вставленного списка множества адресов см. инструмент для массовых списков IP (скоро).
Не удалось агрегировать:
Объединено записей в блок(ов).
| Агрегированный CIDR-блок |
|---|
Входит ли этот IP в эту подсеть?
Введите IP-адрес и CIDR-блок, чтобы проверить, входит ли адрес в него, а также узнать адрес сети и broadcast-адрес этой подсети.
Некорректный ввод:
Да — этот адрес входит в подсеть. Нет — этот адрес не входит в подсеть.
- Адрес сети подсети
- Broadcast-адрес подсети
Глоссарий
- Минимальное покрывающее множество
- Наименьший возможный список CIDR-блоков, которые вместе точно покрывают заданный диапазон адресов, без пропусков и без адресов за пределами исходного диапазона.
- Выравнивание блока
- Начальный адрес CIDR-блока должен быть кратен его собственному размеру (в адресах) — 10.0.0.64/26 выровнен (64 кратно 64), а блок размера /26, начинающийся с 10.0.0.32, вообще не является допустимым CIDR-блоком.
- Смежные блоки
- Два CIDR-блока, где broadcast-адрес одного непосредственно предшествует адресу сети другого (10.0.0.0/25 и 10.0.0.128/25) — их можно объединить в один более крупный блок, даже если они не пересекаются.
- Агрегация / суммаризация маршрутов
- Замена нескольких меньших, смежных или пересекающихся CIDR-блоков меньшим числом более крупных, покрывающих то же адресное пространство — уменьшает размер таблицы маршрутизации или ACL, не меняя, какие адреса совпадают.
- Принадлежность подсети
- Адрес считается принадлежащим подсети, если он находится между адресом сети и broadcast-адресом этой подсети включительно — это включает и сам адрес сети, и broadcast-адрес, хотя они и не являются доступными адресами хостов.
Часто задаваемые вопросы
- Почему небольшой диапазон разбивается на несколько CIDR-блоков?
- Начальный адрес CIDR-блока должен приходиться на границу, кратную его размеру, а размер должен быть степенью двойки. Произвольный диапазон редко начинается и заканчивается на таких границах, поэтому для точного покрытия обычно нужно несколько блоков разного размера, а не один.
- В чём разница между этим инструментом и инструментом для массовых списков IP?
- Этот агрегатор — для небольшого, вручную введённого или вставленного списка CIDR-блоков, которые у вас уже есть. Будущий инструмент для массовых списков IP — для классификации большого вставленного списка отдельных адресов (частные, bogon, CGNAT и т. д.) — другой масштаб и другая задача.
- Меняет ли агрегация то, какие адреса покрыты?
- Нет — агрегированный результат всегда покрывает ровно объединение адресов входных блоков, не больше и не меньше. Меняется только то, как это же множество адресов выражено (меньшим числом более крупных блоков вместо большего числа мелких).
- Считается ли сам адрес сети или broadcast-адрес «входящим в подсеть»?
- Да. Принадлежность подсети охватывает каждый адрес от адреса сети до broadcast-адреса включительно — просто эти два граничных адреса не являются доступными адресами хостов на подсети.
- Отправляет ли этот инструмент мои диапазоны или список CIDR куда-либо?
- Нет. Любой расчёт на этой странице — конвертер диапазон/CIDR, агрегатор и проверка вхождения в подсеть — выполняется полностью в вашем браузере обычной арифметикой; ничего из введённого здесь не отправляется на наши серверы или куда-либо ещё.
- Поддерживает ли список CIDR IPv6?
- Нет — конвертер диапазонов, агрегатор и проверка вхождения в подсеть на этой странице работают только с IPv4; записи, похожие на IPv6-адрес или CIDR-блок, показываются как ошибка.
API-эквивалент
Арифметика диапазонов/CIDR выше полностью выполняется на вашем устройстве — эта страница не делает ни одного сетевого запроса для расчёта результата. Если вам нужно вместо этого получить сетевые/реестровые факты о реальном, маршрутизируемом IP-адресе на стороне сервера как часть более крупного запроса, группа network нашего основного API возвращает такие же факты:
curl "https://ip.xakki.pro/api/v1/ip?ip=203.0.113.10&include=network"
Пример ответа (сокращённо):
{
"schemaVersion": 15,
"status": "ok",
"ip": "203.0.113.10",
"version": 4,
"network": {
"asn": 65536,
"prefix": "203.0.113.0/24",
"registry": "arin"
}
}
Понравился инструмент? Бесплатный аккаунт нашего API даёт 1000 запросов в день.Смотреть документацию API →