Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава_2.DOC
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
564.22 Кб
Скачать

Подсети

В 1985 году документом RFC 950 был определен стандартный процесс поддержки формирования подсетей, или разделения единственного номера сети классов А, В и С на меньшие части. Формирование подсетей было введено для преодоления следующих проблем:

  • резкий рост таблиц маршрутизации в Интернете;

  • появление дефицита номеров сетей при необходимости расширения их коли­чества.

Обе эти проблемы решались путем добавления еще одного уровня иерархии к адресной структуре протокола IP. Вместо двухуровневой иерархии новая кон­цепция формирования подсетей вводит поддержку еще одного уровня — третьего. На рис. 2.5 представлен процесс формирования подсетей, в котором номер хоста делится на две части: номер подсети и номер хоста в этой подсети.

Формирование подсетей решает проблему роста таблиц маршрутизации, так как конфигурация подсетей корпоративной сети никогда не видна за пределами организации. Маршруты из Интернета в любую подсеть данного IP-адреса одина­ковы, независимо от того, на какой подсети расположен получатель. Это стало воз­можным потому, что все подсети данного номера сети используют один и тот же сетевой префикс, но с разными номерами подсетей. Маршрутизаторам в частной сети требуется различать отдельные подсети, а у маршрутизаторов в Интернете все эти подсети определены единственной записью в таблицах маршрутизации. Это позволяет администратору частной сети вносить любые изменения в логиче­скую структуру сети без влияния на размер таблиц маршрутизации у маршрутиза­торов в Интернете.

Формирование подсетей также позволяет решить вторую проблему, связанную с выделением организации нового сетевого номера или номеров при ее росте. Орга­низации можно выделить один номер сети, после чего администратор имеет возможность произвольно присваивать номера подсетей

каждой из своих внутрен­них сетей. Это позволяет внедрять дополнительные подсети без необходимости получения нового сетевого номера.

На рис. 2.6 показан пример распределенной сети, состоящей из нескольких ло­гических сетей, которые используют концепцию подсетей внутри одного адреса класса В. Граничный маршрутизатор получает весь трафик, адресованный сети 130.5.0.0 из Интернета, и передает его внутренним подсетям, основываясь на ин­формации, содержащейся в третьем октете.

Формирование подсетей внутри частной сети организации дает следующие преимущества:

  • размер глобальных таблиц маршрутизации в Интернете не растет, так как ад­министратор частной сети не нуждается в получении дополнительной адрес­ной информации;

  • администратор получает возможность по своему усмотрению внедрять допол­нительные подсети без получения новых номеров сетей;

  • изменение топологии частной сети не влияет на таблицы маршрутизации в Интернете, поскольку маршрутизаторы в Интернете не имеют маршрутов в индивидуальные подсети организации — они имеют только маршрут в роди­тельскую сеть.

Маска подсети

Если маршрутизаторы в Интернете используют для передачи трафика в окруже­ние подсетей только сетевой префикс адреса получателя, то маршрутизаторы внут­ри этого окружения для передачи трафика индивидуальным подсетям использу­ют расширенный сетевой префикс. Расширенный сетевой префикс состоит из пре­фикса сети и номера подсети (см. рис. 2.7).

Структуру расширенного сетевого префикса можно представить в виде маски подсети (subnet mask). Маска подсети — это число, двоичная запись которого со­держит единицы в тех разрядах, которые должны интерпретироваться как номер сети. Маска подсети позволяет провести четкую границу между двумя частями IP-адреса. Одна часть идентифицирует номер подсети, вторая используется для идентификации хостов в этой подсети.

Хосты и маршрутизаторы используют старшие биты IP-адреса для определе­ния его класса. После того как класс определен, хост может легко найти границу между битами, использующимися для идентификации номера сети и для иденти­фикации номера хоста в этой сети. Однако для определения границ битов, иденти­фицирующих номер подсети, такая схема не подходит. Для решения этого вопроса используется 32-разрядная маска подсети, которая помогает однозначно опреде­лить требуемую границу. Для стандартных классов сетей маски имеют следующие значения:

255.0.0.0 — маска для сети класса А;

255.255.0.0 — маска для сети класса В;

255.255.255.0 — маска для сети класса С.

Например, если используется адрес класса В 130.5.0.0 и сетевой администратор хочет использовать весь третий октет для номера подсети, ему необходимо указать маску подсети 255.255.255.0. Биты в маске подсети задают способ интерпретации битов адреса: если бит в маске подсети равен 1, то система, проверяющая адрес, должна рассматривать соответствующий бит в IP-адресе как часть расширенного сетевого префикса. Другими словами, после определения класса IP-адреса любой бит в части номера хоста, которому соответствует единичный бит в маске подсети, используется для идентификации номера подсети. Оставшаяся часть номера хос­та, которой соответствует нулевое значение маски подсети, используется для зада­ния номера хоста. На рис. 2.8 показан пример IP-адреса класса В с соответствую­щей маской подсети.

