VLSM (Variable Length Subnet Mask)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 21:46, 1 февраля 2015.

Прежде чем перейти к изучению метода VLSM, необходимо повторить определения некоторых понятий. Во-первых, необходимо вспомнить применение стиля записи масок подсети через косую черту (/). Этот стиль предусматривает указание после IP-адреса косой черты и количества битов (подряд идущих единиц) в маске вместо записи маски в точечном десятичном формате. Например, чтобы представить сеть 172.16.1.0 с маской 255.255.224.0, можно записать ее как 172.16.1.0/19. Оба эти обозначения относятся к одной и той же сети, но стиль записи с использованием косой черты просто намного компактнее и удобнее.

Во-вторых, следует рассмотреть некоторые вопросы использования сложных методов организации подсетей. Сложные методы организации подсетей предусматривают использование для номера подсети больше одного октета. До сих пор для выделения номера подсети мы использовали только один октет. Но метод организации подсетей с помощью нескольких октетов в действительности не намного сложнее, а просто чуть непривычнее. В частности, рассмотрим пример с адресом сети 10.0.0.0. Предположим, что необходимо выделить 2000 подсетей с 8000 хостов в каждой подсети. Такие требования к подсети вынуждают использовать не меньше 11 битов в части адреса с обозначением подсети (211 - 2 = 2046). В результате будет получена маска 255.255.224.0, или 10.0.0.0/21 (рис. 1). Это означает, что весь второй октет и часть третьего октета относятся к части адреса с обозначением подсети. Может показаться, что задача определения допустимых диапазонов адресов хостов для этого адреса сети становится сложнее, но в действительности дело обстоит иначе.

Рис. 1. Маска подсети, которая занимает больше одного октета

С использованием упрощенного метода выполним аналогичный процесс определения диапазонов адресов. Прежде всего установим, какой октет является интересующим. Напомним, что интересующим называется октет, в котором значение маски не равно 0 или 255. Этому определению соответствует третий октет, поэтому начнем с него. Возьмем его значение, равное 224, и вычтем его из 256. В результате останется диапазон 32. Но в данном случае, прежде чем приступить к следующему этапу, необходимо вспомнить, что перед интересующим октетом находится еще один целый октет, который также относится к подсети. В связи с этим перед переходом к следующему этапу необходимо учесть значение второго октета (который не является интересующим). Для этого вначале присвоим второму октету значение нуль и будем увеличивать значение в третьем октете до тех пор, пока не будет достигнут последний диапазон, а затем добавим единицу ко второму октету и выполним этот процесс с самого начала, как показано ниже.

1. 10.0.0.0-10.0.31.255.
2. 10.0.32.0-10.0.63.255.
3. 10.0.64.0-10.0.95.255.
4. 10.0.96.0-10.0.127.255.
5. 10.0.128.0-10.0.159.255.
6. 10.0.160.0-10.0.191.255.
7. 10.0.192.0-10.0.223.255.
8. 10.0.224.0-10.0.255.255.
9. 10.1.0.0-10.1.31.255.
10. 10.1.32.0-10.1.63.255.
11. 10.1.64.0-10.1.95.255.
12. 10.1.96.0-10.1.127.255.
13. и т.д.

Затем вернемся к составленному списку и удалим две недействительные подсети (первую и последнюю) и два недопустимых адреса в каждой подсети (первый и последний). В результате останется примерно такой список диапазон адресов, который представлен ниже.

1. 10.0.0.0-10.0.31.255.
2. 10.0.32.1-10.0.63.254.
3. 10.0.64.1-10.0.95.254.
4. 10.0.96.1-10.0.127.254.
5. 10.0.128.1-10.0.159.254.
6. 10.0.160.1-10.0.191.254.
7. 10.0.192.1-10.0.223.254.
8. 10.0.224.1-10.0.255.254.
9. 10.1.0.1-10.1.31.254.
10. 10.1.32.1-10.1.63.254.
... ниже следуют примерно 2000 диапазонов адресов подсетей...
2042. 10.255.96.1-10.255.127.254.
2043. 10.255.128.1-10.255.159.254.
2044. 10.255.160.1-10.255.191.254.
2045. 10.255.192.1-10.255.223.254.
2046. 10.255.224.1 10.255.255.254.

