Маска подсети — битовая маска для определения по IP-адресу адреса подсети и адреса узла (хоста, компьютера, устройства) этой подсети. В отличие от IP-адреса маска подсети не является частью IP-пакета.

Благодаря маске можно узнать, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети.

Например, узел с IP-адресом 11.34.56.78 и маской подсети 255.255.255.0 находится в сети 11.34.56.0 с длиной префикса 24 бита. В случае адресации IPv6 адрес 2001:0DB8:1:0:6C1F:A78A:3CB5:1ADD с длиной префикса 32 бита (/32) находится в сети 2001:0DB8::/32.

Другой вариант определения — это определение подсети IP-адресов. Например, с помощью маски подсети можно сказать, что один диапазон IP-адресов будет в одной подсети, а другой диапазон соответственно в другой подсети.

Чтобы получить адрес сети, зная IP-адрес и маску подсети, необходимо применить к ним операцию поразрядной конъюнкции (побитовое И). Например, в случае более сложной маски (битовые операции в IPv6 выглядят аналогично):

  • часть маски, определяющая адрес сети и состоящая из единиц;
  • адрес сети, который определяется маской подсети;
  • диапазон адресов устройств в этой сети.

Разбиение одной большой сети на несколько маленьких подсетей позволяет упростить маршрутизацию. Например, пусть таблица маршрутизации некоторого маршрутизатора содержит следующую запись:

Сеть назначенияМаска сетиАдрес шлюза
192.168.1.0255.255.255.010.20.30.1

Пусть теперь маршрутизатор получает пакет данных с адресом назначения 192.168.1.2. Обрабатывая построчно таблицу маршрутизации, он обнаруживает, что при наложении (применении операции «побитовое И») на адрес 192.168.1.2 маски 255.255.255.0 получается адрес сети 192.168.1.0. В таблице маршрутизации этой сети соответствует шлюз 10.20.30.1, которому и отправляется пакет.

Содержание

Маски при бесклассовой маршрутизации (CIDR) [ править | править код ]

Маски подсети являются основой метода бесклассовой маршрутизации (англ. CIDR ). При этом подходе маску подсети записывают вместе с IP-адресом в формате «IP-адрес/количество единичных бит в маске». Число после знака дроби ( т. н. длина префикса сети) означает количество единичных разрядов (бит) в маске подсети.

Рассмотрим пример записи диапазона IP-адресов в виде 10.96.0.0/11. В этом случае маска подсети будет иметь двоичный вид 1111_1111.1110_0000.0000_0000.0000_0000, или то же самое в десятичном виде: 255.224.0.0. 11 разрядов IP-адреса отводятся под адрес сети, а остальной 32-11=21 разряд полного адреса ( 1111_1111.1110_0000.0000_0000.0000_0000) — под локальный адрес в этой сети. Итого, 10.96.0.0/11 означает диапазон адресов от 10.96.0.0 до 10.127.255.255.

IPv4 CIDR

CIDRПоследний IP-адрес в подсетиМаска подсетиКоличество адресов в подсетиКоличество хостов в подсетиКласс подсети
a.b.c.d/320.0.0.0255.255.255.25511*1/256 C
a.b.c.d/310.0.0.1255.255.255.25422*1/128 C
a.b.c.d/300.0.0.3255.255.255.252421/64 C
a.b.c.d/290.0.0.7255.255.255.248861/32 C
a.b.c.d/280.0.0.15255.255.255.24016141/16 C
a.b.c.d/270.0.0.31255.255.255.22432301/8 C
a.b.c.d/260.0.0.63255.255.255.19264621/4 C
a.b.c.d/250.0.0.127255.255.255.1281281261/2 C
a.b.c.0/240.0.0.255255.255.255.0002562541 C
a.b.c.0/230.0.1.255255.255.254.0005125102 C
a.b.c.0/220.0.3.255255.255.252.000102410224 C
a.b.c.0/210.0.7.255255.255.248.000204820468 C
a.b.c.0/200.0.15.255255.255.240.0004096409416 C
a.b.c.0/190.0.31.255255.255.224.0008192819032 C
a.b.c.0/180.0.63.255255.255.192.00016 38416 38264 C
a.b.c.0/170.0.127.255255.255.128.00032 76832 766128 C
a.b.0.0/160.0.255.255255.255.000.00065 53665 534256 C = 1 B
a.b.0.0/150.1.255.255255.254.000.000131 072131 0702 B
a.b.0.0/140.3.255.255255.252.000.000262 144262 1424 B
a.b.0.0/130.7.255.255255.248.000.000524 288524 2868 B
a.b.0.0/120.15.255.255255.240.000.0001 048 5761 048 57416 B
a.b.0.0/110.31.255.255255.224.000.0002 097 1522 097 15032 B
a.b.0.0/100.63.255.255255.192.000.0004 194 3044 194 30264 B
a.b.0.0/90.127.255.255255.128.000.0008 388 6088 388 606128 B
a.0.0.0/80.255.255.255255.000.000.00016 777 21616 777 214256 B = 1 A
a.0.0.0/71.255.255.255254.000.000.00033 554 43233 554 4302 A
a.0.0.0/63.255.255.255252.000.000.00067 108 86467 108 8624 A
a.0.0.0/57.255.255.255248.000.000.000134 217 728134 217 7268 A
a.0.0.0/415.255.255.255240.000.000.000268 435 456268 435 45416 A
a.0.0.0/331.255.255.255224.000.000.000536 870 912536 870 91032 A
a.0.0.0/263.255.255.255192.000.000.0001 073 741 8241 073 741 82264 A
a.0.0.0/1127.255.255.255128.000.000.0002 147 483 6482 147 483 646128 A
0.0.0.0/0255.255.255.255000.000.000.0004 294 967 2964 294 967 294256 A

