Структура адреса IP может изменяться на местах путем использования отдельных битов адреса узла в качестве дополнительных битов сетевого адреса. По сути дела изменяется расположение «границы» между битами адреса сети и битами адреса узла, что позволяет создавать дополнительные сети, но сокращает максимальное число адресов, допустимое для каждой сети. Эти дополнительные биты сети определяют в пределах родительского адресного блока другие блоки адресов, которые носят название подсетей.
В организациях подсети применяются, как правило, для разрешения топологических или организационных сложностей. Образование подсетей позволяет децентрализовать управление адресацией узлов. В случае стандартной схемы адресации один администратор отвечает за управление адресами узлов всей сети. Образование подсетей дает администратору возможность делегировать вопросы назначения адресов более мелким подразделениям организации, что может быть не только технической, но и политической необходимостью. Так, чтобы не иметь дел с отделом обработки данных, можно передать в ведение этого отдела самостоятельную подсеть.
Кроме того, подсети могут применяться в целях преодоления аппаратных различий и ограничений, накладываемых расстояниями. IP-маршрутизаторы способны связывать сети различного физического характера, но лишь в том случае, если каждой физической сети соответствует уникальный сетевой адрес. Образование подсетей - это разделение адресного блока на ряд уникальных адресов подсетей, так что каждая физическая сеть вполне может получить собственный уникальный адрес.
Подсеть создается изменением битовой маски IP-адреса. Маска подсети работает идентично обычной адресной маске: включенные биты интерпретируются в качестве битов адреса сети, а сброшенные принадлежат к разделу адреса узла. Различие состоит в том, что маски подсетей применяются лишь локально. Внешний мир по-прежнему интерпретирует адрес на основе известной ему маски.
Допустим, что есть небольшая компания, занимающаяся куплей-продажей недвижимости. Компании назначен блок адресов 192.168.32.0/24. Этому блоку соответствует битовая маска 255.255.255.0, и он содержит 256 адресов. Далее, предположим, что у компании есть 10 офисов и порядка 6 компьютеров в каждом. Необходимо выделить ряд адресов на каждый офис, зарезервировав часть из них на случай расширения. Блок из 256 адресов можно разделить на части при помощи маски подсети, расширив раздел адреса сети еще на несколько бит.
Чтобы разделить 192.168.32.0/24 на 16 подсетей, воспользуемся маской 255.255.255.240, то есть 192.168.32.0/28. Первые три байта содержат исходный адресный блок сети, четвертый состоит из адреса подсети и адреса узла в этой подсети. Выбранная маска предписывает использовать четыре старших бита четвертого байта в качестве раздела адреса подсети, а еще четыре бита - последние четыре бита четвертого байта - в качестве раздела адреса узла. Таким образом, мы получаем 16 подсетей, в каждой из которых существует 14 адресов узлов, что больше соответствует топологии сети нашей небольшой торговой компании. В табл. 2.1 перечислены подсети и адреса узлов, полученные посредством маски подсети для адреса сети 192.168.32.0/24.
111
Первая строка таблицы описывает подсеть с нулевым номером (первые четыре бита четвертого байта сброшены). Последняя строка описывает подсеть
с номером подсети, состоящим из единиц (первые четыре бита четвертого байта включены). Изначально документы RFC предполагали, что не следует применять номера подсетей, состоящие только из нулей или единиц. Однако из RFC 1812, Requirements for IP Version 4 Routers (Требования к маршрути - заторам IP версии 4), ясно следует, что применение таких подсетей совершенно законно и должно поддерживаться всеми маршрутизаторами. Некоторые из более старых маршрутизаторов не позволяли использовать такие адреса, несмотря на появление обновленных RFC. Современное программное и аппаратное обеспечение маршрутизаторов позволяет без проблем использовать любые адреса подсетей.
Нет необходимости вручную составлять таблицы, подобные приведенной, чтобы узнать, какие подсети и адреса узлов получаются в результате применения маски подсети. Все необходимые вычисления уже сделаны. Все возможные маски подсетей и допустимые для них адреса узлов перечислены в документ е RFC 1878 , Variable Length Subnet Table For IPv4 (Таблиц а подсетей различной емкости для IPv4).
В RFC 1878 описаны все 32 значения префикса. При этом особой потребности в документации не возникает, поскольку правила для префиксов легко понять и запомнить. Запись адреса 10.104.0.19 в виде 10.104.0.19/8 показывает, что 8 бит адреса отведены под номер сети, и, следовательно, под номер узла остается 24 бита. К сожалению, не всегда все так гладко. Иногда маска адреса не указана явным образом, и в таких случаях необходимо уметь определить естественную маску, которая присваивается адресу по умолчанию.