Что такое маска подсети

IP адрес протокола IPv4 состоит из 32 бит, но не все биты в адресе имеют одинаковое значение. Биты делятся на две части: слева некоторое количество бит обозначают сеть, к которой относится данный адрес, оставшиеся биты справа идентифицируют устройство внутри сети. Подробнее об этом можно прочесть в статье про IPv4-адресацию. Граница между этими двуя группами бит может проходить в разных местах, например, для 32-битного адреса, первые 16 бит могут обозначать сеть, вторые – хост внутри сети, возможны любые другие сочетания (10 и 22, 8 и 24, 30 и 2) – в принципе, любые два числа, дающие в сумме 32 подойдут.

Для описания того, где проходит эта граница используется маска подсети. Она представляет из себя так же 32 бита, среди которых слева находится некоторое количество единиц, а остальные биты равны нулю. Там, где в маске подсети стоит единица, в основном адресе бит содержит информацию о сети, там, где в маске подсети 0 – в основном адресе содержится информация о хосте. Возможно, такое описание не сильно понятно, давайте рассмотрим пример.

Адрес 192.168.10.130 с маской 255.255.255.192, где в адресе хост, а где – сеть? Запишем в двоичном виде адрес, а под ним маску:

11000000.10101000.00001010.10000010
11111111.11111111.11111111.11000000

Там где в маске единички – в адресе хранится информация о сети, там где в маске нули – в адресе хранится информация о хосте. Если выполнить между адресом и маской двоичную операцию «И» побитово, то на выходе получим адрес сети. Эта операция в нашем случае просто обнулит ту часть адреса, где в маске находятся нули.

Получим 11000000.10101000.00001010.10000000, что соответствует сети 192.168.10.128

Таким образом, в нашем адресе 192.168.10.128 – это сеть.

Перевод маски подсети в префикс подсети

Если стоит задача узнать префикс по маске, то надо просто сосчитать количество единичек в маске. В нашем примере в маске (в двоичном виде) содержится 26 единичек, значит она может быть записана префиксом /26. Это же означает, что в адресе 192.168.10.130 первые 26 бит – это сеть, а оставшиеся 6 – это хост внутри сети.

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

Маска подсети должна иметь ту же длину, что и сам IP адрес. В IPv6 адрес имеет длину 128 бит и маски подсети не используются в связи с тем, что они были бы слишком длинными. Вместо масок подсети в IPv6 информация о том, какая часть адреса хранит информацию о сети, а какая — о хосте записывается в виде сетевого префикса.

Относится к теме: 

Комментарии

Спасибо. Ещё бы описали двоичную операцию «И». А так, всё хорошо

Аватар пользователя bacek
Двоичные операции описываются через множество всех возможных комбинаций операндов. 0 и 0 = 0 0 и 1 = 0 1 и 0 = 0 1 и 1 = 1 0 или 0 = 0 0 или 1 = 1 1 или 0 = 1 1 или 1 = 1 Типа того :)

Добавить комментарий