Калькулятор CIDR / подсетей

Вычисляет адрес сети, диапазон узлов, маски и число адресов для любого блока IPv4 или IPv6 и делит его на равные подсети.

Длина префикса/24
Сеть
192.168.1.0/24
Адрес сети
192.168.1.0
Широковещательный адрес
192.168.1.255
Используемый диапазон
192.168.1.1 – 192.168.1.254
Используемых адресов
254
Всего адресов
256
Маска подсети
255.255.255.0
Обратная маска
0.0.0.255
Частная192.168.0.0/16
Разделить на

Что делает этот инструмент

Блок CIDR вроде 192.168.1.0/24 — это компактный способ назвать диапазон адресов. Этот инструмент берёт такой блок и отвечает на вытекающие из него вопросы: где диапазон начинается и заканчивается, сколько адресов в нём, сколько из них можно выдать машине, как выглядит маска подсети, попадает ли внутрь конкретный адрес и что получится, если разрезать блок на части поменьше.

Он работает с IPv4 и IPv6 и принимает адрес узла так же охотно, как адрес сети: вставьте 192.168.1.57/24 прямо из ip addr, и он скажет, в каком блоке живёт этот адрес. Всё это арифметика, выполняемая в вашем браузере: никаких запросов, никакого сервера, и работает при выдернутом кабеле.

Что означает число после косой черты

Адрес IPv4 — это 32 бита. Число после косой черты — длина префикса — говорит, сколько из этих битов определяют сеть; остальные определяют узел внутри неё. /24 фиксирует первые 24 бита и оставляет 8 свободными, поэтому в нём 2^8 = 256 адресов.

192.168.1.0                           # адрес
11000000.10101000.00000001.00000000   # его 32 бита
11111111.11111111.11111111.00000000   # маска /24: 24 единицы, 8 нулей

Там, где в маске стоит единица, бит принадлежит сети и одинаков у каждого адреса блока; там, где стоит ноль, бит свободен и определяет узел. Каждый дополнительный бит префикса делит блок пополам. Это соотношение и есть вся суть разбиения на подсети, и его стоит усвоить, а не заучивать таблицу:

  • /24 — 256 адресов, 254 используемых. Классическая небольшая сеть.
  • /25 — 128 адресов, 126 используемых. Половина /24.
  • /26 — 64 адреса, 62 используемых.
  • /30 — 4 адреса, 2 используемых. Традиционная двухточечная линия.
  • /16 — 65 536 адресов. Это /24 двести пятьдесят шесть раз.

Почему двух адресов не хватает

В /24 256 адресов, но используемых только 254, потому что IPv4 тратит два из них. Первый адрес блока — адрес сети, он называет сам блок и не назначается ни одному интерфейсу. Последний — широковещательный адрес, достигающий всех узлов канала разом. Отсюда и знакомое 2^n − 2.

Два префикса ломают эту формулу, и большинство калькуляторов ошибается хотя бы в одном из них:

  • В /31 два адреса, а формула говорит ноль используемых. RFC 3021 определяет /31 для двухточечных линий, где широковещательный адрес не нужен и оба адреса назначаются — по одному на каждый конец. Правильный ответ — 2.
  • /32 — это один адрес, а формула говорит −1. /32 называет ровно один узел; именно так записывают отдельный сервер в правиле межсетевого экрана или в маршруте.

Этот инструмент следует RFC 3021 и сообщает 2 и 1 в этих случаях. Если другой калькулятор говорит вам, что у /31 нет используемых адресов, это учебная формула, применённая за пределами области, где она верна.

Маска подсети и обратная маска

Маска подсети несёт ту же информацию, что и длина префикса, записанную четырьмя октетами: биты сети — единицы, биты узла — нули. /24 — это 255.255.255.0. Старые форматы конфигурации хотят маску, новые — префикс, и они взаимозаменяемы.

Обратная маска — это инвертированная маска подсети: 0.0.0.255 для /24. Списки доступа Cisco и операторы network в OSPF пишутся именно с ней, и инверсия сбивает с толку достаточно часто, чтобы сказать об этом прямо: в обратной маске нулевой бит означает «должен совпасть», а единичный — «неважно», то есть ровно наоборот по сравнению с маской подсети.

IPv6 — та же идея с меньшим числом исключений

Адреса IPv6 занимают 128 битов вместо 32, а префикс работает точно так же: /64 фиксирует первые 64 бита. Арифметика та же; меняется то, что исчезают два усложнения IPv4.

  • Широковещательного адреса нет. IPv6 заменил широковещание многоадресной рассылкой, поэтому в конце префикса ничего не зарезервировано.
  • В начале тоже ничего не зарезервировано, поэтому каждый адрес блока назначаем, и число используемых совпадает с общим. (Нулевой адрес подсети — это anycast-адрес маршрутизатора подсети, соглашение маршрутизации, а не дыра в диапазоне.)
  • Нет маски подсети в точечной записи. IPv6 всегда пишется длиной префикса; 128-битная маска текстом была бы нечитаемой, и её никто не просит.