* Чтобы в сетях с такой размерностью маски возможно было разместить хосты, отступают от правил, принятых для работы в остальных сетях.

Возможных узлов подсети меньше количества адресов на два: начальный адрес сети резервируется для идентификации подсети, последний адрес используется в качестве широковещательного адреса (возможны исключения в виде адресации в IPv4 сетей /32 и /31).

Выбор маски для подсети [ править | править код ]

Если n <displaystyle n> — количество компьютеров в подсети, округлённое до ближайшей большей степени двойки, и n ⩽ 254 <displaystyle nleqslant 254> (для сетей класса C), то маска подсети вычисляется по следующей формуле: 2 8 − n − 2 <displaystyle 2^<8>-n-2> , где двойка вычитается, так как один IP-адрес (первый в задаваемом маской диапазоне) является IP-адресом подсети и ещё один IP-адрес (последний в задаваемом маской диапазоне) является широковещательным адресом (для отправки данных всем узлам подсети). Для 254>"> n > 254 <displaystyle n>254> 254>"/> будет другая формула.

Пример: в некой подсети класса C есть 30 компьютеров; маска для такой сети вычисляется следующим образом:

Все о локальных сетях и сетевом оборудовании

Под маской подсети понимают 32-разрядное число, составленное из единиц и нулей. Начинается маска из последовательности единиц, а завершается последовательностью нулей. Ее накладывают на IP-адрес . Ту часть адреса, на которую накладываются единицы, определяют адресом сети. На остальную часть накладываются нули — она отводится под адресацию хостов.

Расчет маски подсети

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

Администратор сети, получив в распоряжение некий сетевой адрес, имеет возможность разделить его на ряд подсетей (а может использовать и без разделения). Зачем делить полученный адрес? В разных сетях нужно подключать различное число компьютеров — где-то надо подключить только 10 хостов, а где-то более 30.

Будет гораздо удобнее, если эти «количества» будут подключены в разных подсетях с общением через маршрутизатор.

Например, определим маску для сети класса С. Из соглашения известно, что под адрес сетей такого класса отводят первый, второй и третий байты 32-разрядного числа. Четвертый остается для распределения хостов. Тогда запись маски в точечно-двоичной нотации выглядит так:

Как видим, первые 24 бита установлены, а последние 8 сброшены. Таким образом, маска в десятичном формате получит такой вид: 255.255.255.0. Идентичной записью станет следующая /24 — префиксная.

Таблица масок подсетей

Маска позволяет выделить целое множество сетей класса С, как и сетевых адресов других типов. В предыдущем примере была показана маска для стандартной сети класса С. Однако если сбросить крайнюю единицу на ноль, тогда получим следующую запись 255.255.254.0 или /23. При такой маске можем получить 2 сети класса С, так как сброшенная единица может быть восстановлена. Запись с 17-ю единицами позволит адресовать сразу 128 сетей класса С.

С целью облегчения понимания бесклассовой адресации (CIDR) создаются целые таблицы соответствия префиксов, масок, количества подключаемых хостов и классов сетей. Сетевому администратору нет нужды рассчитывать маски, число сетей и хостов самостоятельно. Достаточно только заглянуть в список соответствия, чтобы ответить на вопрос какую маску выбрать при необходимости подключить конкретное число рабочих станций.

Так, если администратору надо подключить 30 рабочих станций, тогда маска сети должна завершаться 5-ю нулями. Действительно, для нумерации узлов достаточно 5 нулей, так как 2 в степени 5 равно 32.

При этом узел с пятью нулями отвечает за номер сети, а узел с 5-ю единицами является широковещательным. Соответственно три старшие бита должны заполняться единицами, как и три предшествующих байта, поэтому маска должна принять вид:

1111111.11111111.11111111.11100000 или 255.255.255.224.

Вместо вычислений администратор может воспользоваться данными из таблиц соответствий.

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

Маску подсети по ip-адресу однозначно определить нельзя. Однако информация о маске хранится на маршрутизаторах, в операционных системах. В Windows определить ее можно несколькими способами. Много информации о сетевой конфигурации компьютера можно извлечь через командную строку.