На этом исчерпывается тема, касающаяся применения нескольких октетов для организации подсетей. Необходимо только помнить, что следует увеличивать номер в неинтересующем октете каждый раз после заполнения всего набора диапазонов адресов в интересующем октете.

Теперь перейдем к описанию метода применения маски подсети переменной длины (VLSM), который используется для получения адреса на основе класса и преобразования его в более масштабируемый и менее расточительный диапазон адресов. Недостатком адресов на основе классов является то, что они обычно предоставляют либо слишком большой, либо слишком маленький диапазон адресов для использования в большинстве ситуаций. Например, предположим, что организация имеет сеть со структурой, показанной на рис. 2. После организации подсетей на основе адреса класса В с использованием 20-битовой маски (255.255.240.0) будет получено 14 подсетей и 4094 хостов в каждой подсети. Именно такие параметры необходимо создать в здании 1 и здании 5, поскольку в обоих этих зданиях имеется примерно 3000 хостов. Но в остальных местах потребность в размещении хостов значительно ниже и поэтому адреса используются неэффективно. Из всех 12 прочих площадок ни на одной не используется свыше 500 IP-адресов, но все они имеют маску /20. Это означает, что данная организация не использует свыше 40 000 IP-адресов.

Рис. 2. Пример бесполезного расходования адресов без применения метода VLSM

Таким образом, метод VLSM, по сути, предусматривает разбивку на подсети адресного пространства, основанного на использовании классов, а затем разбивку подсетей на подсети до тех пор, пока не будет достигнуто требуемое количество хостов в каждой подсети.

Но при использовании метода VLSM вводится ряд новых правил распределения адресов, которые позволяют значительно уменьшить их непроизводительный расход.

Во-первых, при использовании этого метода не требуется удалять подсети с номерами, состоящими из одних нулей или одних единиц. Эти подсети теперь разрешено использовать для размещения в них хостов. (Но удалять первый и последний IP- адреса из каждой подсети все равно необходимо.)

Во-вторых, разрешено применять к разным частям сети разные маски. Это позволяет в случае необходимости разделять сеть на меньшие части (как показано на рис. 3). Единственное требование при этом состоит в том, чтобы диапазоны адресов в подсетях не перекрывали друг друга.

Единственный способ проверки того, что перекрытие адресов отсутствует, состоит в выполнении вычислений с помощью двоичной арифметики. Во-первых, определяется, какое количество хостов требуется для самых больших подсетей. В рассматриваемом случае для двух самых крупных подсетей требуется, по меньшей мере, 3000 хостов, поэтому начнем с них. Для поддержки этих хостов нужна 20-битовая маска, с помощью которой будет получено 16 подсетей (напомним, что при использовании метода VLSM не требуется отбрасывать первую и последнюю подсети) с 4094 хостами каждая (поскольку все еще необходимо отбрасывать первый и последний IP-адреса в каждой подсети). Две из этих подсетей используются для зданий I и 5. Для всех остальных хостов требуется только около 6000 IР-адресов, поэтому для поддержки этих подсетей необходимо взять две из крупных 4094 подсетей с количеством хостов 4094.

Рис. 3. Пример уменьшения непроизводительного расхода адресов с использованием метода VLSM

Возьмем первую подсеть (172.16.32.0) и разделим ее между восемью подсетями с 450 хостами, используя для каждой из них 23-битовую маску. Добавим эти три бита к маске подсети (в результате чего они составят часть с обозначением адреса подподсети другой подсети), что позволяет создать восемь подсетей с 510 хостами каждая. Рассматривая двоичные значения адресов, приведенные на рис. 4, можно заметить, что ни один из этих диапазонов не перекрывается.

Рис. 4. Пример применения вычислений с помощью двоичной арифметики в методе VLSM

Наконец, отметим, что для всех последних четырех подсетей требуется меньше 254 хостов. В этом случае необходимо использовать 24-битовую маску, поэтому возьмем одну из 20-битовых подсетей и разобьем ее на меньшие подсети с применением этой маски. В результате будет получено 16 подсетей, принадлежащих к одной сети 172.16.48.0/20, каждая из которых состоит из 254 хостов.

Рис. 5. Пример разбиения одной из сетей /20, принадлежащих организации

Четыре из этих диапазонов адресов будут использоваться для создания четырех подсетей. В результате общий итог составляет 12 подсетей с 254 хостами и 12 подсетей с 4094 хостами, которые остаются в резерве для распределения в будущем. Логическая структура созданного таким образом распределения адресов показана на рис. 5. Окончательный перечень диапазонов IP-адресов показан в табл. 1.