/64 — стандартный размер для одного канала, потому что автоконфигурация адресов без сохранения состояния рассчитывает на 64 бита узла. Площадке обычно выделяют /48 или /56, который затем делят на /64 — по одному на VLAN или сегмент. Поэтому этот инструмент охотно разделит /48 на /64 и скажет, что их 65 536.

Числа адресов растут быстро, поэтому они показаны и степенью двойки, и полной цифрой: в /32 содержится 2^96 адресов, то есть 79 228 162 514 264 337 593 543 950 336. Степень — то, что читается; цифры — то, что копируют.

Как писать адреса IPv6 канонически

Один и тот же адрес IPv6 можно записать многими способами, из-за чего сравнивать два адреса на глаз ненадёжно. RFC 5952 задаёт единственную каноническую текстовую форму, и именно её выдаёт этот инструмент:

  • Шестнадцатеричные буквы в нижнем регистре и никаких ведущих нулей внутри группы — 2001:0db8 становится 2001:db8.
  • Самая длинная последовательность нулевых групп заменяется на ::, и только самая длинная. При равенстве побеждает левая.
  • Одиночная нулевая группа никогда не сжимается, потому что :: ничего бы не сэкономило и создало бы второе написание.

Развёрнутая форма показана рядом, каждая группа дополнена до четырёх цифр. Она не каноническая, но именно она выравнивается в столбец, когда сравниваешь список адресов.

Разделение блока

Разрезать одну сеть на несколько равных — та операция, ради которой обычно и открывают калькулятор подсетей. Каждый дополнительный бит префикса удваивает число подсетей и вдвое уменьшает их размер: /24 превращается в два /25, четыре /26, восемь /27 и так далее.

192.168.1.0/24  ->  /26
192.168.1.0/26      # адреса   0-63
192.168.1.64/26     # адреса  64-127
192.168.1.128/26    # адреса 128-191
192.168.1.192/26    # адреса 192-255

Подсети покрывают родительский блок в точности — без пропусков и наложений, и это свойство стоит проверять, когда режешь адресное пространство вручную. Учтите, что числа растут быстро: /8, разделённый на /24, — это 65 536 сетей, поэтому список здесь ограничен, а настоящий итог указан рядом, вместо того чтобы молча обрезать ответ.

Диапазоны с особым значением

Некоторые блоки зарезервированы под конкретное назначение, и сеть, оказавшаяся внутри такого блока, помечается здесь. Чаще всего встречаются эти:

  • Частные (RFC 1918) — 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Маршрутизируются внутри организации, но никогда в публичном интернете.
  • Петлевые — 127.0.0.0/8 в IPv4 и ::1 в IPv6. Трафик, который никогда не покидает узел.
  • Link-local — 169.254.0.0/16 и fe80::/10. Назначаются самостоятельно, действительны только в пределах одного канала. Адрес IPv4 из этого диапазона обычно означает, что DHCP не сработал.
  • CGNAT оператора — 100.64.0.0/10. Используется между абонентом и провайдером; увидеть его в своей сети — признак NAT на стороне провайдера.
  • Документация — 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 и 2001:db8::/32. Зарезервированы для примеров.
  • Уникальные локальные — fc00::/7. Аналог частного пространства RFC 1918 в IPv6.

Метка ставится только тогда, когда весь блок находится внутри особого диапазона, а не просто пересекается с ним. 0.0.0.0/0 покрывает все существующие частные диапазоны, но сам частным не является, и утверждать обратное было бы хуже, чем промолчать.

Сколько узлов вмещает /24?

В /24 — 256 адресов и 254 используемых. Префикс закрепляет 24 бита из 32 и оставляет 8 свободными, поэтому блок содержит 2^8 = 256 адресов, а IPv4 расходует первый на саму сеть и последний на широковещание — та самая формула 2^n − 2 из раздела выше, где n — число битов узла. Это вычитание верно для любого префикса IPv4 вплоть до /30 и ни для одного из двух, что ниже: в /31 два используемых адреса, а не ноль, и в /32 один, а не −1, и именно так отвечает этот инструмент.

  • Маска подсети — 255.255.255.0, обратная маска — 0.0.0.255. Закреплены три целых октета из четырёх, и именно поэтому /24 — единственный префикс, который читается прямо из точечной записи: последнее число обозначает узел, а три перед ним — сеть.
  • Используемый диапазон идёт от .1 до .254. Адрес сети — это .0, широковещательный адрес — .255, и этот инструмент называет оба, а не оставляет пробел на том или другом конце диапазона.
  • Один /24 — это два /25, четыре /26 или восемь /27: каждый дополнительный бит делит его пополам. И сам он — один из 256 блоков /24, укладывающихся в /16.
  • Старая документация называет это сетью class C, потому что в классовой схеме, которую заменил CIDR, класс C имел ровно 24 бита сети. Поэтому этот инструмент просит число после косой черты, а не букву: у /26 класса нет.

