Маска подсети (subnet mask) – это число, которое используется в паре с IP-адресом; двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети.
Использование масок IP-адресов позволяет сделать систему адресации более гибкой за счет возможности разбивать одну сеть на несколько подсетей, разделяя адресное пространство на непересекающиеся друг с другом диапазоны.
Для этого используется маска, которой «маскируется» часть IP-адреса, используемая для получения номера подсети. Там, где значение бита маски равно единице, адресация узлов запрещена, там, где значение равно нулю, — разрешена. Причем «маскировка» происходит от старшего бита к младшему.
Для сетей, имеющих адреса класса А, маска будет иметь вид: 255.0.0.0. При этом первые 8 бит маски соответствуют номеру сети. Поскольку использование этих битов при адресации естественно невозможно, их значения равны единицам. Для сетей класса В маска будет иметь вид: 255.255.0.0, а для сетей класса С — 255.255.255.0.
Количество адресов
Маска
Десятичное представление
Шестнадцатеричное представление
Значения последних 8 бит
255.255.255.0
FFFFFFOO
255.255.255.128
FFFFFF80
255.255.255.192
FFFFFFCO
255.255.255.224
FFFFFFEO
255.255.255.240
FFFFFFFO
255.255.255.248
FFFFFF8
255.255.255.252
FFFFFFC
При разбиении сети на подсети с помощью маски происходит установка значений, равных единице, для битов, равных нулю. Причем такая установка производится слева направо, т. е. от старшего бита к младшему, поэтому, по сути, происходит деление адресного пространства сети пополам.
Например (табл.), если для наглядности записать маску сети класса С в шестнадцатеричном виде, получится FFFFFFOO. Если значение первого слева бита, равного нулю, установить равным единице, то получится маска FFFFFF80, которая позволяет выделить сеть на 128 IP-адресов. Следующая подсеть будет определяться маской FFFFFFCO или в десятичном виде 255.255.255.192. Такая подсеть имеет всего 64 IP-адреса.
Таким образом, при разбиении сети на подсети нельзя выделить в одну логическую сеть более половины исходной сети.
Для возможности обмениваться информацией по сети каждому сетевому интерфейсу узла необходим свой IP-адрес. Назначение IP-адресов интерфейсам может производиться как вручную, так и автоматически.
Для стандартных классов сетей маски имеют следующие значения:
• класс А – 11111111. 00000000. 00000000. 00000000 (255.0.0.0);
• класс В – 11111111. 11111111. 00000000. 00000000 (255.255.0.0);
• класс С – 11111111. 11111111. 11111111. 00000000 (255.255.255.0).
Маска подсети записывается либо в виде, аналогичном записи IP-адреса, например 255.255.255.0, либо совместно с IP-адресом с помощью указания числа единичных разрядов в записи маски, например 192.168.1.1/24, т. е. в маске содержится 24 единицы (255.255.255.0). При использовании масок можно вообще отказаться от понятия классов.
Использование маски подсети 255.255.255.192 преобразует сеть 192.168.123.0 в четыре сети: 192.168.123.0, 192.168.123.64, 192.168.123.128 и 192.168.123.192. Эти четыре сети будут иметь следующие действующие адреса узлов:
Не забывайте, что двоичные адреса узлов с одними только единицами и нолями недействительны, поэтому нельзя использовать адреса со следующими числами в последнем октете: 0, 63, 64, 127, 128, 191, 192 или 255. Обратите внимание на следующие два адреса узлов: 192.168.123.71 и 192.168.123.133. Если использовать по умолчанию маску подсети класса C 255.255.255.0, оба адреса будут в сети 192.168.123.0. Однако, если использовать маску подсети 255.255.255.192, они окажутся в разных сетях: 192.168.123.71 – в сети 192.168.123.64, в то время как 192.168.123.133 – в сети 192.168.123.128.
Вспомним определение маски подсети: интерпретируем как номер подсети те биты, которые в маске равны 1, т. е. первые два байта. Оставшаяся часть IP-адреса будет номером узла в данной подсети.
ID подсети: 17.239.0.0.
ID хоста: 0.0.47.94.
Номер подсети можно получить другим способом, применив к IP-адресу и маске операцию логического умножения AND:
AND 0101011101010111.. 1111110111111111.. 0000010001010101.. 0001000101010100
00010001. 11101111. 00000000. 00000000
17 239 0 0
В масках количество единиц в последовательности, определяющей границу номера сети, не обязательно должно быть кратным 8.
Задан IP-адрес 192.168.89.16, маска подсети 255.255.192.0 (другая форма записи: 192.168.89.16/18).
Требуется определить ID подсети и ID хоста. Воспользуемся операцией AND:
Ответ: ID подсети = 192.168.64.0, ID хоста = 0.0.25.16.
Для масок существует важное правило: разрывы в последовательности единиц или нулей недопустимы. Например, не существует маски подсети, имеющей следующий вид:
так как последовательности единиц и нулей не являются непрерывными. С помощью масок администратор может структурировать свою сеть, не требуя от поставщика услуг дополнительных номеров сетей.
Допустим, организации выделена сеть класса В: 160.95.0.0 (рис. 3.2).
В такой сети может находиться до 65534 узлов. Однако организации требуется 3 независимые сети с числом узлов в каждой не более 254. В этой ситуации можно применить деление на подсети с помощью масок. Например, при использовании маски 255.255.255.0 третий байт адреса будет определять номер внутренней подсети, а четвертый байт – номер узла (см. рис. 3.3).
Маршрутизаторы во внешней сети (Интернете) ничего «не знают» о делении сети 160.95.0.0 на подсети, все пакеты направляются на маршрутизатор организации, который переправляет их в требуемую внутреннюю подсеть.
Использование масок является временным решением проблемы дефицита IP-адресов, так как адресное пространство протокола IP не увеличивается, а количество хостов в Интернете растет с каждым днем. Для принципиального решения проблемы требуется существенное увеличение количества IP-адресов. Используемый в настоящее время и рассматриваемый в данном курсе протокол IP называется IPv4 – протокол IP 4-й версии. Для преодоления ограничений IPv4 был разработан протокол IP 6-й версии – IPv6 (RFC 2373, 2460).
Протокол IPv6 имеет следующие основные особенности:
• длина адреса 128 бит – такая длина обеспечивает адресное пространство 2128, или примерно 3.4·1038 адресов. Такое количество адресов позволит присваивать в обозримом будущем уникальные IP-адреса любым устройствам;
• автоматическая конфигурация – протокол IPv6 предоставляет средства автоматической настройки IP-адреса и других сетевых параметров даже при отсутствии таких служб, как DHCP • встроенная безопасность – для передачи данных является обязательным использование протокола защищенной передачи IPsec. Протокол IPv4 также может использовать IPsec, но не обязан этого делать.
В настоящее время многие производители сетевого оборудования включают поддержку протокола IPv6 в свои продукты, однако преобладающим остается протокол IPv4. Связано это с тем, что IPv6 обратно несовместим с IPv4 и процесс перехода сопряжен с определенными трудностями.