Компьютерные сети
Н. Олифер-g
-О
Вк
-Q
-Q
10 узлов
Префикс поставщика услуг
-—-Н
Далее начинается самый сложный этап — распределение полученного от поставщика услуг адресного пула S между четырьмя сетями клиента. Прежде всего, администратор решил назначить для самой большой сети (Ethernet на 600 узлов) весь пул адресов 131.57.8.0/22, полученный от поставщика услуг (рис. 16.17). Номер, назначенный для этой сети, совпадает с номером сети, полученным от поставщика услуг. А как же быть с оставшимися тремя сетями? Администратор учел, что для сети Ethernet требуется только 600 адресов, а из оставшихся 624 «выкроил» сеть Token Ring 131.57.9.0/24 на 250 адресов. Воспользовавшись тем, что для Token Ring требуется только 200 адресов, он «вырезал» из нее два участка: для сети DMZ 131.57.9.16/28 на 16 адресов и для связывающей сети 131.57.9.32/30 на 4 адреса. В результате все сети клиента получили достаточное (а иногда и с избытком) количество адресов.
0000 00001111 11110000 00001111 1111 0000 00001111 1111
0001
0000
0001
1111
1111 1111
0010 00
00
0010 00
11
0000 0000
/
(16 адресов)
Token Ring
^ (256-16-4 адресов)
Соединительная сеть (4 адреса)
Л
у Ethernet
г
(1024-256 адресов)
Рис. 16.17. Планирование адресного пространства для сетей клиента
Следующий этап — это конфигурирование сетевых интерфейсов конечных узлов и маршрутизаторов. Каждому интерфейсу сообщается его IP-адрес и соответствующая маска. На рис. 16.18. показана сконфигурированная сеть клиента.
После конфигурирования сетевых интерфейсов должны быть созданы таблицы маршрутизации маршрутизаторов R1 и R2 клиента. Они могут быть сгенерированы автоматически или с участием администратора. Таблица маршрутизации маршрутизатора R2 соответствует табл. 16.11.
Таблица 16.11. Таблица маршрутизации маршрутизатора R2
Адрес назначения
Маска
Адрес следующего маршрутизатора
Адрес выходного интерфейса
Расстояние
131.57.8.0
255.255.252.0
131.57.8.2
131.57.8.2
Подключена
131.57.9.0
255.255.255.0
131.57.9.1
131.57.9.1
Подключена
131.57.9.16
255.255.255.240
131.57.8.1
131.57.8.2
1
«04 МП ОО
ore orr orr ого
4 04 СП О 4
4 0 4 СП О О
4
600 узлов
131.57.8.1/22131.57.9.33/30 131.57.9.34/30
131.57.9.32/302 узла-131.57.9.17/28WWW
I—J LJ LJ LJ У
^^^е
DMZ
131.57.9.16/28
-g
■g
-У
131.57.9.1/24
Token Ring 131.57.9.0/24
Ethernet
R2 ___131.57.8.2/22 131.57.8.0/22
200 узлов
g g
10 узлов
Сеть клиента - S
Рис. 16.18. Сконфигурированная сеть клиента
В данной таблице нет маршрута по умолчанию, а значит, все пакеты, адресованные с< адреса которых явно не указаны в таблице, будут отбрасываться маршрутизатором.
Пусть, например, на маршрутизатор R2 поступает пакет с адресом назначения 131.57 В результате просмотра таблицы получаем следующие результаты для каждой строк
□ (131.57.9.29) AND (255.255.252.0) - 131.57.8.0 - совпадение;
□ (131.57.9.29) AND (255.255.255.0) - 131.57.9.0 - совпадение;
□ (131.57.9.29) AND (255.255.255.240) = 131.57.9.16 - совпадение;
□ (131.57.9.29) AND (255.255.255.252) = 131.57.9.28 - нет совпадения.
Поскольку при наличии нескольких совпадений выбирается маршрут из той ст] в которой совпадение адреса назначения с адресом из пакета имеет наибольшую д определено, что пакет с адресом 131.57.9.29 направляется в сеть DMZ.
CIDR
За последние несколько лет в Интернете многое изменилось: резко возросло число; и сетей, повысилась интенсивность трафика, изменился характер передаваемых да] Из-за несовершенства протоколов маршрутизации обмен сообщениями об обнов/ таблиц стал приводить к сбоям магистральных маршрутизаторов, происходящим перегрузок при обработке большого объема служебной информации. Так, сегодня т цы магистральных маршрутизаторов в Интернете могут содержать до нескольких и даже тысяч маршрутов.
Суть технологии С1Ш заключается а следующем. Каждому поставщику услуг Интернета назначается непрерывный диапазон ГР-адресое. При таком подходе еде адреса каждого поставщика услуг имеют обц^ старшую часть—префико/поэтому|^шрупЬа1^яна магйстрал5« Интер^
;
нета может осущаствлятьсяна основе префиксоэ,а не полныхадресов сетей* к его значит» что%‘ вместо множества записей по числу, сетей будет достаточна пометить оди$ запись сразу для всех сетей, имвккцих общий префикс. Такое агрегарованивадресовгтоаволит уменьшить обърм таблиц в маршрутизаторахвсех уровней/, а следовдтельно,усторить работу маршрутизаторов иповьюитьпропускмуюспособн^
Ранее мы рассматривали примеры, где администраторы корпоративных сетей с помощью масок делили на несколько частей непрерывный пул адресов, полученный от поставщика услуг, чтобы использовать эти части для структуризации своей сети. Такой вариант при-менения масок называется разделением на подсети.
Вместе с тем в процессе разделения на подсети с помощью масок проявлялся и обратный эффект их применения. Упрощенно говоря, для того чтобы направить весь суммарный трафик, адресованный из внешнего окружения в корпоративную сеть, разделенную на подсети, достаточно, чтобы во всех внешних маршрутизаторах наличествовала одна строка. В этой строке на месте адреса назначения должен быть указан общий префикс для всех этих сетей. Здесь мы имеем дело с операцией, обратной разделению на подсети — операцией агрегирования несколько сетей в одну более крупную.
Вернемся к рис. 16.16, на котором показано адресное пространство поставщика услуг с участками SI, S2, S3 и S, переданными в пользование четырем клиентам. Этот пример также иллюстрирует рис. 16.19. В результате агрегирования сетей клиентов в табл. 16.12 маршрутизатора Rjsp поставщика услуг для каждого клиента будет выделено по одной строке независимо от количества подсетей, организованных ими в своих сетях. Так, вместо четырех маршрутов к четырем сетям клиента S в таблице задан только один общий для всех них маршрут (выделенный жирным шрифтом).
Таблица 16.12. Таблица маршрутизатора Risp поставщика услуг
i| Адрес назначения
Маска
Следующиймаршрутизатор
Номер выходного интерфейса
Расстояние
1131.57.0.0 (S1)
255.255.255.0
R3
1
Подключена
j 131.57.2.0 (S2)
255.255.255.0
R3
3
1
1131.57.4.0 (S3)
255.255.254.0
R1
3
1
131.57.8.0 (S)
255.255.252.0
R1
2
Подключена
Маршрут по умолчанию
о.о.о.о
Roxierna!
4
-
Итак, внедрение технологии CIDR позволяет решить две основные задачи.
□ Более экономное расходование адресного пространства. Благодаря технологии CIDR поставщики услуг получают возможность «нарезать» блоки из выделенного им адресного пространства в точном соответствии с требованиями каждого клиента, при этом у клиента остается пространство для маневра на случай будущего роста.
□ Уменьшение числа записей в таблицах маршрутизации за счет объединения маршрутов — одна запись в таблице маршрутизации может представлять большое количество сетей. Если все поставщики услуг Интернета начнут придерживаться стратегии CIDR, то особенно заметный выигрыш будет достигаться в магистральных маршрутизаторах.
; Сеть клиента S3 \ 131.57.4.0/23
Сеть S нового клиента (131.57.8.0/22)
Рис. 16.19. Объединение подсетей
К сожалению, сейчас распределение адресов носит во многом случайный характер. Ка динальный путь решения проблемы — перенумерование сетей. Однако эта процедура с пряжена с определенными временными и материальными затратами, и для ее проведен) пользователей нужно каким-либо образом стимулировать. В качестве таких стимул рассматривается, например, введение оплаты за строку в таблице маршрутизации или же количество узлов в сети. Первое требование подводит потребителя к мысли получить у г ставщика услуг такой адрес, чтобы маршрутизация трафика в его сеть шла на основан префикса, и номер его сети не фигурировал больше в магистральных маршрутизатор Требование оплаты каждого адреса узла также может подтолкнуть пользователя решин на перенумерование с тем, чтобы получить ровно столько адресов, сколько ему нужно.
Технология CIDR уже успешно используется в текущей версии протокола IP (IPv4) и го держивается такими протоколами маршрутизации, как OSPF, RIP-2, BGP4 (в основи на магистральных маршрутизаторах Интернета). Особенности применения технолш
птл р D иг\глг\1ж ооп/чш пплфлт/лтто ТО (ТОттТТ17Т полл!тФЛтп.т та гттотал Л Q
Фрагментация IP-пакетов
Важной особенностью протокола IP, отличающей его от других сетевых протоколов (например, от сетевого протокола IPX, который какое-то время назад конкурировал с IP), является его способность выполнять динамическую фрагментацию пакетов при передаче их между сетями с различными максимально допустимыми значениями длины поля данных кадров (Maximum Transmission Unit, MTU). Значения MTU зависят как от протокола, так и от настройки сетевых интерфейсов.
Прежде всего отметим разницу между фрагментацией сообщений в узле-отправителе и динамической фрагментацией сообщений Ь транзитных узлах сети — маршрутизаторах.
В первом случае деление сообщения на несколько более мелких частей (фрагментация) происходит при передаче данных между протоколами одного и того же стека внутри компьютера. Протоколы, выполняющие фрагментацию в пределах узла, анализируют тип технологии нижнего уровня, определяют ее MTU и делят сообщения на такие части, которые умещаются в кадры канального уровня того же стека протоколов.
В стеке TCP/IP эту задачу решает протокол TCP, который разбивает поток байтов, передаваемый ему с прикладного уровня, на сегменты нужного размера, например, по 1460 байт, если на нижнем уровне данной сети работает протокол Ethernet. Протокол IP в узле-отправителе, как правило, не использует свои возможности по фрагментации пакетов.
А вот на транзитном узле — маршрутизаторе, когда пакет необходимо передать из сети с большим значением MTU в сеть с меньшим значением MTU, способности протокола IP выполнять фрагментацию становятся востребованными. Пакеты-фрагменты, путешествуя по сети, могут вторично подвергнуться фрагментации на каком-либо из промежуточных маршрутизаторов.
Параметры фрагментации
Каждый из фрагментов должен быть снабжен полноценным заголовком IP. Некоторые из полей заголовка (идентификатор, TTL, флаги DF и MF, смещение) непосредственно предназначены для последующей сборки фрагментов в исходное сообщение.
Q Идентификатор пакета используется для распознавания пакетов, образовавшихся путем деления на части (фрагментации) исходного пакета. Все части (фрагменты) одного пакета должны иметь одинаковое значение этого поля. Модуль IP, отправляющий пакет, устанавливает в поле идентификатора значение, которое должно быть уникальным для данной пары отправителя и получателя в течение всего времени, пока данный пакет (или любой его фрагмент) может существовать в составной 1Р-сети.
Q Поле времени жизни (Time То Live, TTL) занимает один байт и определяет предельный срок, в течение которого пакет может перемещаться по сети. Время жизни пакета измеряется в секундах и задается источником (отправителем). Как уже отмечалось в начале этой главы, по истечении каждой секунды пребывания на каждом из маршрутизаторов, через которые проходит пакет во время своего «путешествия» по сети, из его текущего времени жизни вычитается единица; единица вычитается и в том случае, если время пребывания было меньше секунды. Поскольку современные маршрутизаторы редко обрабатывают пакет дольше, чем за одну секунду, то время жизни можно интерпретировать как максимальное число транзитных узлов, которые разрешено пройти пакету. Если значение поля времени жизни становится нулевым до того, как пакет достигает получателя, пакет уничтожается. При сборке фрагментов хост-получатель использует значение TTL как крайний срок ожидания недостающих фрагментов.
□ Поле смещения фрагмента предоставляет получателю информацию о положении фрагмента относительно начала поля данных исходного нефрагментированного пакета. Так, например, первый фрагмент будет иметь в поле смещения нулевое значение. В пакете, не разбитом на фрагменты, поле смещения также имеет нулевое значение. Смещение задается в байтах и должно быть кратно 8 байт.
□ Установленный в единицу однобитный флаг MF (More Fragments — больше фрагментов) говорит о том, что данный пакет является промежуточным (не последним) фрагментом. Модуль IP, отправляющий нефрагментированный пакет, устанавливает бит MF в нуль.
□ Флаг DF (Do not Fragment — не фрагментировать), установленный в единицу, запрещает маршрутизатору фрагментировать данный пакет. Если помеченный таким образом пакет не может достигнуть получателя без фрагментации, то модуль IP его уничтожает, а узлу-отправителю посылается диагностическое сообщение.
ПРИМЕЧАНИЕ-
Возможность запретить фрагментацию позволяет в некоторых случаях ускорить работу приложений. Для этого вначале необходимо исследовать сеть, определить максимальный размер пакета, который сможет пройти весь путь без фрагментации, а затем использовать пакеты такого или меньшего размера для обмена данными. Данная возможность позволяет также предотвратить фрагментацию в тех случаях, когда хост-получатель не имеет достаточных ресурсов для сборки фрагментов.
Механизм фрагментации
Рассмотрим механизм фрагментации на примере составной сети, показанной на рис. 16.20.
В одной из подсетей (Frame Relay) значение MTU равно 4080, в другой (Ethernet) — 1492. Хост, принадлежащий сети Frame Relay, передает данные хосту в сети Ethernet. На обоих хостах, а также на маршрутизаторе, связывающем эти подсети, установлен стек протоколов TCP/IP.
Транспортному уровню хоста-отправителя известно значение MTU нижележащей технологии (4080). На основании этого модуль TCP и «нарезает» свои сегменты размером 4000 байт и передает вниз протоколу IP, который помещает сегменты в поле данных IP-пакетов и генерирует для них заголовки. Обратим особое внимание на заполнение тех полей заголовка, которые прямо связаны с фрагментацией:
□ пакету присваивается уникальный идентификатор, например 12456;
□ поскольку пакет пока еще не был фрагментирован, в поле смещения помещается значение 0;
□ признак MF также обнуляется, это показывает, что пакет одновременно является и своим последним фрагментом;
□ признак DF устанавливается в 1, это означает, что данный пакет можно фрагментировать.
Общая величина IP-пакета составляет 4000 плюс 20 (размер заголовка IP), то есть 4020 байт, что умещается в поле данных кадра Frame Relay, которое в данном примере равно 4080. Далее модуль IP хоста-отправителя передает этот кадр своему сетевому интерфейсу Frame Relay, который отправляет кадры следующему маршрутизатору.
Модуль IP маршрутизатора по сетевому адресу прибывшего IP-пакета определяет, что пакет нужно передать в сеть Ethernet. Однако она имеет значение MTU, равное 1492, что значительно меньше размера поступившего на входной интерфейс пакета. Следовательно, IP-пакет необходимо фрагментировать. Модуль IP выбирает размер поля данных фрагмента равным 1000, так что из одного большого IP-пакета получается 4 маленьких пакета-фрагмента. Для каждого фрагмента и его заголовка IP в маршрутизаторе создается отдельный буфер (на рисунке фрагменты и соответствующие им буферы пронумерованы от 1 до 4). Протокол IP копирует в эти буферы содержимое некоторых полей заголовка IP исходного пакета, создавая тем самым «заготовки» заголовков IP всех новых пакетов-фрагментов. Одни параметры заголовка IP копируются в заголовки всех фрагментов, другие — лишь в заголовок первого фрагмента.
В процессе фрагментации могут измениться значения некоторых полей заголовков IP в пакетах-фрагментах по сравнению с заголовком IP исходного пакета. Так, каждый фрагмент имеет собственные значения контрольной суммы заголовка, смещения фрагмента и общей длины пакета. Во всех пакетах, кроме последнего, флаг MF устанавливается в единицу, а в последнем фрагменте — в нуль. Полученные пакеты-фрагменты имеют длину 1020 байт (с учетом заголовка IP), поэтому они свободно помещаются в поле данных кадров Ethernet.
На рисунке показаны разные стадии перемещения фрагментов по сети. Фрагмент 2 уже достиг хоста-получателя и помещен в приемный буфер. Фрагмент 1 еще перемещается по сети Ethernet, остальные фрагменты находятся в буферах маршрутизатора.
А теперь обсудим, как происходит сборка фрагментированного пакета на хосте назначения.
ПРИМЕЧАНИЕ-
Отметим, что IР-маршрутизаторы не собирают фрагменты пакетов в более крупные пакеты, даже если на пути встречается сеть, допускающая такое укрупнение. Это связано с тем, что отдельные фрагменты сообщения могут перемещаться по составной сети разными маршрутами, поэтому нет гарантии, что все фрагменты на своем пути пройдут через какой-то один определенный маршрутизатор.
На хосте назначения для каждого фрагментированного пакета отводится отдельный буфер. В этот буфер принимающий протокол IP помещает IP-фрагменты, у которых совпадают IP-адреса отправителя и получателя, а также значения в полях идентификатора (в нашем примере — 12456). Все эти признаки говорят модулю IP, что данные пакеты являются фрагментами одного исходного пакета. Сборка заключается в помещении данных из каждого фрагмента в позицию, определенную смещением, указанным в заголовке фрагмента.
Когда первый фрагмент исходного пакета приходит на хост-получатель, этот хост запускает таймер, который определяет максимальное время ожидания прибытия остальных фрагментов данного пакета. В различных реализациях IP применяются разные правила выбора максимального времени ожидания. В частности, таймер может быть установлен на фиксированный период времени (от 60 до 120 секунд), рекомендуемый RFC. Как правило, этот интервал достаточен для доставки пакета от отправителя получателю. В других реализациях максимальное время ожидания определяется с помощью адаптивных алгоритмов измерения и статистической обработки временных параметров сети, позволяющих оценивать ожидаемое время прибытия фрагментов. Наконец, тайм-аут может быть выбран на базе значений TTL прибывающих фрагментов. Последний подход основан на том, что нет смысла ожидать, пока прибудут другие фрагменты пакета, если время жизни одного из прибывших фрагментов уже истекло.
ПРИМЕЧАНИЕ-
Если хотя бы один фрагмент пакета не успеет прийти на хост назначения к моменту истечения таймера, то никаких действий по дублированию отсутствующего фрагмента не предпринимается, а все полученные к этому времени фрагменты пакета отбрасываются! Хосту, пославшему исходный пакет, направляется ICMP-сообщение об ошибке. Такому поведению протокола IP вполне соответствует его кредо «с максимальными усилиями» — стараться по возможности, но никаких гарантий не давать.
Признаком окончания сборки является отсутствие незаполненных промежутков в поле данных и прибытие последнего фрагмента (с равным нулю флагом MF) до истечения тайм-аута. После того как данные собраны, их можно передать вышележащему протоколу, например TCP.
Выводы
Протокол IP решает задачу доставки сообщений между узлами составной сети. Поскольку он является дейтаграммным, никаких гарантий надежной доставки сообщений не дается.
Максимальная длина IP-пакета составляет 65 535 байт. Заголовок обычно имеет длину 20 байт и содержит информацию о сетевых адресах отправителя и получателя, параметры фрагментации, время жизни пакета, контрольную сумму и некоторые другие параметры.
Вид таблицы IP-маршрутизации зависит от конкретной реализации маршрутизатора. Несмотря на значительные внешние различия выводимых на экран таблиц, все они включают два обязательных поля — это поля адреса назначения и следующего маршрутизатора.
Записи в таблицу маршрутизации могут поступать из разных источников. Во-первых, в результате конфигурирования программное обеспечение стека TCP/IP заносит в таблицу записи о непосредственно подключенных сетях и маршрутизаторах по умолчанию, а также записи об особых адресах. Во-вторых, администратор вручную заносит записи о специфических маршрутах и о маршруте по умолчанию. В-третьих, протоколы маршрутизации автоматически заносят в таблицу динамические записи об имеющихся маршрутах.
Эффективным средством структуризации IP-сетей являются маски. Маски позволяют разделить одну сеть на несколько подсетей или объединить несколько сетей в одну более крупную сеть.
Значительная роль в будущих IP-сетях отводится технологии бесклассовой междоменной маршрутизации (CIDR), которая решает две основные задачи. Первая состоит в более экономном расходовании адресного пространства, вторая — в уменьшении числа записей в таблицах.
Все материалы, размещенные в боте и канале, получены из открытых источников сети Интернет, либо присланы пользователями бота. Все права на тексты книг принадлежат их авторам и владельцам. Тексты книг предоставлены исключительно для ознакомления. Администрация бота не несет ответственности за материалы, расположенные здесь