Число 254 — это арифметика, а не инвентаризация. В работающей сети один адрес забирает маршрутизатор или шлюз, а пул DHCP обычно настраивают на часть диапазона, а не на весь, поэтому машин удаётся подключить 253 или меньше. Считайте 254 потолком, от которого начинается план адресации.

Сколько узлов вмещает /16?

В /16 — 65 536 адресов и 65 534 используемых. Шестнадцать битов закреплены и шестнадцать свободны, то есть 2^16 = 65 536, и те же два адреса уходят с краёв — вычитание, которое верно вплоть до /30 и там же прекращается, по причинам /31 и /32 выше.

  • Маска подсети — 255.255.0.0, обратная маска — 0.0.255.255, так что первые два октета обозначают сеть, а последние два — узел.
  • Один /16 — это 256 блоков /24. Именно такое деление над ним и выполняют, и именно это делает здесь элемент разбиения: дайте ему /16, попросите /24, и он перечислит их, а рядом со списком укажет итог.
  • 192.168.0.0/16 — это /16, и это тот частный диапазон, из которого домашний маршрутизатор выдаёт адреса; поэтому 192.168.1.0/24 и есть блок, который видели почти все. Всё, что лежит внутри него, этот инструмент помечает как частное (RFC 1918).
  • Старая документация называет /16 сетью class B. Класс B выдавали организации целиком, и привычка представлять его одной сетью осталась оттуда.

Никто не ставит 65 534 машины на одну линию. /16 — это выделенный блок, а не домен широковещания: каждый узел на линии видит её широковещательный трафик и её ARP, и при таком размере это перестаёт работать задолго до того, как диапазон заполнится. Поэтому полезный вопрос о /16 — не сколько узлов он вмещает, а как его разрезать: на 256 блоков /24, на 1 024 блока /26 или так, как действительно нужно сегментам.

Сколько узлов вмещает /8?

В /8 — 16 777 216 адресов и 16 777 214 используемых: 24 бита узла, то есть 2^24, минус адрес сети и широковещательный адрес. Это самый большой блок, который кто-либо пишет вручную, и на практике это почти всегда один и тот же блок — 10.0.0.0/8, крупнейший из трёх частных диапазонов.

  • Маска подсети — 255.0.0.0, обратная маска — 0.255.255.255. Закреплён только первый октет, и три остальных остаются на планирование.
  • Один /8 — это 256 блоков /16 или 65 536 блоков /24. Из-за последней цифры список разбиения на этой странице и ограничен, а истинный итог печатается рядом с ним, вместо того чтобы молча оборвать ответ.
  • 10.0.0.0/8 помечен здесь как частный (RFC 1918), а 127.0.0.0/8 — это диапазон замыкания на себя. Оба шириной в восемь битов потому, что классовая схема сделала класс A ровно таким, и метки пережили сами классы.
  • А /8 публичного адресного пространства — совсем другое дело. Во всём IPv4 их всего 256, и они были распределены между организациями и региональными регистратурами десятки лет назад.

Число 16 777 214 ни в каком полезном смысле не является числом узлов: шестнадцать миллионов адресов на одной линии — не сеть, которую кто-нибудь эксплуатирует. /8 — это план адресации, а план оценивают по тому, сколько подсетей он даёт и во что обходится каждая: каждая подсеть расходует собственный адрес сети и собственный широковещательный адрес, поэтому разрез /8 на блоки /24 даёт 65 536 сетей и тратит на это 131 072 адреса. Такова цена разбиения на подсети, и именно поэтому план берёт самую большую подсеть, какую выдержит сегмент, а не самую маленькую, какой хватит.

Сколько адресов вмещает /64 в IPv6?

В /64 — 18 446 744 073 709 551 616 адресов, то есть 2^64: та же арифметика, но с 64 свободными битами вместо 8, и все они используемые. Вычитать нечего: в IPv6 нет широковещательного адреса и ничего не зарезервировано в начале префикса, поэтому число используемых равно общему. Поэтому же для блока IPv6 этот инструмент не показывает ни широковещательного адреса, ни точечной маски — вместо того чтобы показать их нулями.

  • Число печатается степенью двойки рядом с цифрами. 2^64 — это форма, которую читают; цифры — форма, которую копируют.
  • Один /64 — стандартный размер для одной линии, несёт она две машины или две тысячи. Автоконфигурация адресов без сохранения состояния строит последние 64 бита адреса на самом узле, так что префикс закреплён на 64 механизмом, а не числом узлов.
  • Один /64 берётся из более крупного выделения: /48 — это 65 536 блоков /64, а /56 — 256 из них, и одно из двух обычно и выдают площадке, чтобы она делила.
  • Один интерфейс обычно держит из своего /64 сразу несколько адресов: адрес, который автоконфигурация строит из префикса, и рядом с ним, как правило, временный приватный адрес, со временем сменяемый. Считать машины по числу адресов неверно и с этой стороны.

