
2. Разбиение сетей на классы. Использование масок сетей
Стандартная схема разбиения поля адресов на классы порождает ряд проблем (правилом установлено, что адрес одного класса (A, B или C) относится только к одной сети, а не к набору ЛВС):
-
резкий рост таблиц маршрутизации в Интернете;
-
нерациональное использование адресного пространства.
С этим столкнулось множество организаций, в результате чего были произведены небольшие изменения в системе адресации.
Проблема решилась предоставлением сети возможности разделения на несколько частей с точки зрения внутренней организации.
Был введен дополнительный уровень иерархии структуры IP-адреса: к номерам сети и хоста добавляется номер подсети (рис.1).
Рис.1. Двухуровневая и трехуровневая иерархии IP-адресов
Таким образом, снаружи адресация проводится по номеру сети; внутренняя организация сети не видна извне. Любое изменение топологии внутренней сети не влияет на таблицы маршрутизации в Интернете. Это уменьшает первую проблему.
С другой стороны, разбиение на подсети позволяет организации, которой выделена сеть, более гибко и экономно использовать адресное пространство, что смягчает вторую проблему.
Поля номеров сети и подсети образуют расширенный сетевой префикс. Для выделения расширенного сетевого префикса используется маска подсети (subnet mask). Маска подсети - это 32-разрядное двоичное число (по длине IP-адреса), в разрядах расширенного префикса содержащая единицу, в остальных разрядах находится нуль. Расширенный сетевой префикс получается побитным сложением по модулю два IP-адреса и маски подсети.
При таком построении очевидно, что число подсетей представляет собой степень двойки, где n - длина поля номера подсети.
Таким образом, характеристики IP-адреса полностью задаются собственно IP-адресом и маской подсети.
Для упрощения применяют следующую нотацию (CIDR-нотация): IP-адрес/длина расширенного сетевого префикса. Например, адрес 192.168.0.1 с маской 255.255.255.0 будет в данной нотации выглядеть как 192.168.0.1/24 (24-число единиц, содержащихся в маске подсети).
Для стандартных классов сетей маски имеют следующие значения:
-
Класс А - 11111111.00000000.00000000.00000000 (255.0.0.0); длина расширенного сетевого префикса - 8.
-
Класс В - 11111111.11111111.00000000.00000000 (255.255.0.0); длина расширенного сетевого префикса - 16.
-
Класс С - 11111111.11111111.11111111.00000000 (255.255.255.0); длина расширенного сетевого префикса - 24.
Снабжая каждый IP-адрес маской, можно отказаться от понятий классов адресов и сделать более гибкой систему адресации. В масках количество единиц в последовательности, определяющей границу номера сети, не обязательно должно быть кратным 8, чтобы повторять деление адреса на байты.
Механизм масок широко распространен в IP-маршрутизации, причем маски могут использоваться для самых разных целей. С их помощью администратор может структурировать свою сеть, не требуя от поставщика услуг дополнительных номеров сетей.
В RFC 1009 был определен порядок использования в сети, разделенной на подсети, нескольких масок подсети. В этом случае расширенные сетевые префиксы имеют разную длину, и маски подсетей называются масками переменной длины. Таким образом мы можем разбить сеть на подсети разного размера.
Подсети выделяются рекурсивно: сеть разбивается на подсети, далее некоторые из этих подсетей в свою очередь тоже делятся на подсети и т.д.