Subnetting

Материал из VAAL-WIKI
Версия от 14:18, 18 мая 2017; Vaal (обсуждение | вклад) (Новая страница: «'''Маска подсети''' — битовая маска, определяющая, какая часть 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, которому и отправляется пакет.

IP-адреса Биты(Bits) Префикс(Prefix) Маска подсети(Subnet mask)
1 0 /32 255.255.255.255
2 1 /31 255.255.255.254
4 2 /30 255.255.255.252
8 3 /29 255.255.255.248
16 4 /28 255.255.255.240
32 5 /27 255.255.255.224
64 6 /26 255.255.255.192
128 7 /25 255.255.255.128
256 8 /24 255.255.255.0
512 9 /23 255.255.254.0
1k 10 /22 255.255.252.0
2k 11 /21 255.255.248.0
4k 12 /20 255.255.240.0
8k 13 /19 255.255.224.0
16k 14 /18 255.255.192.0
32k 15 /17 255.255.128.0
64k 16 /16 255.255.0.0
128k 17 /15 255.254.0.0
256k 18 /14 255.252.0.0
512K 19 /13 255.248.0.0
1M 20 /12 255.240.0.0
2M 21 /11 255.224.0.0
4M 22 /10 255.192.0.0
8M 23 /9 255.128.0.0
16M 24 /8 255.0.0.0
32M 25 /7 254.0.0.0
64M 26 /6 252.0.0.0
128M 27 /5 248.0.0.0
256M 28 /4 240.0.0.0
512M 29 /3 224.0.0.0
1024M 30 /2 192.0.0.0
2048M 31 /1 128.0.0.0
4096M 32 /0 0.0.0.0

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

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

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

IPv4 CIDR
IP/маска До последнего 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 536 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).