В начале 90-х для размещения маршрутной таблицы в маршрутизаторе хватало 4-8Мбайт, но требования быстро росли, и это стимулировало широкое внедрение идеологии автономных систем (AS). На какое-то время AS позволили решить проблему, но к 2005-му году требования к памяти маршрутизатора возросли до 100Мбайт, и это не предел.
Давайте сначала прикинем, со сколькими сетевыми узлами вы и сотрудники вашего подразделения устанавливаете связь в течение рабочего дня. Это число нестабильно, зависит от характера работы и сильно варьируется от человека к человеку. Но, очевидно, что это число вряд ли превышает нескольких сотен и слабо меняется со временем. Таким образом, для обеспечения требуемых маршрутов объем маршрутной таблицы, если бы он содержал только используемые вами IP-адреса, был бы незначительным. При этом поиск в такой таблице занимал бы на порядок меньше времени (RTT сокращается на порядок).
Именно идея сохранения в маршрутной таблице только реально используемых виртуальных путей и легла в основу разработки протокола MPLS и сопряженных с ним протоколов маршрутизации.
По мере разработки этой технологии стало ясно, что протокол MPLS (Multi Protocol
Интернет — это система взаимодействия удаленных программ. Совместимость этих программ гарантируется тем, что они следуют определенным регламентациям (протоколам). Управление трафиком представляет собой проблему, ставшую актуальной за последние несколько лет (если не считать ее составляющую, сопряженную с управлением перегрузкой).
Период экстенсивного развития сети Интернет завершился несколько лет тому назад даже в РФ. Сейчас многие сервис-провайдеры пытаются привлечь клиентов дополнительными информационными услугами: IP-телефония, интерактивные игры, доступ к разнообразным базам данных и депозитариям, электронным магазинам, видеоконференциям, видеотелефонии, различным разновидностям
Около 10 лет назад началась разработка первого протокола RSVP (RFC-2205). В нем осуществляется резервирование полосы пропускания (интегральный сервис) вдоль виртуального пути. Запрос резервирования посылает получатель трафика, а исполнителями запроса являются маршрутизаторы, обслуживающие виртуальный путь этого трафика.
Если рассмотреть ситуацию на уровне L2, мы увидим, что здесь имеется сильная зависимость от физического уровня (L1). В сетях с маркерным доступом (например, Token Ring, см. book.itep.ru) существуют механизмы управления приоритетом и способы контроля доступа, гарантирующие определенное значение задержек сетевого отклика. В сетях ISDN и в особенности в ATM предусмотрен целый арсенал средств управления, работающих на фазе установления виртуального канала (процедура SETUP). Для Ethernet до последнего времени ситуация была много хуже. Здесь только некоторые переключатели поддерживают VLAN с приоритетами. Технология виртуальных сетей L2 позволяет сформировать в локальной сети соединение точка-точка. В таком соединении можно гарантировать пропускную способность на уровне 10/100Мбит/c. К сожалению, VLAN L2 создаются и модифицируются, как правило, администратором, но можно эту проблему перепоручить сценарию, например, на PERL, работающему с демоном SNMP сетевого прибора. В такой сети можно также гарантировать низкий уровень разброса времени реакции сети. Если сформировать VLAN с числом узлов (N) больше двух, можно гарантировать полосу лишь не ниже (10/100)/N. Для произвольной сети Ethernet никаких гарантий на уровне L2 предоставить нельзя. Здесь можно рассчитывать только на вышележащие уровни (IP/TCP/UDP).
Принципы организации приоритетного трафика на уровне L2 рассмотрены в стандарте 802.1р. Стандарт 802.1р является частью стандарта 802.1D (мостовые соединения). В протоколе 802.1Q определены 4-байта метки (смотри рис. 11.1). Поле EtherType=TPID (Tagged Protocol Identifier) содержит код 0x8100 (смотри главу об Ethernet). Это поле соответствует полю тип протокола стандартного поля кадра Ethernet и указывает на необходимость обработки кадра согласно требованиям
Топология связей в локальной сети на уровне L3 определяется протоколами маршрутизации (статическими или динамическими — RIP, OSPF,
Протокол (см. IP) предусматривает задание значение ToS, определяемое соответствующим полем заголовка. Однооктетное поле тип сервиса (TOS — Type Of Service) характеризует то, как должна обрабатываться дейтаграмма.
Субполе приоритет предоставляет возможность присвоить код приоритета каждой дейтаграмме. Значения приоритетов приведены в таблице.
| 0 | Обычный уровень |
| 1 | Приоритетный |
| 2 | Немедленный |
| 3 | Срочный |
| 4 | Экстренный |
| 5 | CEITIC/ |
| 6 | Межсетевое управление |
| 7 | Сетевое управление |
В новейших разработках (RFC-2474, Definition of the
До середины 90-х годов поле ToS в большинстве реализаций игнорировалось. Но после начала разработок средств обеспечения качества обслуживания (QoS) внимание к этому возросло. Появилось предложение замены поля TOS на поле DSCP, которое также имеет 8 бит (см. RFC-2474). (Смотри рис. 11.1.) Старшие биты CU пока не определены. Иногда это поле называется байтом DS (
(рис 11.1) Формат поля DSCPБиты DS0-DS5 определяют селектор класса. Значения этого кода представлены в таблице ниже. Стандартным значением DSCP по умолчанию является 000000.
| Селектор класса | DSCP |
|---|---|
| Приоритет 1 | 001000 |
| Приоритет 2 | 010000 |
| Приоритет 3 | 011000 |
| Приоритет 4 | 100000 |
| Приоритет 5 | 101000 |
| Приоритет 6 | 110000 |
| Приоритет 7 | 111000 |
На базе DSCP разработана технология пошагового поведения PHB (per Hop Behavior). В рамках этой политики определяются коды DSCP внутри классов. Например, для политики немедленной переадресации EF рекомендуемое значение DSCP=101110. Эта политика соответствует наиболее высокому уровню обслуживания.
В маршрутизаторах компании CISCO Systems для классификации пакетов и выбора очередей используются два младших бита из трех. По умолчанию классу 0 выделяется 10% полосы, а классам 1, 2 и 3 — 20%, 30% и 40%, соответственно. Для очередей, основанных на классах QoS, пакеты, не принадлежащие ни одной группе, относятся к группе 0 и автоматически получают 1% от
Серьезное влияние на качество обслуживания оказывает перегрузка. Впрочем, если бы перегрузка никогда не возникала, не нужно было бы заботиться о качестве обслуживания, — оно было бы всегда гарантировано.
Строго говоря, значения TOS и QOS не эквивалентны, но именно значение поля ToS является базой для задания QoS. Присваивая при формировании IP-пакета определенное значение поля ToS, прикладная программа может попытаться реализовать определенные ограничения на QoS. Это поле может анализироваться маршрутизаторами, которые поддерживают протокол RSVP или MPLSTE, способные управлять трафиком.
Под управлением трафиком здесь и далее подразумевается обеспечение QoS, управление перегрузкой и средства перераспределения потоков данных. В протоколе UDP нет никаких средств управления трафиком, в ТСР имеются механизмы управления перегрузкой.
Кое-что предлагает набор протоколов RTP/
Существенную проблему составляет необходимость идентифицировать пакеты, принадлежащие определенному процессу. Эта задача легко решается только в рамках протокола IPv6. Там в заголовке предусмотрено поле
В настоящее время используется несколько методов управления трафиком.
QoS связана с возможностью сети предоставить клиенту необходимый ему уровень услуг в условиях работы поверх сетей с самыми разнообразными технологиями, включая Frame Relay, ATM, Ethernet, сети 802.1,
QoS представляет собой собрание технологий, которые позволяют приложениям запрашивать и получать предсказуемый уровень услуг с точки зрения пропускной способности, временного разброса задержки отклика, а также общей задержки доставки данных. В частности, QoS подразумевает улучшение параметров или достижение большей предсказуемости предоставляемых услуг. Это достигается следующими методами:
IEFT определяет для QoS следующие две архитектуры:
Управление перегрузкой может осуществляться путем изменения порядка, в котором посылаются пакеты согласно приписанного им приоритета. QoS-управление перегрузкой имеет четыре модификации протоколов управления очередями, каждый из которых позволяет организовать разное число очередей. L2 QoS предполагает следующее:
Основы протокола MPLS описаны в официальных документах RFC [11.3-11.9 и 11.14]. Существуют публикации и на русском языке [11.11-11.13]. Имеются три монографии, посвященных рассматриваемой проблематике [11.17-11.19].
Принципиальной основой MPLS являются
Для обеспечения структурирования потоков в пакете создается стек меток, каждая из которых имеет свою зону действия. Формат стека меток представлен на рис. 11.2 и 11.3 (смотри RFC-3032). В нормальной ситуации стек меток размещается между заголовками сетевого и канального уровней (соответственно L2 и L3). Каждая

(рис 11.3) Формат стека меток (рис 11.2) Размещение меток в стекеМесто заголовка МАС может занимать заголовок РРР. В случае работы с сетями АТМ метка может занимать поля
(рис 11.4) Формат меток в ячейках АТМНа рисунке 11.2 поле СoS соответствует субполю приоритет поля ToS. Поле CoS имеет три бита, этого достаточно для поля приоритета IP-заголовка. 6-битовое поле кода дифференцированной услуги DSCP сюда записать нельзя. Можно попробовать разместить этот код в поле самой метки. S — флаг-указатель дна стека меток; TTL — время жизни пакета MPLS.
Существующие версии программного обеспечения Cisco IOS (например, Cisco IOS Release 12.0) содержат набор средств управления трафиком. В частности, имеется возможность формировать статические маршруты и управлять динамическими маршрутами путем манипулирования значениями метрики. Иногда этого вполне достаточно, но в большинстве случаев провайдер нуждается в более эффективных средствах.
Межрегиональные каналы являются одной из основных расходных статей провайдеров. Управление трафиком позволяет IP-провайдеру предложить оптимальный уровень услуг своим клиентам с точки зрения полосы и задержки. Одновременно эта технология снижает издержки обслуживания сети.
MPLS представляет собой интеграцию технологий уровней L2 и L3. Управление трафиком в MPLS реализуется путем предоставления традиционных средств уровня L2 уровню L3. Таким образом, можно предложить в односвязной сети то, что достижимо только путем наложения уровня L3 на уровень L2.
Управление коммутацией по меткам основывается на базе данных LIB (Label Information Base). Пограничный маршрутизатор MPLS
(рис 11.5) Обработка помеченных и обычных IP-пакетовУправление трафиком MPLS автоматически устанавливает и поддерживает туннель через опорную сеть, применяя возможности RSVP. Путь, используемый данным туннелем, в любой момент времени определяется на основе ресурсных требований и сетевых возможностей, таких, как полоса пропускания. Но MPLS может решать проблему обеспечения требуемого уровня QoS и самостоятельно.
Информация об имеющихся ресурсах доводится до сведения заинтересованных субъектов с помощью протокола
Путь туннеля вычисляется, основываясь на сформулированных требованиях и имеющихся ресурсах (constraintbased routing).
Одним из подходов управления опорной сетью является определение сети туннелей между всеми участниками обменов. Протокол
Иногда поток настолько велик, что его нельзя пропустить через один канал (туннель). В этом случае может быть создано несколько туннелей между отправителем и получателем.
Для реализации MPLS управления трафиком сеть должна поддерживать следующие возможности Cisco IOS:
Дополнительные данные о MPLS и управлении трафиком можно найти в документации Cisco (поддерживается в реализациях 7620, 7640, 7200, 7500 и 12000).
Протоколы состояния канала типа IS-IS для вычисления кратчайшего пути для всех узлов сети используют алгоритм Дикстры
Новые алгоритмы управления трафиком вычисляют пути до одного или более узлов в сети. Эти маршруты рассматриваются как логические интерфейсы исходного маршрутизатора. В данном контексте эти маршруты представляют собой LSP и рассматриваются как TE-туннели (
Эти TE-туннели являются реальными маршрутами, контролируемыми маршрутизаторами, которые размещены в начале этих туннелей. В отсутствие ошибок TE-туннели гарантируют отсутствие петель, но маршрутизаторы должны согласовать использование TE-туннелей — иначе могут стать возможными зацикливания двух или более таких туннелей. Вероятность возникновения такой ситуации незначительна, так как трасса туннеля определяется отправителем.
Управление трафиком MPLS
В рекомендациях CISCO [15] можно прочесть, что MPLS позволяет провайдеру маршрутизировать потоки данных так, чтобы клиенту гарантировать минимум задержки и максимум пропускной способности.
Сформировав несколько виртуальных сетей для заданного набора узлов, можно попытаться объединять возможности этих сетей в случае возникновения такой необходимости, увеличивая пропускную способность. Можно для каждой из субсетей использовать разный уровень QoS с помощью протокола RSVP. Рассматривается внедрение протокола RSVP на уровень L2 [11.34].
Поскольку пакеты в случае протокола сетевого уровня без установления соединения переносятся от одного маршрутизатора к другому, каждый из них совершенно независим в принятии решения переадресации. То есть, каждый маршрутизатор анализирует заголовок пакета и каждый маршрутизатор реализует
При обычной IP-переадресации маршрутизатор рассматривает два пакета как принадлежащие к одному
В MPLS присвоение пакету определенного
В парадигме переадресации MPLS, поскольку пакет приписан определенному
Некоторые маршрутизаторы анализируют заголовок пакета сетевого уровня не только с целью выбора следующего шага, но и для определения приоритета и класса услуг. Они могут затем применить различные пороги отсева или графика обслуживания пакетов. MPLS допускает (но не требует) приоритетность или класс обслуживания, зависящие полностью или частично от метки. В этом случае можно сказать, что метка представляет собой комбинацию
(
Группа IP-пакетов, которые переадресуются каким-то образом (например, по тому же маршруту, с той же маршрутной обработкой)
Label merging — объединение меток
Замещение множественных приходящих меток для определенного
Label swap — инверсия меток
Базовая операция переадресации, состоящая из просмотра входной метки с целью определения выходной метки, инкапсуляции, порта и другой информации, сопряженной с обработкой поступающих данных
Label swapping
Парадигма переадресации, позволяющая осуществлять переадресацию данных путем использования меток для идентификации классов информационных пакетов, которые обрабатываются при переадресации неразличимым образом
Шаг между двумя узлами MPLS, на которые осуществляется переадресация с привлечением меток
— путь с коммутацией меток
Путь через один или более
Label
Узел MPLS, который способен переадресовывать пакеты L3 согласно их меткам
Loop detection — детектирование петель
Метод, при котором разрешено формирование петлевых маршрутов; такие структуры позднее выявляются
Loop prevention — предотвращение петель
Метод, при котором данные никогда не передаются по петлевым маршрутам
Merge point
Узел, в котором произведено объединение меток
MPLS domain — домен MPLS
Непрерывный набор узлов, реализующих MPLS-маршрутизацию и находящихся в одном маршрутном и административном домене
MPLS edge node — пограничный узел MPLS
Узел MPLS, который соединяет MPLS-домен с узлом, находящимся вне домена, потому что он не поддерживает MPLS, и/или из-за того, что он размещен в другом домене. Заметим, что если
MPLS — выходной узел MPLS
Пограничный узел MPLS, если через него трафик выходит из домена MPLS
MPLS ingress node — входной узел MPLS
Пограничный узел MPLS, если через него трафик входит в домен MPLS
MPLS label — метка MPLS
Метка, которая содержится в заголовке пакета и которая представляет
MPLS node — узел MPLS
Узел, поддерживающий протокол MPLS. Узел MPLS распознает протоколы управления MPLS, реализует один или более протоколов маршрутизации L3 и способен переадресовывать пакеты на основе меток. Узел MPLS может опционно переадресовывать L3 пакеты в традиционном режиме
VC merge — объединение VC
Объединение меток, когда метка MPLS переносится в поле ATM
VP merge — объединение VP
Объединение меток, когда метка MPLS переносится в поле ATM
Метка, используемая в сетях ATM для идентификации виртуального канала
— Data Link Circuit Identifier — идентификатор канала передачи данных
— Forwarding
—
— Interior Gateway Protocol — внутренний протокол маршрутизации
— Incoming Label Map — таблица соответствия входящих меток
— Label Distribution Protocol — протокол пересылки меток
LSP —
— Label
— Next Hop Label Forwarding Entry — запись, содержащая адрес следующего шага при коммутации меток
SVC — Switched
SVP — Switched
VC —
—
VP —
—
Метка является коротким идентификатором фиксированной длины, который используется для идентификации
Если Ru и Rd являются L, если и только если пакет принадлежит определенному классу . То есть, они могут согласовать соответствие между меткой L и F для пакетов, транспортируемых от Ru к Rd. В результате такого соглашения L становится выходной меткой Ru, представляющей , а L становится входной меткой Rd.
Заметим, что L не обязательно представляет для любого пакета, посланного не Ru и адресованного не Rd. L имеет произвольное значение, чья связь F с Ru и Rd является локальной.
Когда говорится, что пакеты посланы из Ru в Rd, это не означает, что пакеты сформированы в Ru или что местом назначения является Rd. Скорее, мы подразумеваем, что пересылаемые пакеты поступают в один или оба
Иногда может оказаться трудно или даже невозможно для Rd сообщить о прибывающих пакетах с меткой L, помещенной в пакет Ru, а не каким-то другим , в то время как с другим согласовано соответствие L с другим , если только Rd не может при получении пакетов с меткой L всегда оповещать, вложена ли в пакет метка Ru1 или Ru2. Гарантия однозначной интерпретации меток находится в зоне ответственности
Предположим, что Ru и Rd договорились о соответствии метки L и для пакетов, посланных из Ru в Rd. Тогда, с учетом этого соответствия, Ru является вышестоящим
Узел является вышестоящим, а другой нижестоящим с учетом того, что в данной ассоциации (метки и класса) метка представляет определенный
Помеченным пакетом является пакет, в заголовке которого имеется метка. В некоторых случаях метка размещается в заголовке инкапсуляции, который введен специально для этой цели. В других ситуациях метка может помещаться в структуре, описывающий информационный канал или в существующем заголовке сетевого уровня, если имеется поле, предназначенное для этой цели.
Метод кодирования метки должен быть согласован субъектом, ее формирующим, и субъектом-адресатом.
В архитектуре MPLS, решение об установлении соответствия конкретной метки L и класса принимается
Если
Конкретная ассоциация метки L и класса , анонсируемая Rd для Ru, может иметь соответствующие атрибуты. Если Ru работает как нижестоящий , тогда при определенных обстоятельствах, может оказаться нужно разослать соответствующий атрибут, полученный от Rd.
Протокол рассылки меток представляет собой набор процедур, с помощью которых один
Протокол рассылки меток включает в себя также любые согласования, при которых партнеры изучают возможности друг друга.
Архитектура не предполагает, что должен существовать только один протокол рассылки меток (см. описание протокола
Архитектура MPLS позволяет
Архитектура MPLS позволяет также
Ожидается, что некоторые реализации MPLS будут осуществлять рассылку меток только в режиме downstreamondemand, другие — только в режиме unsolicited
Ru теперь имеет выбор, следует ли ему отслеживать такие ассоциации или отбрасывать их. Если Ru отслеживает такие ассоциации, тогда он может немедленно начать использование этой ассоциации, если Rd в конце концов, станет его следующим шагом для заданного
Свободный режим удержания меток допускает быструю адаптацию к маршрутным изменениям, а консервативный режим сохранения меток требует от
До сих пор мы обсуждали проблему в предположении, что помеченные пакеты несут в себе только одну метку. Как мы увидим, полезно иметь более обобщенную модель, в которой помеченные пакеты несут в себе несколько меток, уложенных в порядке последний_вошел-первым_вышел (LIFO). Мы будем называть это стеком меток.
Хотя, как это мы увидим, MPLS поддерживает иерархию, обработка помеченных пакетов совершенно не зависит от уровня иерархии. Обработка всегда базируется на верхней метке, без учета того, что некоторое число других меток лежало поверх данной в прошлом, или того, что какое-то их число лежит под ней сейчас.
Непомеченный пакет может рассматриваться как пакет, чей стек меток пуст (т.e., глубина стека которого равна 0).
Если стек пакетных меток имеет глубину m, мы считаем, что метка на дне стека размещена на уровне 1, метка над ней (если таковая имеется) имеет уровень 2, а метка наверху стека имеет уровень m. На рис. 11.6 показана эволюция содержимого стека меток в процессе доставки пакетов от отправителя к получателю.
(рис 11.6) Эволюция стека метокНа вход сети MPLS пакет попадает в узле А1. Здесь пакету присваивается метка, и он переадресуется далее. После передачи пакета из узла сетевого провайдера B1 -> B4 ). После передачи пакета из узла В4 в узел С1 в стек меток добавляется еще одна метка. Когда пакет покидает сеть
Запись Next Hop Label Forwarding (NHLF Entry) применяется при переадресации помеченных пакетов. Здесь содержится информация о:
Она может также содержать:
Заметим, что для данного
Это подразумевает, что в некоторых случаях
Если следующим шагом пакета является текущий
Incoming Label Map (
Если
Методика
Обмен меток (Label swapping) представляет собой использование следующих процедур для переадресации пакетов. Чтобы переадресовать помеченный пакет,
Чтобы переадресовать непомеченный пакет,
Важно заметить, что, когда используется коммутация меток, следующий шаг всегда берется из
Данный и переправить эту ассоциацию партнеру Ru1. Rd может также связать метку L2 с и переправить эту ассоциацию партнеру Ru2. Является ли L1 == L2, не определяется архитектурой, это вопрос исключительно локальный.
Данный и переправить эту ассоциацию партнеру Ru1. Rd может также связать метку L с и переправить эту ассоциацию партнеру Ru2. Если и только если Rd может сообщить, когда он получает пакет с меткой на верху стека равной L, занесена ли она в стек RU1 или RU2, архитектура не требует равенства F1 == F2. В таких случаях мы можем сказать, что Rd использует другое пространство меток, которые он пересылает Ru1, по отношению меток, посылаемых Ru2. Вообще, Rd может лишь сообщить, Ru1 или Ru2 положил данную метку со значением L на верх стека, если выполнены следующие условия:
Когда эти условия выполнены,
Если конкретный , так же, как ассоциацию метки L с , F1 != F2, если и только если каждая ассоциация корректна для пакетов, которые Ru посылает Rd через один из интерфейсов. Во всех других случаях Rd не должен посылать ассоциации Ru, сопрягающие одну и ту же метку с двумя разными
Этот запрет сохраняется, даже если ассоциации относятся к различным уровням иерархии. В MPLS не существует понятия разных пространств меток для различных уровней иерархии, — когда метка интерпретируется, уровень метки значения не имеет.
Возникает вопрос, может ли
Маршрут с коммутацией меток (LSP) уровня m для определенного пакета P представляет собой последовательность маршрутизаторов <R1, ..., Rn> со следующими свойствами:
m ;i, 1<i<n, P (когда он приходит в m ;P от R1 к R[n-1] глубина стека не будет меньше m ;i, 1<i<n: Ri передает P в R[i+1] посредством MPLS, т.e. путем использования метки в верхней позиции стека (метка уровня m) в качестве индекса в i, 1<i<n: если система S получает и переадресует P после того, как P передан Ri, но до того, как P получен, R[i+1] (например, Ri и R[i+1] могут быть соединены через коммутируемую субсеть и S может быть одним из переключателей информационного канала); далее решение переадресации S не базируется на метке уровня m или на основе заголовка сетевого уровня. Возможные причины этого:a) решение не основано на содержимом стека или заголовка сетевого уровня;
b) решение основано на содержимом стека, куда положены другие метки (т.e., на метке уровня m+k, где k>0 ).
Другими словами, мы можем описать уровень m LSP для пакета P как последовательность маршрутизаторов, которая:
m ;m ;m-k, где k>0, или когда решение переадресации делается традиционно, посредством не-MPLS процедур.Следствием (или, пожалуй, предпосылкой) этого является то, что, когда бы .
Рассмотрим набор узлов, которые могут быть входными LSP-узлами для . Тогда существует LSP для , который начинается с каждого из этих узлов. Если некоторое число этих LSP имеет идентичный выходной LSP, тогда можно рассматривать набор таких LSP как дерево, чьим корнем является выход LSP. Так как данные переносятся вдоль этого дерева по направлению к корню, эта структура может быть названа деревом мультиточка-точка. Мы можем, таким образом, говорить о дереве LSP для определенного .
Заметим, что согласно стандартным определениям, если <R1, ..., Rn> является LSP уровня m для пакета P, P может быть передан от R[n-1] к Rn с глубиной стека меток m-1. То есть, может быть выполнена операция pop для стека меток в предпоследнем
С архитектурной точки зрения это вполне приемлемо. Целью метки уровня m является доставка пакета в Rn. Раз R[n-1] решил послать пакет Rn, метка не имеет более значения и не должна далее транспортироваться.
Имеется также практическое преимущество извлечения данных о предпоследнем шаге. Если так не сделать, тогда при получении пакета выходной LSP сначала просматривает верхнюю метку из стека и определяет, что это действительно выходной LSP. Затем он должен извлечь из стека метку и проверить, что осталось в стеке пакета. Если в стеке имеется другая метка, выходное устройство анализирует метку и осуществляет пересылку пакета на основе этого анализа. (В этом случае выходное устройство для пакетов уровня m является промежуточным узлом для его уровня m1 LSP). Если в стеке нет других меток, тогда пакет переадресуется согласно его адресу места назначения сетевого уровня. Заметим, что это потребует от выходного устройства двух просмотров: либо просмотра двух меток, либо просмотра метки с последующим анализом сетевого адреса.
Если, с другой стороны, используется извлечение предпоследнего шага из стека, тогда предпоследний узел просматривает метку и определяет:
Предпоследний узел далее извлекает метку из стека и переадресует пакет на основе информации, полученной при просмотре метки, которая была до этого на верху стека. Когда выход LSP получает пакет, метка, которая находится на верху стека, будет меткой, необходимой для просмотра, чтобы осуществить его собственное решение о переадресации. Или, если пакет нес в себе только одну метку, выход LSP просто просмотрит заголовок пакета сетевого уровня, который является как раз тем, что ему нужно просмотреть, чтобы принять решение о переадресации. Эта методика позволяет выходному шлюзу выполнить один просмотр, а также требует одного просмотра от предпоследнего узла.
Создание fastpath может существенно упроститься, если известно, что требуется лишь один просмотр метки.
В действительности, когда в предпоследнем узле метка извлечена из стека, концом LSP не обязательно должен быть
Однако некоторые аппаратные переключатели не могут извлекать метки из стека, поэтому это не может быть универсальным требованием. Могут также встретиться ситуации, в которых извлечение из стека предпоследнего шага нежелательно. Следовательно, предпоследний узел извлекает метку из стека, только если это запрашивается выходным узлом, ИЛИ если следующий узел в LSP не поддерживает MPLS.
Начальное согласование протокола рассылки меток должно позволять каждому
Если использована операция pop предпоследнего шага, возможен запрос о способности выходного узла корректно интерпретировать верхнюю метку в стеке приходящего пакета. Поскольку правила уникальности и области действия выполняются, всегда возможно правильно интерпретировать верхнюю метку стека приходящего пакета.
LSP Next Hop для определенного помеченного пакета является , использованной для переадресации пакета.
Заметим, что LSP следующего шага может отличаться от того, который был бы выбран
Мы будем использовать термин "следующий шаг L3", когда будем иметь в виду такой маршрут.
Что должен сделать
Возможно, что метка пытается
Следовательно, когда получен помеченный пакет с неверной входной меткой, он должен быть отброшен, если только он не определен каким-то способом, так что его переадресация не может вызвать никакого вреда.
Некоторые
В независимом управлении LSP каждый
Если хочется гарантировать, чтобы трафик в конкретном
Упорядоченное и независимое управление полностью совместимы. Однако если только не все
Эта архитектура позволяет сделать выбор между независимым и упорядоченным управлением исключительно местной проблемой. Так как взаимодействуют два метода, данный
Одним из путей распределения трафика в
Данный набор
Когда используется упорядоченное управление, каждый
Когда используется независимое управление, допускается, чтобы имелись два смежных
Если Ru имеет более тонкую гранулярность, чем Rd, это не создает проблем. В этой ситуации, когда Ru нужно переадресовать помеченные пакеты для этих n и m метками, где n > m. В качестве опции Ru может отозвать набор из n меток, который он разослал, и затем разослать набор из m меток, соответствующих уровню гранулярности Rd. Совсем не нужно гарантировать корректность операции, но это вызовет сокращение числа меток, разосланных Ru. Ru не получает какого-либо преимущества при рассылке большего числа меток. Решение, делать это или нет, является исключительно локальным.
Если Ru имеет более грубую гранулярность, чем Rd (т.e., Rd разослал n меток для набора m, где n > m ), имеется два варианта.
m и рассылки n меток. Это предпочтительная опция.m метками и субнабором Rd из n меток, если он может определить, что это не изменит маршрутизацию. Например, предположим, что Ru использует одну метку для всех потоков, которые должны пройти определенный выходной В любом случае, каждый
Выбор маршрута сопряжен с методом, используемым при выборе LSP для определенного
Маршрутизация шаг-за-шагом позволяет каждому узлу независимо выбрать следующий шаг для каждого
В LSP при явной маршрутизации каждый
Последовательность
Явная маршрутизация может быть полезной для ряда целей, таких, как политика маршрутизации или управление трафиком (TE). В MPLS явный маршрут должен быть специфицирован в момент формирования метки, но явный маршрут не должен быть специфицирован для каждого IP-пакета. Это делает явную маршрутизацию MPLS более эффективной по сравнению с альтернативной IP-маршрутизаций отправителя.
Когда помеченный пакет транспортируется вдоль LSP, может случиться, что он достигнет
Может показаться привлекательным в таких случаях ликвидировать стек меток и попытаться переадресовать пакеты далее методами традиционной маршрутизации, базирующимися на содержимом заголовка сетевого уровня. Однако это небезопасная процедура.
Если нельзя определить, что ни одна из этих ситуаций не реализована, единственно безопасной процедурой может стать отбрасывания пакета.
При традиционной IP-переадресации каждый пакет имеет в заголовке значение поля TTL (Time To Live). Когда бы пакет ни проходил через маршрутизатор, его TTL уменьшается на 1. Если TTL достигает 0 прежде, чем пакет достигнет места назначения, он отбрасывается.
Это обеспечивает некоторый уровень защиты против петлевых маршрутов, которые могут существовать из-за ошибок конфигурации или по причине ошибки или медленной сходимости
(i) TTL как способ подавления зацикливания;
(ii) TTL как метод реализации других функций, например, ограничения области распространения пакета.
Когда пакет движется по LSP, он должен появляться с тем же значением TTL, которое он имел бы, если бы проходил через ту же последовательность маршрутизаторов, без коммутации меток. Если пакет проходит через иерархию LSP, полное число пройденных шагов-
Способ, которым обрабатывается поле TTL, может варьироваться в зависимости от того, размещены ли значения меток MPLS в прослойке между заголовками [MPLS-SHIM] или метки MPLS транспортируются в заголовке L2, таком, как заголовок ATM [MPLS-ATM] или Frame Relay [MPLSFRMRLY].
Если значения меток вставлены в прослойку, которая размещается между канальным и сетевым заголовками, тогда эта прослойка должна иметь поле TTL, которое должно заполняться так же, как аналогичное поле заголовка сетевого уровня, декрементироваться при каждом шаге
Если значения меток записаны в заголовке канального уровня (например, поле
Когда пакет выходит из сегмента non-TTL LSP, он должен получить TTL, отвечающее числу шагов
Иногда это может быть определено на входе сегмента non-TTL LSP так, что соответствующее значение TTL пакета достигнет нуля, прежде чем пакет дойдет выхода сегмента nonTTL LSP. В этом случае
В nonTTL LSP сегменте, по определению, TTL не может использоваться для предотвращения петель маршрута. Важность контроля циклических путей зависит от конкретного оборудования, применяемого для реализации
Предположим, например, что для коммутационных целей в MPLS используются ATM-переключатели, с метками, транспортируемыми в поле
Даже в случае хорошего доступа к буферу, целесообразно иметь некоторые средства детектирования петель, которые имеют длину больше определенной. Кроме того, даже когда TTL и/или справедливая организация очередей в виртуальных каналах предоставляет возможности для сохранения петель, может быть желательно по возможности избегать установления LSP с петлями. Все
Чтобы передавать стек меток вместе с пакетом, необходимо определить его конкретную структуру. Архитектура поддерживает несколько различных структур. Выбор структуры стека зависит от конкретного типа оборудования, используемого для переадресации пакетов.
Если для переадресации помеченных пакетов применяются MPLS-оборудование и/или программы, наиболее очевидным способом представления стека меток является определение нового протокола, который будет использоваться в пределах прослойки между заголовками канального и сетевого уровней. Эта прокладка могла бы реально быть
MPLS-инкапсуляция будет, в свою очередь, инкапсулирована с привлечением протокола канального уровня. Общая MPLS-инкапсуляция специфицирована в [MPLSSHIM].
Процедуры переадресации MPLS подобны тем, что применяются в ATM-коммутаторах. ATM-коммутаторы используют входной порт и значение поля
Используется поле
Используется поле
Однако эта методика не может применяться всегда. Если сеть включает виртуальный маршрут ATM через ATM-сеть, не поддерживающую MPLS, тогда поле
Когда используется этот метод представления, ATM-
Для размещения метки на вершине стека используется поле
Эта методика зависит от того, можно ли присвоить 16-битовые значения
Если имеется больше меток в стеке, чем места в заголовке ATM, тогда ATM-представление должно комбинироваться с общей инкапсуляцией.
Если <R1, R2, R3> является сегментом LSP, возможно, что R1 будет использовать одно представление стека меток при передачи пакета P в R2 — но R2 будет использовать другое представление при передаче пакета P в R3.
Вообще, архитектура MPLS поддерживает LSP с разным представлением стека меток на разных шагах маршрута.
Следовательно, когда мы обсуждаем процедуры обработки помеченных пакетов, мы делаем это в терминологии взаимодействия со стеком меток. Когда приходит помеченный пакет,
К сожалению, ATM-коммутаторы не имеют возможности осуществлять преобразование из одного представления стека меток в другое. Архитектура MPLS требует, чтобы, когда два ATM-коммутатора оказываются последовательными
Естественно будут существовать MPLS-сети, которые содержат комбинацию ATM-коммутаторов, работающих в качестве
Предположим, что
Будем считать, что
Когда некоторый
При объединении меток число входящих меток на
Архитектура MPLS приспосабливает как объединяющие, так и не объединяющие
Процедура переадресации MPLS очень схожа с используемой в ATM и Frame Relay. То есть, приходит блок данных, отыскивается метка в коммутационной таблице (
В действительности, можно использовать такие технологии для переадресации MPLS. Протокол рассылки меток может быть использован в качестве сигнального протокола для формирования коммутационных таблиц. К сожалению, эти технологии не обязательно поддерживают возможности объединения меток. В ATM, если попытаться осуществить объединение меток, в результате можно получить перекрытие ячеек от различных пакетов. Если ячейки от разных пакетов оказываются перекрытыми, невозможно осуществить сборку пакетов. Некоторые коммутаторы Frame Relay используют коммутацию ячеек на своих внутренних шинах (
Предлагается два решения этой проблемы. Первое: MPLS будет включать процедуры, которые допускают применение не объединяющих
Так как MPLS поддерживает объединяющие и не объединяющие
Вышестоящий
В архитектуре MPLS, когда определенный вышестоящий сосед не поддерживает объединение меток, ему не посылаются какие-либо метки для заданного
Возможно, что существуют какие-то узлы, которые поддерживают объединение меток, но могут объединить лишь ограниченное число входящих меток в одну исходящую. Предположим, например, что из-за некоторых аппаратных ограничений узел может объединить четыре входящие метки в одну исходящую. Предположим, что он получил шесть меток, пришедших для данного
Существует несколько методов, исключающих проблемы перекрытия ячеек в ATM и, таким образом, позволяющих ATM-коммутаторам поддерживать объединение потоков данных.
Когда применяется объединение VP, несколько виртуальных путей объединяются в один путь, но пакеты от разных отправителей отличаются разными
Когда используется объединение VC, коммутаторы должны буферизовать ячейки пакета до тех пор, пока не будет принят весь пакет (это может быть определено путем просмотра индикатора конца кадра для AAL5).
Объединение VP имеет преимущество в том, что оно совместимо с подавляющим числом реализаций ATM-коммутаторов. Благодаря этому, объединение VP может с большей вероятностью использоваться в существующих сетях. В отличие от объединения VC, объединение VP не приводит к каким-либо задержкам в точках объединения, а также не накладывает никаких требований на буферы, — однако требует координации пространства
Компромисс между совместимостью с существующим оборудованием, сложностью протокола и масштабируемостью предполагает, что желательна поддержка протоколом MPLS объединения как VP, так и VC. Для того, чтобы реализовать это, каждый ATM-коммутатор, участвующий в MPLS, должен знать, могут ли ближайшие ATM соседи осуществлять объединение VP или VC.
Взаимодействие различных форм объединения в ATM наиболее просто описать на примере взаимодействия систем с объединением VC и без него.
В случае, когда соединены узлы, поддерживающие и не поддерживающие объединение VC, переадресация ячеек базируется во всех вариантах на VC (т.e., на соединении
Аналогично можно поддержать узлы, которые выполняют объединение VP. В этом случае объединяющий VP узел, вместо посылки запроса одного или нескольких
Чтобы поддерживать узлы, объединяющие и не объединяющие VP и VC, необходимо разрешить вышестоящим узлам запрашивать комбинацию из нуля или более идентификаторов VC (состоящих из
Иногда маршрутизатор Ru предпринимает действия, чтобы доставить определенный пакет другому маршрутизатору Rd, даже если Ru и Rd не являются смежными углами на пути пакета, а Rd не является местом назначения пакета. Это может быть сделано, например, путем
Если туннелированный пакет следует маршрутом шаг-за-шагом от Ru к Rd , мы говорим, что это "туннель, маршрутизированный шаг-за-шагом", чье начало находится в Ru и чьим концом является Rd.
Если туннелированный пакет транспортируется из Ru в Rd по пути, отличному от маршрута шаг-за-шагом, мы говорим, что это туннель, маршрутизированный явно с начальной точкой в Ru и конечной — в Rd. Например, мы можем послать пакет через туннель, маршрутизированный явно, путем инкапсуляции его в пакет, маршрутизируемый отправителем.
Имеется возможность реализовать туннель в виде LSP и использовать коммутацию меток, а не инкапсуляцию сетевого уровня, чтобы заставить пакет идти через туннель. Туннель будет иметь вид LSP <R1, ..., Rn >, где R1 является началом туннеля, а Rn — его концом. Это называется LSP-туннелем.
Набор пакетов, которые посланы через LSP-туннель, представляет
Если для конечной точки туннеля не нужно определять, какой пакет получен через туннель, как это обсуждалось выше, то стек меток может быть очищен на предпоследнем
LSP-туннель, маршрутизированный шаг-за-шагом, представляет собой туннель, который реализован в виде LSP, маршрутизированного по схеме шаг-за-шагом. LSP-туннелем, маршрутизированным явно, является LSP, который маршрутизирован явно.
Рассмотрим LSP <R1, R2, R3, R4>. Предположим, что R1 получил непомеченный пакет P и заносит метку в его стек, чтобы пакет следовал заданным путем шаг-за-шагом. Предположим далее, что R2 и R3 не связаны непосредственно, но являются виртуальными соседями, так как представляют собой конечные точки LSP-туннеля. Итак, действительная последовательность
Предположим, что пакет P транспортируется на уровне 1 LSP <R1, R 2, R3, R4> и при транспортировке из R2 в R3 движется по LSP уровня 2 <R2, R21, R22, R3>. С точки зрения LSP уровня 2, партером рассылки меток R2 является R21. С точки зрения LSP уровня 1, партерами рассылки меток R2 являются R1 и R3. Могут существовать партеры обмена метками на каждом уровне иерархии. В разделе "LSP-туннелирование между пограничными BGP маршрутизаторами" рассмотрены некоторые способы реализации этой иерархии.Заметим, что в этом примере R2 и R21 должны быть
Когда два
Архитектура MPLS поддерживает два способа рассылки меток на различных уровнях иерархии: явное и неявное партнерство (Peering).
Рассылка меток (пиринг) осуществляется путем обмена протокольными сообщениями, которые адресованы партнеру. Возможен обмен метками и с удаленным партнером. Это делается одним из двух способов.
При явном партнерстве метки пересылаются партнеру в протокольных сообщениях так же, как это делается при локальном обмене. Эта методика наиболее полезна, когда число удаленных партнеров мало, либо число ассоциаций высокого уровня велико, либо удаленные партнеры обмена метками размещены в удаленных областях или доменах. Примеры использования явного партнерства представлены ниже.
При неявном партнерстве протокольные сообщения рассылки меток, адресованные одному партнеру, не посылаются. Скорее, чтобы разослать метки высокого уровня удаленным партнерам, метка представляется в виде атрибута метки более низкого уровня, а затем производится рассылка метки низкого уровня вместе с этим атрибутом местным партнерам. Локальные партнеры обмена метками рассылают полученные данные дальше. Этот процесс продолжается до тех пор, пока информация не достигнет удаленных партнеров.
Эта техника наиболее полезна, когда число удаленных партнеров обмена метками велико. Неявное партнерство не требует сетки партнеров n-квадрат, чтобы разослать метки удаленным партнерам, так как имеется подстраховка за счет локального обмена информацией. Однако неявное партнерство требует, чтобы промежуточные узлы запоминали информацию, в которой они могут быть заинтересованы.
Протокол рассылки меток используется между узлами в сети MPLS для установления и поддержания привязки меток. Чтобы MPLS работал корректно, информация, сопряженная с рассылкой меток, должна рассылаться совершенно надежно, а протокольные сообщения рассылки меток, имеющие отношение к определенному
Одним из способов достижения цели является использование TCP в качестве базового транспортного протокола, как это делается в [MPLSLDP] и [MPLSBGP].
Данная архитектура не устанавливает жестких правил для выбора того, какой протокол рассылки меток следует использовать при конкретных обстоятельствах. Однако имеется возможность представить некоторые соображения.
Во многих сценариях желательно установить связь между метками и
Протокол BGP рассылает маршруты, и, если BGP-отправителю нужно разослать метки своим BGP-партнерам, использование BGP для целей рассылки меток (смотри [MPLSBGP]) имеет ряд преимуществ. В частности, это позволяет BGP рефлекторам маршрутов рассылать метки, таким образом обеспечивая лучшую масштабируемость по сравнению с использованием
Когда применяется RSVP при резервировании ресурсов для конкретных потоков, может быть желательно помечать пакеты в этих потоках, так что не нужно будет использовать RSVP filterspec в каждом из узлов. Осуществление рассылки меток в рамках RSVP в качестве части процесса формирования пути и резервирования ресурсов является наиболее эффективным методом решения проблемы.
В некоторых приложениях MPLS, в частности, сопряженных с управлением трафиком (ТЕ), желательно формировать пути, маршрутизированные явно от точки входа до точки выхода. Хотелось бы также осуществлять резервирование ресурсов вдоль всего пути. Можно представить два подхода.
Первый подход реализован в протоколе, описанном в [MPLSRSVPTUNNELS], второй специфицирован в [MPLSCRLDP].
Ряд приложений MPLS требуют, чтобы пакеты с определенной меткой направлялись одним и тем же путем, маршрутизированным шаг-за-шагом. Этот путь будет использоваться для пакетов с адресом, который специфицирован в соответствующем поле заголовка сетевого уровня.
Вообще, маршрутизатор R определяет следующий шаг для пакета P путем нахождения подходящего адресного префикса X в своей маршрутной таблице. То есть, пакеты в данном
Заметим, что пакет P может быть приписан к , а может быть идентифицирован адресным префиксом X, даже если адрес места назначения P не согласуется с X.
X, если и только если выполнено одно из следующих условий:
Вообще, эти правила гарантируют, что, если маршрут до определенного адресного префикса рассылается через
Чтобы использовать MPLS для переадресации пакетов согласно маршруту шаг-за-шагом, соответствующему какому-либо адресному префиксу, каждый
X использовать протокол рассылки меток для уведомления партнеров (в рамках Х ) о существовании ассоциации метки с данным префиксом.Существует также обстоятельство, при котором
Эти правила гарантируют, что метки, ассоциированные с адресным префиксом, которые соответствуют маршрутам BGP, рассылаются
Эти правила имеют целью указать, какие ассоциации меток должны рассылаться данным
Если путь шаг-за-шагом, которому пакет P должен следовать, характеризуется <R1, ..., Rn >, тогда < R1, ..., Rn> может быть LSP до тех пор, пока:
X, такой, что для всех i, $$1 \le i<n $$, X является наилучшим соответствием в маршрутной таблице Ri для адреса места назначения P ;i, 1<i<n, Ri установил соответствие метки и X и разослал эту метку всем R[i-1].Заметим, что LSP пакета может простираться только до ближайшего маршрутизатора, чья маршрутная таблица содержит запись с префиксом, имеющим наилучшее соответствие для адреса места назначения пакета. В этой точке LSP должен завершиться, а алгоритм поиска наилучшего соответствия должен быть запущен заново.
Предположим, например, что пакет P, с адресом места назначения 10.2.153.178 должен двигаться от R1 к R2 и далее к R3. Предположим также, что R2 анонсирует адресный префикс 10.2/16 для R1, но R3 анонсирует 10.2.153/23, 10.2.154/23 и 10.2/16 до R2. То есть, R2 анонсирует агрегатный маршрут для R1. В этой ситуации пакет P может быть коммутируемым по метке до тех пор, пока он не достигнет R2, но так как R2 осуществил агрегатирование маршрутов, он должен запустить алгоритм поиска наилучшего соответствия, чтобы найти
X, если и только если выполнено одно из следующих условий:
X является адресным префиксом в маршрутной таблице R, который наилучшим образом соответствует Y; илиX является подходящей начальной субстрокой Y, но "предыдущие шаги LSP" R для X не содержат никакого адресного префикса Y. То есть, R является точкой ликвидации агрегатирования для адресного префикса X .X, если и только если:
X служит R2, а R1 и R2 не являются партнерами по рассылке меток с точки зрения X (возможно, потому, что R2 не поддерживает MPLS); илиОпределение LSP позволяет концу LSP быть узлом, который не поддерживает MPLS. В этом случае предпоследний узел в LSP является прокси выходным.
Неявная метка NULL представляет собой метку со специальной семантикой, которую NULL с соответствующим адресным префиксом, тогда вместо того, чтобы заменить значение метки на вершине стека, Ru опустошает стек меток, а затем переадресует полученный пакет в Rd.
NULL и адресного префикса X в
X, иNULL (т.e., что он может очистить стек меток), иX.Это заставляет предпоследний X, — далее, если предпоследний
Однако, если предпоследним
Если предпоследний
Существуют ситуации, в которых Ri начала LSP, знает, что пакеты нескольких разных
Затем Ri может связать одну метку со всеми элементами набора
Как может
Если используется присвоение меток , то число меток, которые необходимо поддерживать во всей сети может быть сокращено. Это может быть важно в случае, когда используются аппаратные переключатели для реализации MPLS, а коммутирующее оборудование может поддерживать ограниченное число меток.
Возможным подходом могло бы быть конфигурирование сети для использования присвоения меток по умолчанию, но при конфигурации конкретных для одного или более адресных префиксов, для которых он является концом LSP. Введем следующее правило:
• если какой-то
Например, предположим, что желательно присвоить метку по умолчанию, но также присвоить разные метки тем адресным префиксам, для которых существует несколько возможных концов LSP (т.e., для тех адресных префиксов, которые являются и затем конфигурировать . Для конкретного адресного префикса было бы нужно сконфигурировать X.
Важно заметить, что, когда Ru и Rd являются смежными
Аналогично, если Rd присваивает разные метки X1 и X2, но Ru присваивает им обоим метку, соответствующую адресу конца LSP или прокси конца, то переадресация будет, тем не менее, осуществляться корректно. Ru будет лишь устанавливать соответствие между входной меткой и меткой, которую сформировал Rd для адреса конца LSP.
Существует несколько причин, почему желательно использовать явную маршрутизацию, а не схему шаг-за-шагом. Например, это позволяет маршрутам основываться на административной политике, допускать маршруты, которые формируют LSP согласно соображениям управления трафиком [MPLS-TRFENG].
В некоторых ситуациях сетевые администраторы могут захотеть переадресовывать некоторые классы трафика по определенным специфицированным заранее маршрутам, и эти пути отличаются от маршрутов шаг-за-шагом, по которым шел трафик первоначально. Это может быть сделано для поддержки политики маршрутизации или для управления трафиком (ТЕ). Явный маршрут может быть сконфигурирован или он может быть определен динамически посредством, например, маршрутизации на основе ограничений. Для этого нужны:
Если передающий конец туннеля хочет поместить помеченный пакет в туннель, он должен сначала заменить метку на вершине стека меткой, присланной принимающей стороной туннеля. Затем он должен ввести в стек метку, которая соответствует самому туннелю и прислана маршрутизатором следующего шага в туннеле. Чтобы разрешить это, концы туннеля должны быть явными партнерами по обмену метками.
Предположим, что конкретный
Можно было бы присвоить одну метку всем 10 адресным префиксам. Тогда Re будет концом LSP для всех этих префиксов. Это гарантирует, что пакеты для всех 10 адресных префиксов будут доставлены Re. Однако Re был бы должен просматривать сетевой адрес каждого такого пакета, чтобы правильно выбрать интерфейс, через который его следует послать.
В качестве альтернативы можно было бы присвоить разные метки для каждого из интерфейсов. Тогда Re будет прокси концом LSP для 10 адресных префиксов. Это исключает необходимость для Re просматривать сетевые адреса пакетов, чтобы переадресовывать пакеты. Однако это может привести к использованию слишком большого числа меток.
Альтернативой может быть объединение всех 10 адресных префиксов вокруг одной общей метки уровня 1 (которая ассоциирована также с адресом самого
Когда X, а следующим шагом Ru LSP для X является Rd, и Rd послал Ru ассоциацию метки L1 и X, наряду с атрибутом стека L2, тогда
X своим партнерам по рассылке меток, он должен включить L2 в качестве атрибута стека;X ), Ru должен разослать новый атрибут стека.Заметим, что хотя значение метки, связанное с X, может отличаться для последовательных шагов в LSP, значение атрибута стека передается без изменений, оно устанавливается узлом прокси конца LSP.
Таким образом, прокси конец LSP для X становится неявным партнером каждого прочего
Если
Если специфицировано несколько ассоциаций меток для заданного адресного префикса, они могут иметь разные атрибуты.
Рассмотрим случай, когда пакеты P1 и P2 имеют адреса места назначения в префиксе Х. Предположим, что маршрут шаг-за-шагом для P1 представляет собой <R1, R2, R3>, а путем шаг-за-шагом для P2 является <R4, R2, R3>. Давайте предположим, что R3 связывает метку L3 с X, и отсылает эту ассоциацию R2. R2 связывает метку L2 с X, и посылает эту ассоциацию в R1 и R4. Когда R2 получает пакет P1, его входная метка будет также L2. R2 заменит L2 на L3 и пошлет P1 в R3. Когда R2 получает пакет P2, его входная метка будет также L2. R2 снова заменит L2 на L3 и пошлет P2 в R3.
Заметим далее, что когда P1 и P2 двигаются от R2 к R3, они несут одну и ту же метку, и, с точки зрения MPLS, они не различимы. Таким образом, вместо того, чтобы говорить о двух разных LSP, <R1, R2, R3> и <R4, R2, R3>, мы можем говорить об одном дереве LSP мультиточка-точка (MultipointtoPoint LSP Tree), которое мы можем обозначить как <{ R1, R4}, R2, R3>.
Это создает трудности, когда мы пытаемся использовать обычные ATM-коммутаторы в качестве
Рассмотрим случай автономной системы A, которая пропускает трафик между другими автономными системами. Автономная система A будет иметь несколько пограничных маршрутизаторов BGP и сеть BGP соединений между ними, через которые пересылаются BGP маршруты. Во многих таких случаях желательно избежать рассылки BGP-маршрутов маршрутизаторам, которые не являются пограничными. Если этого можно избежать, нагрузка по рассылке маршрутов этих маршрутизаторов существенно сокращается. Однако должны быть некоторые средства, гарантирующие, что транзитный трафик будет доставляться от одного BGP-маршрутизатора к другому с помощью внутренних маршрутизаторов.
Это может быть легко сделано с помощью туннелей LSP. Предположим, что BGP маршруты рассылаются только пограничным BGP-маршрутизаторам, а не внутренним маршрутизаторам, которые расположены по пути. LSP-туннели могут использоваться следующим образом.
X в маршрутной таблице B1 является наилучшим соответствием для адреса места назначения пакета P;X является маршрутом BGP;X является B2;X и посылает эту ассоциацию в B1;Далее, прежде чем послать пакет P в I1, B1 должен сформировать стек меток для P, затем занести туда метку L1, а на верх стека записать L2.
X, и что условия 3b, 3c, 3d и 3e выполнены. Тогда, прежде чем посылать пакет P в I1, B1 должен заменить метку на верху стека на метку L1 и затем записать в стек метку L2.Эти процедуры эффективно формируют LSP-туннель, маршрутизируемый шаг-за-шагом, между пограничными маршрутизаторами BGP.
Так как пограничные BGP-маршрутизаторы обмениваются ассоциациями меток для адресных префиксов, которые неизвестны
Иногда можно сформировать LSP-туннель, маршрутизированный шаг-за-шагом, между двумя пограничными маршрутизаторами BGP, даже если они не принадлежат общей автономной системе. Предположим, например, что B1 и B2 находятся в AS1. Предположим также, что B3 является
Использование LSP-туннелей, маршрутизированных шаг-за-шагом, не ограничивается туннелями между узлами BGP. Любая ситуация, в которой мог бы использоваться туннель с инкапсуляцией, является приемлемой для применения LSP-туннеля, маршрутизируемого шаг-за-шагом. Вместо
Если начальный узел туннеля намеревается направить помеченный пакет в туннель, он должен сначала заменить значение метки в стеке на значение, полученное от узла конца туннеля. Затем он должен занести в стек метку, которая соответствует самому туннелю. Чтобы разрешить это, конечные точки туннеля должны быть явными партнерами обмена метками. Ассоциации меток, которыми они должны обмениваться, не играют никакой роли для
Мультикастная маршрутизация осуществляется путем формирования мультикаст-деревьев. Дерево, вдоль которого должен переадресовываться конкретный мультикаст-пакет, зависит от адресов отправителя и получателя пакета. Когда конкретный
Когда приходит помеченный мультикастный пакет,
Далее рассматриваются только ассоциации меток, которые предназначены для трафика, который коммутируется по меткам в пределах пути, маршрутизованного по схеме шаг-за-шагом. В этих случаях метка будет соответствовать адресному префиксу в маршрутной таблице.
Существует некоторое число различных процедур, которые могут использоваться для рассылки ассоциаций меток. Некоторые исполняются нижестоящим
Вышестоящий
Request (запрос) иNotAvailable (не доступен) иRelease (отзыв) иlabelUse.Архитектура MPLS поддерживает несколько разных вариантов каждой процедуры. Однако архитектура MPLS не поддерживает все комбинации возможных вариантов.
Процедура рассылки используется нижестоящим
Вне зависимости от используемой процедуры, если ассоциация метки для заданного адресного префикса была послана нижестоящим
Пусть Rd является
X является адресным префиксом в маршрутной таблице Rd;X.Когда бы эти условия ни выполнялись, Rd должен связать метку с X и послать эту ассоциацию Ru. Отслеживание ассоциаций, которые посылаются Ru, и контроль того, что Ru всегда имеет эти ассоциации, является областью ответственности Rd.
Эта процедура должна использоваться
Пусть Rd является
X ;X ; или следующим шагом Rd L3 для X является Rn, где Rn отличается от Ru, и Rn связал метку с X и послал эту ассоциацию Rd.Затем, как только все эти условия оказались выполнены, Rd должен связать метку с X и послать эту ассоциацию Ru.
Поскольку PushUnconditional вызывает рассылку ассоциаций меток всем адресным префиксам маршрутной таблицы, PushConditional вызывает рассылку ассоциаций меток только тем адресным префиксам, для которых получены ассоциации от одного следующего шага LSP или для которых не существует следующего шага с поддержкой MPLS L3.
Эта процедуру следует использовать
Пусть Rd является
X является адресным префиксом в маршрутной таблице Rd;X ;X и послать эту ассоциацию Ru.Затем Rd должен связать метку с X и послать эту ассоциацию Ru. Заметим, что если X отсутствует в маршрутной таблице Rd или если Rd не является партнером Ru по рассылке меток с учетом X, то Rd должен проинформировать Ru о том, что в данный момент не может предоставить ассоциацию.
Если Rd уже переслал Ru ассоциацию метки для адресного префикса X и получил новый запрос от Ru ассоциации для адресного префикса X, он свяжет вторую метку, и пошлет новую ассоциацию Ru. Первая ассоциация метки остается в силе.
Эта процедура будет применяться
Пусть Rd является
X является адресным префиксом в маршрутной таблице Rd;X ;X ; или следующим шагом Rd L3 для X является Rn, где Rn отличается от Ru, а Rn связал метку с X и послал эту ассоциацию Rd.Затем, как только все эти условия оказались выполнены, Rd должен связать метку с X и послать эту ассоциацию Ru. Заметим, что если X отсутствует в маршрутной таблице Rd, а получить ассоциацию для X через следующий шаг Rd для X невозможно, или если Rd не является партнером Ru по пересылке меток с учетом X, тогда Rd должен проинформировать Ru, что не может в данный момент предоставить ему необходимую ассоциацию.
Однако, если хотя бы одно условие не выполнено, Rn не выдает метку Rd, а Rd должен отложить отклик для Ru до тех пор, пока Rn не пришлет ассоциацию метки.
Если Rd послал Ru ассоциацию метки для адресного префикса X, а спустя какое-то время любой из атрибутов ассоциации метки изменился, Rd должен заново послать Ru ассоциацию с новым значением атрибута. Он должен сделать это, даже если Ru не послал нового запроса. Эту процедуру следует использовать
Процедура запроса применяется вышестоящим
Никогда не делай запросов. Эта процедура полезна, если нижестоящий PushConditional или PushUnconditiona l, но она бесполезна, если нижестоящий PulledUnconditional или PulledConditional.
Эта процедура будет нужна
Осуществляет запрос всякий раз, когда меняется соотношение между следующим шагом L3 и адресным префиксом или когда прислан новый адресный префикс и нет ассоциации метки от следующего шага для заданного адресного префикса.
Эту процедуру следует использовать
Эта процедура реализуется всякий раз, когда приходит запрос в дополнение к необходимым протокольным запросам. Если Ru не способен быть входом LSP, он может выдать запрос, только когда получает запрос сверху.
Если Rd получает такой запрос от Ru для префикса, для которого Rd уже послал метку Ru, Rd присвоит новую метку, ассоциирует ее с X, и разошлет эту ассоциацию. Может ли Rd послать эту ассоциацию Ru немедленно или нет, зависит от используемой процедуры рассылки. Эту процедуру следует использовать
Пусть Ru вышестоящий, а Rd нижестоящий партнер рассылки меток для адресного префикса X, Rd является следующим шагом Ru L3 для X, Ru запрашивает ассоциацию для X от Rd, но Rd отвечает, что не может предоставить ассоциацию в это время, так как он не имеет следующего шага для X. Далее процедура NotAvailable определяет, как должен реагировать Ru. Существует две возможные процедуры, управляющие поведением Ru.
RequestRetry
Ru должен выдать запрос снова спустя некоторое время. То есть, источник запроса ответственен за попытку получить необходимую ассоциацию. Эту процедуру следует использовать, когда применена рассылка меток в режиме downstreamondemand.
RequestNoRetry
Ru никогда не должен посылать запрос повторно, предполагая, что Rd предоставит необходимую ассоциацию автоматически, когда она станет доступной. Это полезно, если Rd использует процедуру PushUnconditional или PushConditional, т.e., если применена не запрошенная рассылка меток нижестоящим объектам.
Заметим, что если Rd отвечает, что он не может предоставить ассоциацию Ru, например, из-за ошибки, а не по причине того, что Rd не имеет следующего шага, то поведение Ru будет определяться условиями восстановления после ошибки протокола рассылки меток, а не процедурой NotAvailable.
Предположим, что Rd является X и который послал эту ассоциацию X или перестал быть следующим шагом Ru L3 для адресного префикса X, Ru перестанет использовать
ReleaseOnChange
Ru должен ликвидировать ассоциацию и информировать Rd об этом. Эту процедуру следует использовать в консервативном режиме удержания меток (Conservative Label Retention Mode).
NoReleaseOnChange
Ru должен поддерживать ассоциацию, так что он сможет использовать ее немедленно, если Rd станет позднее следующим шагом Ru L3 для X . Эту процедуру следует применять для реализации свободного режима удержания меток (Liberal Label Retention Mode).
Предположим, что Ru является X от X , и в действительности Rd является следующим шагом Ru L3 для X.
Ru воспользуется ассоциацией, если Rd является следующим шагом Ru L3 для X. Если в момент получения ассоциации Ru Rd не является следующим шагом Ru L3 для X, Ru не будет использовать эту ассоциацию. Ru может, однако начать использовать ассоциацию позже, если Rd станет следующим шагом Ru L3 для X. Процедура labelUse определяет, как Ru использует ассоциацию Rd. Существует две процедуры, которые может применить Ru.
UseImmediate
Ru может начать использовать ассоциацию немедленно. В любое время, когда Ru получил ассоциацию для X от Rd, а Rd является следующим шагом Ru L3 для X, Rd также будет следующим шагом Ru LSP для X. Эта процедура применяется, когда не используется детектирование петель.
UseIfLoopNotDetected
Эта процедура аналогична UseImmediate, если только Ru не детектировал петлю в LSP. Если детектирована петля, Ru прекратит использовать метку L для переадресации пакетов в Rd.
Эта процедура используется, когда работает детектирование петель маршрутов. Это будет продолжаться до тех пор, пока не изменится следующий шаг для X или пока не будет ликвидирован петлевой маршрут.
В этом случае существует только одна процедура. Когда X, тогда это решение должно быть доведено до сведения всех X было послано Rd в X != Y. Если Ru узнал о новой ассоциации L и Y, до того как получил данные о разрыве ассоциации L и X, и если пакеты, соответствующие префиксам X и Y, переадресуются из Ru в Rd, тогда в течение некоторого времени Ru будет помечать пакеты, относящиеся к X и к Y, меткой L.
Рассылка и отзыв ассоциаций меток осуществляется через протокол рассылки меток. Все протоколы рассылки меток требуют, чтобы был установлен контакт между партнерами рассылки меток (за исключением неявных партнеров). Если
Пока эффективное соединение по обмену метками остается в силе, отзыв ассоциаций меток должен производиться явно. Если вторая метка ассоциирована с адресным префиксом, первая метка при этом не отзывается, будут существовать обе ассоциации. Это необходимо, чтобы поддерживать маршрутизацию с несколькими маршрутами. Если второй адресный префикс ассоциирован с меткой, ассоциация с первым префиксом при этом не отзывается, метка будет использоваться для обоих адресных префиксов.
Рассмотрим два
Схема MPLS, которая управляет взаимодействием Ru и Rd, может быть описана с помощью пяти процедур: <Distribution Procedure, Request Procedure, NotAvailable Procedure, Release Procedure, labelUse Procedure>. Так как существует только одна процедура отзыва, она здесь не упоминается. Появление "*" в одной из позиций в качестве подмены означает, что в данной категории возможна любая процедура; появление N/A в некоторой позиции указывает, что не нужна никакая процедура данной категории.
Только схемы MPLS, которые специфицированы ниже, поддерживаются архитектурой MPLS. Другие схемы могут быть добавлены в будущем, если их необходимость будет доказана.
Если Ru и Rd являются партнерами по рассылке меток, и оба поддерживают объединение меток, должна использоваться одна из следующих схем.
<PushUnconditional, RequestNever, N/A, NoReleaseOnChange, UseImmediate >Это не затребованная рассылка меток вниз по течению с независимым управлением, свободным режимом удержания меток и без детектирования маршрутных петель.
<PushUnconditional, RequestNever, N/A, NoReleaseOnChange, UseIfLoopNotDetected> Это не затребованная рассылка меток вниз по течению с независимым управлением, свободным режимом удержания меток и детектированием петель.
<PushConditional, RequestWhenNeeded, RequestNoRetry, ReleaseOnChange,*> Это не затребованная рассылка меток вниз по течению с упорядоченным управлением (со стороны конца маршрута) и консервативным режимом удержанием меток. Детектирование петель опционно.
<PushConditional, RequestNever, N/A, NoReleaseOnChange, *> Это не затребованная рассылка меток вниз по течению с упорядоченным управлением (со стороны конца маршрута) и свободным режимом удержанием меток. Детектирование петель опционно.
<PulledConditional, RequestWhenNeeded, RequestRetry, ReleaseOnChange, *> Это рассылка меток вниз по течению по запросу (downstreamondemand) с упорядоченным управлением (инициируемым со стороны входа), консервативным режимом удержания меток и опционным детектированием петель.
<PulledUnconditional, RequestWhenNeeded, N/A, ReleaseOnChange, UseImmediate>Это рассылка меток вниз по течению по запросу с независимым управлением, консервативным режимом удержания меток и без детектирования петель.
<PulledUnconditional, RequestWhenNeeded, N/A, ReleaseOnChange, UseIfLoopNotDetected>Это рассылка меток вниз по течению по запросу с независимым управлением, консервативным режимом удержания меток и детектированием петель.
Предположим, что R1, R2, R3 и R4 являются ATM-коммутаторами, которые не поддерживают объединение меток, но используются в качестве X имеет вид <R1, R2, R 3, R4> и что пакеты, адресованные X, могут войти в сеть через любой из этих X: <R1, R2, R3, R4>, <R2, R3, R4> и <R3, R4>.
Следовательно, если R1 и R2 являются MPLS-партнерами и любой из них является
<PulledConditional, RequestOnRequest, RequestRetry, ReleaseOnChange, *> Это рассылка меток вниз по течению по запросу с упорядоченным управлением (инициируемым со стороны входа), консервативным режимом удержания меток и опционным детектированием маршрутных петель.
Использование процедуры RequestOnRequest вынудит R4 послать R3 три метки для X ; R3 пошлет К2 2 метки для X, а R2 пошлет одну метку R1 для X.
<PulledUnconditional, RequestOnRequest, N/A, ReleaseOnChange, UseImmediate> Это рассылка меток вниз по течению по запросу с независимым управлением, консервативным режимом удержания меток и без детектирования петель.
<PulledUnconditional, RequestOnRequest, N/A, ReleaseOnChange, UseIfLoopNotDetected>Это рассылка меток "вниз по течению по запросу" с независимым управлением, консервативным режимом удержания меток и с детектированием петель.
Легко видеть, что некоторые пятерки не образуют жизнеспособных схем MPLS. Например:
<PulledUnconditional, RequestNever, *, *, *>
<PulledConditional, RequestNever, *, *, *>
В этих схемах MPLS нижестоящий
<*, RequestNever, *, *, ReleaseOnChange>
В этих схемах MPLS, Rd аннулирует ассоциации, если он их не использует, но Rd никогда не запрашивает их снова, даже если они ему позднее понадобятся. Эти схемы, таким образом, не гарантируют того, что ассоциации меток будут разосланы корректно.
В этом разделе специфицируются правила предотвращения того, чтобы партнеры по рассылке меток выбирали процедуры, которые ведут к недопустимым схемам MPLS. Эти правила требуют либо обмена информацией между партнерами по рассылке меток во время инициализации системы, либо априорного знания (полученного каким-то иным методом).
PulledUnconditional, либо PulledConditional. Если Rd выбирает PulledConditional, Ru вынужден использовать процедуру RequestRetry.То есть, если нижестоящий
RequestRetry или RequestNoRetry. Это вынуждает Rd использовать соответственно процедуру PulledConditional или PulledUnConditional.То есть, если только один из
RequestWhenNeeded/ReleaseOnChange (консервативный), либо RequestNever/NoReleaseOnChange (свободный). Однако выбор push либо pull и условного либо безусловногой алгоритма работы с метками принадлежит Rd. Если Ru выбирает свободный режим удержания меток, Rd может выбрать либо PushUnconditional, либо PushConditional. Если Ru выбирает консервативный режим удержания меток, Rd может выбрать PushConditional, PulledConditional или PulledUnconditional.Некоторые маршрутизаторы могут реализовать безопасные процедуры, зависящие от заголовка сетевого уровня, положение которого фиксировано по отношению к заголовку канального уровня. Базовая инкапсуляция MPLS подразумевает введение прослойки между заголовком канального и сетевого уровня. Это может вызвать отказ в работе некоторых
Многопротокольная коммутация меток (MPLS) требует набора процедур для дополнения пакетов сетевого уровня стеком меток, таким образом превращая их в помеченные пакеты. Маршрутизаторы, которые поддерживают протокол MPLS, называются
Ниже определены правила и процедуры обработки различных полей стека меток. Так как MPLS не зависит от сетевого протокола, большинство таких процедур являются протокольно независимыми. Некоторые, однако, являются разными для различных протоколов. Здесь мы специфицируем протокольно независимые процедуры, а также протокольно зависимые процедуры для IPv4 и IPv6.
Стек меток представляет собой последовательность записей. Каждая
Запись стека меток размещается после заголовка канального уровня, и перед заголовком сетевого уровня (например, между Ethernet- и IP-заголовком). Верх стека записывается первым, а дно — последним. Сетевой заголовок следует сразу вслед за записью стека меток с битом S=1. Каждая запись стека меток содержит в себе следующие поля:
S )Этот бит устанавливается равным 1 для последней записи в стеке меток (т.e. для дна стека), и нулю для всех прочих записей.
Следует заметить, что данный формат меток не является единственно возможным (я здесь не имею в виду ATM или FR). В IP-телефонии, например, предлагается использовать метку, которая содержит (слева-направо) код 0х8100, за которым идет 3-битовое поле приоритета ( 0-7 ) и идентификатор VPN (0-4095). (Смотри журнал LANline N10, 2002, стр 140).
Это 8-битовое поле определяет время жизни пакета.
Это 20-битовое поле несет в себе код метки.
Когда получен помеченный пакет, анализируется значение метки на верху стека. В результате этого анализа определяется:
В дополнение к определению следующего шага и операции со стеком меток, можно также получить данные об инкапсуляции выходной информации и, возможно другие данные, которые необходимы для того, чтобы корректно переадресовывать пакеты. Существует несколько зарезервированных значений меток.
Когда последняя метка удалена из стека (стек становится пустым), дальнейшая обработка пакета осуществляется на основе его заголовка сетевого уровня.
Когда в сетевой пакет заносится первая метка, она должна быть уникальной для конкретного сетевого уровня или для набора сетевых протоколов. Кроме того, когда бы в процессе передачи метка ни была заменена другой, новая метка также должна отвечать тем же критериям. Если эти условия не выполнены,
Строгое соблюдение этих условий не обязательно приведет немедленно к тому, что узлы будут распознавать сетевой протокол. В обычных условиях это необязательно, но в ситуациях ошибок это оказывается крайне желательным. Например, если промежуточный
Если пакет не может быть переадресован по какой-то причине (например, его размер превосходит MTU канала), либо его протокол сетевого уровня не может быть идентифицирован, либо не существует протокольно зависимых правил для обработки случаев ошибок, тогда пакет должен быть без комментариев отброшен.
Ниже обсуждаются ситуации, в которых желательно формировать ICMP-сообщения для помеченных IPпакетов. Для того, чтобы конкретный
Условие 1 обсуждается выше в разделе "Определение протокола сетевого уровня".В следующих двух подразделах обсуждается условие 2. Однако встречаются ситуации, когда условие 2 совсем не выполняется, и в этих случаях невозможно сформировать сообщение ICMP.
Предположим, что MPLS используется для организации туннеля через транзитную область маршрутизации, где данные о внешних маршрутах не попадают к внутренним маршрутизаторам. Например, внутренние маршрутизаторы работают с протоколом OSPF и могут знать только, как достичь объектов в пределах зоны OSPF. Домен может содержать несколько пограничных маршрутизаторов автономной системы
В этом примере только
Одним из решений является занесение
Это решение работает только для пакетов, которые имеют глобально уникальные адреса, и для сетей, в которых все
В некоторых случаях, когда MPLS используется для туннелирования через домен маршрутизации, может быть вообще невозможно проложить путь до адреса отправителя фрагментированных пакетов. Такая ситуация возникла бы, например, если IP-адреса в пакетах были частными адресами (т.e., не были бы глобально уникальными) и MPLS использовался для туннелирования таких пакетов через общедоступную опорную сеть. Маршруты по умолчанию в
В этих условиях для того, чтобы послать ICMP-сообщение отправителю пакета, можно копировать стек меток
Эта технология может быть весьма полезной, если ICMP-сообщением является Time Exceeded (время истекло) или "Destination Unreachable because fragmentation needed and DF set" (место назначение недостижимо из-за необходимости фрагментации и DF=1 ).
При копировании стека меток из
Заметим, что если истечение TTL сопряжено с наличием петли маршрута, тогда в случае использования этой техники ICMP-сообщение может зацикливаться. Так как сообщение ICMP никогда не посылается в ответ на ICMP-пакет и так как многие реализации ограничивают частоту посылки ICMP-сообщений, проблем это создать не должно.
Входное TTL помеченного пакета по определению должно равняться значению поля TTL в записи наверху стека меток на момент получения пакета. Выходное TTL помеченного пакета по определению должно равняться большему из:
a) входное значение TTL минус один,
b) нуль.
Если выходное TTL помеченного пакета =0, тогда помеченный пакет не должен более переадресовываться и он следует далее непомеченным. Время жизни пакета в сети считается истекшим. В зависимости от значения метки в стеке, пакет может быть просто отброшен или он может быть передан сетевому слою для обработки ошибки (например, для генерации ICMP-сообщения об ошибке).
Когда помеченный пакет переадресуется, поле TTL записи наверху стека меток должно быть установлено равным выходному значению TTL.
Заметим, что выходное значение TTL является функцией входного значения TTL и зависит от того, были ли перед этим в стек занесены или извлечены какие-то метки до переадресации пакета. Значения поля TTL в записях, за исключением верхней, никакого влияния не оказывают.
Мы определяем поле IP TTL равным величине поля IPv4 TTL или значению поля IPv6 Hop Limit, в зависимости от того, что используется.
Когда IP-пакет помечен впервые, поле TTL в стеке должно быть установлено равным значению поля IP TTL.
Когда все метки извлекаются из стека и он оказывается пустым, значение поля IP TTL должно быть замещено величиной выходного TTL, как это определено выше. В случае IPv4 это потребует также корректировки контрольной суммы IP-заголовка.
Признается, что могут существовать ситуации, когда сетевая администрация предпочитает декрементировать IPv4 TTL на 1 при прохождении через домен MPLS, вместо того чтобы декрементировать IPv4 TTL на число
Иногда
В этом случае значение входного TTL определяется процедурами обработки помеченных пакетов, например, в интерфейсе LC-ATM. Обработка TTL будет тогда происходить так, как это описано выше. Иногда
Поскольку возможно получение непомеченной IP-дейтограммы, которая слишком велика, чтобы быть переданной в выходной канал, имеется возможность получения помеченного пакета, который также нельзя передать по этой причине на выход.
Возможно также, что полученный пакет (помеченный или нет), который первоначально был достаточно мал для передачи через канал, становится слишком большим, получив одну или более меток.
При коммутации меток пакет может расти в размере, если в его стек заносятся дополнительные метки. Таким образом, если получен помеченный пакет с 1500-байтовым полем данных и в него записана дополнительная метка, переадресовать нужно будет пакет с размером 1504-байта, что может привести, в конце концов, к превышению MTU для сети Ethernet.
В этом разделе специфицируются правила обработки помеченных пакетов, которые являются слишком большими. В частности, речь идет о правилах, которые гарантируют, что ЭВМ, использующие определение MTU пути [11.4], и ЭВМ, работающие с IPv6 [11.7,11.8], будут способны формировать IP-дейтограммы, которые не нуждаются в фрагментации, даже если эти дейтограммы получили дополнительные метки при прохождении через сеть.
Вообще, ЭВМ IPv4, которые не используют определение MTU пути [11.4], посылают IP-дейтограммы, содержащие не более 576 байт. Так как большинство используемых MTU равняются 1500 байт или больше, вероятность того, что такие дейтограммы будут нуждаться в фрагментации, даже если они помечены, весьма мала.
Некоторые ЭВМ, которые не используют определение MTU пути [11.4], формируют IP-дейтограммы, содержащие 1500 байт. Поскольку IP-адреса отправителя и получателя находятся в одной и той же субсети, эти дейтограммы не проходят через маршрутизаторы и, следовательно, не будут фрагментироваться
Если же IP-адрес отправителя и получателя находятся в разных автономных системах, это единственный случай, когда имеется риск фрагментации при пометке пакета.
Ниже специфицированы процедуры, которые позволяют конфигурировать сеть так, чтобы большие дейтограммы от ЭВМ, не использующих определение MTU пути, фрагментировались только раз, когда они были впервые помечены. Эти процедуры делают возможным избежать фрагментации пакетов, которые уже помечены.
Что касается конкретного канала данных, можно использовать следующие термины:
В это понятие входит содержимое поля данных кадра, исключая любые заголовки и поля завершения кадра (например, MAC-заголовки, LLC-заголовки, 802.1Q-заголовки, PPP-заголовки, контрольные суммы и т.д.).
Когда кадр несет в себе непомеченную IP-дейтограмму, поле данных кадра представляет собой саму IP-дейтограмму. Когда кадр несет в себе помеченную IP-дейтограмму, поле данных кадра состоит из записей стека меток и IP-дейтограммы.
Максимальный размер поля данных кадра определяется стандартами канала данных. Например, обычный максимальный размер поля данных кадра для Ethernet равен 1500 байтов.
Максимальный размер поля данных кадра, который можно послать и получить через интерфейс канала данных.
Для сетей Ethernet и 802.3, считается, что истинный максимальный размер поля данных кадра на 4-8 байта больше обычного максимального размера поля данных (поскольку ни переключатель, ни бридж не могут увеличить размер заголовка в процессе транспортировки пакета до следующего узла сети). Например, считается, что большинство оборудования Ethernet может принимать и посылать пакеты, содержащие, по крайней мере, 1504 или даже 1508 байт, поскольку заголовок Ethernet не имеет полей 802.1Q или 802.1p. В каналах PPP, истинный максимальный размер поля данных кадра может быть неограниченным.
Это или обычный максимальный размер поля данных кадра, или истинный максимальный размер поля данных кадра, в зависимости от возможностей оборудования канала и размера заголовка канального уровня.
Предположим, что непомеченная IP-дейтограмма получена конкретным
Каждый
DF=0, иНапример, если этот конфигурационный параметр установлен равным 1488, тогда любая непомеченная IP дейтограмма, содержащая более 1488 байт, будет фрагментирована до выполнения пометки. Каждый фрагмент будет способен передавать через канал 1500 байт без последующей фрагментации, даже если в стек будет занесено до трех меток.
Другими словами, установка этого параметра не равным нулю позволяет исключить фрагментацию уже помеченных IP пакетов, но может вызвать иногда фрагментацию первично помеченных IP-дейтограмм, когда это совсем не нужно.
Заметим, что установка этого параметра не влияет на обработку IP-дейтограмм, которые содержат бит DF=1, следовательно, установка этого параметра не влияет на результат определения MTU пути.
Помеченная IP-дейтограмма, чей размер превышает обычный максимальный размер поля данных канала, может рассматриваться как слишком большая.
Помеченная IP-дейтограмма, чей размер превышает истинный максимальный размер поля данных кадра канала, через который она должна переадресоваться, считается слишком большой.
Помеченная IP-дейтограмма, которая не является слишком большой, должна передаваться без фрагментации.
Если помеченная IPv4 дейтограмма слишком велика и бит DF в IP заголовке =1, тогда
Заметим, что отбрасывание таких дейтограмм является разумным, только если максимальный размер первично помеченной IP-дейтограммы установлен равным ненулевому значению во всех
Если DF=1, тогда должна быть выполнена следующая последовательность операций.
N равно числу байт в стеке (т.e, число записей в стеке меток, умноженное на 4).Don't Fragment=0:N байт меньше, чем эффективный максимальный размер поля данных кадра;Don't Fragment =1:Чтобы обработать помеченную IPv6-дейтограмму, которая слишком велика,
N равно числу байт в стеке (т.e, число записей в стеке меток, умноженное на 4).NextHop MTU равным разности между эффективным максимальным размером поля данных кадра и величиной N;Восстановление сообщения из фрагментов осуществляется конечным получателем.
Описанные выше процедуры обработки дейтограмм, которые имеют в заголовке бит DF=1, но являются слишком большими, связаны с процедурами определения MTU пути RFC-1191 [11.4]. ЭВМ, которые применяют эти процедуры, определят MTU, который достаточно мал, чтобы позволить занесение в дейтограмму n меток, без необходимости фрагментации. Здесь n равно числу меток, заносимых на используемом пути через домен.
Другими словами, дейтограммы от ЭВМ, которые применяют определение MTU пути, никогда не потребуют фрагментации из-за занесения меток в заголовок. Заметим, что дейтограммы от ЭВМ, использующих определение MTU пути, имеют бит DF=1 и, таким образом, не могут быть фрагментированы в любом случае.
Отметим также, что определение MTU пути будет работать корректно, только если в точке, где может потребоваться фрагментация помеченной IP-дейтограммы, возможна доставка отправителю ICMP сообщения Destination Unreachable. Если невозможна посылка ICMP-сообщения отправителю из MPLS туннеля, но конфигурация сети предоставляет возможность
DF=1, а его длина превышает значение MTU туннеля, передающий конец должен послать ICMP-сообщение Destination Unreachable узлу, приславшему пакет с кодом "Fragmentation Required and DF Set" и полем NextHop MTU, установленным так, как было показано выше.Протокол PPP (Point-toPoint Protocol) [11.6] предоставляет стандартный метод транспортировки многопротокольных дейтограмм через каналы точка-точка. PPP определяет расширяемый протокол управления каналом и предлагает семейство протоколов управления сетью для установления и конфигурации различных протоколов сетевого уровня.
В этом разделе определен протокол управления сетью для установления и конфигурации коммутации меток в канале PPP. PPP содержит три основные компонента.
Для того, чтобы установить связь через канал точка-точка, каждый конец PPP канала должен сначала послать
Протокол управления MPLS (MPLSCP) отвечает за разрешение/запрещение использования коммутации меток в канале PPP. Он использует тот же механизм обмена, что и протокол управления каналом
Протокол управления MPLS тождественен протоколу управления каналом [11.6] за следующими исключениями:
Пакет может использовать любые модификации базового формата кадра, которые были согласованы на фазе установления канала.
В информационное
Используются только коды от 1 до 7 (Configure-Request, Configure-Ack, Configure-Nak, Configure-Reject, Terminate-Request, Terminate-Ack и Code-Reject). Прочие коды должны рассматриваться как нераспознанные и приводить к Code-Rejects (отбрасыванию).
Пакеты MPLSCP не могут пересылаться, пока PPP не достигнет фазы протокола сетевого уровня. Реализация должна быть готова ждать окончания аутентификации и определения качества канала, прежде чем наступит тайм-аут в ожидании Configure-Ack или других откликов.
Прежде чем какие-либо пакеты будут посланы, PPP должен достичь фазы протокола сетевого уровня, а управляющий протокол MPLS должен стать активным (состояние Opened).
В информационное
Заметим, что определены два кода для помеченных пакетов, один для мультикастных и один для уникастных. Как только MPLSCP переходит в рабочее состояние (Opened), по каналу PPP могут посылаться как мультикаст, так и уникаст-пакеты.
В каждом кадре транспортируется только один помеченный пакет. Записи стека меток размещаются непосредственно после заголовка сетевого уровня, а сразу за ними следует заголовок канального уровня, включая, например, любые заголовки 802.1Q, которые только могут существовать.
Шестнадцатеричный код Ethertype 8847 применяется для индикации того, что кадр содержит уникастный MPLS-пакет. Шестнадцатеричный код Ethertype 8848 служит для указания того, что кадр содержит MPLS-пакет.
Эти значения Ethertype могут быть использованы либо при Ethernet-инкапсуляции, либо при инкапсуляции 802.3 LLC/SNAP для транспортировки помеченных пакетов.
Мультипротокольная коммутация пакетов по меткам (MPLS) [11.1,[11.2] интегрирует в себе технику операций с метками и сетевую маршрутизацию. Базовой идеей является присвоение меток фиксированной длины пакетам на входе облака MPLS (базирующегося на концепции переадресации классов эквивалентности [11.1,[11.2]). Всюду внутри домена MPLS метки, присвоенные пакету, используются для принятия решения о переадресации (обычно без рассмотрения исходных заголовков пакета).
Одним из наиболее важных применений MPLS будет управление трафиком. Важность этого приложения является уже широко признанной (смотри [11.1,2,3]).
Далее рассматриваются требования управления трафиком в больших опорных сетях Интернет. Описаны базовые возможности и функциональности, которым должна
Следует заметить, что хотя основное внимание уделено опорным сетям, возможности, описанные в этом разделе, в равной мере применимы для управления трафиком в корпоративных сетях. Вообще, эта технология может быть использована в любой сети с коммутацией по меткам, в которой имеется, по крайней мере, два пути между двумя узлами.
Предлагается архитектура, которая включает в себя MPLS и RSVP, чтобы предоставить масштабируемые дифференцированные услуги и управление трафиком в Интернет.
В этом разделе описываются базовые функции управления трафиком в автономной системе современного Интернет. Рассмотрены ограничения
Управление трафиком (TE) связано с оптимизацией рабочих характеристик сетей. Вообще, ТЕ включает в себя технологию и научные принципы измерения, моделирования, описание, управление трафиком Интернет и приложение таких знаний и техники для получения определенных рабочих характеристик.
Главной целью управления трафиком в Интернет является достижение эффективной и надежной работы сети. Управление трафиком стало непременной функцией многих автономных систем — из-за высокой стоимости услуг Интернет.
Ключевые характеристики, сопряженные с управлением трафиком, могут относиться к следующим категориям:
Задачи, ориентированные на управление трафиком, включают в себя аспекты улучшения QoS информационных потоков. В модели наилучших усилий для Интернет-сервиса ключевая задача управления трафиком включает в себя: минимизацию потерь пакетов и задержек, оптимизацию пропускной способности и согласование наилучшего уровня услуг. В данной модели минимизация вероятности потери пакетов является наиболее важным аспектом. Статистически заданные характеристики трафика (такие, как разброс времени доставки пакетов, вероятность потери и максимальное время доставки) становятся важными в грядущих дифференцированных услугах Интернет. Одним из подходов решения таких проблем является оптимизация использования всех имеющихся ресурсов сети. В частности, желательно гарантировать, чтобы субнаборы сетевых ресурсов не были перегружены, в то время как аналогичные ресурсы на альтернативных маршрутах недогружены. Полоса пропускания — это
Минимизация перегрузок является первичной задачей. Здесь речь идет не о кратковременных перегрузках, а о долгосрочных, влияющих на поведение сети в целом. Перегрузка обычно имеет две причины:
Первый тип проблем перегрузки может быть решен путем:
Второй тип проблем перегрузки, связанный с неэффективным размещением ресурсов, может быть решен посредством управления трафиком.
Вообще, перегрузка, связанная с неэффективным размещением ресурсов, может быть уменьшена с помощью политики балансировки нагрузки в различных фрагментах сети. Задачей таких стратегий является минимизация максимальной перегрузки или напротив — минимизация максимума использования ресурса. Когда перегрузка минимизирована путем оптимального размещения ресурсов, потери пакетов и задержка доставки падают, а совокупная пропускная способность возрастает. Таким образом, восприятие конечным пользователем качества сетевого обслуживания становится лучше.
Понятно, что балансировка определяет политику оптимизации рабочих характеристик сети. Несмотря ни на что, возможности, предоставляемые управлением трафиком, должны быть достаточно гибкими, чтобы сетевые администраторы могли реализовать другие политики, которые принимают во внимание господствующую структуру цен или даже модель получения доходов.
Оптимизация рабочих характеристик сетей является фундаментальной проблемой управления. В модели процесса управления трафиком инженер трафика (или подходящая система автоматизации) действует как контроллер в системе с адаптивной обратной связью. Эта система включает набор взаимосвязанных сетевых элементов, систему мониторирования состояния сети и набор средств управления конфигурацией. Инженер трафика формулирует политику управления, отслеживает состояние сети посредством системы мониторинга и характеристик трафика и предпринимает управляющие действия, чтобы перевести сеть в требуемое состояние, в соответствии с политикой управления. Это может быть осуществлено с помощью действий, предпринимаемых как отклик на текущее состояние сети, или превентивно, используя прогнозирование состояния и тенденции и предпринимая действия, предотвращающие нежелательные будущие состояния. В идеале управляющие действия должны включать:
Уровень человеческого вмешательства в процесс управления трафиком, когда это возможно, должен быть минимизирован. Это может быть реализовано путем автоматизации операций, описанных выше. Операции эти могут быть распределенными и масштабируемыми.
В этом подразделе рассматриваются некоторые хорошо известные ограничения современных
Возможности управления, предлагаемые существующими внутренними протоколами маршрутизации шлюзов Интернет, не соответствуют требованиям управления трафиком. Это создает трудности при актуализации эффективных политик, предназначенных для решения проблем совершенствования работы сети. Действительно,
Эти сценарии проявляются даже тогда, когда имеются альтернативные маршруты с избытком ресурсов. Именно этого аспекта проблем перегрузки (симптом неоптимального распределения ресурсов) управление трафиком стремится всеми способами избежать. Равномерное распределение загрузки может использоваться для разрешения второй проблемы, упомянутой выше, однако такое решение бесполезно в случае первого варианта перегрузки.
Популярным подходом преодоления недостатков современных
Для управления трафиком в больших насыщенных сетях желательно снабдить MPLS определенным уровнем функциональности, чтобы сделать его более совместимым с настоящими моделями наложений. К счастью, это может быть сделано достаточно прямолинейно.
Протокол MPLS стратегически достаточен для управления трафиком, так как он может предоставить большую часть функций, доступных в модели наложений, и по относительно низкой цене по сравнению с конкурирующими альтернативными решениями. Столь же важно, что MPLS предлагает возможность автоматизировать функции управления трафиком.
Концепция каналов передачи данных MPLS используется достаточно широко. Согласно Li и Rekhter [11.3], канал передачи данных представляет собой объединение потоков данных одного и того же класса, которые следуют маршруту с коммутацией пакетов по меткам. Канал передачи данных представляет собой абстракцию трафика, с которой могут быть ассоциированы определенные характеристики. Полезно рассматривать каналы передачи данных как объекты, которые можно маршрутизировать, — то есть, путь, по которому транспортрируются данные, может меняться. С этой точки зрения, каналы передачи данных подобны виртуальным каналам в сетях ATM и Frame Relay. Важно, однако, подчеркнуть, что существует фундаментальное отличие между каналом передачи данных и путем. LSP представляет собой спецификацию пути с коммутацией по меткам, через который проходит трафик. На практике термины LSP и канал передачи данных часто используются синонимично.
Привлекательность MPLS для управления трафиком может быть ассоциирована со следующими факторами.
Кроме того, через механизм коммутации меток MPLS позволяет наложить на современную модель маршрутизации Интернет квазиканальную коммутацию. Многие существующие предложения для управления трафиком посредством MPLS концентрируются на возможности формирования LSP. Хотя такая возможность является фундаментальной для управления трафиком, реально этого недостаточно.
В данном подразделе вводится концепция наведенного MPLS-графа, которая является центральной при управлении трафиком в сфере MPLS. Наведенный MPLS-граф аналогичен виртуальной топологии в модели наложений. Он логически проецируется на физическую сеть путем выбора LSP для каналов транспортировки трафика.
Наведенный MPLS-граф состоит из набора
Наведенные MPLS-графы важны потому, что базовые проблемы управления полосой пропускания в MPLS определяются способом и возможностью эффективно совместить наведенный MPLS-граф с физической топологией сети.
Пусть G = (V, E, c) является графом, отражающим физическую топологию сети. Здесь, V — набор узлов сети и E — набор каналов; то есть, для v и w из V объект (v,w) содержится в E, если v и w являются непосредственно связанными в рамках G. Параметр "c" представляет собой набор емкостей и других ограничений, сопряженных с E и V. Мы будем рассматривать G как основу сетевой топологии.
Пусть H = (U, F, d) является наведенным MPLS-графом, где U — субнабор V, представляющй набор F представляет собой набор LSP, так что для x и y из U, объект (x, y) находится в F, если существует LSP с x и y в качестве конечных точек. Параметр d представляет собой набор требований и ограничений, ассоциированных с F. Очевидно, H является ориентированным графом. Можно видеть, что H зависит от переходных характеристик G.
Существует три фундаментальных проблемы, относящиеся к управлению трафиком в MPLS.
Здесь не рассматриваются первые две проблемы (хотя они весьма важны). Вместо этого далее анализируются возможности, которые позволяют третей функции осуществлять эффективную и надежную работу сетей. Установление соответствия между наведенным MPLS-графом ( H ) и базовой топологией сети ( G ) является достаточно важной проблемой.
Выше были рассмотрены базовые функции управления трафиком в современном Интернет. Далее описываются функциональные возможности, необходимые для полномасштабного поддержания управления трафиком в больших сетях через посредство протокола MPLS. Предлагаемые возможности включают в себя:
Атрибуты, связанные с каналами передачи данных и ресурсами, а также параметры, ассоциированные с маршрутизацией, в совокупности представляют собой набор управляющих переменных, которые могут быть модифицированы в результате действий либо администратора, либо автоматических агентов, для того, чтобы привести сеть в желательное состояние.
В рабочей сети крайне желательно, чтобы эти атрибуты можно было менять динамически в реальном масштабе времени без неблагоприятных последствий.
В этом разделе обсуждаются атрибуты, которые можно ассоциировать с каналами передачи данных и которые могут определять рабочие характеристики сети. Базовые свойства каналов передачи данных перечислены ниже.
На практике канал передачи данных может характеризоваться своими входным и выходным
Имеется два пункта особой важности: (1) параметризация каналов передачи данных и (2) положение маршрута и правила управления каналом передачи данных.
Хотя каналы передачи данных являются концептуально однонаправленными, во многих практических контекстах полезно одновременно анализировать два канала передачи данных с идентичными конечными точками, но с разным направлением потоков. Два канала передачи данных логически связаны друг с другом. Один канал, называемый прямым, транспортирует трафик от исходного узла к узлу места назначения. Другой канал, называемый обратным, транспортирует трафик от узла места назначения к исходному узлу. Объединение двух таких каналов называется двунаправленным каналом передачи данных
Следует также рассмотреть топологические свойства
Нужно заметить, что двунаправленные каналы передачи данных имеют в основном административное удобство. На практике большинство функций управления трафиком могут быть реализованы с использованием исключительно однонаправленных каналов передачи данных.
Базовые операции в канале передачи данных, важные для целей управления трафиком, перечислены ниже.
Выше рассматривались базовые операции каналов передачи данных. Возможны и дополнительные операции, сопряженные с реализацией политики и формированием трафика.
Возможности мониторинга аккоутнтинга и рабочих характеристик являются крайне важным для задач биллинга и контроля параметров трафика. Статистика трафика, полученная с помощью такой системы мониторинга, может использоваться для оптимизации рабочих характеристик канала и для планирования управления трафиком.
Возможность получения статистики на уровне канала передачи данных так важна, что это следует рассматривать как существенное требование управления трафиком через MPLS.
Атрибут канала передачи данных является параметром, который влияет на рабочие характеристики канала.
Атрибуты могут быть явно присвоены каналам передачи данных администратором или заданы неявно базовыми протоколами, когда пакеты классифицируются и сортируются по классам эквивалентности (
Основные атрибуты каналов передачи данных наиболее важные для управления трафиком перечислены ниже.
Комбинация параметров трафика и атрибутов политики аналогична использованию параметрического управления в сетях ATM. Большинство атрибутов, перечисленных выше, имеют аналоги в хорошо установившихся технологиях. Следовательно, следует достаточно непосредственно установить соответствие между атрибутами канала передачи данных и многими существующими архитектурами переключения и маршрутизации.
Приоритет и приоритетное прерывание обслуживания могут рассматриваться как относительные атрибуты, так как они выражают определенные отношения между каналами передачи данных. Концептуально, эти двоичные отношения определяют способ взаимодействия каналов между собой, когда они соревнуются за получение сетевых ресурсов в процессе установления пути и его рабочих параметров.
Параметры трафика могут использоваться при сборе данных об информационных потоках (или более точно
Атрибуты управления и выбора пути определяют правила выбора пути канала передачи данных, а также правила работы с маршрутами, которые уже существуют.
Маршруты могут быть вычислены автоматически с помощью протоколов маршрутизации или могут быть определены сетевым администратором. Если требований к ресурсам или ограничений, сопряженных с каналом передачи данных, нет, тогда для выбора пути может быть использован протокол, управляемый топологией. Однако, если требования к ресурсам или ограничения, связанные с политикой, имеются, тогда следует использовать маршрутизацию, основанную на ограничениях.
Управление касается всех аспектов, имеющих отношение к поддержанию путей, через которые проходят каналы передачи данных. В некоторых операционных контекстах желательно, чтобы реализация MPLS могла динамически себя реконфигурировать для адаптации к состоянию системы. Адаптивность и устойчивость являются аспектами динамического управления маршрутом.
Чтобы контролировать выбор пути и процесс управления, необходим набор атрибутов. Базовые атрибуты и рабочие характеристики, связанные с выбором пути и управлением каналом передачи данных, описаны ниже.
Административно специфицированный путь для канала передачи данных конфигурируется в результате действий оператора. Административно специфицированный путь может быть определен полностью или частично. Путь полностью специфицирован, если указаны все шаги между начальной и конечной точками. Путь частично специфицирован, если представлен только субнабор промежуточных шагов. В этом случае нужны базовые протоколы, чтобы сформировать окончательный маршрут. Из-за ошибок оператора административно специфицированный путь может оказаться несогласованным или нелогичным. Базовые протоколы маршрутизации должны быть способны детектировать такую несогласованность и вносить необходимые коррективы.
Атрибут path preference rule (правило предпочтения пути) должен быть ассоциирован с административно специфицированными путями. Атрибут "правила предпочтения пути" представляет собой двоичную переменную, которая указывает, является ли административно сконфигурированный путь обязательным или нет.
Если административно сконфигурированный путь выбран с обязательным атрибутом, должен использоваться этот (и только этот) путь. Если обязательный путь недопустим (например, конечные пункты топологически разделены) или если путь не может быть использован, так как его ресурсы неадекватны, тогда процесс установки пути (setup) потерпит неудачу. Другими словами, если путь специфицирован как обязательный, то альтернативный путь не может использоваться ни при каких обстоятельствах. Обязательный путь, который успешно приписан, является неявно закрепленным. Раз путь присвоен, его нельзя изменить, а можно только ликвидировать или заменить новым.
Однако если административно специфицированный путь выбран со значением атрибута предпочтения "необязательный", тогда путь следует использовать, если это возможно. В противном случае может использоваться альтернативный путь, предлагаемый маршрутным протоколом.
В некоторых практических контекстах, может быть полезно административно специфицировать набор кандидатов маршрутов для данного канала передачи данных и определить иерархию предпочтения этих маршрутов. Во время установления пути правила предпочтения используются при выборе подходящего пути из списка кандидатов. В случае неполадки правила предпочтения применяются для выбора альтернативного пути из списка кандидатов.
Атрибуты сродства классов ресурсов, ассоциированные с каналом передачи данных, могут использоваться для спецификации класса ресурсов, которые следует включить явно или исключить из пути канала передачи данных. Эти атрибуты политики могут понадобиться для введения дополнительных ограничений для маршрута канала передачи данных. Атрибуты сродства классов ресурсов могут быть специфицированы для трафика в виде последовательности пар:
<resourceclass, affinity>; <resourceclass, affinity>;
Параметр resource-class идентифицирует класс ресурса, для которого определено соотношение сродства в отношении канала передачи данных. Параметр affinity указывает на соотношение сродства; то есть, включены или исключены члены класса ресурсов для канала передачи данных. В частности, параметр affinity может быть двоичной величиной, которая принимает одно из следующих значений: (1) явное включение и (2) явное исключение.
Если атрибут сродства является двоичной переменной, можно использовать булевы выражения для спецификации сродства класса ресурсов, ассоциированных с данным каналом передачи данных.
Если не специфицировано никакого атрибута сродства класса, тогда предполагается значение отношения сродства "don't care" (безразлично) между каналом передачи данных и ресурсами. То есть, не существует никаких требований по включению или исключению каких-либо ресурсов для пути канала передачи данных. На практике — это режим по умолчанию.
Атрибуты сродства классов ресурсов очень полезны и эффективны, так как они могут быть использованы при реализации самых разных политик. Например, они могут быть применены для размещения определенных каналов передачи данных в заданных топологических областях сети.
Маршрутизация на основе ограничений может использоваться для вычисления точного пути для канала передачи данных так, чтобы удовлетворить ограничениям сродства класса ресурсов следующим образом:
Характеристики сети и ее состояние изменяются со временем. Например, появляются новые ресурсы, утраченные ресурсы могут быть снова активизированы, а выделенные ресурсы могут оказаться недоступными. Вообще, иногда могут оказаться доступными более эффективные пути. Следовательно, с точки зрения управления трафиком, необходимо иметь административные параметры управления, которые могут использоваться для спецификации того, как канал передачи данных будет реагировать на этот динамизм. При некоторых сценариях может оказаться желательным динамически изменить пути некоторых информационных каналов в ответ на изменения состояния сети. Этот процесс называется реоптимизацией. При других сценариях повторная оптимизация может оказаться нежелательной.
Атрибут адаптивности ( adaptivity ) является частью блока параметров пути, ассоциированного с каналом передачи данных. Атрибут адаптивности, ассоциированный с каналом передачи данных, указывает на то, является ли канал субъектом реоптимизации. То есть, атрибут адаптивности представляет собой двоичную переменную, которая принимает одно из следующих значений: (1) разрешить реоптимизацию и (2) запретить реоптимизацию.
Если реоптимизация разрешена, канал передачи данных может под действием маршрутных протоколов изменить путь в ответ на изменение состояния сети. Напротив, если реоптимизация запрещена, канал передачи данных является закрепленным и его маршрут не может быть изменен при вариации ситуации в сети.
Стабильность является главным соображением, когда разрешена реоптимизация. Чтобы содействовать стабильности, реализация MPLS не должна быть слишком реактивной в ответ на эволюционные изменения в сети. В то же время, она должна достаточно быстро адаптироваться, чтобы оптимально использовать появляющиеся сетевые ресурсы. Отсюда следует, что частота реоптимизаций должна определяться административно, чтобы допускать настройку.
Следует заметить, что реоптимизация не то же самое, что и устойчивость к внешним воздействиям. Для спецификации характеристик устойчивости канала передачи данных используются другие атрибуты. На практике представлялось бы разумным ожидать, что канал передачи данных, подвергающийся реоптимизации, должен быть устойчив против отказов вдоль его пути. Однако канал передачи данных, который не подвергается реоптимизации и чей маршрут не специфицирован административно как обязательный, также должен быть устойчивым против отказов связей и узлов вдоль своего пути.
Формально, можно утверждать, что адаптивность к состоянию эволюции через реоптимизацию влечет за собой устойчивость к отказам, тогда как устойчивость к отказам не предполагает общей адаптивности к изменениям состояния сети.
Распределение нагрузки по нескольким параллельным каналам передачи данных между двумя узлами является крайне важным.
Во многих практических контекстах суммарный трафик между узлами может быть таким, что ни один канал в отдельности (следовательно, и ни один маршрут) не сможет его пропустить. Однако суммарный поток может быть меньше, чем максимально допустимый поток через поперечное сечение ("mincut"), разделяющее два узла. В этом случае единственно возможным решением может быть деление трафика на несколько потоков.
В домене MPLS эта проблема может быть решена с помощью нескольких каналов, соединяющих два узла. Следовательно, нужны гибкие средства назначения нагрузки для параллельных каналов передачи данных, соединяющих два узла.
В частности, в ситуациях, где параллельные потоки данных оправданы, было бы полезно иметь некоторые атрибуты, которые могут применяться для указания доли трафика, проходящего через каждый из каналов. Базовые протоколы реализуют нагрузку каналов в указанной пропорции. Желательно также обеспечивать порядок передачи пакетов, принадлежащих одному и тому же микропотоку (идентичные адреса отправителя и получателя плюс номера порта).
Атрибут priority (приоритет) определяет относительную важность канала передачи данных. Если с MPLS применяется маршрутизация, базирующаяся на ограничениях, тогда приоритеты становятся очень важными, так как они используются в случае отказов для определения порядка, в котором выбираются пути для канала передачи данных из имеющегося списка.
Приоритеты важны также в реализациях, допускающих приоритетное обслуживание, так как они могут быть нужны для определения политики обслуживания каналов передачи данных.
Атрибут определяет, может ли канал передачи данных заместить другой канал на данном пути и может ли другой канал передачи данных заместить заданный канал. Приоритетная подмена полезна как для схемы оптимизации, ориентированной на трафик, так и для схемы, ориентированной на ресурс. Приоритетное замещение может использоваться, чтобы гарантировать то, что канал передачи данных маршрутизирован через вполне определенный путь, а это особенно важно при оказании дифференцированных услуг
Приоритетное замещение может также применяться при реализации различных политик восстановления, вступающих в силу при отказах оборудования или программ.
Атрибут может использоваться для спецификации четырех режимов приоритетного замещения для канала передачи данных: (1) замещающий объект активирован (preemptor enabled), (2) nonpreemptor (не является замещающим объектом), (3) допускающий подмену и (4) не допускающий подмены. Канал передачи данных, где разрешено приоритетное замещение (preemptor enabled), может заменять каналы с более низким приоритетом, признанные как приемлемые для замены. Канал передачи, специфицированный как не подлежащий подмене, не может быть замещен каким-либо иным каналом, вне зависимости от их относительных приоритетов. Канал передачи данных, допускающий замещение, может быть замещен другим каналом с более высоким приоритетом, который имеет атрибут preemptor enabled.
Достаточно просто понять, что некоторые режимы замещения являются взаимно исключающими. Используя схему нумерации, описанную выше, можно назвать допустимые комбинации режимов для канала передачи данных: (1, 3), (1, 4), (2, 3) и (2, 4). Комбинация (2, 4) является режимом по умолчанию.
Канал передачи данных, скажем "A", может заместить другой канал, скажем "B", только если все следующие пять условий будут выполнены:
Атрибут не рассматривается как обязательный атрибут современной модели обслуживания в Интернет (best effort service), хотя и является полезным. Однако, в сценарии с дифференциальными услугами необходимость подмены становится очевидной. Более того, в появляющихся архитектурах оптического Интернет, где функции защиты и восстановления, чтобы уменьшить цену, могут быть перенесены с оптического уровня на информационные сетевые элементы (такие, как гигабитные и терабитные маршрутизаторы с коммутацией по меткам), стратегии приоритетного замещения могут использоваться для сокращения времени восстановления канала в условиях сбоев.
Атрибут определяет поведение канала передачи данных в случае возникновения ошибок — то есть, когда ошибка происходит на пути, через который проходит канал. При таких обстоятельствах должны быть рассмотрены следующие проблемы: (1) детектирование ошибки, (2) уведомление об ошибке, (3) восстановление после сбоя. Очевидно, реализация MPLS должна содержать механизмы для решения всех этих задач.
Многие политики восстановления могут быть специфицированы для каналов передачи данных, чьи маршруты подвержены отказам. Ниже представлены примеры приемлемых схем.
Возможно много других схем, включая комбинации перечисленных выше.
Базовый атрибут указывает на процедуру восстановления, которая должна быть запущена для данного канала при возникновении отказа. В частности, базовый атрибут является двоичной переменной, которая определяет, будет ли данный канал изменять маршрут, если сегмент его пути выдал отказ. Расширенный атрибут может применяться для подробной спецификации в случае сценария отказа. Например, расширенный атрибут может специфицировать набор альтернативных путей, которые следует использовать в случае отказа, а также правил, которые управляют относительным предпочтением для каждого специфицированного пути. Атрибуты обеспечивают тесное взаимодействие между MPLS и маршрутизацией.
Атрибут определяет действия, которые следует предпринять в рамках базовых протоколов, когда канал передачи данных становится нерабочим — то есть, когда какие-то параметры канала отклонились за оговоренные пределы. Вообще, атрибуты могут указывать, является ли неуправляемый канал передачи данных лимитированным по полосе пропускания или он просто переадресуется без каких-либо действий, учитывающих местную политику. Если используется политика, тогда для реализации таких функций могут применяться адаптации алгоритмов, таких, как ATM
Использование политики необходимое во многих рабочих сценариях, может быть неприемлемо в других. Вообще, обычно желательно реализовать какую-то политику на входе сети (чтобы обеспечить согласование с требованиями уровня обслуживания) и минимизировать применение политики в ядре, за исключением ситуации, когда ограничение емкости диктуют обратное.
Следовательно, с точки зрения управления трафиком необходимо иметь возможность административно разрешать и запрещать применение политики для каждого канала передачи данных (traffic trunk).
Атрибуты resource являются частью параметров состояния топологии, которые используются, чтобы установить ограничения на маршрутизацию каналов передачи данных в рамках имеющихся ресурсов.
Максимально выделяемая доля MAM (maximum allocation multiplier) ресурса является административно задаваемым атрибутом, который определяет долю ресурса, доступную для канала передачи данных. Этот атрибут нужен в основном для распределения полосы пропускания. Однако он может быть применен также для резервирования ресурсов
Значения MAM могут быть выбраны так, чтобы ресурс был недораспределен или перераспределен. Ресурс считается недораспределенным, если суммарные требования всех каналов передачи данных, которые могут его использовать, меньше емкости ресурса. В противном случае ресурс считается перераспределенным.
Недораспределение может применяться, чтобы установить предел использования ресурсов. Однако, в случае MPLS это сложнее, чем в схемах с коммутацией каналов, так как для MPLS некоторые потоки могут маршрутизоваться посредством обычных протоколов шаг-за-шагом без рассмотрения каких-либо ресурсных ограничений.
Перераспределение может использоваться, чтобы реализовать преимущества статистических характеристик трафика в рамках более эффективной
Атрибуты класса ресурса являются параметрами, присваиваемыми административно, и вводят понятие класса для ресурсов. Атрибуты класса ресурса могут рассматриваться как цвета, приписанные ресурсам, такие, что набор ресурсов с одним цветом концептуально принадлежит к одному классу. Атрибуты класса ресурса могут использоваться для реализации разнообразных политик. Ключевыми ресурсами здесь являются связи. В случае применения в отношении связей, атрибут класса ресурса становится эффективной характеристикой параметров состояния связи.
Концепция атрибутов класса ресурса является достаточно мощной абстракцией. С точки зрения управления трафиком она может применяться для реализации различных политик при оптимизации характеристик канала по трафику или по ресурсам. В частности, атрибуты класса могут использоваться для:
Кроме того, атрибуты класса ресурса могут использоваться для целей идентификации.
Вообще, ресурс может быть ассоциирован более чем с одним атрибутом класса ресурса. Например, все каналы
В современной терминологии маршрутизация, основанная на ограничениях, часто называется QoS-маршрутизацией (смотри [11.5,6,11.7,[11.10]).
Здесь используется термин маршрутизация на основе ограничений, однако, если быть точным, QoS-маршрутизация является лишь ее составной частью.
Маршрутизация на основе ограничений делает возможным резервирование ресурсов по запросу и сосуществование с имеющимися внутренними протоколами маршрутизации Интернет, работающими по принципу шаг-за-шагом.
Маршрутизация на основе ограничений использует следующие данные в качестве входных:
Базируясь на этой информации, процесс маршрутизации на основе ограничений автоматически вычисляет маршрут для каждого потока, исходящего из данного узла. В этом случае маршрут для каждого информационного потока представляет собой спецификацию пути с коммутацией по меткам, который удовлетворяет требованиям, записанным в атрибутах канала. Ограничения формулируются на основе доступности ресурсов, административной политики и статусной топологической информации.
Маршрутизация на основе ограничений может существенно сократить уровень ручной конфигурации и необходимого вмешательства для актуализации политики управления трафиком.
На практике инженер трафика, оператор или даже автоматическая система специфицирует конечные точки канала передачи данных и приписывает набор атрибутов, который объединяет ожидаемые рабочие характеристики канала. Предполагается, что маршрутизация на основе ограничений найдет приемлемый путь, который удовлетворит имеющимся ожиданиям. Если необходимо для более тонкой оптимизации, инженер трафика или система поддержки управления трафиком может затем использовать административно сконфигурированные маршруты.
Маршрутизация на основе ограничений должна, по крайней мере, иметь возможность автоматически получать базовые, приемлемые решения задачи размещения пути для канала передачи данных.
Вообще, известно, что проблема маршрутизации на основе ограничений трудно разрешима для большинства реалистичных ограничений. Однако, на практике для нахождения приемлемого пути, если он существует, может использоваться очень простая хорошо известная эвристика (смотри, например, [11.9]).
Ясно, что если приемлемый путь для заданного канала передачи данных существует, тогда предложенная выше простая процедура его найдет. Могут быть специфицированы дополнительные правила для разрубания узлов и выполнения дальнейшей оптимизации. Вообще, оптимизация обычно сводится к минимизации перегрузки. Однако когда нужно маршрутизировать несколько каналов передачи данных, можно показать, что выше предложенный алгоритм не всегда находит решение, даже когда такое решение существует.
Многие коммерческие реализации коммутаторов Frame Relay и ATM уже поддерживают некоторые аспекты маршрутизации на основе ограничений. Для таких приборов или для новых MPLS-реализаций должно быть относительно просто расширить существующие варианты маршрутизации на основе ограничений, чтобы удовлетворить специфическим требованиям MPLS.
Для маршрутизаторов, которые используют топологически управляемые
(рис 11.7) Процесс маршрутизации, базирующийся на ограничениях, на уровне 3 LSRСуществует много важных деталей, связанных с реализацией маршрутизации на основе ограничений в устройствах уровня 3, которые здесь не обсуждались. Сюда входят:
Короче говоря, маршрутизация на основе ограничений помогает при осуществлении оптимизации сетей путем автоматического поиска приемлемых маршрутов, которые удовлетворяют набору ограничений, налагаемых на каналы передачи данных. Она может существенно уменьшить усилия по административной конфигурации и ручному вмешательству для решения задач управления трафиком.
В начале 90-х для размещения маршрутной таблицы в маршрутизаторе хватало 4-8Мбайт, но требования быстро росли, и это стимулировало широкое внедрение идеологии автономных систем (AS). На какое-то время AS позволили решить проблему, но к 2005-му году требования к памяти маршрутизатора возросли до 100Мбайт, и это не предел.
Давайте сначала прикинем, со сколькими сетевыми узлами вы и сотрудники вашего подразделения устанавливаете связь в течение рабочего дня. Это число нестабильно, зависит от характера работы и сильно варьируется от человека к человеку. Но, очевидно, что это число вряд ли превышает нескольких сотен и слабо меняется со временем. Таким образом, для обеспечения требуемых маршрутов объем маршрутной таблицы, если бы он содержал только используемые вами IP-адреса, был бы незначительным. При этом поиск в такой таблице занимал бы на порядок меньше времени (RTT сокращается на порядок).
Именно идея сохранения в маршрутной таблице только реально используемых виртуальных путей и легла в основу разработки протокола MPLS и сопряженных с ним протоколов маршрутизации.
По мере разработки этой технологии стало ясно, что протокол MPLS (Multi Protocol
Интернет — это система взаимодействия удаленных программ. Совместимость этих программ гарантируется тем, что они следуют определенным регламентациям (протоколам). Управление трафиком представляет собой проблему, ставшую актуальной за последние несколько лет (если не считать ее составляющую, сопряженную с управлением перегрузкой).
Период экстенсивного развития сети Интернет завершился несколько лет тому назад даже в РФ. Сейчас многие сервис-провайдеры пытаются привлечь клиентов дополнительными информационными услугами: IP-телефония, интерактивные игры, доступ к разнообразным базам данных и депозитариям, электронным магазинам, видеоконференциям, видеотелефонии, различным разновидностям
Около 10 лет назад началась разработка первого протокола RSVP (RFC-2205). В нем осуществляется резервирование полосы пропускания (интегральный сервис) вдоль виртуального пути. Запрос резервирования посылает получатель трафика, а исполнителями запроса являются маршрутизаторы, обслуживающие виртуальный путь этого трафика.
Если рассмотреть ситуацию на уровне L2, мы увидим, что здесь имеется сильная зависимость от физического уровня (L1). В сетях с маркерным доступом (например, Token Ring, см. book.itep.ru) существуют механизмы управления приоритетом и способы контроля доступа, гарантирующие определенное значение задержек сетевого отклика. В сетях ISDN и в особенности в ATM предусмотрен целый арсенал средств управления, работающих на фазе установления виртуального канала (процедура SETUP). Для Ethernet до последнего времени ситуация была много хуже. Здесь только некоторые переключатели поддерживают VLAN с приоритетами. Технология виртуальных сетей L2 позволяет сформировать в локальной сети соединение точка-точка. В таком соединении можно гарантировать пропускную способность на уровне 10/100Мбит/c. К сожалению, VLAN L2 создаются и модифицируются, как правило, администратором, но можно эту проблему перепоручить сценарию, например, на PERL, работающему с демоном SNMP сетевого прибора. В такой сети можно также гарантировать низкий уровень разброса времени реакции сети. Если сформировать VLAN с числом узлов (N) больше двух, можно гарантировать полосу лишь не ниже (10/100)/N. Для произвольной сети Ethernet никаких гарантий на уровне L2 предоставить нельзя. Здесь можно рассчитывать только на вышележащие уровни (IP/TCP/UDP).
Принципы организации приоритетного трафика на уровне L2 рассмотрены в стандарте 802.1р. Стандарт 802.1р является частью стандарта 802.1D (мостовые соединения). В протоколе 802.1Q определены 4-байта метки (смотри рис. 11.1). Поле EtherType=TPID (Tagged Protocol Identifier) содержит код 0x8100 (смотри главу об Ethernet). Это поле соответствует полю тип протокола стандартного поля кадра Ethernet и указывает на необходимость обработки кадра согласно требованиям
Топология связей в локальной сети на уровне L3 определяется протоколами маршрутизации (статическими или динамическими — RIP, OSPF,
Протокол (см. IP) предусматривает задание значение ToS, определяемое соответствующим полем заголовка. Однооктетное поле тип сервиса (TOS — Type Of Service) характеризует то, как должна обрабатываться дейтаграмма.
Субполе приоритет предоставляет возможность присвоить код приоритета каждой дейтаграмме. Значения приоритетов приведены в таблице.
| 0 | Обычный уровень |
| 1 | Приоритетный |
| 2 | Немедленный |
| 3 | Срочный |
| 4 | Экстренный |
| 5 | CEITIC/ |
| 6 | Межсетевое управление |
| 7 | Сетевое управление |
В новейших разработках (RFC-2474, Definition of the
До середины 90-х годов поле ToS в большинстве реализаций игнорировалось. Но после начала разработок средств обеспечения качества обслуживания (QoS) внимание к этому возросло. Появилось предложение замены поля TOS на поле DSCP, которое также имеет 8 бит (см. RFC-2474). (Смотри рис. 11.1.) Старшие биты CU пока не определены. Иногда это поле называется байтом DS (
(рис 11.1) Формат поля DSCPБиты DS0-DS5 определяют селектор класса. Значения этого кода представлены в таблице ниже. Стандартным значением DSCP по умолчанию является 000000.
| Селектор класса | DSCP |
|---|---|
| Приоритет 1 | 001000 |
| Приоритет 2 | 010000 |
| Приоритет 3 | 011000 |
| Приоритет 4 | 100000 |
| Приоритет 5 | 101000 |
| Приоритет 6 | 110000 |
| Приоритет 7 | 111000 |
На базе DSCP разработана технология пошагового поведения PHB (per Hop Behavior). В рамках этой политики определяются коды DSCP внутри классов. Например, для политики немедленной переадресации EF рекомендуемое значение DSCP=101110. Эта политика соответствует наиболее высокому уровню обслуживания.
В маршрутизаторах компании CISCO Systems для классификации пакетов и выбора очередей используются два младших бита из трех. По умолчанию классу 0 выделяется 10% полосы, а классам 1, 2 и 3 — 20%, 30% и 40%, соответственно. Для очередей, основанных на классах QoS, пакеты, не принадлежащие ни одной группе, относятся к группе 0 и автоматически получают 1% от
Серьезное влияние на качество обслуживания оказывает перегрузка. Впрочем, если бы перегрузка никогда не возникала, не нужно было бы заботиться о качестве обслуживания, — оно было бы всегда гарантировано.
Строго говоря, значения TOS и QOS не эквивалентны, но именно значение поля ToS является базой для задания QoS. Присваивая при формировании IP-пакета определенное значение поля ToS, прикладная программа может попытаться реализовать определенные ограничения на QoS. Это поле может анализироваться маршрутизаторами, которые поддерживают протокол RSVP или MPLSTE, способные управлять трафиком.
Под управлением трафиком здесь и далее подразумевается обеспечение QoS, управление перегрузкой и средства перераспределения потоков данных. В протоколе UDP нет никаких средств управления трафиком, в ТСР имеются механизмы управления перегрузкой.
Кое-что предлагает набор протоколов RTP/
Существенную проблему составляет необходимость идентифицировать пакеты, принадлежащие определенному процессу. Эта задача легко решается только в рамках протокола IPv6. Там в заголовке предусмотрено поле
В настоящее время используется несколько методов управления трафиком.
QoS связана с возможностью сети предоставить клиенту необходимый ему уровень услуг в условиях работы поверх сетей с самыми разнообразными технологиями, включая Frame Relay, ATM, Ethernet, сети 802.1,
QoS представляет собой собрание технологий, которые позволяют приложениям запрашивать и получать предсказуемый уровень услуг с точки зрения пропускной способности, временного разброса задержки отклика, а также общей задержки доставки данных. В частности, QoS подразумевает улучшение параметров или достижение большей предсказуемости предоставляемых услуг. Это достигается следующими методами:
IEFT определяет для QoS следующие две архитектуры:
Управление перегрузкой может осуществляться путем изменения порядка, в котором посылаются пакеты согласно приписанного им приоритета. QoS-управление перегрузкой имеет четыре модификации протоколов управления очередями, каждый из которых позволяет организовать разное число очередей. L2 QoS предполагает следующее:
Основы протокола MPLS описаны в официальных документах RFC [11.3-11.9 и 11.14]. Существуют публикации и на русском языке [11.11-11.13]. Имеются три монографии, посвященных рассматриваемой проблематике [11.17-11.19].
Принципиальной основой MPLS являются
Для обеспечения структурирования потоков в пакете создается стек меток, каждая из которых имеет свою зону действия. Формат стека меток представлен на рис. 11.2 и 11.3 (смотри RFC-3032). В нормальной ситуации стек меток размещается между заголовками сетевого и канального уровней (соответственно L2 и L3). Каждая

(рис 11.3) Формат стека меток (рис 11.2) Размещение меток в стекеМесто заголовка МАС может занимать заголовок РРР. В случае работы с сетями АТМ метка может занимать поля
(рис 11.4) Формат меток в ячейках АТМНа рисунке 11.2 поле СoS соответствует субполю приоритет поля ToS. Поле CoS имеет три бита, этого достаточно для поля приоритета IP-заголовка. 6-битовое поле кода дифференцированной услуги DSCP сюда записать нельзя. Можно попробовать разместить этот код в поле самой метки. S — флаг-указатель дна стека меток; TTL — время жизни пакета MPLS.
Существующие версии программного обеспечения Cisco IOS (например, Cisco IOS Release 12.0) содержат набор средств управления трафиком. В частности, имеется возможность формировать статические маршруты и управлять динамическими маршрутами путем манипулирования значениями метрики. Иногда этого вполне достаточно, но в большинстве случаев провайдер нуждается в более эффективных средствах.
Межрегиональные каналы являются одной из основных расходных статей провайдеров. Управление трафиком позволяет IP-провайдеру предложить оптимальный уровень услуг своим клиентам с точки зрения полосы и задержки. Одновременно эта технология снижает издержки обслуживания сети.
MPLS представляет собой интеграцию технологий уровней L2 и L3. Управление трафиком в MPLS реализуется путем предоставления традиционных средств уровня L2 уровню L3. Таким образом, можно предложить в односвязной сети то, что достижимо только путем наложения уровня L3 на уровень L2.
Управление коммутацией по меткам основывается на базе данных LIB (Label Information Base). Пограничный маршрутизатор MPLS
(рис 11.5) Обработка помеченных и обычных IP-пакетовУправление трафиком MPLS автоматически устанавливает и поддерживает туннель через опорную сеть, применяя возможности RSVP. Путь, используемый данным туннелем, в любой момент времени определяется на основе ресурсных требований и сетевых возможностей, таких, как полоса пропускания. Но MPLS может решать проблему обеспечения требуемого уровня QoS и самостоятельно.
Информация об имеющихся ресурсах доводится до сведения заинтересованных субъектов с помощью протокола
Путь туннеля вычисляется, основываясь на сформулированных требованиях и имеющихся ресурсах (constraintbased routing).
Одним из подходов управления опорной сетью является определение сети туннелей между всеми участниками обменов. Протокол
Иногда поток настолько велик, что его нельзя пропустить через один канал (туннель). В этом случае может быть создано несколько туннелей между отправителем и получателем.
Для реализации MPLS управления трафиком сеть должна поддерживать следующие возможности Cisco IOS:
Дополнительные данные о MPLS и управлении трафиком можно найти в документации Cisco (поддерживается в реализациях 7620, 7640, 7200, 7500 и 12000).
Протоколы состояния канала типа IS-IS для вычисления кратчайшего пути для всех узлов сети используют алгоритм Дикстры
Новые алгоритмы управления трафиком вычисляют пути до одного или более узлов в сети. Эти маршруты рассматриваются как логические интерфейсы исходного маршрутизатора. В данном контексте эти маршруты представляют собой LSP и рассматриваются как TE-туннели (
Эти TE-туннели являются реальными маршрутами, контролируемыми маршрутизаторами, которые размещены в начале этих туннелей. В отсутствие ошибок TE-туннели гарантируют отсутствие петель, но маршрутизаторы должны согласовать использование TE-туннелей — иначе могут стать возможными зацикливания двух или более таких туннелей. Вероятность возникновения такой ситуации незначительна, так как трасса туннеля определяется отправителем.
Управление трафиком MPLS
В рекомендациях CISCO [15] можно прочесть, что MPLS позволяет провайдеру маршрутизировать потоки данных так, чтобы клиенту гарантировать минимум задержки и максимум пропускной способности.
Сформировав несколько виртуальных сетей для заданного набора узлов, можно попытаться объединять возможности этих сетей в случае возникновения такой необходимости, увеличивая пропускную способность. Можно для каждой из субсетей использовать разный уровень QoS с помощью протокола RSVP. Рассматривается внедрение протокола RSVP на уровень L2 [11.34].
Поскольку пакеты в случае протокола сетевого уровня без установления соединения переносятся от одного маршрутизатора к другому, каждый из них совершенно независим в принятии решения переадресации. То есть, каждый маршрутизатор анализирует заголовок пакета и каждый маршрутизатор реализует
При обычной IP-переадресации маршрутизатор рассматривает два пакета как принадлежащие к одному
В MPLS присвоение пакету определенного
В парадигме переадресации MPLS, поскольку пакет приписан определенному
Некоторые маршрутизаторы анализируют заголовок пакета сетевого уровня не только с целью выбора следующего шага, но и для определения приоритета и класса услуг. Они могут затем применить различные пороги отсева или графика обслуживания пакетов. MPLS допускает (но не требует) приоритетность или класс обслуживания, зависящие полностью или частично от метки. В этом случае можно сказать, что метка представляет собой комбинацию
(
Группа IP-пакетов, которые переадресуются каким-то образом (например, по тому же маршруту, с той же маршрутной обработкой)
Label merging — объединение меток
Замещение множественных приходящих меток для определенного
Label swap — инверсия меток
Базовая операция переадресации, состоящая из просмотра входной метки с целью определения выходной метки, инкапсуляции, порта и другой информации, сопряженной с обработкой поступающих данных
Label swapping
Парадигма переадресации, позволяющая осуществлять переадресацию данных путем использования меток для идентификации классов информационных пакетов, которые обрабатываются при переадресации неразличимым образом
Шаг между двумя узлами MPLS, на которые осуществляется переадресация с привлечением меток
— путь с коммутацией меток
Путь через один или более
Label
Узел MPLS, который способен переадресовывать пакеты L3 согласно их меткам
Loop detection — детектирование петель
Метод, при котором разрешено формирование петлевых маршрутов; такие структуры позднее выявляются
Loop prevention — предотвращение петель
Метод, при котором данные никогда не передаются по петлевым маршрутам
Merge point
Узел, в котором произведено объединение меток
MPLS domain — домен MPLS
Непрерывный набор узлов, реализующих MPLS-маршрутизацию и находящихся в одном маршрутном и административном домене
MPLS edge node — пограничный узел MPLS
Узел MPLS, который соединяет MPLS-домен с узлом, находящимся вне домена, потому что он не поддерживает MPLS, и/или из-за того, что он размещен в другом домене. Заметим, что если
MPLS — выходной узел MPLS
Пограничный узел MPLS, если через него трафик выходит из домена MPLS
MPLS ingress node — входной узел MPLS
Пограничный узел MPLS, если через него трафик входит в домен MPLS
MPLS label — метка MPLS
Метка, которая содержится в заголовке пакета и которая представляет
MPLS node — узел MPLS
Узел, поддерживающий протокол MPLS. Узел MPLS распознает протоколы управления MPLS, реализует один или более протоколов маршрутизации L3 и способен переадресовывать пакеты на основе меток. Узел MPLS может опционно переадресовывать L3 пакеты в традиционном режиме
VC merge — объединение VC
Объединение меток, когда метка MPLS переносится в поле ATM
VP merge — объединение VP
Объединение меток, когда метка MPLS переносится в поле ATM
Метка, используемая в сетях ATM для идентификации виртуального канала
— Data Link Circuit Identifier — идентификатор канала передачи данных
— Forwarding
—
— Interior Gateway Protocol — внутренний протокол маршрутизации
— Incoming Label Map — таблица соответствия входящих меток
— Label Distribution Protocol — протокол пересылки меток
LSP —
— Label
— Next Hop Label Forwarding Entry — запись, содержащая адрес следующего шага при коммутации меток
SVC — Switched
SVP — Switched
VC —
—
VP —
—
Метка является коротким идентификатором фиксированной длины, который используется для идентификации
Если Ru и Rd являются L, если и только если пакет принадлежит определенному классу . То есть, они могут согласовать соответствие между меткой L и F для пакетов, транспортируемых от Ru к Rd. В результате такого соглашения L становится выходной меткой Ru, представляющей , а L становится входной меткой Rd.
Заметим, что L не обязательно представляет для любого пакета, посланного не Ru и адресованного не Rd. L имеет произвольное значение, чья связь F с Ru и Rd является локальной.
Когда говорится, что пакеты посланы из Ru в Rd, это не означает, что пакеты сформированы в Ru или что местом назначения является Rd. Скорее, мы подразумеваем, что пересылаемые пакеты поступают в один или оба
Иногда может оказаться трудно или даже невозможно для Rd сообщить о прибывающих пакетах с меткой L, помещенной в пакет Ru, а не каким-то другим , в то время как с другим согласовано соответствие L с другим , если только Rd не может при получении пакетов с меткой L всегда оповещать, вложена ли в пакет метка Ru1 или Ru2. Гарантия однозначной интерпретации меток находится в зоне ответственности
Предположим, что Ru и Rd договорились о соответствии метки L и для пакетов, посланных из Ru в Rd. Тогда, с учетом этого соответствия, Ru является вышестоящим
Узел является вышестоящим, а другой нижестоящим с учетом того, что в данной ассоциации (метки и класса) метка представляет определенный
Помеченным пакетом является пакет, в заголовке которого имеется метка. В некоторых случаях метка размещается в заголовке инкапсуляции, который введен специально для этой цели. В других ситуациях метка может помещаться в структуре, описывающий информационный канал или в существующем заголовке сетевого уровня, если имеется поле, предназначенное для этой цели.
Метод кодирования метки должен быть согласован субъектом, ее формирующим, и субъектом-адресатом.
В архитектуре MPLS, решение об установлении соответствия конкретной метки L и класса принимается
Если
Конкретная ассоциация метки L и класса , анонсируемая Rd для Ru, может иметь соответствующие атрибуты. Если Ru работает как нижестоящий , тогда при определенных обстоятельствах, может оказаться нужно разослать соответствующий атрибут, полученный от Rd.
Протокол рассылки меток представляет собой набор процедур, с помощью которых один
Протокол рассылки меток включает в себя также любые согласования, при которых партнеры изучают возможности друг друга.
Архитектура не предполагает, что должен существовать только один протокол рассылки меток (см. описание протокола
Архитектура MPLS позволяет
Архитектура MPLS позволяет также
Ожидается, что некоторые реализации MPLS будут осуществлять рассылку меток только в режиме downstreamondemand, другие — только в режиме unsolicited
Ru теперь имеет выбор, следует ли ему отслеживать такие ассоциации или отбрасывать их. Если Ru отслеживает такие ассоциации, тогда он может немедленно начать использование этой ассоциации, если Rd в конце концов, станет его следующим шагом для заданного
Свободный режим удержания меток допускает быструю адаптацию к маршрутным изменениям, а консервативный режим сохранения меток требует от
До сих пор мы обсуждали проблему в предположении, что помеченные пакеты несут в себе только одну метку. Как мы увидим, полезно иметь более обобщенную модель, в которой помеченные пакеты несут в себе несколько меток, уложенных в порядке последний_вошел-первым_вышел (LIFO). Мы будем называть это стеком меток.
Хотя, как это мы увидим, MPLS поддерживает иерархию, обработка помеченных пакетов совершенно не зависит от уровня иерархии. Обработка всегда базируется на верхней метке, без учета того, что некоторое число других меток лежало поверх данной в прошлом, или того, что какое-то их число лежит под ней сейчас.
Непомеченный пакет может рассматриваться как пакет, чей стек меток пуст (т.e., глубина стека которого равна 0).
Если стек пакетных меток имеет глубину m, мы считаем, что метка на дне стека размещена на уровне 1, метка над ней (если таковая имеется) имеет уровень 2, а метка наверху стека имеет уровень m. На рис. 11.6 показана эволюция содержимого стека меток в процессе доставки пакетов от отправителя к получателю.
(рис 11.6) Эволюция стека метокНа вход сети MPLS пакет попадает в узле А1. Здесь пакету присваивается метка, и он переадресуется далее. После передачи пакета из узла сетевого провайдера B1 -> B4 ). После передачи пакета из узла В4 в узел С1 в стек меток добавляется еще одна метка. Когда пакет покидает сеть
Запись Next Hop Label Forwarding (NHLF Entry) применяется при переадресации помеченных пакетов. Здесь содержится информация о:
Она может также содержать:
Заметим, что для данного
Это подразумевает, что в некоторых случаях
Если следующим шагом пакета является текущий
Incoming Label Map (
Если
Методика
Обмен меток (Label swapping) представляет собой использование следующих процедур для переадресации пакетов. Чтобы переадресовать помеченный пакет,
Чтобы переадресовать непомеченный пакет,
Важно заметить, что, когда используется коммутация меток, следующий шаг всегда берется из
Данный и переправить эту ассоциацию партнеру Ru1. Rd может также связать метку L2 с и переправить эту ассоциацию партнеру Ru2. Является ли L1 == L2, не определяется архитектурой, это вопрос исключительно локальный.
Данный и переправить эту ассоциацию партнеру Ru1. Rd может также связать метку L с и переправить эту ассоциацию партнеру Ru2. Если и только если Rd может сообщить, когда он получает пакет с меткой на верху стека равной L, занесена ли она в стек RU1 или RU2, архитектура не требует равенства F1 == F2. В таких случаях мы можем сказать, что Rd использует другое пространство меток, которые он пересылает Ru1, по отношению меток, посылаемых Ru2. Вообще, Rd может лишь сообщить, Ru1 или Ru2 положил данную метку со значением L на верх стека, если выполнены следующие условия:
Когда эти условия выполнены,
Если конкретный , так же, как ассоциацию метки L с , F1 != F2, если и только если каждая ассоциация корректна для пакетов, которые Ru посылает Rd через один из интерфейсов. Во всех других случаях Rd не должен посылать ассоциации Ru, сопрягающие одну и ту же метку с двумя разными
Этот запрет сохраняется, даже если ассоциации относятся к различным уровням иерархии. В MPLS не существует понятия разных пространств меток для различных уровней иерархии, — когда метка интерпретируется, уровень метки значения не имеет.
Возникает вопрос, может ли
Маршрут с коммутацией меток (LSP) уровня m для определенного пакета P представляет собой последовательность маршрутизаторов <R1, ..., Rn> со следующими свойствами:
m ;i, 1<i<n, P (когда он приходит в m ;P от R1 к R[n-1] глубина стека не будет меньше m ;i, 1<i<n: Ri передает P в R[i+1] посредством MPLS, т.e. путем использования метки в верхней позиции стека (метка уровня m) в качестве индекса в i, 1<i<n: если система S получает и переадресует P после того, как P передан Ri, но до того, как P получен, R[i+1] (например, Ri и R[i+1] могут быть соединены через коммутируемую субсеть и S может быть одним из переключателей информационного канала); далее решение переадресации S не базируется на метке уровня m или на основе заголовка сетевого уровня. Возможные причины этого:a) решение не основано на содержимом стека или заголовка сетевого уровня;
b) решение основано на содержимом стека, куда положены другие метки (т.e., на метке уровня m+k, где k>0 ).
Другими словами, мы можем описать уровень m LSP для пакета P как последовательность маршрутизаторов, которая:
m ;m ;m-k, где k>0, или когда решение переадресации делается традиционно, посредством не-MPLS процедур.Следствием (или, пожалуй, предпосылкой) этого является то, что, когда бы .
Рассмотрим набор узлов, которые могут быть входными LSP-узлами для . Тогда существует LSP для , который начинается с каждого из этих узлов. Если некоторое число этих LSP имеет идентичный выходной LSP, тогда можно рассматривать набор таких LSP как дерево, чьим корнем является выход LSP. Так как данные переносятся вдоль этого дерева по направлению к корню, эта структура может быть названа деревом мультиточка-точка. Мы можем, таким образом, говорить о дереве LSP для определенного .
Заметим, что согласно стандартным определениям, если <R1, ..., Rn> является LSP уровня m для пакета P, P может быть передан от R[n-1] к Rn с глубиной стека меток m-1. То есть, может быть выполнена операция pop для стека меток в предпоследнем
С архитектурной точки зрения это вполне приемлемо. Целью метки уровня m является доставка пакета в Rn. Раз R[n-1] решил послать пакет Rn, метка не имеет более значения и не должна далее транспортироваться.
Имеется также практическое преимущество извлечения данных о предпоследнем шаге. Если так не сделать, тогда при получении пакета выходной LSP сначала просматривает верхнюю метку из стека и определяет, что это действительно выходной LSP. Затем он должен извлечь из стека метку и проверить, что осталось в стеке пакета. Если в стеке имеется другая метка, выходное устройство анализирует метку и осуществляет пересылку пакета на основе этого анализа. (В этом случае выходное устройство для пакетов уровня m является промежуточным узлом для его уровня m1 LSP). Если в стеке нет других меток, тогда пакет переадресуется согласно его адресу места назначения сетевого уровня. Заметим, что это потребует от выходного устройства двух просмотров: либо просмотра двух меток, либо просмотра метки с последующим анализом сетевого адреса.
Если, с другой стороны, используется извлечение предпоследнего шага из стека, тогда предпоследний узел просматривает метку и определяет:
Предпоследний узел далее извлекает метку из стека и переадресует пакет на основе информации, полученной при просмотре метки, которая была до этого на верху стека. Когда выход LSP получает пакет, метка, которая находится на верху стека, будет меткой, необходимой для просмотра, чтобы осуществить его собственное решение о переадресации. Или, если пакет нес в себе только одну метку, выход LSP просто просмотрит заголовок пакета сетевого уровня, который является как раз тем, что ему нужно просмотреть, чтобы принять решение о переадресации. Эта методика позволяет выходному шлюзу выполнить один просмотр, а также требует одного просмотра от предпоследнего узла.
Создание fastpath может существенно упроститься, если известно, что требуется лишь один просмотр метки.
В действительности, когда в предпоследнем узле метка извлечена из стека, концом LSP не обязательно должен быть
Однако некоторые аппаратные переключатели не могут извлекать метки из стека, поэтому это не может быть универсальным требованием. Могут также встретиться ситуации, в которых извлечение из стека предпоследнего шага нежелательно. Следовательно, предпоследний узел извлекает метку из стека, только если это запрашивается выходным узлом, ИЛИ если следующий узел в LSP не поддерживает MPLS.
Начальное согласование протокола рассылки меток должно позволять каждому
Если использована операция pop предпоследнего шага, возможен запрос о способности выходного узла корректно интерпретировать верхнюю метку в стеке приходящего пакета. Поскольку правила уникальности и области действия выполняются, всегда возможно правильно интерпретировать верхнюю метку стека приходящего пакета.
LSP Next Hop для определенного помеченного пакета является , использованной для переадресации пакета.
Заметим, что LSP следующего шага может отличаться от того, который был бы выбран
Мы будем использовать термин "следующий шаг L3", когда будем иметь в виду такой маршрут.
Что должен сделать
Возможно, что метка пытается
Следовательно, когда получен помеченный пакет с неверной входной меткой, он должен быть отброшен, если только он не определен каким-то способом, так что его переадресация не может вызвать никакого вреда.
Некоторые
В независимом управлении LSP каждый
Если хочется гарантировать, чтобы трафик в конкретном
Упорядоченное и независимое управление полностью совместимы. Однако если только не все
Эта архитектура позволяет сделать выбор между независимым и упорядоченным управлением исключительно местной проблемой. Так как взаимодействуют два метода, данный
Одним из путей распределения трафика в
Данный набор
Когда используется упорядоченное управление, каждый
Когда используется независимое управление, допускается, чтобы имелись два смежных
Если Ru имеет более тонкую гранулярность, чем Rd, это не создает проблем. В этой ситуации, когда Ru нужно переадресовать помеченные пакеты для этих n и m метками, где n > m. В качестве опции Ru может отозвать набор из n меток, который он разослал, и затем разослать набор из m меток, соответствующих уровню гранулярности Rd. Совсем не нужно гарантировать корректность операции, но это вызовет сокращение числа меток, разосланных Ru. Ru не получает какого-либо преимущества при рассылке большего числа меток. Решение, делать это или нет, является исключительно локальным.
Если Ru имеет более грубую гранулярность, чем Rd (т.e., Rd разослал n меток для набора m, где n > m ), имеется два варианта.
m и рассылки n меток. Это предпочтительная опция.m метками и субнабором Rd из n меток, если он может определить, что это не изменит маршрутизацию. Например, предположим, что Ru использует одну метку для всех потоков, которые должны пройти определенный выходной В любом случае, каждый
Выбор маршрута сопряжен с методом, используемым при выборе LSP для определенного
Маршрутизация шаг-за-шагом позволяет каждому узлу независимо выбрать следующий шаг для каждого
В LSP при явной маршрутизации каждый
Последовательность
Явная маршрутизация может быть полезной для ряда целей, таких, как политика маршрутизации или управление трафиком (TE). В MPLS явный маршрут должен быть специфицирован в момент формирования метки, но явный маршрут не должен быть специфицирован для каждого IP-пакета. Это делает явную маршрутизацию MPLS более эффективной по сравнению с альтернативной IP-маршрутизаций отправителя.
Когда помеченный пакет транспортируется вдоль LSP, может случиться, что он достигнет
Может показаться привлекательным в таких случаях ликвидировать стек меток и попытаться переадресовать пакеты далее методами традиционной маршрутизации, базирующимися на содержимом заголовка сетевого уровня. Однако это небезопасная процедура.
Если нельзя определить, что ни одна из этих ситуаций не реализована, единственно безопасной процедурой может стать отбрасывания пакета.
При традиционной IP-переадресации каждый пакет имеет в заголовке значение поля TTL (Time To Live). Когда бы пакет ни проходил через маршрутизатор, его TTL уменьшается на 1. Если TTL достигает 0 прежде, чем пакет достигнет места назначения, он отбрасывается.
Это обеспечивает некоторый уровень защиты против петлевых маршрутов, которые могут существовать из-за ошибок конфигурации или по причине ошибки или медленной сходимости
(i) TTL как способ подавления зацикливания;
(ii) TTL как метод реализации других функций, например, ограничения области распространения пакета.
Когда пакет движется по LSP, он должен появляться с тем же значением TTL, которое он имел бы, если бы проходил через ту же последовательность маршрутизаторов, без коммутации меток. Если пакет проходит через иерархию LSP, полное число пройденных шагов-
Способ, которым обрабатывается поле TTL, может варьироваться в зависимости от того, размещены ли значения меток MPLS в прослойке между заголовками [MPLS-SHIM] или метки MPLS транспортируются в заголовке L2, таком, как заголовок ATM [MPLS-ATM] или Frame Relay [MPLSFRMRLY].
Если значения меток вставлены в прослойку, которая размещается между канальным и сетевым заголовками, тогда эта прослойка должна иметь поле TTL, которое должно заполняться так же, как аналогичное поле заголовка сетевого уровня, декрементироваться при каждом шаге
Если значения меток записаны в заголовке канального уровня (например, поле
Когда пакет выходит из сегмента non-TTL LSP, он должен получить TTL, отвечающее числу шагов
Иногда это может быть определено на входе сегмента non-TTL LSP так, что соответствующее значение TTL пакета достигнет нуля, прежде чем пакет дойдет выхода сегмента nonTTL LSP. В этом случае
В nonTTL LSP сегменте, по определению, TTL не может использоваться для предотвращения петель маршрута. Важность контроля циклических путей зависит от конкретного оборудования, применяемого для реализации
Предположим, например, что для коммутационных целей в MPLS используются ATM-переключатели, с метками, транспортируемыми в поле
Даже в случае хорошего доступа к буферу, целесообразно иметь некоторые средства детектирования петель, которые имеют длину больше определенной. Кроме того, даже когда TTL и/или справедливая организация очередей в виртуальных каналах предоставляет возможности для сохранения петель, может быть желательно по возможности избегать установления LSP с петлями. Все
Чтобы передавать стек меток вместе с пакетом, необходимо определить его конкретную структуру. Архитектура поддерживает несколько различных структур. Выбор структуры стека зависит от конкретного типа оборудования, используемого для переадресации пакетов.
Если для переадресации помеченных пакетов применяются MPLS-оборудование и/или программы, наиболее очевидным способом представления стека меток является определение нового протокола, который будет использоваться в пределах прослойки между заголовками канального и сетевого уровней. Эта прокладка могла бы реально быть
MPLS-инкапсуляция будет, в свою очередь, инкапсулирована с привлечением протокола канального уровня. Общая MPLS-инкапсуляция специфицирована в [MPLSSHIM].
Процедуры переадресации MPLS подобны тем, что применяются в ATM-коммутаторах. ATM-коммутаторы используют входной порт и значение поля
Используется поле
Используется поле
Однако эта методика не может применяться всегда. Если сеть включает виртуальный маршрут ATM через ATM-сеть, не поддерживающую MPLS, тогда поле
Когда используется этот метод представления, ATM-
Для размещения метки на вершине стека используется поле
Эта методика зависит от того, можно ли присвоить 16-битовые значения
Если имеется больше меток в стеке, чем места в заголовке ATM, тогда ATM-представление должно комбинироваться с общей инкапсуляцией.
Если <R1, R2, R3> является сегментом LSP, возможно, что R1 будет использовать одно представление стека меток при передачи пакета P в R2 — но R2 будет использовать другое представление при передаче пакета P в R3.
Вообще, архитектура MPLS поддерживает LSP с разным представлением стека меток на разных шагах маршрута.
Следовательно, когда мы обсуждаем процедуры обработки помеченных пакетов, мы делаем это в терминологии взаимодействия со стеком меток. Когда приходит помеченный пакет,
К сожалению, ATM-коммутаторы не имеют возможности осуществлять преобразование из одного представления стека меток в другое. Архитектура MPLS требует, чтобы, когда два ATM-коммутатора оказываются последовательными
Естественно будут существовать MPLS-сети, которые содержат комбинацию ATM-коммутаторов, работающих в качестве
Предположим, что
Будем считать, что
Когда некоторый
При объединении меток число входящих меток на
Архитектура MPLS приспосабливает как объединяющие, так и не объединяющие
Процедура переадресации MPLS очень схожа с используемой в ATM и Frame Relay. То есть, приходит блок данных, отыскивается метка в коммутационной таблице (
В действительности, можно использовать такие технологии для переадресации MPLS. Протокол рассылки меток может быть использован в качестве сигнального протокола для формирования коммутационных таблиц. К сожалению, эти технологии не обязательно поддерживают возможности объединения меток. В ATM, если попытаться осуществить объединение меток, в результате можно получить перекрытие ячеек от различных пакетов. Если ячейки от разных пакетов оказываются перекрытыми, невозможно осуществить сборку пакетов. Некоторые коммутаторы Frame Relay используют коммутацию ячеек на своих внутренних шинах (
Предлагается два решения этой проблемы. Первое: MPLS будет включать процедуры, которые допускают применение не объединяющих
Так как MPLS поддерживает объединяющие и не объединяющие
Вышестоящий
В архитектуре MPLS, когда определенный вышестоящий сосед не поддерживает объединение меток, ему не посылаются какие-либо метки для заданного
Возможно, что существуют какие-то узлы, которые поддерживают объединение меток, но могут объединить лишь ограниченное число входящих меток в одну исходящую. Предположим, например, что из-за некоторых аппаратных ограничений узел может объединить четыре входящие метки в одну исходящую. Предположим, что он получил шесть меток, пришедших для данного
Существует несколько методов, исключающих проблемы перекрытия ячеек в ATM и, таким образом, позволяющих ATM-коммутаторам поддерживать объединение потоков данных.
Когда применяется объединение VP, несколько виртуальных путей объединяются в один путь, но пакеты от разных отправителей отличаются разными
Когда используется объединение VC, коммутаторы должны буферизовать ячейки пакета до тех пор, пока не будет принят весь пакет (это может быть определено путем просмотра индикатора конца кадра для AAL5).
Объединение VP имеет преимущество в том, что оно совместимо с подавляющим числом реализаций ATM-коммутаторов. Благодаря этому, объединение VP может с большей вероятностью использоваться в существующих сетях. В отличие от объединения VC, объединение VP не приводит к каким-либо задержкам в точках объединения, а также не накладывает никаких требований на буферы, — однако требует координации пространства
Компромисс между совместимостью с существующим оборудованием, сложностью протокола и масштабируемостью предполагает, что желательна поддержка протоколом MPLS объединения как VP, так и VC. Для того, чтобы реализовать это, каждый ATM-коммутатор, участвующий в MPLS, должен знать, могут ли ближайшие ATM соседи осуществлять объединение VP или VC.
Взаимодействие различных форм объединения в ATM наиболее просто описать на примере взаимодействия систем с объединением VC и без него.
В случае, когда соединены узлы, поддерживающие и не поддерживающие объединение VC, переадресация ячеек базируется во всех вариантах на VC (т.e., на соединении
Аналогично можно поддержать узлы, которые выполняют объединение VP. В этом случае объединяющий VP узел, вместо посылки запроса одного или нескольких
Чтобы поддерживать узлы, объединяющие и не объединяющие VP и VC, необходимо разрешить вышестоящим узлам запрашивать комбинацию из нуля или более идентификаторов VC (состоящих из
Иногда маршрутизатор Ru предпринимает действия, чтобы доставить определенный пакет другому маршрутизатору Rd, даже если Ru и Rd не являются смежными углами на пути пакета, а Rd не является местом назначения пакета. Это может быть сделано, например, путем
Если туннелированный пакет следует маршрутом шаг-за-шагом от Ru к Rd , мы говорим, что это "туннель, маршрутизированный шаг-за-шагом", чье начало находится в Ru и чьим концом является Rd.
Если туннелированный пакет транспортируется из Ru в Rd по пути, отличному от маршрута шаг-за-шагом, мы говорим, что это туннель, маршрутизированный явно с начальной точкой в Ru и конечной — в Rd. Например, мы можем послать пакет через туннель, маршрутизированный явно, путем инкапсуляции его в пакет, маршрутизируемый отправителем.
Имеется возможность реализовать туннель в виде LSP и использовать коммутацию меток, а не инкапсуляцию сетевого уровня, чтобы заставить пакет идти через туннель. Туннель будет иметь вид LSP <R1, ..., Rn >, где R1 является началом туннеля, а Rn — его концом. Это называется LSP-туннелем.
Набор пакетов, которые посланы через LSP-туннель, представляет
Если для конечной точки туннеля не нужно определять, какой пакет получен через туннель, как это обсуждалось выше, то стек меток может быть очищен на предпоследнем
LSP-туннель, маршрутизированный шаг-за-шагом, представляет собой туннель, который реализован в виде LSP, маршрутизированного по схеме шаг-за-шагом. LSP-туннелем, маршрутизированным явно, является LSP, который маршрутизирован явно.
Рассмотрим LSP <R1, R2, R3, R4>. Предположим, что R1 получил непомеченный пакет P и заносит метку в его стек, чтобы пакет следовал заданным путем шаг-за-шагом. Предположим далее, что R2 и R3 не связаны непосредственно, но являются виртуальными соседями, так как представляют собой конечные точки LSP-туннеля. Итак, действительная последовательность
Предположим, что пакет P транспортируется на уровне 1 LSP <R1, R 2, R3, R4> и при транспортировке из R2 в R3 движется по LSP уровня 2 <R2, R21, R22, R3>. С точки зрения LSP уровня 2, партером рассылки меток R2 является R21. С точки зрения LSP уровня 1, партерами рассылки меток R2 являются R1 и R3. Могут существовать партеры обмена метками на каждом уровне иерархии. В разделе "LSP-туннелирование между пограничными BGP маршрутизаторами" рассмотрены некоторые способы реализации этой иерархии.Заметим, что в этом примере R2 и R21 должны быть
Когда два
Архитектура MPLS поддерживает два способа рассылки меток на различных уровнях иерархии: явное и неявное партнерство (Peering).
Рассылка меток (пиринг) осуществляется путем обмена протокольными сообщениями, которые адресованы партнеру. Возможен обмен метками и с удаленным партнером. Это делается одним из двух способов.
При явном партнерстве метки пересылаются партнеру в протокольных сообщениях так же, как это делается при локальном обмене. Эта методика наиболее полезна, когда число удаленных партнеров мало, либо число ассоциаций высокого уровня велико, либо удаленные партнеры обмена метками размещены в удаленных областях или доменах. Примеры использования явного партнерства представлены ниже.
При неявном партнерстве протокольные сообщения рассылки меток, адресованные одному партнеру, не посылаются. Скорее, чтобы разослать метки высокого уровня удаленным партнерам, метка представляется в виде атрибута метки более низкого уровня, а затем производится рассылка метки низкого уровня вместе с этим атрибутом местным партнерам. Локальные партнеры обмена метками рассылают полученные данные дальше. Этот процесс продолжается до тех пор, пока информация не достигнет удаленных партнеров.
Эта техника наиболее полезна, когда число удаленных партнеров обмена метками велико. Неявное партнерство не требует сетки партнеров n-квадрат, чтобы разослать метки удаленным партнерам, так как имеется подстраховка за счет локального обмена информацией. Однако неявное партнерство требует, чтобы промежуточные узлы запоминали информацию, в которой они могут быть заинтересованы.
Протокол рассылки меток используется между узлами в сети MPLS для установления и поддержания привязки меток. Чтобы MPLS работал корректно, информация, сопряженная с рассылкой меток, должна рассылаться совершенно надежно, а протокольные сообщения рассылки меток, имеющие отношение к определенному
Одним из способов достижения цели является использование TCP в качестве базового транспортного протокола, как это делается в [MPLSLDP] и [MPLSBGP].
Данная архитектура не устанавливает жестких правил для выбора того, какой протокол рассылки меток следует использовать при конкретных обстоятельствах. Однако имеется возможность представить некоторые соображения.
Во многих сценариях желательно установить связь между метками и
Протокол BGP рассылает маршруты, и, если BGP-отправителю нужно разослать метки своим BGP-партнерам, использование BGP для целей рассылки меток (смотри [MPLSBGP]) имеет ряд преимуществ. В частности, это позволяет BGP рефлекторам маршрутов рассылать метки, таким образом обеспечивая лучшую масштабируемость по сравнению с использованием
Когда применяется RSVP при резервировании ресурсов для конкретных потоков, может быть желательно помечать пакеты в этих потоках, так что не нужно будет использовать RSVP filterspec в каждом из узлов. Осуществление рассылки меток в рамках RSVP в качестве части процесса формирования пути и резервирования ресурсов является наиболее эффективным методом решения проблемы.
В некоторых приложениях MPLS, в частности, сопряженных с управлением трафиком (ТЕ), желательно формировать пути, маршрутизированные явно от точки входа до точки выхода. Хотелось бы также осуществлять резервирование ресурсов вдоль всего пути. Можно представить два подхода.
Первый подход реализован в протоколе, описанном в [MPLSRSVPTUNNELS], второй специфицирован в [MPLSCRLDP].
Ряд приложений MPLS требуют, чтобы пакеты с определенной меткой направлялись одним и тем же путем, маршрутизированным шаг-за-шагом. Этот путь будет использоваться для пакетов с адресом, который специфицирован в соответствующем поле заголовка сетевого уровня.
Вообще, маршрутизатор R определяет следующий шаг для пакета P путем нахождения подходящего адресного префикса X в своей маршрутной таблице. То есть, пакеты в данном
Заметим, что пакет P может быть приписан к , а может быть идентифицирован адресным префиксом X, даже если адрес места назначения P не согласуется с X.
X, если и только если выполнено одно из следующих условий:
Вообще, эти правила гарантируют, что, если маршрут до определенного адресного префикса рассылается через
Чтобы использовать MPLS для переадресации пакетов согласно маршруту шаг-за-шагом, соответствующему какому-либо адресному префиксу, каждый
X использовать протокол рассылки меток для уведомления партнеров (в рамках Х ) о существовании ассоциации метки с данным префиксом.Существует также обстоятельство, при котором
Эти правила гарантируют, что метки, ассоциированные с адресным префиксом, которые соответствуют маршрутам BGP, рассылаются
Эти правила имеют целью указать, какие ассоциации меток должны рассылаться данным
Если путь шаг-за-шагом, которому пакет P должен следовать, характеризуется <R1, ..., Rn >, тогда < R1, ..., Rn> может быть LSP до тех пор, пока:
X, такой, что для всех i, $$1 \le i<n $$, X является наилучшим соответствием в маршрутной таблице Ri для адреса места назначения P ;i, 1<i<n, Ri установил соответствие метки и X и разослал эту метку всем R[i-1].Заметим, что LSP пакета может простираться только до ближайшего маршрутизатора, чья маршрутная таблица содержит запись с префиксом, имеющим наилучшее соответствие для адреса места назначения пакета. В этой точке LSP должен завершиться, а алгоритм поиска наилучшего соответствия должен быть запущен заново.
Предположим, например, что пакет P, с адресом места назначения 10.2.153.178 должен двигаться от R1 к R2 и далее к R3. Предположим также, что R2 анонсирует адресный префикс 10.2/16 для R1, но R3 анонсирует 10.2.153/23, 10.2.154/23 и 10.2/16 до R2. То есть, R2 анонсирует агрегатный маршрут для R1. В этой ситуации пакет P может быть коммутируемым по метке до тех пор, пока он не достигнет R2, но так как R2 осуществил агрегатирование маршрутов, он должен запустить алгоритм поиска наилучшего соответствия, чтобы найти
X, если и только если выполнено одно из следующих условий:
X является адресным префиксом в маршрутной таблице R, который наилучшим образом соответствует Y; илиX является подходящей начальной субстрокой Y, но "предыдущие шаги LSP" R для X не содержат никакого адресного префикса Y. То есть, R является точкой ликвидации агрегатирования для адресного префикса X .X, если и только если:
X служит R2, а R1 и R2 не являются партнерами по рассылке меток с точки зрения X (возможно, потому, что R2 не поддерживает MPLS); илиОпределение LSP позволяет концу LSP быть узлом, который не поддерживает MPLS. В этом случае предпоследний узел в LSP является прокси выходным.
Неявная метка NULL представляет собой метку со специальной семантикой, которую NULL с соответствующим адресным префиксом, тогда вместо того, чтобы заменить значение метки на вершине стека, Ru опустошает стек меток, а затем переадресует полученный пакет в Rd.
NULL и адресного префикса X в
X, иNULL (т.e., что он может очистить стек меток), иX.Это заставляет предпоследний X, — далее, если предпоследний
Однако, если предпоследним
Если предпоследний
Существуют ситуации, в которых Ri начала LSP, знает, что пакеты нескольких разных
Затем Ri может связать одну метку со всеми элементами набора
Как может
Если используется присвоение меток , то число меток, которые необходимо поддерживать во всей сети может быть сокращено. Это может быть важно в случае, когда используются аппаратные переключатели для реализации MPLS, а коммутирующее оборудование может поддерживать ограниченное число меток.
Возможным подходом могло бы быть конфигурирование сети для использования присвоения меток по умолчанию, но при конфигурации конкретных для одного или более адресных префиксов, для которых он является концом LSP. Введем следующее правило:
• если какой-то
Например, предположим, что желательно присвоить метку по умолчанию, но также присвоить разные метки тем адресным префиксам, для которых существует несколько возможных концов LSP (т.e., для тех адресных префиксов, которые являются и затем конфигурировать . Для конкретного адресного префикса было бы нужно сконфигурировать X.
Важно заметить, что, когда Ru и Rd являются смежными
Аналогично, если Rd присваивает разные метки X1 и X2, но Ru присваивает им обоим метку, соответствующую адресу конца LSP или прокси конца, то переадресация будет, тем не менее, осуществляться корректно. Ru будет лишь устанавливать соответствие между входной меткой и меткой, которую сформировал Rd для адреса конца LSP.
Существует несколько причин, почему желательно использовать явную маршрутизацию, а не схему шаг-за-шагом. Например, это позволяет маршрутам основываться на административной политике, допускать маршруты, которые формируют LSP согласно соображениям управления трафиком [MPLS-TRFENG].
В некоторых ситуациях сетевые администраторы могут захотеть переадресовывать некоторые классы трафика по определенным специфицированным заранее маршрутам, и эти пути отличаются от маршрутов шаг-за-шагом, по которым шел трафик первоначально. Это может быть сделано для поддержки политики маршрутизации или для управления трафиком (ТЕ). Явный маршрут может быть сконфигурирован или он может быть определен динамически посредством, например, маршрутизации на основе ограничений. Для этого нужны:
Если передающий конец туннеля хочет поместить помеченный пакет в туннель, он должен сначала заменить метку на вершине стека меткой, присланной принимающей стороной туннеля. Затем он должен ввести в стек метку, которая соответствует самому туннелю и прислана маршрутизатором следующего шага в туннеле. Чтобы разрешить это, концы туннеля должны быть явными партнерами по обмену метками.
Предположим, что конкретный
Можно было бы присвоить одну метку всем 10 адресным префиксам. Тогда Re будет концом LSP для всех этих префиксов. Это гарантирует, что пакеты для всех 10 адресных префиксов будут доставлены Re. Однако Re был бы должен просматривать сетевой адрес каждого такого пакета, чтобы правильно выбрать интерфейс, через который его следует послать.
В качестве альтернативы можно было бы присвоить разные метки для каждого из интерфейсов. Тогда Re будет прокси концом LSP для 10 адресных префиксов. Это исключает необходимость для Re просматривать сетевые адреса пакетов, чтобы переадресовывать пакеты. Однако это может привести к использованию слишком большого числа меток.
Альтернативой может быть объединение всех 10 адресных префиксов вокруг одной общей метки уровня 1 (которая ассоциирована также с адресом самого
Когда X, а следующим шагом Ru LSP для X является Rd, и Rd послал Ru ассоциацию метки L1 и X, наряду с атрибутом стека L2, тогда
X своим партнерам по рассылке меток, он должен включить L2 в качестве атрибута стека;X ), Ru должен разослать новый атрибут стека.Заметим, что хотя значение метки, связанное с X, может отличаться для последовательных шагов в LSP, значение атрибута стека передается без изменений, оно устанавливается узлом прокси конца LSP.
Таким образом, прокси конец LSP для X становится неявным партнером каждого прочего
Если
Если специфицировано несколько ассоциаций меток для заданного адресного префикса, они могут иметь разные атрибуты.
Рассмотрим случай, когда пакеты P1 и P2 имеют адреса места назначения в префиксе Х. Предположим, что маршрут шаг-за-шагом для P1 представляет собой <R1, R2, R3>, а путем шаг-за-шагом для P2 является <R4, R2, R3>. Давайте предположим, что R3 связывает метку L3 с X, и отсылает эту ассоциацию R2. R2 связывает метку L2 с X, и посылает эту ассоциацию в R1 и R4. Когда R2 получает пакет P1, его входная метка будет также L2. R2 заменит L2 на L3 и пошлет P1 в R3. Когда R2 получает пакет P2, его входная метка будет также L2. R2 снова заменит L2 на L3 и пошлет P2 в R3.
Заметим далее, что когда P1 и P2 двигаются от R2 к R3, они несут одну и ту же метку, и, с точки зрения MPLS, они не различимы. Таким образом, вместо того, чтобы говорить о двух разных LSP, <R1, R2, R3> и <R4, R2, R3>, мы можем говорить об одном дереве LSP мультиточка-точка (MultipointtoPoint LSP Tree), которое мы можем обозначить как <{ R1, R4}, R2, R3>.
Это создает трудности, когда мы пытаемся использовать обычные ATM-коммутаторы в качестве
Рассмотрим случай автономной системы A, которая пропускает трафик между другими автономными системами. Автономная система A будет иметь несколько пограничных маршрутизаторов BGP и сеть BGP соединений между ними, через которые пересылаются BGP маршруты. Во многих таких случаях желательно избежать рассылки BGP-маршрутов маршрутизаторам, которые не являются пограничными. Если этого можно избежать, нагрузка по рассылке маршрутов этих маршрутизаторов существенно сокращается. Однако должны быть некоторые средства, гарантирующие, что транзитный трафик будет доставляться от одного BGP-маршрутизатора к другому с помощью внутренних маршрутизаторов.
Это может быть легко сделано с помощью туннелей LSP. Предположим, что BGP маршруты рассылаются только пограничным BGP-маршрутизаторам, а не внутренним маршрутизаторам, которые расположены по пути. LSP-туннели могут использоваться следующим образом.
X в маршрутной таблице B1 является наилучшим соответствием для адреса места назначения пакета P;X является маршрутом BGP;X является B2;X и посылает эту ассоциацию в B1;Далее, прежде чем послать пакет P в I1, B1 должен сформировать стек меток для P, затем занести туда метку L1, а на верх стека записать L2.
X, и что условия 3b, 3c, 3d и 3e выполнены. Тогда, прежде чем посылать пакет P в I1, B1 должен заменить метку на верху стека на метку L1 и затем записать в стек метку L2.Эти процедуры эффективно формируют LSP-туннель, маршрутизируемый шаг-за-шагом, между пограничными маршрутизаторами BGP.
Так как пограничные BGP-маршрутизаторы обмениваются ассоциациями меток для адресных префиксов, которые неизвестны
Иногда можно сформировать LSP-туннель, маршрутизированный шаг-за-шагом, между двумя пограничными маршрутизаторами BGP, даже если они не принадлежат общей автономной системе. Предположим, например, что B1 и B2 находятся в AS1. Предположим также, что B3 является
Использование LSP-туннелей, маршрутизированных шаг-за-шагом, не ограничивается туннелями между узлами BGP. Любая ситуация, в которой мог бы использоваться туннель с инкапсуляцией, является приемлемой для применения LSP-туннеля, маршрутизируемого шаг-за-шагом. Вместо
Если начальный узел туннеля намеревается направить помеченный пакет в туннель, он должен сначала заменить значение метки в стеке на значение, полученное от узла конца туннеля. Затем он должен занести в стек метку, которая соответствует самому туннелю. Чтобы разрешить это, конечные точки туннеля должны быть явными партнерами обмена метками. Ассоциации меток, которыми они должны обмениваться, не играют никакой роли для
Мультикастная маршрутизация осуществляется путем формирования мультикаст-деревьев. Дерево, вдоль которого должен переадресовываться конкретный мультикаст-пакет, зависит от адресов отправителя и получателя пакета. Когда конкретный
Когда приходит помеченный мультикастный пакет,
Далее рассматриваются только ассоциации меток, которые предназначены для трафика, который коммутируется по меткам в пределах пути, маршрутизованного по схеме шаг-за-шагом. В этих случаях метка будет соответствовать адресному префиксу в маршрутной таблице.
Существует некоторое число различных процедур, которые могут использоваться для рассылки ассоциаций меток. Некоторые исполняются нижестоящим
Вышестоящий
Request (запрос) иNotAvailable (не доступен) иRelease (отзыв) иlabelUse.Архитектура MPLS поддерживает несколько разных вариантов каждой процедуры. Однако архитектура MPLS не поддерживает все комбинации возможных вариантов.
Процедура рассылки используется нижестоящим
Вне зависимости от используемой процедуры, если ассоциация метки для заданного адресного префикса была послана нижестоящим
Пусть Rd является
X является адресным префиксом в маршрутной таблице Rd;X.Когда бы эти условия ни выполнялись, Rd должен связать метку с X и послать эту ассоциацию Ru. Отслеживание ассоциаций, которые посылаются Ru, и контроль того, что Ru всегда имеет эти ассоциации, является областью ответственности Rd.
Эта процедура должна использоваться
Пусть Rd является
X ;X ; или следующим шагом Rd L3 для X является Rn, где Rn отличается от Ru, и Rn связал метку с X и послал эту ассоциацию Rd.Затем, как только все эти условия оказались выполнены, Rd должен связать метку с X и послать эту ассоциацию Ru.
Поскольку PushUnconditional вызывает рассылку ассоциаций меток всем адресным префиксам маршрутной таблицы, PushConditional вызывает рассылку ассоциаций меток только тем адресным префиксам, для которых получены ассоциации от одного следующего шага LSP или для которых не существует следующего шага с поддержкой MPLS L3.
Эта процедуру следует использовать
Пусть Rd является
X является адресным префиксом в маршрутной таблице Rd;X ;X и послать эту ассоциацию Ru.Затем Rd должен связать метку с X и послать эту ассоциацию Ru. Заметим, что если X отсутствует в маршрутной таблице Rd или если Rd не является партнером Ru по рассылке меток с учетом X, то Rd должен проинформировать Ru о том, что в данный момент не может предоставить ассоциацию.
Если Rd уже переслал Ru ассоциацию метки для адресного префикса X и получил новый запрос от Ru ассоциации для адресного префикса X, он свяжет вторую метку, и пошлет новую ассоциацию Ru. Первая ассоциация метки остается в силе.
Эта процедура будет применяться
Пусть Rd является
X является адресным префиксом в маршрутной таблице Rd;X ;X ; или следующим шагом Rd L3 для X является Rn, где Rn отличается от Ru, а Rn связал метку с X и послал эту ассоциацию Rd.Затем, как только все эти условия оказались выполнены, Rd должен связать метку с X и послать эту ассоциацию Ru. Заметим, что если X отсутствует в маршрутной таблице Rd, а получить ассоциацию для X через следующий шаг Rd для X невозможно, или если Rd не является партнером Ru по пересылке меток с учетом X, тогда Rd должен проинформировать Ru, что не может в данный момент предоставить ему необходимую ассоциацию.
Однако, если хотя бы одно условие не выполнено, Rn не выдает метку Rd, а Rd должен отложить отклик для Ru до тех пор, пока Rn не пришлет ассоциацию метки.
Если Rd послал Ru ассоциацию метки для адресного префикса X, а спустя какое-то время любой из атрибутов ассоциации метки изменился, Rd должен заново послать Ru ассоциацию с новым значением атрибута. Он должен сделать это, даже если Ru не послал нового запроса. Эту процедуру следует использовать
Процедура запроса применяется вышестоящим
Никогда не делай запросов. Эта процедура полезна, если нижестоящий PushConditional или PushUnconditiona l, но она бесполезна, если нижестоящий PulledUnconditional или PulledConditional.
Эта процедура будет нужна
Осуществляет запрос всякий раз, когда меняется соотношение между следующим шагом L3 и адресным префиксом или когда прислан новый адресный префикс и нет ассоциации метки от следующего шага для заданного адресного префикса.
Эту процедуру следует использовать
Эта процедура реализуется всякий раз, когда приходит запрос в дополнение к необходимым протокольным запросам. Если Ru не способен быть входом LSP, он может выдать запрос, только когда получает запрос сверху.
Если Rd получает такой запрос от Ru для префикса, для которого Rd уже послал метку Ru, Rd присвоит новую метку, ассоциирует ее с X, и разошлет эту ассоциацию. Может ли Rd послать эту ассоциацию Ru немедленно или нет, зависит от используемой процедуры рассылки. Эту процедуру следует использовать
Пусть Ru вышестоящий, а Rd нижестоящий партнер рассылки меток для адресного префикса X, Rd является следующим шагом Ru L3 для X, Ru запрашивает ассоциацию для X от Rd, но Rd отвечает, что не может предоставить ассоциацию в это время, так как он не имеет следующего шага для X. Далее процедура NotAvailable определяет, как должен реагировать Ru. Существует две возможные процедуры, управляющие поведением Ru.
RequestRetry
Ru должен выдать запрос снова спустя некоторое время. То есть, источник запроса ответственен за попытку получить необходимую ассоциацию. Эту процедуру следует использовать, когда применена рассылка меток в режиме downstreamondemand.
RequestNoRetry
Ru никогда не должен посылать запрос повторно, предполагая, что Rd предоставит необходимую ассоциацию автоматически, когда она станет доступной. Это полезно, если Rd использует процедуру PushUnconditional или PushConditional, т.e., если применена не запрошенная рассылка меток нижестоящим объектам.
Заметим, что если Rd отвечает, что он не может предоставить ассоциацию Ru, например, из-за ошибки, а не по причине того, что Rd не имеет следующего шага, то поведение Ru будет определяться условиями восстановления после ошибки протокола рассылки меток, а не процедурой NotAvailable.
Предположим, что Rd является X и который послал эту ассоциацию X или перестал быть следующим шагом Ru L3 для адресного префикса X, Ru перестанет использовать
ReleaseOnChange
Ru должен ликвидировать ассоциацию и информировать Rd об этом. Эту процедуру следует использовать в консервативном режиме удержания меток (Conservative Label Retention Mode).
NoReleaseOnChange
Ru должен поддерживать ассоциацию, так что он сможет использовать ее немедленно, если Rd станет позднее следующим шагом Ru L3 для X . Эту процедуру следует применять для реализации свободного режима удержания меток (Liberal Label Retention Mode).
Предположим, что Ru является X от X , и в действительности Rd является следующим шагом Ru L3 для X.
Ru воспользуется ассоциацией, если Rd является следующим шагом Ru L3 для X. Если в момент получения ассоциации Ru Rd не является следующим шагом Ru L3 для X, Ru не будет использовать эту ассоциацию. Ru может, однако начать использовать ассоциацию позже, если Rd станет следующим шагом Ru L3 для X. Процедура labelUse определяет, как Ru использует ассоциацию Rd. Существует две процедуры, которые может применить Ru.
UseImmediate
Ru может начать использовать ассоциацию немедленно. В любое время, когда Ru получил ассоциацию для X от Rd, а Rd является следующим шагом Ru L3 для X, Rd также будет следующим шагом Ru LSP для X. Эта процедура применяется, когда не используется детектирование петель.
UseIfLoopNotDetected
Эта процедура аналогична UseImmediate, если только Ru не детектировал петлю в LSP. Если детектирована петля, Ru прекратит использовать метку L для переадресации пакетов в Rd.
Эта процедура используется, когда работает детектирование петель маршрутов. Это будет продолжаться до тех пор, пока не изменится следующий шаг для X или пока не будет ликвидирован петлевой маршрут.
В этом случае существует только одна процедура. Когда X, тогда это решение должно быть доведено до сведения всех X было послано Rd в X != Y. Если Ru узнал о новой ассоциации L и Y, до того как получил данные о разрыве ассоциации L и X, и если пакеты, соответствующие префиксам X и Y, переадресуются из Ru в Rd, тогда в течение некоторого времени Ru будет помечать пакеты, относящиеся к X и к Y, меткой L.
Рассылка и отзыв ассоциаций меток осуществляется через протокол рассылки меток. Все протоколы рассылки меток требуют, чтобы был установлен контакт между партнерами рассылки меток (за исключением неявных партнеров). Если
Пока эффективное соединение по обмену метками остается в силе, отзыв ассоциаций меток должен производиться явно. Если вторая метка ассоциирована с адресным префиксом, первая метка при этом не отзывается, будут существовать обе ассоциации. Это необходимо, чтобы поддерживать маршрутизацию с несколькими маршрутами. Если второй адресный префикс ассоциирован с меткой, ассоциация с первым префиксом при этом не отзывается, метка будет использоваться для обоих адресных префиксов.
Рассмотрим два
Схема MPLS, которая управляет взаимодействием Ru и Rd, может быть описана с помощью пяти процедур: <Distribution Procedure, Request Procedure, NotAvailable Procedure, Release Procedure, labelUse Procedure>. Так как существует только одна процедура отзыва, она здесь не упоминается. Появление "*" в одной из позиций в качестве подмены означает, что в данной категории возможна любая процедура; появление N/A в некоторой позиции указывает, что не нужна никакая процедура данной категории.
Только схемы MPLS, которые специфицированы ниже, поддерживаются архитектурой MPLS. Другие схемы могут быть добавлены в будущем, если их необходимость будет доказана.
Если Ru и Rd являются партнерами по рассылке меток, и оба поддерживают объединение меток, должна использоваться одна из следующих схем.
<PushUnconditional, RequestNever, N/A, NoReleaseOnChange, UseImmediate >Это не затребованная рассылка меток вниз по течению с независимым управлением, свободным режимом удержания меток и без детектирования маршрутных петель.
<PushUnconditional, RequestNever, N/A, NoReleaseOnChange, UseIfLoopNotDetected> Это не затребованная рассылка меток вниз по течению с независимым управлением, свободным режимом удержания меток и детектированием петель.
<PushConditional, RequestWhenNeeded, RequestNoRetry, ReleaseOnChange,*> Это не затребованная рассылка меток вниз по течению с упорядоченным управлением (со стороны конца маршрута) и консервативным режимом удержанием меток. Детектирование петель опционно.
<PushConditional, RequestNever, N/A, NoReleaseOnChange, *> Это не затребованная рассылка меток вниз по течению с упорядоченным управлением (со стороны конца маршрута) и свободным режимом удержанием меток. Детектирование петель опционно.
<PulledConditional, RequestWhenNeeded, RequestRetry, ReleaseOnChange, *> Это рассылка меток вниз по течению по запросу (downstreamondemand) с упорядоченным управлением (инициируемым со стороны входа), консервативным режимом удержания меток и опционным детектированием петель.
<PulledUnconditional, RequestWhenNeeded, N/A, ReleaseOnChange, UseImmediate>Это рассылка меток вниз по течению по запросу с независимым управлением, консервативным режимом удержания меток и без детектирования петель.
<PulledUnconditional, RequestWhenNeeded, N/A, ReleaseOnChange, UseIfLoopNotDetected>Это рассылка меток вниз по течению по запросу с независимым управлением, консервативным режимом удержания меток и детектированием петель.
Предположим, что R1, R2, R3 и R4 являются ATM-коммутаторами, которые не поддерживают объединение меток, но используются в качестве X имеет вид <R1, R2, R 3, R4> и что пакеты, адресованные X, могут войти в сеть через любой из этих X: <R1, R2, R3, R4>, <R2, R3, R4> и <R3, R4>.
Следовательно, если R1 и R2 являются MPLS-партнерами и любой из них является
<PulledConditional, RequestOnRequest, RequestRetry, ReleaseOnChange, *> Это рассылка меток вниз по течению по запросу с упорядоченным управлением (инициируемым со стороны входа), консервативным режимом удержания меток и опционным детектированием маршрутных петель.
Использование процедуры RequestOnRequest вынудит R4 послать R3 три метки для X ; R3 пошлет К2 2 метки для X, а R2 пошлет одну метку R1 для X.
<PulledUnconditional, RequestOnRequest, N/A, ReleaseOnChange, UseImmediate> Это рассылка меток вниз по течению по запросу с независимым управлением, консервативным режимом удержания меток и без детектирования петель.
<PulledUnconditional, RequestOnRequest, N/A, ReleaseOnChange, UseIfLoopNotDetected>Это рассылка меток "вниз по течению по запросу" с независимым управлением, консервативным режимом удержания меток и с детектированием петель.
Легко видеть, что некоторые пятерки не образуют жизнеспособных схем MPLS. Например:
<PulledUnconditional, RequestNever, *, *, *>
<PulledConditional, RequestNever, *, *, *>
В этих схемах MPLS нижестоящий
<*, RequestNever, *, *, ReleaseOnChange>
В этих схемах MPLS, Rd аннулирует ассоциации, если он их не использует, но Rd никогда не запрашивает их снова, даже если они ему позднее понадобятся. Эти схемы, таким образом, не гарантируют того, что ассоциации меток будут разосланы корректно.
В этом разделе специфицируются правила предотвращения того, чтобы партнеры по рассылке меток выбирали процедуры, которые ведут к недопустимым схемам MPLS. Эти правила требуют либо обмена информацией между партнерами по рассылке меток во время инициализации системы, либо априорного знания (полученного каким-то иным методом).
PulledUnconditional, либо PulledConditional. Если Rd выбирает PulledConditional, Ru вынужден использовать процедуру RequestRetry.То есть, если нижестоящий
RequestRetry или RequestNoRetry. Это вынуждает Rd использовать соответственно процедуру PulledConditional или PulledUnConditional.То есть, если только один из
RequestWhenNeeded/ReleaseOnChange (консервативный), либо RequestNever/NoReleaseOnChange (свободный). Однако выбор push либо pull и условного либо безусловногой алгоритма работы с метками принадлежит Rd. Если Ru выбирает свободный режим удержания меток, Rd может выбрать либо PushUnconditional, либо PushConditional. Если Ru выбирает консервативный режим удержания меток, Rd может выбрать PushConditional, PulledConditional или PulledUnconditional.Некоторые маршрутизаторы могут реализовать безопасные процедуры, зависящие от заголовка сетевого уровня, положение которого фиксировано по отношению к заголовку канального уровня. Базовая инкапсуляция MPLS подразумевает введение прослойки между заголовком канального и сетевого уровня. Это может вызвать отказ в работе некоторых
Многопротокольная коммутация меток (MPLS) требует набора процедур для дополнения пакетов сетевого уровня стеком меток, таким образом превращая их в помеченные пакеты. Маршрутизаторы, которые поддерживают протокол MPLS, называются
Ниже определены правила и процедуры обработки различных полей стека меток. Так как MPLS не зависит от сетевого протокола, большинство таких процедур являются протокольно независимыми. Некоторые, однако, являются разными для различных протоколов. Здесь мы специфицируем протокольно независимые процедуры, а также протокольно зависимые процедуры для IPv4 и IPv6.
Стек меток представляет собой последовательность записей. Каждая
Запись стека меток размещается после заголовка канального уровня, и перед заголовком сетевого уровня (например, между Ethernet- и IP-заголовком). Верх стека записывается первым, а дно — последним. Сетевой заголовок следует сразу вслед за записью стека меток с битом S=1. Каждая запись стека меток содержит в себе следующие поля:
S )Этот бит устанавливается равным 1 для последней записи в стеке меток (т.e. для дна стека), и нулю для всех прочих записей.
Следует заметить, что данный формат меток не является единственно возможным (я здесь не имею в виду ATM или FR). В IP-телефонии, например, предлагается использовать метку, которая содержит (слева-направо) код 0х8100, за которым идет 3-битовое поле приоритета ( 0-7 ) и идентификатор VPN (0-4095). (Смотри журнал LANline N10, 2002, стр 140).
Это 8-битовое поле определяет время жизни пакета.
Это 20-битовое поле несет в себе код метки.
Когда получен помеченный пакет, анализируется значение метки на верху стека. В результате этого анализа определяется:
В дополнение к определению следующего шага и операции со стеком меток, можно также получить данные об инкапсуляции выходной информации и, возможно другие данные, которые необходимы для того, чтобы корректно переадресовывать пакеты. Существует несколько зарезервированных значений меток.
Когда последняя метка удалена из стека (стек становится пустым), дальнейшая обработка пакета осуществляется на основе его заголовка сетевого уровня.
Когда в сетевой пакет заносится первая метка, она должна быть уникальной для конкретного сетевого уровня или для набора сетевых протоколов. Кроме того, когда бы в процессе передачи метка ни была заменена другой, новая метка также должна отвечать тем же критериям. Если эти условия не выполнены,
Строгое соблюдение этих условий не обязательно приведет немедленно к тому, что узлы будут распознавать сетевой протокол. В обычных условиях это необязательно, но в ситуациях ошибок это оказывается крайне желательным. Например, если промежуточный
Если пакет не может быть переадресован по какой-то причине (например, его размер превосходит MTU канала), либо его протокол сетевого уровня не может быть идентифицирован, либо не существует протокольно зависимых правил для обработки случаев ошибок, тогда пакет должен быть без комментариев отброшен.
Ниже обсуждаются ситуации, в которых желательно формировать ICMP-сообщения для помеченных IPпакетов. Для того, чтобы конкретный
Условие 1 обсуждается выше в разделе "Определение протокола сетевого уровня".В следующих двух подразделах обсуждается условие 2. Однако встречаются ситуации, когда условие 2 совсем не выполняется, и в этих случаях невозможно сформировать сообщение ICMP.
Предположим, что MPLS используется для организации туннеля через транзитную область маршрутизации, где данные о внешних маршрутах не попадают к внутренним маршрутизаторам. Например, внутренние маршрутизаторы работают с протоколом OSPF и могут знать только, как достичь объектов в пределах зоны OSPF. Домен может содержать несколько пограничных маршрутизаторов автономной системы
В этом примере только
Одним из решений является занесение
Это решение работает только для пакетов, которые имеют глобально уникальные адреса, и для сетей, в которых все
В некоторых случаях, когда MPLS используется для туннелирования через домен маршрутизации, может быть вообще невозможно проложить путь до адреса отправителя фрагментированных пакетов. Такая ситуация возникла бы, например, если IP-адреса в пакетах были частными адресами (т.e., не были бы глобально уникальными) и MPLS использовался для туннелирования таких пакетов через общедоступную опорную сеть. Маршруты по умолчанию в
В этих условиях для того, чтобы послать ICMP-сообщение отправителю пакета, можно копировать стек меток
Эта технология может быть весьма полезной, если ICMP-сообщением является Time Exceeded (время истекло) или "Destination Unreachable because fragmentation needed and DF set" (место назначение недостижимо из-за необходимости фрагментации и DF=1 ).
При копировании стека меток из
Заметим, что если истечение TTL сопряжено с наличием петли маршрута, тогда в случае использования этой техники ICMP-сообщение может зацикливаться. Так как сообщение ICMP никогда не посылается в ответ на ICMP-пакет и так как многие реализации ограничивают частоту посылки ICMP-сообщений, проблем это создать не должно.
Входное TTL помеченного пакета по определению должно равняться значению поля TTL в записи наверху стека меток на момент получения пакета. Выходное TTL помеченного пакета по определению должно равняться большему из:
a) входное значение TTL минус один,
b) нуль.
Если выходное TTL помеченного пакета =0, тогда помеченный пакет не должен более переадресовываться и он следует далее непомеченным. Время жизни пакета в сети считается истекшим. В зависимости от значения метки в стеке, пакет может быть просто отброшен или он может быть передан сетевому слою для обработки ошибки (например, для генерации ICMP-сообщения об ошибке).
Когда помеченный пакет переадресуется, поле TTL записи наверху стека меток должно быть установлено равным выходному значению TTL.
Заметим, что выходное значение TTL является функцией входного значения TTL и зависит от того, были ли перед этим в стек занесены или извлечены какие-то метки до переадресации пакета. Значения поля TTL в записях, за исключением верхней, никакого влияния не оказывают.
Мы определяем поле IP TTL равным величине поля IPv4 TTL или значению поля IPv6 Hop Limit, в зависимости от того, что используется.
Когда IP-пакет помечен впервые, поле TTL в стеке должно быть установлено равным значению поля IP TTL.
Когда все метки извлекаются из стека и он оказывается пустым, значение поля IP TTL должно быть замещено величиной выходного TTL, как это определено выше. В случае IPv4 это потребует также корректировки контрольной суммы IP-заголовка.
Признается, что могут существовать ситуации, когда сетевая администрация предпочитает декрементировать IPv4 TTL на 1 при прохождении через домен MPLS, вместо того чтобы декрементировать IPv4 TTL на число
Иногда
В этом случае значение входного TTL определяется процедурами обработки помеченных пакетов, например, в интерфейсе LC-ATM. Обработка TTL будет тогда происходить так, как это описано выше. Иногда
Поскольку возможно получение непомеченной IP-дейтограммы, которая слишком велика, чтобы быть переданной в выходной канал, имеется возможность получения помеченного пакета, который также нельзя передать по этой причине на выход.
Возможно также, что полученный пакет (помеченный или нет), который первоначально был достаточно мал для передачи через канал, становится слишком большим, получив одну или более меток.
При коммутации меток пакет может расти в размере, если в его стек заносятся дополнительные метки. Таким образом, если получен помеченный пакет с 1500-байтовым полем данных и в него записана дополнительная метка, переадресовать нужно будет пакет с размером 1504-байта, что может привести, в конце концов, к превышению MTU для сети Ethernet.
В этом разделе специфицируются правила обработки помеченных пакетов, которые являются слишком большими. В частности, речь идет о правилах, которые гарантируют, что ЭВМ, использующие определение MTU пути [11.4], и ЭВМ, работающие с IPv6 [11.7,11.8], будут способны формировать IP-дейтограммы, которые не нуждаются в фрагментации, даже если эти дейтограммы получили дополнительные метки при прохождении через сеть.
Вообще, ЭВМ IPv4, которые не используют определение MTU пути [11.4], посылают IP-дейтограммы, содержащие не более 576 байт. Так как большинство используемых MTU равняются 1500 байт или больше, вероятность того, что такие дейтограммы будут нуждаться в фрагментации, даже если они помечены, весьма мала.
Некоторые ЭВМ, которые не используют определение MTU пути [11.4], формируют IP-дейтограммы, содержащие 1500 байт. Поскольку IP-адреса отправителя и получателя находятся в одной и той же субсети, эти дейтограммы не проходят через маршрутизаторы и, следовательно, не будут фрагментироваться
Если же IP-адрес отправителя и получателя находятся в разных автономных системах, это единственный случай, когда имеется риск фрагментации при пометке пакета.
Ниже специфицированы процедуры, которые позволяют конфигурировать сеть так, чтобы большие дейтограммы от ЭВМ, не использующих определение MTU пути, фрагментировались только раз, когда они были впервые помечены. Эти процедуры делают возможным избежать фрагментации пакетов, которые уже помечены.
Что касается конкретного канала данных, можно использовать следующие термины:
В это понятие входит содержимое поля данных кадра, исключая любые заголовки и поля завершения кадра (например, MAC-заголовки, LLC-заголовки, 802.1Q-заголовки, PPP-заголовки, контрольные суммы и т.д.).
Когда кадр несет в себе непомеченную IP-дейтограмму, поле данных кадра представляет собой саму IP-дейтограмму. Когда кадр несет в себе помеченную IP-дейтограмму, поле данных кадра состоит из записей стека меток и IP-дейтограммы.
Максимальный размер поля данных кадра определяется стандартами канала данных. Например, обычный максимальный размер поля данных кадра для Ethernet равен 1500 байтов.
Максимальный размер поля данных кадра, который можно послать и получить через интерфейс канала данных.
Для сетей Ethernet и 802.3, считается, что истинный максимальный размер поля данных кадра на 4-8 байта больше обычного максимального размера поля данных (поскольку ни переключатель, ни бридж не могут увеличить размер заголовка в процессе транспортировки пакета до следующего узла сети). Например, считается, что большинство оборудования Ethernet может принимать и посылать пакеты, содержащие, по крайней мере, 1504 или даже 1508 байт, поскольку заголовок Ethernet не имеет полей 802.1Q или 802.1p. В каналах PPP, истинный максимальный размер поля данных кадра может быть неограниченным.
Это или обычный максимальный размер поля данных кадра, или истинный максимальный размер поля данных кадра, в зависимости от возможностей оборудования канала и размера заголовка канального уровня.
Предположим, что непомеченная IP-дейтограмма получена конкретным
Каждый
DF=0, иНапример, если этот конфигурационный параметр установлен равным 1488, тогда любая непомеченная IP дейтограмма, содержащая более 1488 байт, будет фрагментирована до выполнения пометки. Каждый фрагмент будет способен передавать через канал 1500 байт без последующей фрагментации, даже если в стек будет занесено до трех меток.
Другими словами, установка этого параметра не равным нулю позволяет исключить фрагментацию уже помеченных IP пакетов, но может вызвать иногда фрагментацию первично помеченных IP-дейтограмм, когда это совсем не нужно.
Заметим, что установка этого параметра не влияет на обработку IP-дейтограмм, которые содержат бит DF=1, следовательно, установка этого параметра не влияет на результат определения MTU пути.
Помеченная IP-дейтограмма, чей размер превышает обычный максимальный размер поля данных канала, может рассматриваться как слишком большая.
Помеченная IP-дейтограмма, чей размер превышает истинный максимальный размер поля данных кадра канала, через который она должна переадресоваться, считается слишком большой.
Помеченная IP-дейтограмма, которая не является слишком большой, должна передаваться без фрагментации.
Если помеченная IPv4 дейтограмма слишком велика и бит DF в IP заголовке =1, тогда
Заметим, что отбрасывание таких дейтограмм является разумным, только если максимальный размер первично помеченной IP-дейтограммы установлен равным ненулевому значению во всех
Если DF=1, тогда должна быть выполнена следующая последовательность операций.
N равно числу байт в стеке (т.e, число записей в стеке меток, умноженное на 4).Don't Fragment=0:N байт меньше, чем эффективный максимальный размер поля данных кадра;Don't Fragment =1:Чтобы обработать помеченную IPv6-дейтограмму, которая слишком велика,
N равно числу байт в стеке (т.e, число записей в стеке меток, умноженное на 4).NextHop MTU равным разности между эффективным максимальным размером поля данных кадра и величиной N;Восстановление сообщения из фрагментов осуществляется конечным получателем.
Описанные выше процедуры обработки дейтограмм, которые имеют в заголовке бит DF=1, но являются слишком большими, связаны с процедурами определения MTU пути RFC-1191 [11.4]. ЭВМ, которые применяют эти процедуры, определят MTU, который достаточно мал, чтобы позволить занесение в дейтограмму n меток, без необходимости фрагментации. Здесь n равно числу меток, заносимых на используемом пути через домен.
Другими словами, дейтограммы от ЭВМ, которые применяют определение MTU пути, никогда не потребуют фрагментации из-за занесения меток в заголовок. Заметим, что дейтограммы от ЭВМ, использующих определение MTU пути, имеют бит DF=1 и, таким образом, не могут быть фрагментированы в любом случае.
Отметим также, что определение MTU пути будет работать корректно, только если в точке, где может потребоваться фрагментация помеченной IP-дейтограммы, возможна доставка отправителю ICMP сообщения Destination Unreachable. Если невозможна посылка ICMP-сообщения отправителю из MPLS туннеля, но конфигурация сети предоставляет возможность
DF=1, а его длина превышает значение MTU туннеля, передающий конец должен послать ICMP-сообщение Destination Unreachable узлу, приславшему пакет с кодом "Fragmentation Required and DF Set" и полем NextHop MTU, установленным так, как было показано выше.Протокол PPP (Point-toPoint Protocol) [11.6] предоставляет стандартный метод транспортировки многопротокольных дейтограмм через каналы точка-точка. PPP определяет расширяемый протокол управления каналом и предлагает семейство протоколов управления сетью для установления и конфигурации различных протоколов сетевого уровня.
В этом разделе определен протокол управления сетью для установления и конфигурации коммутации меток в канале PPP. PPP содержит три основные компонента.
Для того, чтобы установить связь через канал точка-точка, каждый конец PPP канала должен сначала послать
Протокол управления MPLS (MPLSCP) отвечает за разрешение/запрещение использования коммутации меток в канале PPP. Он использует тот же механизм обмена, что и протокол управления каналом
Протокол управления MPLS тождественен протоколу управления каналом [11.6] за следующими исключениями:
Пакет может использовать любые модификации базового формата кадра, которые были согласованы на фазе установления канала.
В информационное
Используются только коды от 1 до 7 (Configure-Request, Configure-Ack, Configure-Nak, Configure-Reject, Terminate-Request, Terminate-Ack и Code-Reject). Прочие коды должны рассматриваться как нераспознанные и приводить к Code-Rejects (отбрасыванию).
Пакеты MPLSCP не могут пересылаться, пока PPP не достигнет фазы протокола сетевого уровня. Реализация должна быть готова ждать окончания аутентификации и определения качества канала, прежде чем наступит тайм-аут в ожидании Configure-Ack или других откликов.
Прежде чем какие-либо пакеты будут посланы, PPP должен достичь фазы протокола сетевого уровня, а управляющий протокол MPLS должен стать активным (состояние Opened).
В информационное
Заметим, что определены два кода для помеченных пакетов, один для мультикастных и один для уникастных. Как только MPLSCP переходит в рабочее состояние (Opened), по каналу PPP могут посылаться как мультикаст, так и уникаст-пакеты.
В каждом кадре транспортируется только один помеченный пакет. Записи стека меток размещаются непосредственно после заголовка сетевого уровня, а сразу за ними следует заголовок канального уровня, включая, например, любые заголовки 802.1Q, которые только могут существовать.
Шестнадцатеричный код Ethertype 8847 применяется для индикации того, что кадр содержит уникастный MPLS-пакет. Шестнадцатеричный код Ethertype 8848 служит для указания того, что кадр содержит MPLS-пакет.
Эти значения Ethertype могут быть использованы либо при Ethernet-инкапсуляции, либо при инкапсуляции 802.3 LLC/SNAP для транспортировки помеченных пакетов.
Мультипротокольная коммутация пакетов по меткам (MPLS) [11.1,[11.2] интегрирует в себе технику операций с метками и сетевую маршрутизацию. Базовой идеей является присвоение меток фиксированной длины пакетам на входе облака MPLS (базирующегося на концепции переадресации классов эквивалентности [11.1,[11.2]). Всюду внутри домена MPLS метки, присвоенные пакету, используются для принятия решения о переадресации (обычно без рассмотрения исходных заголовков пакета).
Одним из наиболее важных применений MPLS будет управление трафиком. Важность этого приложения является уже широко признанной (смотри [11.1,2,3]).
Далее рассматриваются требования управления трафиком в больших опорных сетях Интернет. Описаны базовые возможности и функциональности, которым должна
Следует заметить, что хотя основное внимание уделено опорным сетям, возможности, описанные в этом разделе, в равной мере применимы для управления трафиком в корпоративных сетях. Вообще, эта технология может быть использована в любой сети с коммутацией по меткам, в которой имеется, по крайней мере, два пути между двумя узлами.
Предлагается архитектура, которая включает в себя MPLS и RSVP, чтобы предоставить масштабируемые дифференцированные услуги и управление трафиком в Интернет.
В этом разделе описываются базовые функции управления трафиком в автономной системе современного Интернет. Рассмотрены ограничения
Управление трафиком (TE) связано с оптимизацией рабочих характеристик сетей. Вообще, ТЕ включает в себя технологию и научные принципы измерения, моделирования, описание, управление трафиком Интернет и приложение таких знаний и техники для получения определенных рабочих характеристик.
Главной целью управления трафиком в Интернет является достижение эффективной и надежной работы сети. Управление трафиком стало непременной функцией многих автономных систем — из-за высокой стоимости услуг Интернет.
Ключевые характеристики, сопряженные с управлением трафиком, могут относиться к следующим категориям:
Задачи, ориентированные на управление трафиком, включают в себя аспекты улучшения QoS информационных потоков. В модели наилучших усилий для Интернет-сервиса ключевая задача управления трафиком включает в себя: минимизацию потерь пакетов и задержек, оптимизацию пропускной способности и согласование наилучшего уровня услуг. В данной модели минимизация вероятности потери пакетов является наиболее важным аспектом. Статистически заданные характеристики трафика (такие, как разброс времени доставки пакетов, вероятность потери и максимальное время доставки) становятся важными в грядущих дифференцированных услугах Интернет. Одним из подходов решения таких проблем является оптимизация использования всех имеющихся ресурсов сети. В частности, желательно гарантировать, чтобы субнаборы сетевых ресурсов не были перегружены, в то время как аналогичные ресурсы на альтернативных маршрутах недогружены. Полоса пропускания — это
Минимизация перегрузок является первичной задачей. Здесь речь идет не о кратковременных перегрузках, а о долгосрочных, влияющих на поведение сети в целом. Перегрузка обычно имеет две причины:
Первый тип проблем перегрузки может быть решен путем:
Второй тип проблем перегрузки, связанный с неэффективным размещением ресурсов, может быть решен посредством управления трафиком.
Вообще, перегрузка, связанная с неэффективным размещением ресурсов, может быть уменьшена с помощью политики балансировки нагрузки в различных фрагментах сети. Задачей таких стратегий является минимизация максимальной перегрузки или напротив — минимизация максимума использования ресурса. Когда перегрузка минимизирована путем оптимального размещения ресурсов, потери пакетов и задержка доставки падают, а совокупная пропускная способность возрастает. Таким образом, восприятие конечным пользователем качества сетевого обслуживания становится лучше.
Понятно, что балансировка определяет политику оптимизации рабочих характеристик сети. Несмотря ни на что, возможности, предоставляемые управлением трафиком, должны быть достаточно гибкими, чтобы сетевые администраторы могли реализовать другие политики, которые принимают во внимание господствующую структуру цен или даже модель получения доходов.
Оптимизация рабочих характеристик сетей является фундаментальной проблемой управления. В модели процесса управления трафиком инженер трафика (или подходящая система автоматизации) действует как контроллер в системе с адаптивной обратной связью. Эта система включает набор взаимосвязанных сетевых элементов, систему мониторирования состояния сети и набор средств управления конфигурацией. Инженер трафика формулирует политику управления, отслеживает состояние сети посредством системы мониторинга и характеристик трафика и предпринимает управляющие действия, чтобы перевести сеть в требуемое состояние, в соответствии с политикой управления. Это может быть осуществлено с помощью действий, предпринимаемых как отклик на текущее состояние сети, или превентивно, используя прогнозирование состояния и тенденции и предпринимая действия, предотвращающие нежелательные будущие состояния. В идеале управляющие действия должны включать:
Уровень человеческого вмешательства в процесс управления трафиком, когда это возможно, должен быть минимизирован. Это может быть реализовано путем автоматизации операций, описанных выше. Операции эти могут быть распределенными и масштабируемыми.
В этом подразделе рассматриваются некоторые хорошо известные ограничения современных
Возможности управления, предлагаемые существующими внутренними протоколами маршрутизации шлюзов Интернет, не соответствуют требованиям управления трафиком. Это создает трудности при актуализации эффективных политик, предназначенных для решения проблем совершенствования работы сети. Действительно,
Эти сценарии проявляются даже тогда, когда имеются альтернативные маршруты с избытком ресурсов. Именно этого аспекта проблем перегрузки (симптом неоптимального распределения ресурсов) управление трафиком стремится всеми способами избежать. Равномерное распределение загрузки может использоваться для разрешения второй проблемы, упомянутой выше, однако такое решение бесполезно в случае первого варианта перегрузки.
Популярным подходом преодоления недостатков современных
Для управления трафиком в больших насыщенных сетях желательно снабдить MPLS определенным уровнем функциональности, чтобы сделать его более совместимым с настоящими моделями наложений. К счастью, это может быть сделано достаточно прямолинейно.
Протокол MPLS стратегически достаточен для управления трафиком, так как он может предоставить большую часть функций, доступных в модели наложений, и по относительно низкой цене по сравнению с конкурирующими альтернативными решениями. Столь же важно, что MPLS предлагает возможность автоматизировать функции управления трафиком.
Концепция каналов передачи данных MPLS используется достаточно широко. Согласно Li и Rekhter [11.3], канал передачи данных представляет собой объединение потоков данных одного и того же класса, которые следуют маршруту с коммутацией пакетов по меткам. Канал передачи данных представляет собой абстракцию трафика, с которой могут быть ассоциированы определенные характеристики. Полезно рассматривать каналы передачи данных как объекты, которые можно маршрутизировать, — то есть, путь, по которому транспортрируются данные, может меняться. С этой точки зрения, каналы передачи данных подобны виртуальным каналам в сетях ATM и Frame Relay. Важно, однако, подчеркнуть, что существует фундаментальное отличие между каналом передачи данных и путем. LSP представляет собой спецификацию пути с коммутацией по меткам, через который проходит трафик. На практике термины LSP и канал передачи данных часто используются синонимично.
Привлекательность MPLS для управления трафиком может быть ассоциирована со следующими факторами.
Кроме того, через механизм коммутации меток MPLS позволяет наложить на современную модель маршрутизации Интернет квазиканальную коммутацию. Многие существующие предложения для управления трафиком посредством MPLS концентрируются на возможности формирования LSP. Хотя такая возможность является фундаментальной для управления трафиком, реально этого недостаточно.
В данном подразделе вводится концепция наведенного MPLS-графа, которая является центральной при управлении трафиком в сфере MPLS. Наведенный MPLS-граф аналогичен виртуальной топологии в модели наложений. Он логически проецируется на физическую сеть путем выбора LSP для каналов транспортировки трафика.
Наведенный MPLS-граф состоит из набора
Наведенные MPLS-графы важны потому, что базовые проблемы управления полосой пропускания в MPLS определяются способом и возможностью эффективно совместить наведенный MPLS-граф с физической топологией сети.
Пусть G = (V, E, c) является графом, отражающим физическую топологию сети. Здесь, V — набор узлов сети и E — набор каналов; то есть, для v и w из V объект (v,w) содержится в E, если v и w являются непосредственно связанными в рамках G. Параметр "c" представляет собой набор емкостей и других ограничений, сопряженных с E и V. Мы будем рассматривать G как основу сетевой топологии.
Пусть H = (U, F, d) является наведенным MPLS-графом, где U — субнабор V, представляющй набор F представляет собой набор LSP, так что для x и y из U, объект (x, y) находится в F, если существует LSP с x и y в качестве конечных точек. Параметр d представляет собой набор требований и ограничений, ассоциированных с F. Очевидно, H является ориентированным графом. Можно видеть, что H зависит от переходных характеристик G.
Существует три фундаментальных проблемы, относящиеся к управлению трафиком в MPLS.
Здесь не рассматриваются первые две проблемы (хотя они весьма важны). Вместо этого далее анализируются возможности, которые позволяют третей функции осуществлять эффективную и надежную работу сетей. Установление соответствия между наведенным MPLS-графом ( H ) и базовой топологией сети ( G ) является достаточно важной проблемой.
Выше были рассмотрены базовые функции управления трафиком в современном Интернет. Далее описываются функциональные возможности, необходимые для полномасштабного поддержания управления трафиком в больших сетях через посредство протокола MPLS. Предлагаемые возможности включают в себя:
Атрибуты, связанные с каналами передачи данных и ресурсами, а также параметры, ассоциированные с маршрутизацией, в совокупности представляют собой набор управляющих переменных, которые могут быть модифицированы в результате действий либо администратора, либо автоматических агентов, для того, чтобы привести сеть в желательное состояние.
В рабочей сети крайне желательно, чтобы эти атрибуты можно было менять динамически в реальном масштабе времени без неблагоприятных последствий.
В этом разделе обсуждаются атрибуты, которые можно ассоциировать с каналами передачи данных и которые могут определять рабочие характеристики сети. Базовые свойства каналов передачи данных перечислены ниже.
На практике канал передачи данных может характеризоваться своими входным и выходным
Имеется два пункта особой важности: (1) параметризация каналов передачи данных и (2) положение маршрута и правила управления каналом передачи данных.
Хотя каналы передачи данных являются концептуально однонаправленными, во многих практических контекстах полезно одновременно анализировать два канала передачи данных с идентичными конечными точками, но с разным направлением потоков. Два канала передачи данных логически связаны друг с другом. Один канал, называемый прямым, транспортирует трафик от исходного узла к узлу места назначения. Другой канал, называемый обратным, транспортирует трафик от узла места назначения к исходному узлу. Объединение двух таких каналов называется двунаправленным каналом передачи данных
Следует также рассмотреть топологические свойства
Нужно заметить, что двунаправленные каналы передачи данных имеют в основном административное удобство. На практике большинство функций управления трафиком могут быть реализованы с использованием исключительно однонаправленных каналов передачи данных.
Базовые операции в канале передачи данных, важные для целей управления трафиком, перечислены ниже.
Выше рассматривались базовые операции каналов передачи данных. Возможны и дополнительные операции, сопряженные с реализацией политики и формированием трафика.
Возможности мониторинга аккоутнтинга и рабочих характеристик являются крайне важным для задач биллинга и контроля параметров трафика. Статистика трафика, полученная с помощью такой системы мониторинга, может использоваться для оптимизации рабочих характеристик канала и для планирования управления трафиком.
Возможность получения статистики на уровне канала передачи данных так важна, что это следует рассматривать как существенное требование управления трафиком через MPLS.
Атрибут канала передачи данных является параметром, который влияет на рабочие характеристики канала.
Атрибуты могут быть явно присвоены каналам передачи данных администратором или заданы неявно базовыми протоколами, когда пакеты классифицируются и сортируются по классам эквивалентности (
Основные атрибуты каналов передачи данных наиболее важные для управления трафиком перечислены ниже.
Комбинация параметров трафика и атрибутов политики аналогична использованию параметрического управления в сетях ATM. Большинство атрибутов, перечисленных выше, имеют аналоги в хорошо установившихся технологиях. Следовательно, следует достаточно непосредственно установить соответствие между атрибутами канала передачи данных и многими существующими архитектурами переключения и маршрутизации.
Приоритет и приоритетное прерывание обслуживания могут рассматриваться как относительные атрибуты, так как они выражают определенные отношения между каналами передачи данных. Концептуально, эти двоичные отношения определяют способ взаимодействия каналов между собой, когда они соревнуются за получение сетевых ресурсов в процессе установления пути и его рабочих параметров.
Параметры трафика могут использоваться при сборе данных об информационных потоках (или более точно
Атрибуты управления и выбора пути определяют правила выбора пути канала передачи данных, а также правила работы с маршрутами, которые уже существуют.
Маршруты могут быть вычислены автоматически с помощью протоколов маршрутизации или могут быть определены сетевым администратором. Если требований к ресурсам или ограничений, сопряженных с каналом передачи данных, нет, тогда для выбора пути может быть использован протокол, управляемый топологией. Однако, если требования к ресурсам или ограничения, связанные с политикой, имеются, тогда следует использовать маршрутизацию, основанную на ограничениях.
Управление касается всех аспектов, имеющих отношение к поддержанию путей, через которые проходят каналы передачи данных. В некоторых операционных контекстах желательно, чтобы реализация MPLS могла динамически себя реконфигурировать для адаптации к состоянию системы. Адаптивность и устойчивость являются аспектами динамического управления маршрутом.
Чтобы контролировать выбор пути и процесс управления, необходим набор атрибутов. Базовые атрибуты и рабочие характеристики, связанные с выбором пути и управлением каналом передачи данных, описаны ниже.
Административно специфицированный путь для канала передачи данных конфигурируется в результате действий оператора. Административно специфицированный путь может быть определен полностью или частично. Путь полностью специфицирован, если указаны все шаги между начальной и конечной точками. Путь частично специфицирован, если представлен только субнабор промежуточных шагов. В этом случае нужны базовые протоколы, чтобы сформировать окончательный маршрут. Из-за ошибок оператора административно специфицированный путь может оказаться несогласованным или нелогичным. Базовые протоколы маршрутизации должны быть способны детектировать такую несогласованность и вносить необходимые коррективы.
Атрибут path preference rule (правило предпочтения пути) должен быть ассоциирован с административно специфицированными путями. Атрибут "правила предпочтения пути" представляет собой двоичную переменную, которая указывает, является ли административно сконфигурированный путь обязательным или нет.
Если административно сконфигурированный путь выбран с обязательным атрибутом, должен использоваться этот (и только этот) путь. Если обязательный путь недопустим (например, конечные пункты топологически разделены) или если путь не может быть использован, так как его ресурсы неадекватны, тогда процесс установки пути (setup) потерпит неудачу. Другими словами, если путь специфицирован как обязательный, то альтернативный путь не может использоваться ни при каких обстоятельствах. Обязательный путь, который успешно приписан, является неявно закрепленным. Раз путь присвоен, его нельзя изменить, а можно только ликвидировать или заменить новым.
Однако если административно специфицированный путь выбран со значением атрибута предпочтения "необязательный", тогда путь следует использовать, если это возможно. В противном случае может использоваться альтернативный путь, предлагаемый маршрутным протоколом.
В некоторых практических контекстах, может быть полезно административно специфицировать набор кандидатов маршрутов для данного канала передачи данных и определить иерархию предпочтения этих маршрутов. Во время установления пути правила предпочтения используются при выборе подходящего пути из списка кандидатов. В случае неполадки правила предпочтения применяются для выбора альтернативного пути из списка кандидатов.
Атрибуты сродства классов ресурсов, ассоциированные с каналом передачи данных, могут использоваться для спецификации класса ресурсов, которые следует включить явно или исключить из пути канала передачи данных. Эти атрибуты политики могут понадобиться для введения дополнительных ограничений для маршрута канала передачи данных. Атрибуты сродства классов ресурсов могут быть специфицированы для трафика в виде последовательности пар:
<resourceclass, affinity>; <resourceclass, affinity>;
Параметр resource-class идентифицирует класс ресурса, для которого определено соотношение сродства в отношении канала передачи данных. Параметр affinity указывает на соотношение сродства; то есть, включены или исключены члены класса ресурсов для канала передачи данных. В частности, параметр affinity может быть двоичной величиной, которая принимает одно из следующих значений: (1) явное включение и (2) явное исключение.
Если атрибут сродства является двоичной переменной, можно использовать булевы выражения для спецификации сродства класса ресурсов, ассоциированных с данным каналом передачи данных.
Если не специфицировано никакого атрибута сродства класса, тогда предполагается значение отношения сродства "don't care" (безразлично) между каналом передачи данных и ресурсами. То есть, не существует никаких требований по включению или исключению каких-либо ресурсов для пути канала передачи данных. На практике — это режим по умолчанию.
Атрибуты сродства классов ресурсов очень полезны и эффективны, так как они могут быть использованы при реализации самых разных политик. Например, они могут быть применены для размещения определенных каналов передачи данных в заданных топологических областях сети.
Маршрутизация на основе ограничений может использоваться для вычисления точного пути для канала передачи данных так, чтобы удовлетворить ограничениям сродства класса ресурсов следующим образом:
Характеристики сети и ее состояние изменяются со временем. Например, появляются новые ресурсы, утраченные ресурсы могут быть снова активизированы, а выделенные ресурсы могут оказаться недоступными. Вообще, иногда могут оказаться доступными более эффективные пути. Следовательно, с точки зрения управления трафиком, необходимо иметь административные параметры управления, которые могут использоваться для спецификации того, как канал передачи данных будет реагировать на этот динамизм. При некоторых сценариях может оказаться желательным динамически изменить пути некоторых информационных каналов в ответ на изменения состояния сети. Этот процесс называется реоптимизацией. При других сценариях повторная оптимизация может оказаться нежелательной.
Атрибут адаптивности ( adaptivity ) является частью блока параметров пути, ассоциированного с каналом передачи данных. Атрибут адаптивности, ассоциированный с каналом передачи данных, указывает на то, является ли канал субъектом реоптимизации. То есть, атрибут адаптивности представляет собой двоичную переменную, которая принимает одно из следующих значений: (1) разрешить реоптимизацию и (2) запретить реоптимизацию.
Если реоптимизация разрешена, канал передачи данных может под действием маршрутных протоколов изменить путь в ответ на изменение состояния сети. Напротив, если реоптимизация запрещена, канал передачи данных является закрепленным и его маршрут не может быть изменен при вариации ситуации в сети.
Стабильность является главным соображением, когда разрешена реоптимизация. Чтобы содействовать стабильности, реализация MPLS не должна быть слишком реактивной в ответ на эволюционные изменения в сети. В то же время, она должна достаточно быстро адаптироваться, чтобы оптимально использовать появляющиеся сетевые ресурсы. Отсюда следует, что частота реоптимизаций должна определяться административно, чтобы допускать настройку.
Следует заметить, что реоптимизация не то же самое, что и устойчивость к внешним воздействиям. Для спецификации характеристик устойчивости канала передачи данных используются другие атрибуты. На практике представлялось бы разумным ожидать, что канал передачи данных, подвергающийся реоптимизации, должен быть устойчив против отказов вдоль его пути. Однако канал передачи данных, который не подвергается реоптимизации и чей маршрут не специфицирован административно как обязательный, также должен быть устойчивым против отказов связей и узлов вдоль своего пути.
Формально, можно утверждать, что адаптивность к состоянию эволюции через реоптимизацию влечет за собой устойчивость к отказам, тогда как устойчивость к отказам не предполагает общей адаптивности к изменениям состояния сети.
Распределение нагрузки по нескольким параллельным каналам передачи данных между двумя узлами является крайне важным.
Во многих практических контекстах суммарный трафик между узлами может быть таким, что ни один канал в отдельности (следовательно, и ни один маршрут) не сможет его пропустить. Однако суммарный поток может быть меньше, чем максимально допустимый поток через поперечное сечение ("mincut"), разделяющее два узла. В этом случае единственно возможным решением может быть деление трафика на несколько потоков.
В домене MPLS эта проблема может быть решена с помощью нескольких каналов, соединяющих два узла. Следовательно, нужны гибкие средства назначения нагрузки для параллельных каналов передачи данных, соединяющих два узла.
В частности, в ситуациях, где параллельные потоки данных оправданы, было бы полезно иметь некоторые атрибуты, которые могут применяться для указания доли трафика, проходящего через каждый из каналов. Базовые протоколы реализуют нагрузку каналов в указанной пропорции. Желательно также обеспечивать порядок передачи пакетов, принадлежащих одному и тому же микропотоку (идентичные адреса отправителя и получателя плюс номера порта).
Атрибут priority (приоритет) определяет относительную важность канала передачи данных. Если с MPLS применяется маршрутизация, базирующаяся на ограничениях, тогда приоритеты становятся очень важными, так как они используются в случае отказов для определения порядка, в котором выбираются пути для канала передачи данных из имеющегося списка.
Приоритеты важны также в реализациях, допускающих приоритетное обслуживание, так как они могут быть нужны для определения политики обслуживания каналов передачи данных.
Атрибут определяет, может ли канал передачи данных заместить другой канал на данном пути и может ли другой канал передачи данных заместить заданный канал. Приоритетная подмена полезна как для схемы оптимизации, ориентированной на трафик, так и для схемы, ориентированной на ресурс. Приоритетное замещение может использоваться, чтобы гарантировать то, что канал передачи данных маршрутизирован через вполне определенный путь, а это особенно важно при оказании дифференцированных услуг
Приоритетное замещение может также применяться при реализации различных политик восстановления, вступающих в силу при отказах оборудования или программ.
Атрибут может использоваться для спецификации четырех режимов приоритетного замещения для канала передачи данных: (1) замещающий объект активирован (preemptor enabled), (2) nonpreemptor (не является замещающим объектом), (3) допускающий подмену и (4) не допускающий подмены. Канал передачи данных, где разрешено приоритетное замещение (preemptor enabled), может заменять каналы с более низким приоритетом, признанные как приемлемые для замены. Канал передачи, специфицированный как не подлежащий подмене, не может быть замещен каким-либо иным каналом, вне зависимости от их относительных приоритетов. Канал передачи данных, допускающий замещение, может быть замещен другим каналом с более высоким приоритетом, который имеет атрибут preemptor enabled.
Достаточно просто понять, что некоторые режимы замещения являются взаимно исключающими. Используя схему нумерации, описанную выше, можно назвать допустимые комбинации режимов для канала передачи данных: (1, 3), (1, 4), (2, 3) и (2, 4). Комбинация (2, 4) является режимом по умолчанию.
Канал передачи данных, скажем "A", может заместить другой канал, скажем "B", только если все следующие пять условий будут выполнены:
Атрибут не рассматривается как обязательный атрибут современной модели обслуживания в Интернет (best effort service), хотя и является полезным. Однако, в сценарии с дифференциальными услугами необходимость подмены становится очевидной. Более того, в появляющихся архитектурах оптического Интернет, где функции защиты и восстановления, чтобы уменьшить цену, могут быть перенесены с оптического уровня на информационные сетевые элементы (такие, как гигабитные и терабитные маршрутизаторы с коммутацией по меткам), стратегии приоритетного замещения могут использоваться для сокращения времени восстановления канала в условиях сбоев.
Атрибут определяет поведение канала передачи данных в случае возникновения ошибок — то есть, когда ошибка происходит на пути, через который проходит канал. При таких обстоятельствах должны быть рассмотрены следующие проблемы: (1) детектирование ошибки, (2) уведомление об ошибке, (3) восстановление после сбоя. Очевидно, реализация MPLS должна содержать механизмы для решения всех этих задач.
Многие политики восстановления могут быть специфицированы для каналов передачи данных, чьи маршруты подвержены отказам. Ниже представлены примеры приемлемых схем.
Возможно много других схем, включая комбинации перечисленных выше.
Базовый атрибут указывает на процедуру восстановления, которая должна быть запущена для данного канала при возникновении отказа. В частности, базовый атрибут является двоичной переменной, которая определяет, будет ли данный канал изменять маршрут, если сегмент его пути выдал отказ. Расширенный атрибут может применяться для подробной спецификации в случае сценария отказа. Например, расширенный атрибут может специфицировать набор альтернативных путей, которые следует использовать в случае отказа, а также правил, которые управляют относительным предпочтением для каждого специфицированного пути. Атрибуты обеспечивают тесное взаимодействие между MPLS и маршрутизацией.
Атрибут определяет действия, которые следует предпринять в рамках базовых протоколов, когда канал передачи данных становится нерабочим — то есть, когда какие-то параметры канала отклонились за оговоренные пределы. Вообще, атрибуты могут указывать, является ли неуправляемый канал передачи данных лимитированным по полосе пропускания или он просто переадресуется без каких-либо действий, учитывающих местную политику. Если используется политика, тогда для реализации таких функций могут применяться адаптации алгоритмов, таких, как ATM
Использование политики необходимое во многих рабочих сценариях, может быть неприемлемо в других. Вообще, обычно желательно реализовать какую-то политику на входе сети (чтобы обеспечить согласование с требованиями уровня обслуживания) и минимизировать применение политики в ядре, за исключением ситуации, когда ограничение емкости диктуют обратное.
Следовательно, с точки зрения управления трафиком необходимо иметь возможность административно разрешать и запрещать применение политики для каждого канала передачи данных (traffic trunk).
Атрибуты resource являются частью параметров состояния топологии, которые используются, чтобы установить ограничения на маршрутизацию каналов передачи данных в рамках имеющихся ресурсов.
Максимально выделяемая доля MAM (maximum allocation multiplier) ресурса является административно задаваемым атрибутом, который определяет долю ресурса, доступную для канала передачи данных. Этот атрибут нужен в основном для распределения полосы пропускания. Однако он может быть применен также для резервирования ресурсов
Значения MAM могут быть выбраны так, чтобы ресурс был недораспределен или перераспределен. Ресурс считается недораспределенным, если суммарные требования всех каналов передачи данных, которые могут его использовать, меньше емкости ресурса. В противном случае ресурс считается перераспределенным.
Недораспределение может применяться, чтобы установить предел использования ресурсов. Однако, в случае MPLS это сложнее, чем в схемах с коммутацией каналов, так как для MPLS некоторые потоки могут маршрутизоваться посредством обычных протоколов шаг-за-шагом без рассмотрения каких-либо ресурсных ограничений.
Перераспределение может использоваться, чтобы реализовать преимущества статистических характеристик трафика в рамках более эффективной
Атрибуты класса ресурса являются параметрами, присваиваемыми административно, и вводят понятие класса для ресурсов. Атрибуты класса ресурса могут рассматриваться как цвета, приписанные ресурсам, такие, что набор ресурсов с одним цветом концептуально принадлежит к одному классу. Атрибуты класса ресурса могут использоваться для реализации разнообразных политик. Ключевыми ресурсами здесь являются связи. В случае применения в отношении связей, атрибут класса ресурса становится эффективной характеристикой параметров состояния связи.
Концепция атрибутов класса ресурса является достаточно мощной абстракцией. С точки зрения управления трафиком она может применяться для реализации различных политик при оптимизации характеристик канала по трафику или по ресурсам. В частности, атрибуты класса могут использоваться для:
Кроме того, атрибуты класса ресурса могут использоваться для целей идентификации.
Вообще, ресурс может быть ассоциирован более чем с одним атрибутом класса ресурса. Например, все каналы
В современной терминологии маршрутизация, основанная на ограничениях, часто называется QoS-маршрутизацией (смотри [11.5,6,11.7,[11.10]).
Здесь используется термин маршрутизация на основе ограничений, однако, если быть точным, QoS-маршрутизация является лишь ее составной частью.
Маршрутизация на основе ограничений делает возможным резервирование ресурсов по запросу и сосуществование с имеющимися внутренними протоколами маршрутизации Интернет, работающими по принципу шаг-за-шагом.
Маршрутизация на основе ограничений использует следующие данные в качестве входных:
Базируясь на этой информации, процесс маршрутизации на основе ограничений автоматически вычисляет маршрут для каждого потока, исходящего из данного узла. В этом случае маршрут для каждого информационного потока представляет собой спецификацию пути с коммутацией по меткам, который удовлетворяет требованиям, записанным в атрибутах канала. Ограничения формулируются на основе доступности ресурсов, административной политики и статусной топологической информации.
Маршрутизация на основе ограничений может существенно сократить уровень ручной конфигурации и необходимого вмешательства для актуализации политики управления трафиком.
На практике инженер трафика, оператор или даже автоматическая система специфицирует конечные точки канала передачи данных и приписывает набор атрибутов, который объединяет ожидаемые рабочие характеристики канала. Предполагается, что маршрутизация на основе ограничений найдет приемлемый путь, который удовлетворит имеющимся ожиданиям. Если необходимо для более тонкой оптимизации, инженер трафика или система поддержки управления трафиком может затем использовать административно сконфигурированные маршруты.
Маршрутизация на основе ограничений должна, по крайней мере, иметь возможность автоматически получать базовые, приемлемые решения задачи размещения пути для канала передачи данных.
Вообще, известно, что проблема маршрутизации на основе ограничений трудно разрешима для большинства реалистичных ограничений. Однако, на практике для нахождения приемлемого пути, если он существует, может использоваться очень простая хорошо известная эвристика (смотри, например, [11.9]).
Ясно, что если приемлемый путь для заданного канала передачи данных существует, тогда предложенная выше простая процедура его найдет. Могут быть специфицированы дополнительные правила для разрубания узлов и выполнения дальнейшей оптимизации. Вообще, оптимизация обычно сводится к минимизации перегрузки. Однако когда нужно маршрутизировать несколько каналов передачи данных, можно показать, что выше предложенный алгоритм не всегда находит решение, даже когда такое решение существует.
Многие коммерческие реализации коммутаторов Frame Relay и ATM уже поддерживают некоторые аспекты маршрутизации на основе ограничений. Для таких приборов или для новых MPLS-реализаций должно быть относительно просто расширить существующие варианты маршрутизации на основе ограничений, чтобы удовлетворить специфическим требованиям MPLS.
Для маршрутизаторов, которые используют топологически управляемые
(рис 11.7) Процесс маршрутизации, базирующийся на ограничениях, на уровне 3 LSRСуществует много важных деталей, связанных с реализацией маршрутизации на основе ограничений в устройствах уровня 3, которые здесь не обсуждались. Сюда входят:
Короче говоря, маршрутизация на основе ограничений помогает при осуществлении оптимизации сетей путем автоматического поиска приемлемых маршрутов, которые удовлетворяют набору ограничений, налагаемых на каналы передачи данных. Она может существенно уменьшить усилия по административной конфигурации и ручному вмешательству для решения задач управления трафиком.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.