Маска подсети и определение по IP-адресу¶
Маска подсети (маска сети, subnet mask) — 32-битный адрес, используемый в сетях IPv4 для разделения IP-адреса на две части: сетевую (идентификатор сети) и хостовую (идентификатор узла). Маска определяет, какая часть IP-адреса принадлежит самой сети, а какая — конкретному устройству (компьютеру, маршрутизатору, серверу) внутри этой сети. Без маски подсети IP-адрес сам по себе не позволяет однозначно определить границы сети.
¶Структура и запись маски
Маска подсети записывается так же, как и IPv4-адрес — четырьмя десятичными числами, разделёнными точками, каждое в диапазоне 0–255. В двоичном виде маска всегда состоит из последовательности единиц, за которыми следуют нули: единицы соответствуют сетевой части, нули — хостовой.
Пример: маска 255.255.255.0 в двоичной записи выглядит как 11111111.11111111.11111111.00000000. Это означает, что первые 24 бита определяют сеть, а последние 8 бит — конкретный узел. В таком формате маску часто записывают в CIDR-нотации как /24, где число после слэша указывает количество единиц (бит сетевой части).
¶Основные классовые маски
До внедрения CIDR (Classless Inter-Domain Routing, 1993 год) сети IPv4 делились на классы A, B, C, D и E, и для каждого класса была своя маска по умолчанию:
| Класс | Маска по умолчанию | CIDR | Диапазон сетевых адресов |
|---|---|---|---|
| A | 255.0.0.0 | /8 | 1.0.0.0 — 126.255.255.255 |
| B | 255.255.0.0 | /16 | 128.0.0.0 — 191.255.255.255 |
| C | 255.255.255.0 | /24 | 192.0.0.0 — 223.255.255.255 |
Классы D (224.0.0.0 — 239.255.255.255) зарезервированы под мультикаст, класс E (240.0.0.0 — 254.255.255.255) — под экспериментальные цели. В современных сетях классовое разделение практически не используется: маска подбирается под конкретную задачу (подсеть нужного размера), поэтому возможны, например, маски /25, /26, /30.
¶Как узнать маску подсети по IP-адресу
¶По формату IP-адреса
Если известен только IP-адрес, маску нельзя определить однозначно: один и тот же адрес, например 192.168.1.100, может входить в сеть /24, /25 или /28. Однако по первому октету можно косвенно определить класс сети и маску по умолчанию:
- 1–126 — класс A, маска 255.0.0.0;
- 128–191 — класс B, маска 255.255.0.0;
- 192–223 — класс C, маска 255.255.255.0.
Это работает только для классовых сетей; в маскированных (CIDR) сетях класс не определяет маску.
¶С помощью операционной системы
В Windows маска подсети отображается командой ipconfig в разделе «IPv4-адрес» — строка «Маска подсети». В Linux и macOS используется команда ip addr show (или устаревшая ifconfig); маска выводится после косой черты рядом с IP-адресом, например inet 192.168.1.100/24.
¶С помощью маршрутизатора
Маска подсети обычно назначается DHCP-сервером (как правило, встроенным в домашний или корпоративный маршрутизатор) вместе с IP-адресом. В веб-интерфейсе роутера маска отображается в настройках LAN или DHCP-сервера. Узнать её можно также, просмотрев конфигурацию на самом устройстве, подключённом к сети.
¶Определение по другим устройствам в сети
Если известны IP-адреса двух устройств в одной сети, можно определить маску, проверив, совпадают ли у них сетевые части. Например, при адресах 192.168.1.10 и 192.168.1.200 маска может быть /24 или шире; при адресах 10.0.5.12 и 10.0.9.33 первые два октета совпадают, но третий различается — значит, маска не шире /16.
¶Подсчёт адресов в подсети
Количество адресов в подсети определяется формулой 2^(32 − n), где n — длина префикса в CIDR-нотации. Из общего числа вычитаются два адреса: сетевой (все нули в хостовой части) и широковещательный (все единицы). Например, в подсети /24 доступно 256 адресов, из них 254 пригодны для назначения устройствам; в подсети /30 — 4 адреса, из них 2 пригодны (типичный размер для соединения «точка-точка» между двумя маршрутизаторами).
¶Особые случаи
- Адрес 127.0.0.1 (loopback) с маской по умолчанию
255.0.0.0— локальный интерфейс, не маршрутизируется. - Частные (приватные) диапазоны по RFC 1918:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16— используются в локальных сетях, маска подсети в них выбирается администратором. - Маска 255.255.255.255 (/32) — «маска хоста», используется в таблицах маршрутизации для обозначения отдельного адреса.
- Маска 0.0.0.0 (/0) — обозначает «любую сеть», встречается в маршруте по умолчанию (default gateway).
¶Практическое значение
Правильно подобранная маска подсети определяет широковещательный домен, влияет на производительность сети (слишком большая подсеть приводит к избыточному трафику широковещательных пакетов) и обеспечивает сегментацию — например, отделение гостевой Wi-Fi сети от корпоративной. При проектировании сетей маска рассчитывается исходя из требуемого количества узлов с запасом на рост.
Источники:
- RFC 791 — Internet Protocol
- RFC 1918 — Address Allocation for Private Internets
- RFC 1519 — Classless Inter-Domain Routing (CIDR)
- Кравцов В. А., Столяров А. М. «Компьютерные сети: технологии, протоколы, безопасность»
