Калькулятор подсетей: как посчитать сеть, маску и диапазон хостов для IPv4 и IPv6

Калькулятор подсетей — инструмент, который по адресу с префиксом CIDR выдаёт адрес сети, широковещательный адрес, диапазон доступных хостов, маску подсети и обратную (wildcard) маску. Автор itsfoss.com собрал такой инструмент для себя и выложил в общий доступ: всё считается прямо в браузере, введённые данные никуда не отправляются.

Пригодится это в тот момент, когда вы настраиваете VLAN в домашней лаборатории, нарезаете VPC на облачном сервере или пишете правило для файрвола. Один и тот же расчёт называют по-разному — калькулятор IP, калькулятор CIDR, калькулятор маски подсети, — но математика под ним одна.

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

Введите IP-адрес в поле ввода. Префикс можно указать в форме CIDR (10.0.0.5/20) или выбрать маску подсети из выпадающего списка (255.255.240.0) — это одно и то же, берите ту запись, которая у вас под рукой. Результаты обновляются по мере ввода.

Для IPv6 вставьте адрес с длиной префикса, например 2001:db8:abcd:12::1/64, — калькулятор сам переключится в режим IPv6. Если нужно разбить сеть на части, есть опция разделения блока на равные подсети с показом диапазона каждой.

Что означают результаты

IPv4-адрес — это 32 бита, разделённые на две части: первая определяет сеть, вторая — устройство в этой сети. Маска подсети задаёт, где проходит граница. Для 192.168.10.77/26 калькулятор выдаёт:

Результат Что означает Пример
Адрес сети Первый адрес подсети, имя самой сети; устройствам не назначается 192.168.10.64
Широковещательный адрес Последний адрес подсети; пакет сюда доходит до всех устройств 192.168.10.127
Диапазон доступных хостов Адреса, которые можно выдать компьютерам, телефонам и серверам 192.168.10.65 – 192.168.10.126
Число хостов Сколько устройств помещается: всего минус адрес сети и broadcast 62
Маска подсети Префикс, записанный четырьмя числами; так до сих пор пишут роутеры и старые конфиги 255.255.255.192
Wildcard-маска Перевёрнутая маска; её требуют ACL в Cisco и конфиги OSPF 0.0.0.63
Запись CIDR Адрес сети плюс число битов сети 192.168.10.64/26

Именно из-за адреса сети и широковещательного адреса /24 даёт 254 доступных хоста, а не 256. Исключения — /31, который RFC 3021 разрешает для point-to-point линков с двумя рабочими адресами, и /32 — одиночный хост.

Как посчитать подсеть вручную

Считать в уме полезно хотя бы несколько раз — особенно если готовитесь к CCNA или экзамену по сетям Linux. Разберём 192.168.10.77/26.

Шаг 1. Префикс в маску. /26 означает, что первые 26 битов — единицы, оставшиеся 6 — нули. Первые три октета полные (8 + 8 + 8 = 24 бита), значит, они равны 255. Четвёртому октету достаются последние 2 бита сети: 11000000 в двоичном виде, то есть 192. Получаем 255.255.255.192.

Шаг 2. Побитовое И адреса с маской. Интересен только последний октет, остальные закрыты 255. Запишем 77 и 192 в двоичном виде и оставим единицу только там, где она есть у обоих:

 77  = 0 1 0 0 1 1 0 1   (адрес)
192  = 1 1 0 0 0 0 0 0   (маска)
-------------------------
 64  = 0 1 0 0 0 0 0 0   (сеть)

Адрес сети — 192.168.10.64.

Шаг 3. Широковещательный адрес. Теперь все биты хоста выставляем в 1. Последние 6 битов становятся 111111, октет — 01111111, то есть 127. Broadcast — 192.168.10.127.

Шаг 4. Диапазон и число хостов. Рабочий диапазон лежит между этими адресами: 192.168.10.65 – 192.168.10.126. При 6 битах хоста получается 2^6 = 64 адреса, минус 2 — остаётся 62 доступных хоста.

Сокращённый путь: размер блока. Когда освоитесь, двоичную запись можно пропустить. Вычтите «интересный» октет маски из 256: для /26 это 256 − 192 = 64, значит, подсети начинаются с 0, 64, 128 и 192. Ваш адрес 77 попадает между 64 и 128, поэтому сеть — .64, а broadcast — на единицу меньше следующего блока, .127. Этот приём работает с любым префиксом.

Шпаргалка по маскам подсети

