Маска - 32-битовое число, обычно записываемое в десятичном формате с разделительными точками. Она нужна для того, чтобы указатьструктуру IP-адреса, или кратко говоря, маска задает размер узловой части IP-адреса. Узловая часть в адресе задается двоичными 0 в маске. В первой части маски содержатся двоичные 1, они задают сетевую часть адреса (если нет подсетей), или сетевую и подсетевую часть адреса (если есть подсети).
...... | Класс А | Класс B | Класс C | Класс D |
Диапазон значений первого октета | 1-126 | 128-191 | 192-223 | |
Допустимые адреса сетей | 1.0.0.0-126.0.0.0 | 128.0.0.0-191.255.0.0 | 192.0.0.0-223.255.255.0 | |
Кол-во сетей в классе | 27-7 | 214 | 221 | |
Кол-во узлов в сети | 224-2 | 216-2 | 28-2 | |
Размер сетевой части (в байтах) | 1 | 2 | 3 | |
Размер узловой части (в байтах) | 3 | 2 | 1 | |
Стандартная маска | 255.0.0.0 | 255.255.0.0 | 255.255.255.0 |
10.0.0.0 | с 172.16.0.0 по 172.31.0.0 | с 192.168.0.0 по 192.168.255.0 | |
Класс сети | А | В | С |
Кол-во сетей | 1 | 16 | 256 |
Подсети создаются путем заимствований битов из узловой части адреса, а размер сетевой части адреса остается неизменным.
Маска подсети - 32-битное число. Обычно записывают в десятичном виде, например 255.255.128.0 Маска - некая последовательность двоичных 1, после которых идут 0. Смешение недопустимо. Например 11111111 1111111 11111111 0000000 Перфиксная запись маски (CIDR-запись) - число единиц в двоичном представлении маски. Например маску 255.255.240.0 можно записать короче /20
IP-адреса представляю собой 32-битовые двоичные числа, которые обычно записывают с помощью четырех десятичных чисел, разделенных точками.
Ключевые моменты процесса преобразования IP-адреса:
При работе с подсетями можно столкнуться с ситуацией, когда узловая часть адреса и подсеть занимают только часть байта IP-адреса, но при преобразовании из двоичного в десятичное и наоборот нужно следить за тем, чтобы в двоичном числе всегда было ровно 8 бит. При расчете подсетей нужно игнорировать границы байта и представлять IP-адрес как 32-битное число.
Например маска 255.255.240.0. В двоичном виде это будет 11111111 11111111 11110000 00000000. В этой маске 20 последовательных 1. Следовательно префиксная запись будет /20.
Чтобы преобразовать префиксную запись маски в деситичный формат нужно использовать обратный процесс
Например для префикса /20 сначала нужно записать единицы в маске. 11111111 11111111 1111 Потом такую запись нужно дополнить нулями, чтобы получить 32-битное число: 11111111 11111111 11110000 00000000. И на последнем этапе нужно группами по 8 бит преобразовать двоичные числа в десятичный вид, что в результате даст маску 255.255.240.0
Девять возможных вариантов откета сетевой маски
Десятичное значение | Двоичное значение | Количество двоичных 1 | Количество двоичных 0 |
0 | 00000000 | 0 | 8 |
128 | 10000000 | 1 | 7 |
192 | 11000000 | 2 | 6 |
224 | 11100000 | 3 | 5 |
240 | 11110000 | 4 | 4 |
248 | 11111000 | 5 | 3 |
252 | 11111100 | 6 | 2 |
254 | 11111110 | 7 | 1 |
255 | 11111111 | 8 | 0 |
Чтобы преобразовать маску из десятичной формы в префиксную запись нужно:
Процесс разбиения сети на подсети заключается в разделении классовой сети A, B или С на меньшие группы адресов, называемях подсетями. Выбор Маски обуславливается требованиями дизайна сети: сколько нужно создать подсетей, какое количество узлов требуется адресовать, также могут учитываться требования к определенным подсетям.
Количество подсетей = 2s Количество узлов в подсети = 2h-2
В некоторых случаях две подсети из одной классовой сети должны быть зарезервированы и не могут быть использованы для адресации устройств. Первую из зарезервированных сетей называют нулевой подсетью (zero subnet). При разбиении классовой сети на блоки эта сеть имеет наименьший номер, и ее адрес совпадает с адресом самой классовой сети. Например для сети 150.150.0.0 нулевая сеть будет иметь адрес 150.150.0.0. Что может создать путаницу. Вторую зарезервированную подсеть называют широковещательной (broadcast subnet), она имеет наибольший номер в адресной схеме. Например для той же подсети пакет отправляемый на адрес 150.150.255.255 может означать "переслать пакет всем узлам сети класса В 150.150.0.0", а в других случаях только узлам соответствующей подсети. Формулу 2s-2 следует использовать в следующих случаях:
Следует помнить что биты сети и подсети по определению должны быть равны 1, а биты узловой части равны 0. Все маски должны начинаться с с неразрывной последовательностью двоичных 1, а заканчиваться неразрывной последовательностью 0.
Адрес | 8.1.4.5/16 | 130.4.102.1/24 | 199.1.1.100/24 | 130.4.102.1/22 | 199.1.1.100/27 |
Маска | 255.255.0.0 | 255.255.255.0 | 255.255.255.0 | 255.255.252.0 | 255.255.255.224 |
Кол-во сетевых бит | 8 | 16 | 24 | 16 | 24 |
Кол-во узловых бит | 16 | 8 | 8 | 10 | 5 |
Кол-во бит для подсетей | 8 | 8 | 0 | 6 | 3 |
Кол-во узлов в подсети | 216-2 или 65 534 | 28-2 или 254 | 28-2 или 254 | 210-2 или 1022 | 25-2 или 30 |
Кол-во подсетей | 28 или 256 | 28 или 256 | 0 | 26 или 64 | 23 или 8 |
Пример выбора маски. В сети необходимо создать 50 подсетей, причем в наибольшей из них есть 200 узлов. В организации используется сеть класса В, и увеличить адресное пространство невозможно. Какую сетевую маску использовать в таком случае? В такое задании под сетевую часть будет отведено 16 бит, т.к. используется сеть класса В. Нужно будет оставить в узловой части 8 бит, т.к. 27=126, т.е. 7 бит не дают достаточного количества узлов, следовательно 28=254 будет вполне достаточно. Аналогично для подсетей нам понадобится 6 бит, поскольку 26=64, а 25=32. Если обозначить N-биты сети, S-биты подсети, H- биты узловой части, то маску можно записать так: NNNNNNNN NNNNNNNN SSSSSSxx HHHHHHHH Заменяемые символы хх могут быть отнесены к битам подсети, так и к битам узлов. Получиться четыре варианта ответа, но правильных три. 11111111 11111111 11111111 00000000 (8 бит для подсетей, 8 бит для узлов 255.255.255.0 /24) 11111111 11111111 11111110 00000000 (7 бит для подсетей, 9 бит для узлов 255.255.254.0 /23) 11111111 11111111 11111100 00000000 (6 бит для подсетей, 10 бит для узлов 255.255.252.0 /22) 11111111 11111111 11111101 00000000 (ошибочная маска, 1 идут с разрывом)
расчет для адреса 8.1.4.5 и маски 255.255.0.0 | ||
адрес | 8.1.4.5 | 00001000 00000001 00000100 00000101 |
Маска | 255.255.0.0 | 11111111 11111111 00000000 00000000 |
Результат логического И | 8.1.0.0 | 00001000 0000001 00000000 00000000 |
Broadcast | 8.1.255.255 | 00001000 0000001 11111111 11111111 |
Первый адрес | 8.1.0.1 | 00001000 0000001 00000000 00000001 |
Последний адрес | 8.1.255.254 | 00001000 0000001 11111111 11111110 |
расчет для адреса 130.4.102.1 и маски 255.255.252.0 | ||
адрес | 130.4.102.1 | 10000010 00000100 0110110 00000001 |
Маска | 255.255.252.0 | 11111111 11111111 11111100 00000000 |
Результат логического И | 130.4.100.0 | 10000010 00000100 01100100 00000000 |
Broadcast | 130.4.103.255 | 10000010 00000110 01100111 11111111 |
Первый адрес | 130.4.100.1 | 10000010 00000100 01100100 00000001 |
Последний адрес | 130.4.103.254 | 10000010 00000100 01100111 11111110 |
расчет для адреса 199.1.1.100 и маски 255.255.255.224 | ||
адрес | 199.1.1.100 | 11000111 00000001 00000001 01100100 |
Маска | 255.255.255.224 | 11111111 11111111 11111111 11100000 |
Результат логического И | 199.1.1.96 | 11000111 00000001 00000001 01100000 |
Broadcast | 199.1.1.127 | 11000111 00000001 00000001 01111111 |
Первый адрес | 199.1.1.97 | 11000111 00000001 00000001 01100001 |
Последний адрес | 199.1.1.126 | 11000111 00000001 00000001 01111110 |
Октет | 1 | 2 | 3 | 4 | Коментарии |
Маска | 255 | 255 | 252 | 0 | |
Адрес | 130 | 4 | 102 | 1 | |
Адрес подсети | 130 | 4 | 100 | 0 | "Магическое число"=256-252=4 100-ближайшее меньшее 102 число, кратное 4 |
первый адрес | 130 | 4 | 100 | 1 | В последнем октете к значению добавлена 1 |
Широковещательный адрес | 130 | 4 | 103 | 255 | Интересующий нас октет плюс "магическое число", минус 1 (100+4-1) |
Последний адрес | 130 | 4 | 103 | 254 | В последнем октете от значения в широковещательном адресе отнята 1 |