Что делает маска подсети
Маска подсети — это 32-битное значение, равное по длине IPv4-адресу, состоящее из последовательного набора единичных битов, за которыми следует последовательный набор нулевых битов. Единичные биты обозначают, какие биты адреса определяют сеть, к которой принадлежит адрес, а нулевые биты обозначают, какие биты определяют конкретный хост внутри этой сети. Побитовое И между IP-адресом и его маской отбрасывает биты хоста и оставляет только сетевой адрес.
Например, маска 255.255.255.0 в двоичном виде — это 11111111.11111111.11111111.00000000: 24 единичных бита, за которыми следуют 8 нулевых битов, — то есть первые три октета определяют сеть, а последний октет определяет отдельные хосты внутри неё, что даёт до 256 адресов (254 из них доступных) в такой сети.
Нотация CIDR: что на самом деле означает /24
CIDR (Classless Inter-Domain Routing, бесклассовая междоменная маршрутизация), описанная в RFC 4632, записывает маску подсети как косую черту с числом ведущих единичных бит, поэтому /24 — это сокращение для маски 255.255.255.0, а /26 — сокращение для 255.255.255.192. CIDR заменил более старую классовую систему, в которой размер сети жёстко определялся первыми битами адреса (класс A, B или C), гибкостью задавать сеть почти любого размера, выбирая длину префикса от /0 до /32.
Длина префикса напрямую определяет и маску, и число оставшихся битов хоста: для 32-битного IPv4-адреса биты хоста = 32 − длина префикса. Сеть /24 имеет 8 битов хоста (2⁸ = 256 адресов), сеть /26 имеет 6 битов хоста (2⁶ = 64 адреса), а сеть /30 имеет 2 бита хоста (4 адреса) — чем меньше число битов хоста, тем меньше сеть.
Разбор примера: 192.168.1.10/26
Возьмём адрес 192.168.1.10 с префиксом /26. Маска /26 имеет 26 единичных битов, что охватывает все первые три октета (24 бита) плюс два старших бита четвёртого октета, давая маску 255.255.255.192 (192 в двоичном виде — 11000000). Четвёртый октет адреса, 10, в двоичном виде — 00001010; операция И с четвёртым октетом маски (11000000) обнуляет младшие 6 бит, оставляя 00000000 = 0, поэтому сетевой адрес — 192.168.1.0.
Оставшиеся 6 битов хоста в четвёртом октете дают размер блока 2⁶ = 64 адреса на подсеть, поэтому подсеть, содержащая .10, охватывает адреса от .0 до .63. Широковещательный адрес — верхняя граница этого диапазона, 192.168.1.63 (все биты хоста установлены в единицу), а доступный диапазон хостов — всё между сетевым и широковещательным адресами: от 192.168.1.1 до 192.168.1.62 — ровно 2⁶ − 2 = 62 доступных адреса хостов.
Зачем нужны подсети
Подсети были стандартизированы в RFC 950 для решения практической проблемы: единая плоская сеть из тысяч или миллионов устройств неэффективна и уязвима, потому что каждое устройство в широковещательном домене получает каждый широковещательный пакет, отправленный внутри него, а сбой или широковещательный шторм в одном сегменте может затронуть всю сеть. Разбиение крупного блока адресов на меньшие подсети ограничивает широковещательный трафик рамками каждой подсети и позволяет организовать сеть по физическим или организационным границам — этаж, отдел, стойка в дата-центре, — а не в виде одного неразделённого пула адресов.
Подсети также способствуют экономии адресов и эффективности маршрутизации: организация может подобрать размер каждой подсети примерно под реальное число нужных устройств (соединению точка-точка между двумя маршрутизаторами не нужны 254 адреса, как офисной сети /24), а переменная длина префиксов CIDR позволяет маршрутизаторам объединять множество мелких подсетей в одну запись таблицы маршрутизации, не давая таблицам маршрутизации интернет-масштаба разрастаться неуправляемо, как описано в RFC 4632.
Справочная таблица префиксов CIDR
В таблице ниже перечислены распространённые длины префиксов CIDR с их масками подсети в десятичной записи с точками и итоговым числом доступных адресов хостов, по стандартным правилам подсчёта хостов CIDR, где сетевой и широковещательный адреса зарезервированы и не назначаются устройствам.
| Префикс | Маска подсети | Доступных хостов |
|---|---|---|
| /24 | 255.255.255.0 | 254 |
| /25 | 255.255.255.128 | 126 |
| /26 | 255.255.255.192 | 62 |
| /27 | 255.255.255.224 | 30 |
| /28 | 255.255.255.240 | 14 |
| /29 | 255.255.255.248 | 6 |
| /30 | 255.255.255.252 | 2 |
Часто задаваемые вопросы
Что такое маска подсети?
Маска подсети — это 32-битное значение, состоящее из последовательного набора единичных битов, за которым следует последовательный набор нулевых битов, используемое для разделения IPv4-адреса на сетевую часть и часть хоста. Побитовое И между адресом и его маской даёт сетевой адрес; маска 255.255.255.0, например, обозначает первые 24 бита как сетевую часть, а последние 8 бит — как часть хоста.
Что означает /24 в IP-адресе?
/24 в нотации CIDR означает, что первые 24 из 32 бит адреса определяют сеть, что эквивалентно маске подсети 255.255.255.0. Оставшиеся 8 бит определяют отдельные хосты внутри этой сети, что даёт 2⁸ = 256 адресов всего, из которых 254 доступны после резервирования сетевого и широковещательного адресов.
Как найти сетевой и широковещательный адрес для 192.168.1.10/26?
Маска /26 — это 255.255.255.192, оставляющая 6 битов хоста в последнем октете и размер блока 2⁶ = 64 адреса. Поскольку 10 попадает в блок 0–63, сетевой адрес — 192.168.1.0 (все биты хоста обнулены), а широковещательный адрес — 192.168.1.63 (все биты хоста установлены в единицу); доступный диапазон хостов — от 192.168.1.1 до 192.168.1.62, то есть 62 адреса.
Зачем нужны подсети?
Подсети разбивают крупную сеть на меньшие, независимо управляемые сегменты, что ограничивает распространение широковещательного трафика, изолирует сбои и нежелательный трафик в меньшей части сети и позволяет выделять адресное пространство примерно под реальное число устройств, а не тратить крупные блоки на небольшие соединения. Это также позволяет маршрутизаторам объединять множество мелких подсетей в меньшее число записей таблицы маршрутизации, что необходимо для масштабирования интернет-маршрутизации.
Сколько доступных хостов в сети /26?
62. Префикс /26 оставляет 6 битов хоста (32 − 26 = 6), давая 2⁶ = 64 адреса всего в подсети. Из них адрес из всех нулей зарезервирован как сетевой адрес, а адрес из всех единиц зарезервирован как широковещательный, оставляя 2⁶ − 2 = 62 адреса, которые можно назначить устройствам.
В чём разница между CIDR и старой классовой системой адресации?
Классовая адресация фиксировала размер сети одним из немногих жёстких вариантов (класс A, B или C) на основе первых битов адреса, что впустую тратило большие объёмы адресного пространства для организаций, которым требовалось что-то среднее между фиксированными размерами. CIDR, описанная в RFC 4632, заменила это префиксами переменной длины, записываемыми через косую черту (например, /24, /26), позволяя задавать размер сети почти под любую границу степени двойки и давая маршрутизаторам возможность объединять несколько сетей в меньшее число записей таблицы маршрутизации.
Источники
- Mogul J, Postel J. Internet Standard Subnetting Procedure. RFC 950, IETF, 1985.
- Fuller V, Li T. Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan. RFC 4632, IETF, 2006.
- Postel J. Internet Protocol. RFC 791, IETF, 1981.
- Rekhter Y, Moskowitz B, Karrenberg D, de Groot GJ, Lear E. Address Allocation for Private Internets. RFC 1918, IETF, 1996.