Таблица 1.
Номер подсети
Адрес/маска
Диапазон адрессов
Количество хостов
Назначение
Подсеть 1
172.16.0.0/20
172.16.0.1-172.16.15.254
4094
Здание 1
Подсеть 2
172.16.16.0/20
172.16.16.1-172.16.31.254
4094
Здание 5
Подсеть 3
172.16.32.0/23
172.16.32.1-172.16.33.254
510
Здание 2
Подсеть 4
172.16.34.0/23
172.16.34.1-172.16.35.254
510
Здание 3
Подсеть 5
172.16.36.0/23
172.16.36.1-172.16.37.254
510
Здание 4
Подсеть 6
172.16.38.0/23
172.16.38.1-172.16.39.254
510
Здание 6
Подсеть 7
172.16.40.0/23
172.16.40.1-172.16.41.254
510
Здание 7
Подсеть 8
172.16.42.0/23
172.16.42.1-172.16.43.254
510
Здание 8
Подсеть 9
172.16.44.0/23
172.16.44.1-172.16.45.254
510
Здание 9
Подсеть 10
172.16.46.0/23
172.16.46.1-172.16.47.254
510
Здание 10
Подсеть 11
172.16.48.0/24
172.16.48.1-172.16.48.254
254
Здание 11
Подсеть 12
172.16.49.0/24
172.16.49.1-172.16.49.254
254
Здание 12
Подсеть 13
172.16.50.0/24
172.16.50.1-172.16.50.254
254
Здание 13
Подсеть 14
172.16.51.0/24
172.16.51.1-172.16.51.254
254
Здание 14
Подсеть 15
172.16.52.0/24
172.16.52.1-172.16.52.254
254
Для расширения сети в будущем
Подсеть 16
172.16.53.0/24
172.16.53.1-172.16.53.254
254
Для расширения сети в будущем
Подсеть 17
172.16.54.0/24
172.16.54.1-172.16.54.254
254
Для расширения сети в будущем
Подсеть 18
172.16.55.0/24
172.16.55.1-172.16.55.254
254
Для расширения сети в будущем
Подсеть 19
172.16.56.0/24
172.16.56.1-172.16.56.254
254
Для расширения сети в будущем
Подсеть 20
172.16.57.0/24
172.16.57.1-172.16.57.254
254
Для расширения сети в будущем
Подсеть 21
172.16.58.0/24
172.16.58.4-172.16.58.254
254
Для расширения сети в будущем
Подсеть 22
172.16.59.0/24
172.16.59.1-172.16.59.254
254
Для расширения сети в будущем
Подсеть 23
172.16.60.0/24
172.16.60.1-172.16.60.254
254
Для расширения сети в будущем
Подсеть 24
172.16.61.0/24
172.16.61.1-172.16.61.254
254
Для расширения сети в будущем
Подсеть 25
172.16.62.0/24
172.16.62.1-172.16.62.254
254
Для расширения сети в будущем
Подсеть 26
172.16.63.0/24
172.16.63.1-172.16.63.254
254
Для расширения сети в будущем
Подсеть 27
172.16.64.0/20
172.16.64.1-172.16.79.254
4094
Для расширения сети в будущем
Подсеть 28
172.16.80.0/20
172.16.80.1-172.16.95.254
4094
Для расширения сети в будущем
Подсеть 29
172.16.96.0/20
172.16.96.1-172.16.111.254
4094
Для расширения сети в будущем
Подсеть 30
172.16.112.0/20
172.16.112.1-172.16.127.254
4094
Для расширения сети в будущем
Подсеть 31
172.16.128.0/20
172.16.128.1-172.16.143.254
4094
Для расширения сети в будущем
Подсеть 32
172.16.144.0/20
172.16.144.1-172.16.259.254
4094
Для расширения сети в будущем
Подсеть 33
172.16.160.0/20
172.16.160.1-172.16.175.254
4094
Для расширения сети в будущем
Подсеть 34
172.16.176.0/20
172.16.176.1-172.16.191.254
4094
Для расширения сети в будущем
Подсеть 35
172.16.192.0/20
172.16.192.1-172.16.207.254
4094
Для расширения сети в будущем
Подсеть 36
172.16.208.0/20
172.16.208.1-172.16.223.254
4094
Для расширения сети в будущем
Подсеть 37
172.16.224.0/20
172.16.224.1-172.16.239.254
4094
Для расширения сети в будущем
Подсеть 38
172.16.240.0/20
172.16.240.1-172.16.255.254
4094
Для расширения сети в будущем

