Маски подсети переменной длины (VLSM)
Использование одной маски позволяет организации разбить сеть только на подсети одинакового размера, что приводит к неэффективному использованию адресного пространства, особенно, если подсети содержат разное количество узлов. Может возникнуть ситуация, что в одной из подсетей допустимого количества узлов будет недостаточно, а в другой, наоборот, большая часть адресов не будет использована. Например, большое количество узлов является избыточным для подсети, которая связывает два маршрутизатора по каналу «точка-точка». В этом случае необходимо всего два IPv4-адреса для адресации интерфейсов соседних маршрутизаторов.
Технология VLSM (Variable Length Subnet Mask, маска подсети переменной длины) позволяет организации использовать более одной маски подсети внутри того же самого адресного пространства и делить сеть на подсети разных размеров. Она была создана в 1987 году и определена в RFC 1009.
Основная идея VLSM заключается в том, что сеть можно разбить на подсеть, потом подсеть разбить еще на подсети точно таким же образом, как была разбита первоначальная сеть. То есть сеть может быть разбита на подсети разных размеров, с разными масками.
Вместо маски подсети в VLSM используется нотация «IP-адрес/длина префикса», аналогичная нотации бесклассовой адресации. Число после «/» означает количество единичных разрядов в маске подсети. Например, сетевой адрес 192.168.1.8 с маской подсети 255.255.255.248 также может быть записан, как 192.168.1.8/29. Число 29 указывает, что в маске подсети 255.255.255.248 имеется 29 единичных битов.
Деление сети на подсети с использованием масок переменной длины аналогично традиционному делению на подсети.
Рассмотрим пример, показанный на Рис. 7.17. Допустим организация использует сеть класса С 192.168.1.0/24. Требуется разделить ее на 6 подсетей. В подсетях 1, 2, 3 и 4 должно быть 10 узлов, в 5-й подсети – 50 узлов, в 6-й подсети – 100.
Теоретически для сети класса С 192.168.1.0/24 допустимое количество узлов равно 254, и разбить такую сеть на подсети с требуемым количеством узлов без использования VLSM невозможно.
Сначала делим сеть 192.168.1.0/24 на две подсети. Для этого из 4-го октета необходимо занять 1 бит для идентификатора подсети, таким образом, для идентификации узлов останется 7 битов. В итоге получается две подсети: 192.168.1.0/25 и 192.168.1.128/25, в каждой из которых может быть по 126 (27 – 2) узлов. Первую из них оставим, так как требуется, чтобы в 6-й подсети было 100 узлов, а вторую разделим еще на две подсети. Для этого возьмем 1 бит из оставшихся 7 битов, отведенных под идентификатор узла. Таким образом, получается две подсети: 192.168.1.128/26 и 192.168.1.192/26, в каждой из которых допустимое количество узлов равно 62 (26 – 2). Первую подсеть необходимо оставить для 5-й подсети, в которой должно быть 50 узлов, а из второй подсети сформировать еще четыре подсети. Для этого займем еще 2 бита из оставшихся 6 битов, отведенных под идентификатор узла. В результате получим четыре подсети с 14 (24 – 2) узлами в каждой, что позволит адресовать требуемое количество узлов, необходимых для подсетей 1, 2, 3 и 4.
Рис. 1.16 Пример разбиения сети 192.168.1.0/24 на подсети при помощи VLSM
VLSM повышает гибкость и эффективность разбиения сетей на подсети. Для использования этой функции в сети необходимо, чтобы маршрутизаторы или коммутаторы L3 поддерживали протоколы маршрутизации, передающие информацию о маске подсети в своих обновлениях.
Технология VLSM похожа на технологию бесклассовой междоменной маршрутизации (Classless Inter Domain Routing, CIDR). Однако между ними существует следующее различие: VLSM имеет дело с подсетями одной сети конкретной организации, а CIDR применяет концепцию разбиения сетей на подсети разных размеров к Интернет в целом.
Бесклассовая адресация IPv4
Классовая модель IPv4-адресации оказалась нерациональной с точки зрения эффективного использования адресного пространства. Например, для сети из 1000 устройств выделялся диапазон адресов класса В, в котором 65 534 адресов. При этом 1000 адресов использовались, а оставшиеся 64 534 – не использовались.
Разбиение сетей на подсети также не помогло повысить эффективность использования адресного пространства, т.к. оно применялось внутри «классовых» адресных блоков. Разбиение сетей на подсети также не смогло решить проблему экспоненциального увеличения размера таблиц маршрутизации.
Решение проблемы было найдено в отказе от классовой схемы адресации и использовании бесклассовой модели. Эта модель была разработана в начале 1990-х годов и формализована в 1993 году в RFC 1517, 1518, 1519 и 1520. Бесклассовая модель адресации получила название бесклассовой междоменной маршрутизации (Classless Inter Domain Routing, CIDR).
Несмотря на название CIDR является системой и адресации и маршрутизации. Она заменила фиксированные классы адресов на гибкую многоуровневую структуру сетей различных размеров и добавила агрегацию маршрутов, известную как supernetting.
В классовой схеме адресации IP-адрес имел три уровня иерархии: сеть, подсеть и идентификатор узла. При передаче пакета маршрутзатор определял класс адреса, и затем на его основе идентифицировал номер сети и номер узла. В CIDR для определения того, какая часть адреса идентифицирует сеть, а какая узел, используется битовая маска.
CIDR применяет концепцию VLSM, т.е. деления сети на подсети разных размеров, не к одной конкретной сети, а в целом к Интернет. По сути Интернет становится одной гигантской сетью, которая делится на некоторое количество больших блоков (больших подсетей). Какие-то из этих больших блоков затем разбиваются на блоки меньших размеров, которые в дальнейшем также могут быть разбиты на еще меньшие блоки. Это разбиение может происходить несколько раз, позволяя таким образом разбить адресное пространство Интернет на куски разных размеров, соответствующие требованиям организаций.
Таким образом, бесклассовая адресация полностью исключает понятие классов. Больше не существует блоков адресов класса А, B, C, которые определялись по нескольким первым битам адреса и имели фиксированное количество битов, отведенных под номер сети. При бесклассовой адресации все блоки адресного пространства Интернет имеют произвольный размер.
Для того чтобы провести границу между номером сети и номером узла CIDR использует маску подсети. Однако CIDR вместо привычной 32-х разрядной двоичной маски подсети использует слэш-нотацию (slash notation), которую также называют CIDR-нотацией (CIDR notation). Это метод записи с помощью косой черты «/». Количество битов, отведенных под идентификатор сети (network ID), которое называется длиной префикса, записывается после «/», следующей за IP-адресом - «IP-адрес/длина префикса».
Например, запись адреса сети 184.13.152.0/22 говорит о том, что 22 бита в маске подсети отведено под идентификатор сети. Следовательно, для идентификации узлов остается 10 битов. По-другому этот адрес можно записать как IP-адрес 184.13.152.0 с маской подсети 255.255.252.0.
Для использования бесклассовой адресации в сети необходимо, чтобы маршрутизаторы или коммутаторы L3 поддерживали протоколы маршрутизации, передающие информацию о маске подсети в своих обновлениях.