Маска подсети переменной длины
В 1987 году документом RFC 1009 было определено, каким образом в сетях, состоящих из нескольких подсетей, можно использовать больше одной маски подсети. В случае, если в распределенной IP-сети назначается несколько масок подсетей, она рассматривается как сеть с масками подсетей переменной длины, так как в этом случае расширенные сетевые префиксы в различных подсетях имеют разную длину.
СОВЕТ
В том случае, если в сети планируется использовать маску подсети переменной длины (Variable Length Subnet Mask — VLSM), следует включать в работу протоколы маршрутизации OSPF или EIGRP. Протоколы RIP и IGRP относятся к так называемым классовым (classful) протоколам маршрутизации и не поддерживают VLSM.
При использовании протокола маршрутизации RIP первой версии (RIP-1 IP) в сети поддерживается только одна маска подсети с каждым адресом (а точнее, с каждым номером сети), так как протокол не переносит информацию о масках подсетей в своих сообщениях об обновлении маршрутизации (сообщения, рассылаемые маршрутизаторами при задействовании таких протоколов маршрутизации, как RIP, IGRP и т. п.). При отсутствии данной информации протокол маршрутизации RIP-1 IP принимает простое решение, выбирая маску подсети, которая соотносится с каждым маршрутом в таблице маршрутизации.
При этом возникает вопрос: каким образом маршрутизатор, работающий по протоколу RIP-1, определяет, какую маску необходимо соотносить с новым маршрутом, полученным от соседнего маршрутизатора? Если в полученном маршруте номер адреса сети совпадает с номером адреса сети, присвоенным любому локальному порту маршрутизатора, то будет использоваться маска подсети порта маршрутизатора. Если же номера сетей не совпадают, то будет использоваться классическая маска подсети.
Покажем это на примере. Предположим, что порту 1 маршрутизатора был присвоен адрес 130.24.13.1 с маской 255.255.255.0 (расширенный сетевой префикс/24), а порту 2 — адрес 200.14.13.2 с такой же маской подсети (тот же расширенный сетевой префикс). Анализируя первые биты адреса порта 1 и маску подсети, маршрутизатор определяет, что это адрес класса В, а третий байт адреса используется для задания номера подсети. Порту 2 присвоен адрес класса С без выделения подсетей.
Если данный маршрутизатор получает информацию о маршруте в сеть 130.24.36.0 от соседнего маршрутизатора, он будет использовать маску подсети 255.255.255.0 (расширенный сетевой префикс /24), так как порту 1 присвоен адрес с тем же номером сети — 130.24.0.0. Маска подсети просто наследуется. Но если маршрутизатор получит от соседа информацию о маршруте в сеть 131.25.0.0, он будет использовать стандартную маску подсети 255.255.0.0, так как адрес 131.25.0.0 является адресом класса В, а этому классу соответствует маска подсети 255.255.0.0. Будет использоваться именно эта маска, так как маршрутизатор не имеет дополнительной информации о необходимой маске подсети.
Маршрутизатор, поддерживающий протокол RIP-1 IP, будет включать биты, определяющие номера подсетей, в свои сообщения об обновлении маршрутов только в том случае, если порт, через который предполагается посылать сообщения, будет настроен на подсеть с тем же номером сети. Если порт настроен с другим сетевым номером, то маршрутизатор будет посылать только сетевую часть адреса.
Продемонстрируем это, продолжая рассмотрение предыдущего примера. Предположим, что маршрутизатор получил информацию от соседа о маршруте в сеть 130.24.36.0. Так как порт 1 настроен на адрес того же класса, то маршрутизатор предполагает, что сеть 130.24.36.0 имеет маску 255.255.255.0. Поэтому когда наступает время рекламировать данный маршрут, маршрутизатор информирует о маршруте сеть с адресом 130.24.36.0 через свой порт 1, а также сеть с адресом 130.24.0.0 через порт 2, то есть происходит потеря информации, содержащейся в третьем байте адреса (36).
Протокол RIP-1 IP может использовать с каждым номером сети только одну маску подсети. Возможность назначения одному адресу нескольких масок подсетей дает следующие преимущества:
множество масок подсетей позволяет более эффективно использовать выделенное организации адресное пространство;
множество масок подсетей позволяет объединять маршруты, что значительно уменьшает количество маршрутной информации внутри домена маршрутизации организации.
Использование маски подсети переменной длины позволяет более эффективно использовать адресное пространство протокола IP, выделенное организации. Использование единственной маски подсети ограничивало возможности организации, так как номер и размер подсети были фиксированными.
Например, предположим, что администратор намеревается настроить выделенную организации сеть класса В 130.5.0.0 на использование расширенного сетевого префикса /22 (табл. 2.10). Для задания номеров подсетей могут использоваться 6 бит.
Сеть класса В с расширенным сетевым префиксом /22 позволяет организовать 64 подсети (26 = 64), каждая из которых поддерживает максимум 1022 (210 - 2 = 1022) индивидуальных адреса хостов. Такой вариант может устроить администратора, если организации нужно некоторое число подсетей с большим количеством хостов. Однако если организации не нужны подсети с числом хостов более 30, то, имея фиксированную маску подсети, администратору придется эксплуатировать подсети, рас-считаные на большое количество хостов, подключая к ним всего нескольких пользователей. В результате невостребованными могут оказаться около 1000 возможных адресов хостов в подсетях. Как видно из этих рассуждений, ограничение, полученное в результате использования единственной маски подсети, значительно уменьшает эффективность использования адресного пространства.
Основным решением данной проблемы является использование маски подсети переменной длины. Рассмотрим другой пример. Предположим, что администратор хочет использовать расширенный сетевой префикс /26. Адрес класса В с таким расширенным сетевым префиксом позволит поддерживать до 1024 подсетей (210 = 1024), каждая из которых поддерживает до 62 (26 - 2 = 62) адресов хостов (табл. 2.11). Такой расширенный сетевой префикс идеально подходит к небольшим подсетям с числом хостов порядка 60, в то время как префикс /22 ориентирован на большие подсети с тысячами хостов.
Применение различных расширенных сетевых префиксов — /2.1 и //о — позволило получить два типа подсетей с резким отличием по числу поддерживаемых хостов. Внедрение маски подсети переменной длины позволяет администратору получать в рамках своей организации подсети с необходимыми характеристиками на нужный период времени. Это происходит следующим образом: сначала сеть делится на подсети, затем некоторые из этих подсетей делятся, в свою очередь, на подсети и т. д., то есть происходит рекурсия числа подсетей.
На рис. 2.15 показан пример, в котором сеть класса А с адресом 10.0.0.0 сначала делится на подсети с расширенным сетевым префиксом /16 (маска подсети 255.255.0.0). Общее количество получаемых подсетей — 254. В каждой подсети поддерживается до 65 534 (216 - 2 = 65 534) адресов хостов. Полученная подсеть с адресом 10.253.0.0 при рекурсии с расширенным сетевым префиксом /24 поддерживает до 254 подсетей, каждая из которых поддерживает до 254 (28 - 2 = 254) адресов хостов. При дальнейшей рекурсии с расширенным сетевым префиксом /27 подсеть с адресом 10.253.1.0 поддерживает 6 подсетей с номерами, кратными 32, каждая из которых поддерживает до 30 (25 - 2 = 30) номеров хостов.
Таким образом, рекурсивное разбиение адресного пространства организации может быть выполнено с учетом пожеланий администратора сети. Кроме возможности рекурсии адресов подсетей, внедрение маски подсети переменной длины позволяет значительно уменьшить объем таблиц маршрутизации маршрутизаторов организации. Каждый маршрутизатор имеет возможность объединять свои подсети в одну запись в сообщении об обновлении. Так как структура подсетей не
видна вне организации, граничный маршрутизатор рекламирует в Интернете маршрут с адресом 10.0.0.0 (см. рис. 2.16).
При разработке концепции подсетей с использованием маски подсети переменной длины администратору необходимо убедиться в том, что в предоставляемом организации IP-адресе существует достаточное количество битов для формирования требуемого числа подсетей на каждом уровне рекурсии.
Предположим, что сеть организации охватывает несколько удаленных филиалов. Если организация имеет три удаленных сети, то сегодня ей потребуется выделить 3 бита для формирования подсетей, которых может хватить как сегодня, так и в обозримом будущем (23 = 8). Предположим, что администратор хочет сформировать отдельные подсети внутри каждого филиала. Эти подсети будут вторым уровнем в иерархии подсетей. Кроме того, внутри каждого филиала необходимо поддерживать отдельные рабочие группы, для которых также нужно выделить подсети. Следуя приведенной модели иерархии, верхний уровень определяется числом удаленных филиалов, второй — числом зданий внутри каждого филиала, а третий — максимальным числом подсетей в каждом здании и максимальным числом хостов в каждой из подсетей.
Для успешного внедрения маски подсети переменной длины требуется выполнить три основных условия:
· протокол маршрутизации должен переносить информацию о маске подсети в каждом сообщении;
· все маршрутизаторы должны поддерживать алгоритм передачи, основывающийся на технологии наибольшего совпадения (longest match);
· адреса должны присваиваться в соответствии с существующей топологией сети.
Современные протоколы маршрутизации, такие как OSPF и IS-IS, позволяют использовать маску подсети переменной длины. Это достигается с помощью передачи значения маски подсети в каждом сообщении об обновлении маршрутов, что позволяет рекламировать каждую подсеть с ее маской. Если протокол маршрутизации не позволяет использовать маску подсети, маршрутизатор либо предполагает, что должна использоваться маска подсети, присвоенная его локальному порту, либо выполняет поиск в статически настроенной таблице, содержащей всю информацию о масках подсетей. Первое решение не может гарантировать выбора корректной маски подсети, а статическая таблица не имеет возможности масштабирования, кроме того, она сложна в управлении и коррекции ошибок.
Таким образом, если требуется использование маски подсети переменной длины в сложной сетевой топологии, наилучшим выбором является применение протоколов маршрутизации OSPF и IS-IS, а не RIP-1 IP. Однако при этом нужно учитывать, что вторая версия протокола RIP (RIP-2 IP), описанная в документе RFC 1388, расширяет возможности первой версии протокола, в том числе и добавлением возможности переноса маски подсети.