Теперь рассмотрим более сложный пример: четыре группы зданий, соединенных каналами распределенной сети. Каждая из этих групп состоит из нескольких зданий и имеет разное количество хостов в зданиях, как показано на рис. 6.

В этой ситуации необходимо обеспечить немного более сложное группирование адресов. Первая группа зданий, которую мы будем называть CAN (Campus Area Network — территориальная сеть) 1, состоит из четырех зданий. Для здания 1 требуется 16 ООО адресов хостов, для здания 2 — 8000 адресов хостов, для здания 3 — 6000 адресов хостов и для здания 4 — 2000, что в целом составляет 32 000 адресов хостов. Сеть CAN 2 включает два здания. Для здания 5 требуется 4000, а для здания 6 — 12 000 адресов хостов, что в целом составляет 16 000. Сеть CAN 3 включает три здания. Для здания 7 требуется 4000, для здания 8 — 3000, а для здания 9 — 1000 адресов хостов, что в целом составляет 8000. Наконец, сеть CAN 4 включает пять зданий. Для здания 10 требуется 1000, для здания 11 — 500, для здания 12 — 250, а для зданий 13 и 14 требуется по 100 адресов хостов каждому, что в целом составляет 2000.

Рис. 6. Первоначальные требования к усложненному примеру применения метода VLSM

В данном случае первый этап распределения пространства IP-адресов состоит в получении применяемого по умолчанию сетевого адреса на основе класса (в данном примере используется адрес 172.16.0.0 класса В) и разбиении его на меньшие фрагменты (если возможно, на два). В этом случае для сети CAN 1 требуется 32 000 адресов, а для сетей с CAN 2 по CAN 4 требуется всего 26 000 адресов. При этом наиболее простое решение состоит в том, чтобы первоначально разбить сеть в точке, которая определяется 17-битовой маской, что позволит получить первые 32000 адресов для сети CAN 1, а затем распределить остальные 32000 адресов между сетями CAN 2,3,4, как показано на рис. 7.

Рис. 7. Первоначальное распределение адресного пространства

После этого разделим сеть 172.16.0.0/17 для создания территориальной сети CAN 1 и организуем еще одну группу из двух подсетей, включив здание 1 в первую подсеть (для него требуется ровно половина адресов), а все три другие здания — во вторую подсеть. Это можно сделать, введя в маску еше один бит. При этом будет получен адрес первой подсети (здание 1) 172.16.0.0/18 и базовый адрес второй подсети 172 .16.64. 0/18, как показано на рис. 8.

Рис. 8. Дальнейшее разбиение подсети CAN 1

Теперь разобьем второй диапазон адресов в подсети CAN 1 (172.16.64.0/18) еще на две группы с помощью 19-битовой маски. Первая группа будет включать только здание 2, поскольку для него требуется 8000 хостов, а вторая группа будет включать здания 3 и 4. Поэтому пространство IP-адресов здания 2 будет равно 172.16.64.0/19, а базовый адрес группы, включающей здания 3 и 4, будет равен 172.16.96.0/19, как показано на рис. 9


Рис. 9. Выделение второй группы в подсети CAN 1

Теперь необходимо подразделить адреса группы, в которую включены здания 3 и 4, но эту задачу нельзя выполнить так же просто, как предыдущие. Для здания 3 требуется 6000, а для здания 4 - 2000 адресов хостов. Безусловно, что решение, предусматривающее просто деление адресного пространства на два, является неприемлемым. Но вполне возможно разделить это адресное пространство на 4. Для этого добавим два бита к 19-битовой маске и получим 21-битовую маску, позволяющую создать четыре подсети с 2 ООО хостами каждая. Затем назначим адреса трех из этих поде зданию 3 (172.16.96.0/21, 172.16.104.0/21 и 172.16.112.0/21), а одной них — зданию 4 (172.16.120.0/21), как показано на рис. 10.

Рис. 10. Разбиение второй группы с маской /19 в подсети CAN 1