Таблица ниже покрывает все префиксы IPv4 от /8 до /32 с маской, wildcard-маской и числом хостов. Дома и в небольших офисах чаще всего нужны /24–/30.

CIDR Маска подсети Wildcard-маска Всего адресов Доступно хостов
/8 255.0.0.0 0.255.255.255 16 777 216 16 777 214
/12 255.240.0.0 0.15.255.255 1 048 576 1 048 574
/16 255.255.0.0 0.0.255.255 65 536 65 534
/20 255.255.240.0 0.0.15.255 4 096 4 094
/22 255.255.252.0 0.0.3.255 1 024 1 022
/23 255.255.254.0 0.0.1.255 512 510
/24 255.255.255.0 0.0.0.255 256 254
/25 255.255.255.128 0.0.0.127 128 126
/26 255.255.255.192 0.0.0.63 64 62
/27 255.255.255.224 0.0.0.31 32 30
/28 255.255.255.240 0.0.0.15 16 14
/29 255.255.255.248 0.0.0.7 8 6
/30 255.255.255.252 0.0.0.3 4 2
/31 255.255.255.254 0.0.0.1 2 2 (point-to-point)
/32 255.255.255.255 0.0.0.0 1 1 (одиночный хост)

Запомнить просто: каждая строка вниз вдвое уменьшает число адресов. /25 — половина /24, /26 — четверть и так далее.

Несколько префиксов встречаются постоянно. /24 — по умолчанию у большинства домашних роутеров. /30 — классический линк между двумя маршрутизаторами. /29 или /28 обычно выдаёт провайдер, когда вы покупаете небольшой блок статических IP.

Что такое CIDR и откуда он взялся

CIDR расшифровывается как Classless Inter-Domain Routing. На практике это косая черта и число после IP-адреса. Число — длина префикса, то есть сколько битов принадлежит сети. У 10.0.0.0/8 восемь битов сети и 24 бита хоста, у 172.16.5.0/24 — 24 и 8. Чем больше число после слэша, тем меньше сеть.

CIDR заменил старую систему классов A, B и C в 1993 году. До этого можно было получить только /8, /16 или /24, что расходовало много адресов впустую. С CIDR граница может проходить на любом бите, и сеть получается ровно такого размера, какой нужен.

Сейчас блоки CIDR встречаются везде: AWS, Google Cloud и Azure просят диапазон CIDR при создании VPC или подсети, Docker и Kubernetes используют их для сетей контейнеров, а файрволы вроде ufw и nftables принимают их в правилах — так одним правилом разрешается целый диапазон.

Как разбить сеть на подсети

Допустим, есть 192.168.10.0/24, и нужно четыре отдельные сети: для дома, IoT-устройств, гостей и серверов. Займите 2 бита у части хоста — получите четыре подсети /26 по 62 доступных хоста в каждой.

Равные деления подходят не всегда: домашней сети может требоваться 100 адресов, а серверному сегменту — 20. Здесь в дело вступает VLSM (Variable Length Subnet Masking): сначала вырезается самая большая подсеть, затем в оставшееся место укладываются меньшие.

Из того же /24 можно взять /25 для дома (192.168.10.0 – .127, 126 хостов), /26 для IoT (.128 – .191, 62 хоста) и две /27 для гостей и серверов (.192 – .223 и .224 – .255, по 30 хостов). Без пересечений и без потерь места.

IPv6: та же логика, но места гораздо больше

Адрес IPv6 — 128 битов, записанных как восемь групп по четыре шестнадцатеричные цифры через двоеточие. Длина префикса по-прежнему говорит, сколько битов принадлежит сети. Ведущие нули в группе можно отбрасывать, а одну последовательность нулевых групп — сжимать в двойное двоеточие: 2001:0db8:abcd:0012:0000:0000:0000:0001 превращается в 2001:db8:abcd:12::1. Калькулятор делает это развёртывание и сжатие за вас.

Большинство адресов IPv6, с которыми вы столкнётесь, устроены одинаково: первые 48 битов — префикс маршрутизации от провайдера, следующие 16 битов — идентификатор подсети, который вы нумеруете как хотите, последние 64 бита определяют устройство.

Из-за последней части каждая локальная сеть IPv6 — это /64: SLAAC (stateless address autoconfiguration), которым большинство устройств выбирает себе адрес, ожидает 64-битный идентификатор интерфейса. Сделайте подсеть меньше /64 — и SLAAC перестанет работать. Поэтому в IPv6 считают не хосты, а подсети: /48 даёт 65 536 отдельных сетей /64. Широковещательного адреса в IPv6 нет — вместо него используется multicast, поэтому для IPv6-сетей калькулятор его не показывает.