Все сказанное можно проиллюстрировать рисунком, из которого становится понятным механизм формирования маски подсети — происходит простое преоб­разование двоичной записи в десятичную (см. рис. 2.9).

В стандартах, описывающих современные протоколы маршрутизации, часто делается ссылка на длину расширенного сетевого префикса, а не на маску подсети. Данная длина эквивалентна количеству единичных битов в маске подсети. Это означает, что сетевой адрес 130.5.5.25 с маской подсети 255.255.255.0 может быть также записан как 130.5.5.25/24. Число 24 указывает на то, что в маске подсети

255.255.255.0 количество единичных битов равно 24. Такая запись является более компактной и легкой для понимания, чем запись с использованием маски подсети в ее традиционной точечно-десятичной нотации. Рисунок 2.10 иллюстрирует при­мер записи расширенного сетевого префикса.

. Следует отметить, что большинство современных протоколов маршрутизации переносят маску подсети в своих сообщениях. В то же время не существует стан­дартного протокола маршрутизации, который имел бы дополнительное однобай­товое поле в заголовке своих сообщений, определяющее число битов в расширен­ном сетевом префиксе. Протоколы маршрутизации передают полную четырехок-тетную маску подсети.

Перед тем как разрабатывать сеть на базе протокола IP, сетевому администра­тору необходимо ответить на следующие четыре важных вопроса:

1. Как много подсетей требуется организации сегодня?

2. Как много подсетей может потребоваться организации в будущем?

Для определения какой-либо подсети адмтмотриаиг к: метает двоичное пред­ставление ее номера (в данном примере для восыш твасегхш. это может быть чис­ло от 0 до 7) в битовое поле номера подсети. Наяршмвр,ЯШ1 определения подсети #4 администратор просто помещает двоичное преяопшвашве числа 4 (000001002) в трехбитовое поле номера подсети. Таблица 2.5. совдрввг нж восемь возможных вариантов подсетей рассматриваемого примера.

Самым простым способом проверки корректности опредевшиишииоетей явля­ется контроль кратности всех десятичных номеров подсетей померят подсети #1. В данном примере все номера подсетей кратны 32.

ПРИМЕЧАНИЕ

Компания Cisco Systems включила в свой программный продукт ConfigMaker v2.4 инструмент рабо­ты с адресами, называемый IP Subnet Calculator. Администратор, введя адрес и маску подсети, полу­чает полную классификацию (см. рис. 2.12).

Когда схема введения подсетей была опубликована в документе RFC 950, за­прещалось использование номеров подсетей, у которых все биты установлены в единицы или нули. Причиной такого ограничения является необходимость устра­нения возможных проблем при работе тех протоколов маршрутизации, которые не переносят в своих служебных сообщениях ни маску подсети, ни длину расши­ренного сетевого префикса. Например, если используется протокол маршрутиза­ции RIP (его первая версия — обозначается как RIP-1), который не переносит маску подсети и длину расширенного сетевого префикса, маршруты в разные подсети с адресами 193.1.1.0 /27 и 193.1.1.0 /24 будут рассматриваться как идентичные. То есть без указания маски подсети маршрутизатор не делает различий между марш­рутом в одну подсеть и маршрутом во всю сеть. Похожая проблема, но только с определением направления широковещания возникает и в случае равенства всех битов единице. Например, один адрес 193.1.1.255 используется как широковеща­тельный для всей сети 193.1.1.0/24 и для подсети 193.1.1.224/27. Рисунок 2.13 иллюстрирует обе рассмотренные ситуации.

С разработкой протоколов маршрутизации, переносящих маску подсети (OSPF, IS-IS) с каждым рекламируемым маршрутом, стало возможно вопреки документу RFC 950 использовать подсети, все биты которых установлены в единицу и ноль. По этой причине производители позволяют настраивать подсети с такими номе­рами на портах своих маршрутизаторов. При этом нужно учитывать следующие два фактора: используемые в корпоративной сети протоколы маршрутизации, от­носящиеся к классу IGP, должны поддерживать маску подсети или расширенный сетевой префикс; необходима поддержка номеров подсетей со всеми единичными и нулевыми битами всеми маршрутизаторами в сети. Кроме того, иногда важно учитывать номер версии программного обеспечения маршрутизатора.