Теперь перейдем ко второй группе с маской /17 (172.16.128.0/17), которая включает подсети CAN 2, 3 и 4. И в этом случае наиболее простой способ распределения адресов состоит в делении адресного пространства пополам путем добавлении одного бита к маске, как показано на рис. 11.

Рис. 11. Распределение адресов второй группы с маской /17

При этом создаются подсети 172.16.128.0/18 и 172.16.192.0/18. Назначим адреса 172.16.128.0/18 подсети CAN 2, поскольку для нее требуется всего 16 адресов хостов. Затем подразделим эту подсеть на четыре меньшие подсети с 40001 хостов каждая. Для этого применим каждую маску /20 и назначим зданию 6 три из этих диапазонов адресов (172.16.128.0/20, 172.16.144.0/20 и 172 .16.160.0/20), а зданию 5 — один (172.16.176.0/20), как показано на рис. 12.

Рис. 12. распределение адресов подсети CAN 2

Теперь разобьем адреса группы 172.16.192.0/18 пополам с помощью 19-битовой маски и назначим адреса 172.16.192.0/19 подсети CAN 3, после чего назначим адреса 172.16.224.0/19 другой группе, которая включает подсеть CAN 4 и три другие территориальные подсети (которые в настоящее время не существуют) для использования в будущем, как показано на рис. 13.

Рис. 13. Распределение адресов группы 172.16.192.0/18

Для распределения адресов подсети CAN 3 можно разбить группу 172.16.192.0/19 с помощью 20-битовой маски. В этом случае пространство адресов 172.16.192.0/20 будет использоваться для здания 7, а пространство адресов 172.16.208.0/20 — для группы зданий, в которую входят здания 8 и 9. Затем разобьем пространство адресов 172.16.208.0/20 с помощью 22-битовой маски и создадим четыре подсети с 1000 хостов каждая. Назначим зданию 8 три из этих диапазонов адресов (172.16.208.0/22, 172.16.212.0/22 и 172.16.216.0/22), а зданию 9 - один из них (172.16.220.0/22), как показано на рис. 14

Рис. 14. Распределение диапазона адресов сети CAN 3

Наконец, рассмотрим последнее пространство адресов (172.16.224.0/19) и раз делим его на четыре группы по 2000 хостов с использованием маски /21. Одна этих групп (172.16.224.0/21) будет использоваться для подсети CAN 4, а остальным (172.16.232.0/21, 172.16.240.0/21 и 172.16.248.0/21) будут предназначены для распределения в будущем (возможно, в дальнейшем появится еще одна небольшая территориальная сеть).

Что касается сети CAN 4, то можно взять пространство адресов 172.16.224.0/21 и разделить его с помощью 22-битовой маски. Это позволит создать две подсети с 1000 хостов в каждой сети. Адреса первой сети (172 .16.224.0/22) будут назначены зданию 10, а адреса второй сети (172.16.228.0/22) — группе зданий, которая включает здания с 11 по 14, как показано на рис. 15.

Рис. 15. Распределение адресов сети CAN 4

Затем возьмем сеть 172.16.228.0/22 и разделим ее на две сети с 510 хостами каждая с помощью 23-битовой маски. В результате будет создана подсеть 172.16.228.0/23, адреса которой назначаются зданию 11, и подсеть 72.16.230.0/23, адреса которой назначаются группе зданий, включающей здания с 12 по 14, как показано на рис. 16.

Рис. 16. Распределение адресов сети 172.16.228.0/22

Наконец, рассмотрим пространство адресов 172.16.230.0/23 и разделим его с помощью 24-битовой маски. При этом будут созданы две сети с 254 хостами каждая. Затем назначим адреса сети 172.16.230.0/24 зданию 12, а адреса сети 172.16.231.0/24 — группе зданий, которая включает здания 13 и 14. После этого разобьем сеть 172.16.231.0/24 на две отдельные подсети с помощью 25-битовой маски и создадим две сети с 126 хостами в каждой. Наконец, назначим адреса сети 172.16.231.0/25 зданию 13 и адреса сети 172.16.231.128/25 — зданию 14. Результаты этого последнего распределения показаны на рис. 17.

На этом тема практического применения метода VLSM исчерпывается. Этот метод нельзя назвать слишком сложным, но для его применения требуется полное понимание того, какие манипуляции с двоичными числами лежат в основе адресации TCP/IP.

Рис. 17. Результаты последнего распределения адресов