Маска подсети

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

В терминологии сетей TCP/IP маской подсети или маской сети называется битовая маска, определяющая, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Например, узел с IP-адресом 12.34.56.78 и маской подсети 255.255.255.0 находится в сети 12.34.56.0/24 с длиной префикса 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. Обрабатывая построчно таблицу маршрутизации, он обнаруживает, что при наложении маски 255.255.255.0 на адрес 192.168.1.2 получается адрес сети 192.168.1.0. В таблице маршрутизации этой сети соответствует шлюз 10.20.30.1, которому и отправляется пакет.

Маски при бесклассовой маршрутизации (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/256 C
a.b.c.d/31 +0.0.0.1 255.255.255.254 2 1/128 C
a.b.c.d/30 +0.0.0.3 255.255.255.252 4 1/64 C
a.b.c.d/29 +0.0.0.7 255.255.255.248 8 1/32 C
a.b.c.d/28 +0.0.0.15 255.255.255.240 16 1/16 C
a.b.c.d/27 +0.0.0.31 255.255.255.224 32 1/8 C
a.b.c.d/26 +0.0.0.63 255.255.255.192 64 1/4 C
a.b.c.d/25 +0.0.0.127 255.255.255.128 128 1/2 C
a.b.c.0/24 +0.0.0.255 255.255.255.000 256 1 C
a.b.c.0/23 +0.0.1.255 255.255.254.000 512 2 C
a.b.c.0/22 +0.0.3.255 255.255.252.000 1024 4 C
a.b.c.0/21 +0.0.7.255 255.255.248.000 2048 8 C
a.b.c.0/20 +0.0.15.255 255.255.240.000 4096 16 C
a.b.c.0/19 +0.0.31.255 255.255.224.000 8192 32 C
a.b.c.0/18 +0.0.63.255 255.255.192.000 16 384 64 C
a.b.c.0/17 +0.0.127.255 255.255.128.000 32 768 128 C
a.b.0.0/16 +0.0.255.255 255.255.000.000 65 536 256 C = 1 B
a.b.0.0/15 +0.1.255.255 255.254.000.000 131 072 2 B
a.b.0.0/14 +0.3.255.255 255.252.000.000 262 144 4 B
a.b.0.0/13 +0.7.255.255 255.248.000.000 524 288 8 B
a.b.0.0/12 +0.15.255.255 255.240.000.000 1 048 576 16 B
a.b.0.0/11 +0.31.255.255 255.224.000.000 2 097 152 32 B
a.b.0.0/10 +0.63.255.255 255.192.000.000 4 194 304 64 B
a.b.0.0/9 +0.127.255.255 255.128.000.000 8 388 608 128 B
a.0.0.0/8 +0.255.255.255 255.000.000.000 16 777 216 256 B = 1 A
a.0.0.0/7 +1.255.255.255 254.000.000.000 33 554 432 2 A
a.0.0.0/6 +3.255.255.255 252.000.000.000 67 108 864 4 A
a.0.0.0/5 +7.255.255.255 248.000.000.000 134 217 728 8 A
a.0.0.0/4 +15.255.255.255 240.000.000.000 268 435 456 16 A
a.0.0.0/3 +31.255.255.255 224.000.000.000 536 870 912 32 A
a.0.0.0/2 +63.255.255.255 192.000.000.000 1 073 741 824 64 A
a.0.0.0/1 +127.255.255.255 128.000.000.000 2 147 483 648 128 A
0.0.0.0/0 +255.255.255.255 000.000.000.000 4 294 967 296 256 A

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

Назначение маски подсети[править | править вики-текст]

Маска назначается по следующей схеме 2^8-n (для сетей класса C), где n — количество компьютеров в подсети + 2,[1] округленное до ближайшей большей степени двойки (эта формула справедлива для n ≤ 254, для n > 254 будет другая формула).

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

28 - 32 = 224 (0E0h) < = > 255.255.255.224 (0xFFFFFFE0)

Литература[править | править вики-текст]

  1. Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов = Computer Networks. Principles, Technologies and Protocols for Network Design. — 3-е изд. — СПб.: Издательский дом «Питер», 2006. — С. 572-576. — 958 с. — ISBN 5-469-00504-6

См. также[править | править вики-текст]

  • VLSM — сетевые маски переменной длины.

Примечания[править | править вики-текст]

  1. 2 добавляется, чтобы учесть IP-адрес сети (первый в диапазоне) и широковещательный (последний в диапазоне, задаваемом маской)

Ссылки[править | править вики-текст]