В рассматриваемом примере (табл. 2.6) остается 5 бит для задания адресов хос­тов в каждой подсети. В результате каждая подсеть может содержать блок из 30 адресов хостов (25 - 2 = 30), которые нумеруются от 1 до 30. Для определения адреса хоста N в сети администратор помещает

двоичноевракпввеяне числа N в поле номера хоста. Например, для определения адреса, иин^ийигпйипщшп при­своить хосту #28 в подсети #2, администратор просто ппмицаит дрииинпр пред­ставление 28 (111002) в пятибитовое поле подсети #2. В табл. 25 •оказаны неко­торые возможные комбинации номеров хостов в подсети #2.

Для того чтобы проверить корректность широковещательного адреса для опре­деленной подсети, можно использовать следующее простое правило: во всег слу­чаях широковещательный адрес для подсети #N на единицу меньше, чем базовый адрес для подсети #(N+1). Например, широковещательный адрес для подсети #2 (193.1.1.95) на единицу меньше базового адреса подсети #3 (193.1.1.96).

Перед передачей дейтаграммы хосту необходимо определить:

1. Располагается ли получатель в той же подсети, что и отправитель?

2. Если существует более чем один маршрутизатор, имеющий маршрут в нужную сеть, какой маршрутизатор необходимо использовать отправителю?

До введения подсетей процесс передачи выполнялся путем выделения поля сетевого номера из IP-адреса получателя, содержащегося в заголовке IP-дейта­граммы, и последующего сравнения с собственным IP-адресом хоста. Если сете­вые номера адреса отправителя и получателя совпадают, то они располагаются в одной локальной сети, и дейтаграмма может быть передана напрямую. Если но­мера сетей разные, то дейтаграмму необходимо посылать получателю, используя маршрутизатор по умолчанию.

После введения подсетей этот процесс значительно усложнился, так как полу­чатель может располагаться в другой подсети той же самой сети, что и получатель. Для осуществления процесса передачи в этом случае используется маска подсети. Выполняется операция «логическое И» между IP-адресом получателя и маской подсети. Результат сравнивается с результатом выполнения той же операции, но для собственного IP-адреса хоста и той же маски подсети. Если результаты этих двух операций идентичны, то отправитель и получатель находятся в одной подсе­ти и дейтаграмма может быть послана напрямую. Если результаты различны, то получатель находится в другой подсети. В этом случае дейтаграмма посылается маршрутизатору.

В табл. 2.7 и 2.8 представлены некоторые возможные (и наиболее часто исполь­зуемые) варианты выделения подсетей для сетей классов В и С.

При рассмотрении примера разделения на подсети сети класса С 193.1.1.0 /24 была отмечена рекомендация относительно порядка битов при выделении подсе­тей. В документе RFC 1219 есть основное правило, которому желательно следо­вать при присвоении номеров подсетям и хостам. Номера подсетей назначают та­ким образом, чтобы старшие биты в номере подсети устанавливались первыми. Например, если поле номера подсети состоит из 4 бит, то первые несколько номе­ров подсетей должны быть следующими: 8 (10002), 4 (01002), 12 (11002), 2 (00102), 6 (01102) и т. д. Иными словами, единичные биты номеров подсетей рекомендует­ся устанавливать, начиная с крайней левой позиции. В то время как единичные биты номеров хостов рекомендуется устанавливать, начиная с крайней правой позиции (табл. 2.9).

Если следовать этому правилу, то на границе между номером подсети и номе­ром хоста будут существовать нулевые биты. Это позволяет менять маску подсети без изменения IP-адреса, присвоенного хосту. Необходимость в изменении маски подсети может возникнуть при расширении числа хостов в каждой подсети, с уче­том того, что планируемое число возможных подсетей обычно больше необходи­мого в настоящий момент. В этом случае существует возможность «заимствова­ния» под номера подсетей некоторых битов из числа зарезервированных. Досто­инством описанного правила является то, что администратору достаточно изме­нить маску подсети на каждом хосте и не нужно переконфигурировать IP-адреса хостов во всей организации. Изменение адресов потребует больших усилий от ад­министратора, так как в данном случае может потребоваться изменение почтовых сервисов, статических таблиц маршрутизации и т. д.

