Калькулятор подсетей: как посчитать адреса, маску и диапазон
В настройках роутера или на сервере рядом с адресом 192.168.1.10 всегда стоит ещё одно число: 255.255.255.0 или, в записи CIDR, /24. Оно объясняет, где кончается ваша локальная сеть и где начинается соседняя. Само по себе значение выглядит случайным набором цифр, и именно поэтому его часто копируют из примера, не понимая смысла. Разберём адрес по битам, посчитаем, сколько устройств поместится в сеть, найдём первый и последний доступный адрес и научимся узнавать маску своего адреса.
Что такое IP-адрес и маска подсети
IP-адрес в четвёртой версии протокола — это число из 32 бит, которое обычно записывают как четыре части через точку, от 0 до 255 в каждой. Такой адрес не «выдаётся» случайно: он делится на две части. Первая, сетевая, у всех устройств одной сети совпадает и указывает на саму сеть. Вторая, хостовая, у каждого устройства своя и указывает на конкретное устройство внутри неё. Маска подсети — это указание, где проходит граница между этими двумя половинами.
Как устроен адрес: четыре октета
Каждая часть адреса называется октетом и содержит ровно 8 бит. Поэтому 255 набирается как восемь единиц в двоичной записи, а ноль — как восемь нулей. Перевести адрес в двоичный вид стоит один раз, и дальше с ним становится работать заметно проще: маска, сетевой адрес и широковещательный считаются обычной побитовой операцией, а не перебором всех адресов подряд.
- адрес состоит из четырёх октетов по 8 бит, всего 32 бита;
- возможных адресов всего 2 в 32 степени, то есть 4 294 967 296;
- октет записывается десятичным числом, но внутри это всегда восемь бит;
- нули в начале октета не пишут, поэтому 010 пишут как 10, а вот 000 пишут как 0;
- двоичная запись адреса состоит ровно из 32 нулей и единиц, разбитых на группы по восемь.
192.168.1.10
192 = 11000000 168 = 10101000
1 = 00000001 10 = 00001010
всего: 11000000.10101000.00000001.00001010Маска: какие биты отвечают за сеть
Маска записывается двоичным числом из тех же 32 бит, и в ней всегда сначала идут единицы, а потом нули. Единицы отмечают биты, которые принадлежат сети, нули — биты хоста. В записи через точки маска выглядит так же, как адрес: 255.255.255.0 в двоичном виде это 24 единицы и 8 нулей. Совпадение первых 24 бит адреса с маской и даёт сетевую часть.
- 255.255.255.0 соответствует /24: 24 бита сети и 8 бит хоста;
- 255.255.0.0 соответствует /16, а 255.0.0.0 — /8;
- 255.255.255.252 соответствует /30, где остаётся всего два бита хоста;
- чем больше единиц в маске, тем меньше адресов в сети и тем крупнее в ней подсети;
- wildcard-маска, которая встречается в правилах фильтрации, вычисляется наоборот: единицы и нули меняются местами, и /24 превращается в 0.0.0.255.
CIDR и сколько адресов в сети
Запись /24 называется префиксом в нотации CIDR. Это просто краткий способ сказать «в маске 24 единицы». Количество адресов в сети получается простым действием: нужно взять двойку в степени числа нулей в маске. При /24 нулей восемь, значит адресов 2 в 8 степени, то есть 256. Из них два не отдают ни одному устройству: сетевой адрес отмечает саму сеть, а широковещательный рассылает пакет всем внутри неё. Поэтому для устройств остаётся 254 адреса.
Адрес: 11000000.10101000.00000001.00001010
Маска: 11111111.11111111.11111111.00000000 (/24)
AND
Сеть: 11000000.10101000.00000001.00000000 = 192.168.1.0
Хостовая часть при /24 занимает 8 бит:
2^8 = 256 адресов всего
256 − 2 = 254 доступно устройствам
Тот же расчёт для /26: нулей 6, значит
2^6 = 64 адреса, 62 доступно устройствам- /8 — 2 в 24 степени, это 16 777 216 адресов;
- /16 — 2 в 16 степени, 65 536 адресов;
- /24 — 2 в 8 степени, 256 адресов, 254 для устройств;
- /26 — 2 в 6 степени, 64 адреса, 62 для устройств;
- /30 — 2 в 2 степени, 4 адреса, и только два из них можно назначить устройствам;
- /31 и /32 считаются отдельно: там не вычитают два, потому что это link-to-point соединения и адрес на интерфейсе.
Сетевой адрес, широковещательный, первый и последний хост
В любой сети из двух адресов выпадают из доступных. Первый, сетевой, получается, если в адресе обнулить все биты хоста: он указывает на саму сеть и не назначается устройству. Второй, широковещательный, получается, если все биты хоста выставить в единицы: пакет с таким адресом получают все, кто находится в этой сети. Остальные адреса между ними распределяются по устройствам, и крайние из них — первый и последний доступный.
Сетевой адрес: 192.168.1.0
Первый доступный: 192.168.1.1
Последний доступный: 192.168.1.254
Широковещательный: 192.168.1.255
Всего адресов: 256
Для устройств: 254
Другой пример, 10.0.0.0/8:
всего 16 777 216 адресов, из них 16 777 214 доступны
диапазон хостов: 10.0.0.1 — 10.255.255.254
широковещательный: 10.255.255.255
И 192.168.1.130/26:
маска 255.255.255.192
сеть 192.168.1.128, широковещательный 192.168.1.191
хосты 192.168.1.129 — 192.168.1.190, всего 62Из этих четырёх чисел два знакомы каждому, кто настраивал домашнюю сеть: 192.168.1.1 почти всегда у роутера, а 192.168.1.255 почти всегда указывает на широковещательный адрес. В диапазоне 192.168.1.1 — 192.168.1.254 живут все остальные устройства: компьютеры, телефоны, телевизоры, принтеры и всё, что умеет подключаться к сети.
Классовые сети и почему от них отказались
До 1993 года адреса делили на классы, и старший октет сам определял, где кончается сеть. Класс A начинался с адресов 1–126 и имел маску 255.0.0.0, класс B занимал 128–191 с маской 255.255.0.0, класс C — 192–223 с маской 255.255.255.0. Остальные диапазоны занимали особые роли: 224–239 отдан под multicast, а 240–255 зарезервирован. Схема была простой, но с каждым новым провайдером в таблицы маршрутизации попадало всё больше сетей, и к началу девяностых размер таблиц стал неуправляемым. Тогда в 1993 году IETF опубликовал RFC 1518 и RFC 1519, где вводилась нотация CIDR с произвольной длиной префикса, а в 2006 году её обновил RFC 4632. С тех пор классовые сети остались только как историческая справка, и любая современная сеть описывается префиксом.
- класс A: первый октет 1–126, маска 255.0.0.0, до 16 миллионов адресов;
- класс B: 128–191, маска 255.255.0.0, до 65 тысяч адресов;
- класс C: 192–223, маска 255.255.255.0, 254 адреса;
- 127.0.0.0/8 — обратная петля, адрес самого компьютера, в интернет не уходит;
- 0.0.0.0 — «любой адрес», в маршрутизаторе означает шлюз по умолчанию.
Частные адреса и почему их нельзя выводить в интернет
Частные адреса выглядят как обычные, но выделены специально для внутренних сетей, и в документе RFC 1918, опубликованном в феврале 1996 года, закреплены три диапазона. Их смысл в том, что они не уникальны во всём интернете: у каждого офиса и каждого дома своя сеть 192.168.1.0/24, и это нормально, потому что такие адреса не маршрутизируются в публичном интернете. Пакет с частным адресом, попавший в глобальную сеть, обычно отбрасывается на ближайшем маршрутизаторе. Именно поэтому домашний роутер и берёт частный адрес у себя, а наружу отдаёт адрес, выданный провайдером, и подменяет один другим на лету.
- 10.0.0.0/8 — самый крупный частный блок, 10.0.0.0 — 10.255.255.255, используется в больших сетях организаций;
- 172.16.0.0/12 — 172.16.0.0 — 172.31.255.255, диапазон заметно меньше, чем кажется по цифре 172;
- 192.168.0.0/16 — 192.168.0.0 — 192.168.255.255, привычный домашний и офисный блок;
- 169.254.0.0/16 — link-local, адрес, который устройство назначает себе само, когда не нашло сеть;
- 100.64.0.0/10 — блок для операторов, отдающих адреса сотням абонентов через общий публичный адрес.
Как узнать свой адрес и маску
Собственный адрес можно посмотреть в настройках операционной системы, не открывая браузер. В Windows это команда ipconfig в командной строке, в Linux и macOS это ip addr или ifconfig, а на смартфоне раздел сети в настройках. Там же рядом с адресом стоит и маска в виде 255.255.255.0, а современные системы дополнительно показывают её в понятном виде, как /24.
- откройте терминал или командную строку;
- в Windows выполните ipconfig, в Linux и macOS — ip addr либо ifconfig;
- найдите строку с адресом, у которого первая часть начинается с 192.168, 10 или 172.16;
- рядом найдите поле «Маска подсети» или, в современных системах, префикс в скобках;
- внесите адрес и префикс в калькулятор подсетей — он сразу покажет сеть, широковещательный адрес и диапазон хостов.
Публичный адрес, под которым вас видно в интернете, узнаётся иначе: его показывает любой сервис проверки IP, а инструмент с информацией об адресе выводит и сам адрес, и класс сети, и приватный он или публичный, и сразу считает CIDR-параметры по введённому значению. Разница между двумя адресами — сама по себе полезное знание: если внешний адрес начинается с 192.168, значит перед вами маршрутизатор с частным адресом и, скорее всего, без проброса портов.
Разбиение сети на подсети
Когда в сети становится больше устройств, чем помещается в один блок, сеть делят на части. Проще всего идти от маленьких подсетей к большим: берётся исходный блок и внутри него выделяются подсети с новым, более длинным префиксом. Каждая подсеть получает свой диапазон, и устройства из разных подсетей не видят друг друга напрямую, а общаются через маршрутизатор. Это же деление позволяет развести гостевую сеть от рабочей и не пускать гостей в корпоративный сегмент.
Было: 192.168.1.0/24, 254 адреса
Стало: четыре подсети /26, по 62 адреса в каждой
1. 192.168.1.0/26 маска 255.255.255.192
хосты .1 — .62, широковещательный .63
2. 192.168.1.64/26 маска 255.255.255.192
хосты .65 — .126, широковещательный .127
3. 192.168.1.128/26 маска 255.255.255.192
хосты .129 — .190, широковещательный .191
4. 192.168.1.192/26 маска 255.255.255.192
хосты .193 — .254, широковещательный .255
Проверка: 64 × 4 = 256 адресов, из них восемь
служебных (по два на подсеть), 248 уходит устройствам.Число подсетей всегда степень двойки, потому что отдавать «три с половиной» подсети бессмысленно: адреса не делятся наполовину. Если нужно именно четыре части, префикс удлиняется на два бита, и 24 превращается в 26. Если нужно восемь, добавляются три бита и получается /27. Обратная задача решается так же: зная, сколько адресов нужно в подсети, подбирают ближайшую степень двойки и отнимают два.
Типичные ошибки
- путают /24 и 255.255.255.0: это одно и то же, записанное двумя способами, а не разные вещи; префикс /24 означает 24 бита сети, а не 24 адреса;
- забывают про широковещательный адрес и назначают устройству 192.168.1.255, после чего связи с ним работают непредсказуемо;
- считают, что в /24 помещается 256 устройств: на практике доступно 254, и при плотном заполнении сети два адреса могут не хватить;
- выбирают маску по размеру сети, а не по числу устройств, и потом удивляются, что часть компьютеров не видит другую часть;
- назначают устройству адрес из другого диапазона, забыв про маску: при /24 адреса 192.168.2.15 просто не попадут в вашу сеть;
- приравнивают классовые сети к современным: сеть класса C из прочитанной в 1998 году книге в реальности может быть и /22, и /28;
- берут /30 под обычную рабочую станцию: два адреса на устройство там не заводятся, для этого есть /24 или /26.
Частые вопросы
Почему в /24 четыреста пятьдесят шесть адресов, а устройств двести пятьдесят четыре?
Потому что два адреса зарезервированы под служебные нужды. Сетевой адрес 192.168.1.0 обозначает сам блок 192.168.1.0/24 и не может быть назначен устройству, иначе устройство не отличит себя от сети. Широковещательный адрес 192.168.1.255 нужен для отправки пакета сразу всем участникам сети. Всё, что находится между ними, то есть 192.168.1.1 — 192.168.1.254, распределяется по устройствам.
Как узнать подсеть своего компьютера?
В Windows достаточно выполнить ipconfig в командной строке и посмотреть строку «Маска подсети» у нужного подключения, в Linux или macOS подойдёт ip addr либо ifconfig. Рядом с адресом 192.168.1.10 там будет 255.255.255.0, то есть /24. В системах, где показывают префикс в скобках, он пишется сразу как /24, и тогда ничего пересчитывать не нужно.
Чем отличается маска подсети от wildcard-маски?
Это одна и та же маска с противоположным смыслом. Обычная маска отвечает на вопрос «какие биты определяют сеть», и в ней сначала единицы, потом нули: 255.255.255.0 при /24. Wildcard-маска отвечает на вопрос «какие биты нужно игнорировать», поэтому в ней сначала нули, потом единицы: 0.0.0.255 для того же /24. Wildcard встречается в правилах маршрутизации и фильтрации, где нужно сказать «любой адрес в этой подсети».
Можно ли разделить сеть на неравные части?
Да, такой приём называется VLSM и он используется повсеместно. Сначала выделяют самую большую подсеть под крупные требования, затем следующую и так далее, а от оставшегося куска отрезают последние подсети. В пределах одного адресного пространства суммарное число адресов не меняется, просто распределяются они неравномерно: одна часть получает тысячу адресов, другая двадцать восемь.
Почему частный адрес не работает в интернете?
Потому что маршрутизаторы в публичной сети не знают, куда отправлять пакет с адресом 192.168.1.10. Такой адрес повторяется в тысячах домашних и офисных сетей по всему миру, и маршрутизатор просто не может решить, в какую из них отправить пакет. Такие адреса выбрасываются на границе сети, а наружу отправляется адрес, полученный от провайдера. Подмена одного адреса другим на границе и называется трансляцией адресов.
Что такое адрес из сети 127.0.0.0/8?
Это обратная петля: адрес 127.0.0.1 всегда указывает на сам компьютер, с которого отправлен запрос, независимо от настроек сети. Так работает локальный веб-сервер, к которому обращаются через localhost. В глобальный интернет такие пакеты не выходят, а весь блок 127.0.0.0/8 зарезервирован под эту задачу.
Калькулятор подсети
Рассчитайте маску, сетевой и широковещательный адрес, число хостов и разбиение сети по CIDR
Информация об IP-адресе
Показать ваш текущий IP, проверить IPv4/IPv6, определить класс IP и вычислить CIDR нотацию
Конвертер систем счисления
Конвертируйте числа между двоичной, восьмеричной, десятичной, шестнадцатеричной и произвольной системами
Двоичный переводчик
Конвертируйте текст в двоичный код (0 и 1) и обратно с побайтовым разбором