Префикс Сколько сетей /64 Обычно используется для
/32 4 294 967 296 Выделение провайдеру или крупной организации
/48 65 536 Площадка бизнеса или дата-центр
/56 256 Домашнее подключение (частая делегация провайдера)
/60 16 Домашнее подключение у некоторых провайдеров
/64 1 Одна локальная сеть или VLAN
/127 — (2 адреса) Point-to-point линк между маршрутизаторами
/128 — (1 адрес) Одиночный хост или loopback

Сколько получите вы, зависит от провайдера. Делегированный префикс ищите на странице состояния WAN в роутере — обычно это что-то вроде Network → WAN → IPv6. Несколько префиксов зарезервированы: 2001:db8::/32 — для документации (поэтому он и появляется во всех примерах), fe80::/10 — link-local, fd00::/8 — для приватных сетей, аналог 192.168.x.x в IPv4.

Расчёт подсетей в терминале Linux

Текущую подсеть в Linux можно узнать, не выходя из терминала. Команда ip показывает каждый адрес вместе с длиной префикса:

ip -4 addr show

Ищите строку, начинающуюся с inet, — например, inet 192.168.1.42/24. Вот этот /24 и есть ваша подсеть. Для IPv6 используйте ip -6 addr show.

Для самих вычислений есть ipcalc — он входит в репозитории большинства дистрибутивов. В Ubuntu и Debian ставится так:

sudo apt install ipcalc

Затем передайте ему адрес с префиксом:

ipcalc 192.168.10.77/26

Если вы держите сеть на современном ядре, стоит помнить, что Linux 7.3 принёс ускорение ext4 и новый режим cgroup, а для неизменяемых сборок Ubuntu Core Desktop готовит переход на linux-firmware-hwe — сетевые настройки в таких системах стоит проверять отдельно.

Ограничение: калькулятор не ищет устройства

Калькулятор занимается математикой, а не обнаружением сети. Он говорит, что содержит подсеть, но не какие адреса в ней заняты. Для этого нужен сканер вроде nmap.

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

Что такое подсеть?

Подсеть — это меньшая сеть, вырезанная из большей. Устройства внутри одной подсети общаются напрямую, а трафик между подсетями идёт через маршрутизатор — это и позволяет держать IoT-устройства отдельно от ноутбука, а серверы отдельно от гостей.

Что такое маска подсети?

Маска подсети указывает устройству, какая часть IP-адреса относится к сети, а какая — к хосту. 255.255.255.0 означает, что первые три октета — сеть. Это та же информация, что и префикс CIDR, только записанная иначе.

Что означает /24 в IP-адресе?

Это запись CIDR: первые 24 бита — часть сети. Соответствует маске 255.255.255.0, 256 адресов и 254 доступных хоста. Самый распространённый размер для домашних и небольших офисных сетей.

Что такое длина префикса подсети?

Это число после слэша в записи CIDR. Некоторые экраны настроек, включая параметры сети Windows и Android, просят длину префикса вместо маски. Если ваша маска 255.255.255.0, вводите 24.

Как узнать маску подсети в Linux?

Выполните ip addr и посмотрите на число после слэша. Если там /24, это 255.255.255.0.

Сколько доступных хостов в подсети /30?

Два. В /30 четыре адреса, один уходит на адрес сети и один на broadcast. Поэтому /30 был стандартом для линков между маршрутизаторами, хотя сейчас для той же задачи используют /31 без потерь адресов.

Чем wildcard-маска отличается от маски подсети?

Wildcard-маска — это маска подсети с перевёрнутыми битами: 255.255.255.0 превращается в 0.0.0.255. Wildcard-маски используют ACL в Cisco и операторы network в OSPF, а большинству других инструментов нужна обычная маска или префикс CIDR.

Какие диапазоны IP считаются приватными?

RFC 1918 отводит под приватные сети три блока IPv4: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Они не маршрутизируются в интернете, поэтому внутри своей сети их можно использовать свободно. Для IPv6 аналог — fd00::/8.

Почему подсеть IPv6 всегда /64?

SLAAC, которым большинство устройств настраивает себе IPv6-адрес, требует 64-битного идентификатора интерфейса. Возьмёте подсеть меньше — устройства не смогут настроиться автоматически. Единственные частые исключения — /127 для линков между маршрутизаторами и /128 для одного адреса.

Источник: itsfoss.com