В сети, которая была разбита на подсети, можно использовать два типа широ­ковещательной передачи информации: направленное широковещание и ограни­ченное. Направленное широковещание используется для передачи дейтаграммы всем хостам в определенной подсети. Для посылки дейтаграммы всем хостам во всех подсетях необходимо использовать ограниченное широковещание с адресом 255.255.255.255. Однако необходимо учесть, что маршрутизаторы не пропускают дейтаграммы с таким адресом. Существует одно ограничение, накладываемое на направленное широковещание в средах с подсетями. Биты, назначенные для фор­мирования номеров подсетей, обычно являются частью поля номера хоста и не могут быть все установлены в нули или единицы. Например, если есть адрес клас­са В, в котором третий байт выделен под номера подсетей — 128.1.<Номер подсе-ти>.<Номер хоста>, то в этом случае адрес направленного широковещания не мо­жет быть равен 128.1.255.255,128.1.0.255,128.1.255.0 и 128.1.0.0.

Существуют теоретические и практические аргументы, призывающие не исполь­зовать верхние (все биты единичные) и нижние подсети (все биты нулевые) в рас­пределенных сетях (можно также встретить термин «граничные подсети»). Как уже не раз отмечалось, теоретически битовое поле содержит два специальных зна­чения: все биты установлены в ноль, что обычно означает «данный», например «данное устройство» или «данная сеть», и все биты установлены в единицу, что

Если следовать этому правилу, то на границе между номером подсети и номе­ром хоста будут существовать нулевые биты. Это позволяет менять маску подсети без изменения IP-адреса, присвоенного хосту. Необходимость в изменении маски подсети может возникнуть при расширении числа хостов в каждой подсети, с уче­том того, что планируемое число возможных подсетей обычно больше необходи­мого в настоящий момент. В этом случае существует возможность «заимствова­ния» под номера подсетей некоторых битов из числа зарезервированных. Досто­инством описанного правила является то, что администратору достаточно изме­нить маску подсети на каждом хосте и не нужно переконфигурировать IP-адреса хостов во всей организации. Изменение адресов потребует больших усилий от ад­министратора, так как в данном случае может потребоваться изменение почтовых сервисов, статических таблиц маршрутизации и т. д.

В сети, которая была разбита на подсети, можно использовать два типа широ­ковещательной передачи информации: направленное широковещание и ограни­ченное. Направленное широковещание используется для передачи дейтаграммы всем хостам в определенной подсети. Для посылки дейтаграммы всем хостам во всех подсетях необходимо использовать ограниченное широковещание с адресом 255.255.255.255. Однако необходимо учесть, что маршрутизаторы не пропускают дейтаграммы с таким адресом. Существует одно ограничение, накладываемое на направленное широковещание в средах с подсетями. Биты, назначенные для фор­мирования номеров подсетей, обычно являются частью поля номера хоста и не могут быть все установлены в нули или единицы. Например, если есть адрес клас­са В, в котором третий байт выделен под номера подсетей — 128.1.<Номер подсети>.<Номер хоста>, то в этом случае адрес направленного широковещания не мо­жет быть равен 128.1.255.255,128.1.0.255,128.1.255.0 и 128.1.0.0.

Существуют теоретические и практические аргументы, призывающие не исполь­зовать верхние (все биты единичные) и нижние подсети (все биты нулевые) в рас­пределенных сетях (можно также встретить термин «граничные подсети»). Как уже не раз отмечалось, теоретически битовое поле содержит два специальных зна­чения: все биты установлены в ноль, что обычно означает «данный», например «данное устройство» или «данная сеть», и все биты установлены в единицу, что

означает «все», например «все устройства» или «все сети». Ранние документы, рег­ламентирующие адресацию в Интернете, рекомендовали оставлять эти значения неиспользуемыми. Это определяло запрет на использование адреса нижней сети из всех нулей и адреса верхней сети из всех единиц. В результате программное обеспечение, обслуживающее протокол IP на сетевых устройствах, проверяло факт настройки пользователем адресации в обход этих правил. На практике использо­вание этих подсетей может быть проблематичным, так как не все устройства, осо­бенно выпущенные давно, поддерживают такую настройку. Для того чтобы избе­жать проблем, следует быть хорошо осведомленным о конкретном устройстве и выяснить, какое адресное пространство оно позволяет настроить. Маршрутиза­торы фирмы Cisco Systems допускают настройку на использование рассматривае­мых подсетей, так что в свое распоряжение можно получить еще одну подсеть. Для того чтобы использовать нижнюю подсеть, нужно выполнить команду ip subnet-zero в глобальном режиме конфигурации.

Routerfconfigure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#ip subnet-zero

В том случае, если администратор сети не вводил эту команду на маршрутиза­торе, попытка настроить интерфейс с адресом нижней подсети приведет к появле­нию сообщения об ошибке:

Routerfconfigure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#no ip subnet-zero

Router(config)#interface sen all

Router(config-if)#ip address 192.168.1.2 255.255.255.224

Bad mask /27 for address 192.168.1.2