Читать это число как ёмкость — ошибка, к которой подталкивают привычки IPv4. /64 не рассчитан на заполнение, ничто его не заполняет, и ни одна политика выделения этого не ждёт; его размер таков, чтобы узел мог сам сгенерировать себе адрес на линии, никого не спрашивая. Вопрос, на который отвечает /64, — сколько у площадки линий, а не сколько машин.

Частые вопросы

Сколько используемых узлов в /24?
254. В блоке 256 адресов; первый — адрес сети, последний — широковещательный, и ни один из них нельзя назначить интерфейсу. То же вычитание даёт 126 для /25, 62 для /26 и 2 для /30.
Почему здесь у /31 два используемых адреса, а другие калькуляторы говорят, что ни одного?
Потому что RFC 3021 определяет /31 для двухточечных линий, где широковещательный адрес не нужен, а оба адреса назначаются — по одному на каждый конец линии. Калькуляторы, сообщающие ноль, применяют формулу 2^n − 2 за пределами области, где она верна.
Чем маска подсети отличается от обратной маски?
Они обратны друг другу. У маски подсети на битах сети стоят единицы (255.255.255.0 для /24); у обратной маски там нули (0.0.0.255). В обратной маске ноль означает, что бит должен совпасть, а единица — что он игнорируется, то есть наоборот по сравнению с интуицией, которую формирует маска подсети.
Можно ли вставить адрес, который не является адресом сети?
Да, и это обычный случай. Дайте ему 192.168.1.57/24 — и он покажет, что сеть это 192.168.1.0/24, отметив, что введённый адрес является узлом внутри неё. Именно это выдают ip addr или ipconfig, так что ничего править заранее не нужно.
Почему в IPv6 не показаны широковещательный адрес и маска подсети?
Потому что ни того, ни другого не существует. IPv6 отказался от широковещания в пользу многоадресной рассылки, поэтому в конце префикса ничего не зарезервировано, и он всегда пишется длиной префикса, а не точечной маской. Каждый адрес блока IPv6 назначаем, поэтому число используемых совпадает с общим.
Какого размера должен быть префикс подсети IPv6?
/64 — почти во всех случаях. Автоконфигурация адресов без сохранения состояния предполагает 64 бита узла, поэтому меньший префикс ломает её на обычном канале. Площадкам обычно выделяют /48 или /56 и делят его на /64, по одному на сегмент: в /48 их 65 536, так что экономить незачем.
Отправляется ли что-нибудь из введённого на сервер?
Нет. Это арифметика, выполняемая в вашем браузере: ничего не запрашивается, не загружается и не записывается в журнал. Поэтому он продолжает работать и вовсе без подключения к сети.
Какая маска подсети у /16?
255.255.0.0. Длина префикса и маска — одно и то же сведение, записанное двумя способами, и три круглых префикса закрепляют каждый ещё по одному целому октету: /8 — это 255.0.0.0, /16 — 255.255.0.0, /24 — 255.255.255.0. А префикс, не кратный восьми, попадает внутрь октета — /26 это 255.255.255.192, — и именно такой случай стоит оставить этому инструменту.
Что такое сеть class C?
Это /24 — в схеме, которую заменил CIDR. Классовая адресация закрепляла сетевую часть на 8, 16 или 24 битах — class A, class B и class C, — поэтому класс C содержал 256 адресов и 254 используемых, ровно как /24 сегодня. RFC 1519 заменил классы произвольными длинами префикса в 1993 году, и поэтому этот инструмент просит число после косой черты: у /26 или /19 никакого класса нет.
Сколько блоков /24 в /16?
256. Каждый дополнительный бит префикса удваивает их число, поэтому /16 — это 256 блоков /24, а /8 — 256 блоков /16 или 65 536 блоков /24. Вставьте блок и выставьте «Разделить на» на меньший префикс: инструмент перечислит подсети и сообщит истинный итог рядом со списком — это и важно, когда итог переваливает за то, что вообще стоит печатать списком.
Сколько адресов в /64 в IPv6?
18 446 744 073 709 551 616, то есть 2^64, и все они используемые. В IPv6 нет широковещательного адреса и ничего не зарезервировано в начале префикса, поэтому ничего не вычитается и число используемых равно общему — единственное место, где ответ про IPv6 здесь короче ответа про IPv4, а не длиннее.

Похожие инструменты