Как выглядит маска подсети
Содержание
Маска подсети — битовая маска для определения по 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.0 | 255.255.255.0 | 10.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.
CIDR | Последний IP-адрес в подсети | Маска подсети | Количество адресов в подсети | Количество хостов в подсети | Класс подсети |
---|---|---|---|---|---|
a.b.c.d/32 | 0.0.0.0 | 255.255.255.255 | 1 | 1* | 1/256 C |
a.b.c.d/31 | 0.0.0.1 | 255.255.255.254 | 2 | 2* | 1/128 C |
a.b.c.d/30 | 0.0.0.3 | 255.255.255.252 | 4 | 2 | 1/64 C |
a.b.c.d/29 | 0.0.0.7 | 255.255.255.248 | 8 | 6 | 1/32 C |
a.b.c.d/28 | 0.0.0.15 | 255.255.255.240 | 16 | 14 | 1/16 C |
a.b.c.d/27 | 0.0.0.31 | 255.255.255.224 | 32 | 30 | 1/8 C |
a.b.c.d/26 | 0.0.0.63 | 255.255.255.192 | 64 | 62 | 1/4 C |
a.b.c.d/25 | 0.0.0.127 | 255.255.255.128 | 128 | 126 | 1/2 C |
a.b.c.0/24 | 0.0.0.255 | 255.255.255.000 | 256 | 254 | 1 C |
a.b.c.0/23 | 0.0.1.255 | 255.255.254.000 | 512 | 510 | 2 C |
a.b.c.0/22 | 0.0.3.255 | 255.255.252.000 | 1024 | 1022 | 4 C |
a.b.c.0/21 | 0.0.7.255 | 255.255.248.000 | 2048 | 2046 | 8 C |
a.b.c.0/20 | 0.0.15.255 | 255.255.240.000 | 4096 | 4094 | 16 C |
a.b.c.0/19 | 0.0.31.255 | 255.255.224.000 | 8192 | 8190 | 32 C |
a.b.c.0/18 | 0.0.63.255 | 255.255.192.000 | 16 384 | 16 382 | 64 C |
a.b.c.0/17 | 0.0.127.255 | 255.255.128.000 | 32 768 | 32 766 | 128 C |
a.b.0.0/16 | 0.0.255.255 | 255.255.000.000 | 65 536 | 65 534 | 256 C = 1 B |
a.b.0.0/15 | 0.1.255.255 | 255.254.000.000 | 131 072 | 131 070 | 2 B |
a.b.0.0/14 | 0.3.255.255 | 255.252.000.000 | 262 144 | 262 142 | 4 B |
a.b.0.0/13 | 0.7.255.255 | 255.248.000.000 | 524 288 | 524 286 | 8 B |
a.b.0.0/12 | 0.15.255.255 | 255.240.000.000 | 1 048 576 | 1 048 574 | 16 B |
a.b.0.0/11 | 0.31.255.255 | 255.224.000.000 | 2 097 152 | 2 097 150 | 32 B |
a.b.0.0/10 | 0.63.255.255 | 255.192.000.000 | 4 194 304 | 4 194 302 | 64 B |
a.b.0.0/9 | 0.127.255.255 | 255.128.000.000 | 8 388 608 | 8 388 606 | 128 B |
a.0.0.0/8 | 0.255.255.255 | 255.000.000.000 | 16 777 216 | 16 777 214 | 256 B = 1 A |
a.0.0.0/7 | 1.255.255.255 | 254.000.000.000 | 33 554 432 | 33 554 430 | 2 A |
a.0.0.0/6 | 3.255.255.255 | 252.000.000.000 | 67 108 864 | 67 108 862 | 4 A |
a.0.0.0/5 | 7.255.255.255 | 248.000.000.000 | 134 217 728 | 134 217 726 | 8 A |
a.0.0.0/4 | 15.255.255.255 | 240.000.000.000 | 268 435 456 | 268 435 454 | 16 A |
a.0.0.0/3 | 31.255.255.255 | 224.000.000.000 | 536 870 912 | 536 870 910 | 32 A |
a.0.0.0/2 | 63.255.255.255 | 192.000.000.000 | 1 073 741 824 | 1 073 741 822 | 64 A |
a.0.0.0/1 | 127.255.255.255 | 128.000.000.000 | 2 147 483 648 | 2 147 483 646 | 128 A |
0.0.0.0/0 | 255.255.255.255 | 000.000.000.000 | 4 294 967 296 | 4 294 967 294 | 256 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 компьютеров; маска для такой сети вычисляется следующим образом:
Соответствия десятичных и коротких масок можно рассчитать или посмотреть в консольной утилите ipcalc (*nix и *BSD системы) — как ей пользоваться, читайте в следующей статье. Скачать калькулятор сетей и масок, можно в по этой ссылке.
Короткая маска подсети показывает, сколько битов из 32-битного адреса IPv4 отводится под адреса сети. Соответственно, количество доступных адресов хостов можно получить, возведя число 2 в степень, равную количеству битов, оставшихся на хосты. Десятичную маску можно получить, последовательно вычитая количество хостов из числа 255, начиная с последнего октета.
Некоторые маски подсетей коротком и десятичном формате и количество доступных адресов:
Слэш-формат | Десятичный формат | Доступные адреса |
/32 | 255.255.255.255 | 1 |
/31 | 255.255.255.254 | 2 |
/30 | 255.255.255.252 | 4 |
/29 | 255.255.255.248 | 8 |
/28 | 255.255.255.240 | 16 |
/27 | 255.255.255.224 | 32 |
/26 | 255.255.255.192 | 64 |
/25 | 255.255.255.128 | 128 |
/24 | 255.255.255.0 | 256 |
/23 | 255.255.254.0 | 512 |
/22 | 255.255.252.0 | 1 024 |
/21 | 255.255.248.0 | 2 048 |
/20 | 255.255.240.0 | 4 096 |
/19 | 255.255.224.0 | 8 192 |
/18 | 255.255.192.0 | 16 384 |
/17 | 255.255.128.0 | 32 768 |
/16 | 255.255.0.0 | 65 536 |
/15 | 255.254.0.0 | 131 072 |
/14 | 255.252.0.0 | 262 144 |
/13 | 255.248.0.0 | 524 288 |
/12 | 255.240.0.0 | 1 048 576 |
/11 | 255.224.0.0 | 2 097 152 |
/10 | 255.192.0.0 | 4 194 304 |
/9 | 255.128.0.0 | 8 388 608 |
/8 | 255.0.0.0 | 16 777 216 |
/7 | 254.0.0.0 | 33 554 432 |
/6 | 252.0.0.0 | 67 108 864 |
/5 | 248.0.0.0 | 134 217 728 |
/4 | 240.0.0.0 | 268 435 456 |
/3 | 224.0.0.0 | 536 870 912 |
/2 | 192.0.0.0 | 1 073 741 824 |
/1 | 128.0.0.0 | 2 147 483 646 |
/0 | 0.0.0.0 | 4 294 967 296 |
Таблица соответствия десятичных масок коротким
Десятичный формат | Слэш-формат | Доступные адреса |
255.255.255.0 | /24 | 256 |
255.255.255.128 | /25 | 128 |
255.255.255.192 | /26 | 64 |
255.255.255.224 | /27 | 32 |
255.255.255.240 | /28 | 16 |
255.255.255.248 | /29 | 8 |
255.255.255.252 | /30 | 4 |
255.255.255.254 | /31 | 2 |
255.255.255.255 | /32 | 1 |
Таблица соответствия коротких масок десятичным, шестнадцатеричным и двоичным
Слэш | Десятичный | Шестнадцатеричный | Двоичный |
/0 | 0.0.0.0 | 0x00000000 | 00000000 00000000 00000000 00000000 |
/1 | 128.0.0.0 | 0x80000000 | 10000000 00000000 00000000 00000000 |
/2 | 192.0.0.0 | 0xc0000000 | 11000000 00000000 00000000 00000000 |
/3 | 224.0.0.0 | 0xe0000000 | 11100000 00000000 00000000 00000000 |
/4 | 240.0.0.0 | 0xf0000000 | 11110000 00000000 00000000 00000000 |
/5 | 248.0.0.0 | 0xf8000000 | 11111000 00000000 00000000 00000000 |
/6 | 252.0.0.0 | 0xfc000000 | 11111100 00000000 00000000 00000000 |
/7 | 254.0.0.0 | 0xfe000000 | 11111110 00000000 00000000 00000000 |
/8 | 255.0.0.0 | 0xff000000 | 11111111 00000000 00000000 00000000 |
/9 | 255.128.0.0 | 0xff800000 | 11111111 10000000 00000000 00000000 |
/10 | 255.192.0.0 | 0xffc00000 | 11111111 11000000 00000000 00000000 |
/11 | 255.224.0.0 | 0xffe00000 | 11111111 11100000 00000000 00000000 |
/12 | 255.240.0.0 | 0xfff00000 | 11111111 11110000 00000000 00000000 |
/13 | 255.248.0.0 | 0xfff80000 | 11111111 11111000 00000000 00000000 |
/14 | 255.252.0.0 | 0xfffc0000 | 11111111 11111100 00000000 00000000 |
/15 | 255.254.0.0 | 0xfffe0000 | 11111111 11111110 00000000 00000000 |
/16 | 255.255.0.0 | 0xffff0000 | 11111111 11111111 00000000 00000000 |
/17 | 255.255.128.0 | 0xffff8000 | 11111111 11111111 10000000 00000000 |
/18 | 255.255.192.0 | 0xffffc000 | 11111111 11111111 11000000 00000000 |
/19 | 255.255.224.0 | 0xffffe000 | 11111111 11111111 11100000 00000000 |
/20 | 255.255.240.0 | 0xfffff000 | 11111111 11111111 11110000 00000000 |
/21 | 255.255.248.0 | 0xfffff800 | 11111111 11111111 11111000 00000000 |
/22 | 255.255.252.0 | 0xfffffc00 | 11111111 11111111 11111100 00000000 |
/23 | 255.255.254.0 | 0xfffffe00 | 11111111 11111111 11111110 00000000 |
/24 | 255.255.255.0 | 0xffffff00 | 11111111 11111111 11111111 00000000 |
/25 | 255.255.255.128 | 0xffffff80 | 11111111 11111111 11111111 10000000 |
/26 | 255.255.255.192 | 0xffffffc0 | 11111111 11111111 11111111 11000000 |
/27 | 255.255.255.224 | 0xffffffe0 | 11111111 11111111 11111111 11100000 |
/28 | 255.255.255.240 | 0xfffffff0 | 11111111 11111111 11111111 11110000 |
/29 | 255.255.255.248 | 0xfffffff8 | 11111111 11111111 11111111 11111000 |
/30 | 255.255.255.252 | 0xfffffffc | 11111111 11111111 11111111 11111100 |
/31 | 255.255.255.254 | 0xfffffffe | 11111111 11111111 11111111 11111110 |
/32 | 255.255.255.255 | 0xffffffff | 11111111 11111111 11111111 11111111 |
Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter
Наверное, каждый, кто хоть раз сталкивался с настройкой интернет соединения слышал о таком понятии — Маска подсети, но не все знают, что это такое, да и информация в интернете по этому запросу довольно устарела и сложна в понимании.
Давайте закроем этот пробел знаний в работе сети и интернета в целом и выясним, что это такое и зачем она в принципе нужна. Информация будет изложена самым доступным и понятным языком.
Итак, вот мы и отметили день программиста, продолжим обучение компьютерной грамотности и разберем по полочкам, что такое маска подсети, для чего она нужна и как вообще это работает.
Что такое маска подсети
Маска подсети (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. Так, вы можете рассчитать ее для любого количества компьютеров.
Интересно! Также, с помощью нее можно разбивать большие сетки на несколько более маленьких. Это очень удобно, особенно в больших корпорациях.
В заключение
Надеюсь все объяснил, как можно в более понятном виде, чтобы вы точно усвоили материал. В дальнейших публикациях продолжим тему работы с глобальной паутиной, так что приходите еще.