Если в терминале текстовой строки выполнить команду ipconfig, то сетевая утилита выведет всю информацию о сетевой конфигурации, включая и маску подсети, к которой принадлежит данный ПК.

Узнать маску можно и в графическом режиме. Windows предоставляет для этого специальные инструменты. Для этого нужно пройти в центр управления сетями

и отыскать там адаптер, через который осуществляется соединение с внешней сетью.

Далее понадобится вызвать его сведения о состоянии,

где достаточно открыть окошко сведений о подключении.

В открывшемся списке легко обнаружить пункт маски подсети IPv4.

Здесь записана маска подсети, к которой принадлежит рабочая станция.

Наверное, каждый, кто хоть раз сталкивался с настройкой интернет соединения слышал о таком понятии — Маска подсети, но не все знают, что это такое, да и информация в интернете по этому запросу довольно устарела и сложна в понимании.

Давайте закроем этот пробел знаний в работе сети и интернета в целом и выясним, что это такое и зачем она в принципе нужна. Информация будет изложена самым доступным и понятным языком.

Итак, вот мы и отметили день программиста, продолжим обучение компьютерной грамотности и разберем по полочкам, что такое маска подсети, для чего она нужна и как вообще это работает.

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

Маска подсети (network mask, subnet mask) — это битовая маска (bitmask), которая используется для определения к какой подсети принадлежит определенный ИП адрес. Она не отправляется в заголовках IP-пакетов, т.е. не является ее частью, поэтому по айпи узнать ее просто никак нельзя.

Как и IP-адрес в IPv4 имеет размер в 32-бита. В двоичном формате, ноли и единицы не должны в ней чередоваться, так вначале всегда идут единички, а уже потом ноли.

Чаще всего пишется префиксом, например, 192.168.11.4/19. Посчитать префикс довольно легко, например, у 255.255.224.000, префикс будет — 19. Посчитайте просто все первые единички в двоичном формате.

Также, можно посчитать и в обратную сторону. Напишите столько единичек и сколько нужно, например, 15, потом допишите 17 нолей, чтобы получилось 32 и переведите это в десятичный формат, получится: 255.254.000.000. Не забывайте, после каждой 8 цифры ставить точку.

Интересно! Как и протокол IPv4 маска сети состоит тоже из 32 бит. И для запоминания, протокол IPv6 состоит из 128 бит.

Сам префикс означает вот что, например, возьмем префикс 20, это означает, что из 32 бит, 20 будут хранить информацию о самой сети, а 12 уже информацию о хосте. Посчитаем сколько это возможных IP адресов. 220 — 2 = 4 094. Убираем два адреса, т.к. они всегда зарезервированы под свои цели.

Для чего нужна маска сети

Она позволяет определить, кто находится с вами в одной (под)сети, а кто не в ней. Компьютеры, находящиеся внутри одной сети, обмениваются данными между собой напрямую, например, в локальной. Но если нужно выйти в глобальную паутину, то запрос идет уже через роутер — шлюз по умолчанию.

Она позволяет понять сеть нахождения IP-адреса, к примеру, адрес 193.150.14.87 и с маской 255.255.255.0 располагается в сети 193.150.14.0/24.

Рассчитывается это так: Используется функция поразрядной конъюнкции (побитовое И). Это просто, переводим все в бинарную/двоичную систему счисления. Ставим ИП-адрес и маску подсети друг над другом и считаем поочередно сверху и снизу. Если единички совпадают — то ставим 1, если есть хотя бы один ноль, то ставим 0. Потом переводим назад в десятичную и смотрим результат. Вот пример.

193.150.14.0/24 предполагает 256 айпи и как мы помним 2 мы от них убираем, т.к. они зарезервированы, остается 254.

Важно! Главное не ошибиться в расчетах и вообще указать ее правильно, так, например, если вы укажите 0.0.0.0 — то компьютер будет считать абсолютно все адреса локальными и даже не будет пытаться соединится с внешним интернетом. Это же работает и в обратную сторону — укажите не правильный префикс, то компьютер будет считать другой хост, который по сути находится с ним же в связке — внешним, и будет пытаться подключиться к нему через сетевой шлюз.

Как вычислить маску подсети для определенного количества ПК

При ее выборе, также стоит учитывать и класс сети, вот наглядная картинка с диапазонами IP-адресов:

Например, нам нужно выделить 30 IP-адресов для компьютеров в определенной фирме. Вычисляется все так: 28 — 30 — 2 = 256 — 30 — 2 = 224. Т.е. у нас получается: 255.255.255.224. Естественно для этих целей мы берем сеть класса C. Так, вы можете рассчитать ее для любого количества компьютеров.

Интересно! Также, с помощью нее можно разбивать большие сетки на несколько более маленьких. Это очень удобно, особенно в больших корпорациях.

В заключение

Надеюсь все объяснил, как можно в более понятном виде, чтобы вы точно усвоили материал. В дальнейших публикациях продолжим тему работы с глобальной паутиной, так что приходите еще.