Маска подсети — битовая маска для определения по IP-адресу адреса подсети и адреса узла (хоста, компьютера, устройства) этой подсети. В отличие от IP-адреса маска подсети не является частью IP-пакета .
Благодаря маске можно узнать, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети.
Например, узел с IP-адресом 12.34.56.78 и маской подсети 255.255.255.0 находится в сети 12.34.56.0 с длиной префикса 24 бита. В случае адресации IPv6 адрес 2001:0DB8:1:0:6C1F:A78A:3CB5:1ADD с длиной префикса 32 бита (/32) находится в сети 2001:0DB8::/32.
Другой вариант определения — это определение подсети IP-адресов. Например, с помощью маски подсети можно сказать, что один диапазон IP-адресов будет в одной подсети, а другой диапазон соответственно в другой подсети.
Чтобы получить адрес сети, зная IP-адрес и маску подсети, необходимо применить к ним операцию поразрядной конъюнкции (побитовое И). Например, в случае более сложной маски (битовые операции в IPv6 выглядят аналогично):
IP-адрес: 11000000 10101000 00000001 00000010 (192.168.1.2)
Маска подсети: 11111111 11111111 11111110 00000000 (255.255.254.0)
Адрес сети: 11000000 10101000 00000000 00000000 (192.168.0.0)
Легенда:
· часть маски, определяющая адрес сети и состоящая из единиц;
· адрес сети, который определяется маской подсети;
· диапазон адресов устройств в этой сети.
Разбиение одной большой сети на несколько маленьких подсетей позволяет упростить маршрутизацию . Например, пусть таблица маршрутизации некоторого маршрутизатора содержит следующую запись:
Сеть назначения |
Маска сети |
Адрес шлюза |
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, которому и отправляется пакет.
Содержание
· 1 Маски при бесклассовой маршрутизации (CIDR)
· 2 Выбор маски для подсети
· 3 Литература
· 4 См. также
· 5 Примечания
· 6 Ссылки
Маски при бесклассовой маршрутизации (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/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).
Выбор маски для подсети[править | править код ]
Если {\displaystyle n} — количество компьютеров в подсети, округлённое до ближайшей большей степени двойки, и {\displaystyle n\leqslant 254} (для сетей класса C ), то маска подсети вычисляется по следующей формуле: {\displaystyle 2^{8}-n-2}, где двойка вычитается, так как один IP-адрес (первый в задаваемом маской диапазоне) является IP-адресом подсети и ещё один IP-адрес (последний в задаваемом маской диапазоне) является широковещательным адресом (для отправки данных всем узлам подсети). Для {\displaystyle n>254} будет другая формула.
Пример: в некой подсети класса C есть 30 компьютеров; маска для такой сети вычисляется следующим образом:
28 - 30 - 2 = 224 = E0h ;
маска: 255.255.255.224 = 0x FF.FF.FF.E0.