Процедуры распределения и обработки маркеров
Процедурная и логическая характеристики LDP-протокола представлены в RFC-3031 и RFC-5036. Рассматриваемый ниже способ распределения и обработки маркера «нисходящий поток по требованию» (downstream-on-demand) должен использоваться FR/LSR-коммутаторами, которые не поддерживают функцию слияния (объединения) VC-соединений (этот способ используется для доставки трафика с поузловой маршрутизацией).
Функционирование граничного LSR-маршрутизатора
Рассмотрим функционирование граничного LSR-маршрутизатора из группы граничных LSR-маршрутизаторов, входящих в сетевой FR/LSR-сегмент. Предположим, что в результате его маршрутных вычислений он выбрал FR/LSR-коммутатор в качестве следующего РУ некоторого маршрута (FEC-класс), и что следующий РУ подключён через LC/FR-интерфейс. Будем считать, что на противоположной стороне следующего РУ расположен FR/LSR-коммутатор, который является участником (одной из сторон) информационного взаимодействия по LDP-протоколу (LDP-peer). Граничный LSR-маршрутизатор отправляет LDP-запрос (request) LSRНП для привязки маркера к следующему РУ. Когда этот граничный LSR-маршрутизатор получает ответ от LSRНП (LDP-сообщение «отображение», mapping), в котором содержится информация о привязке маркера, он сохраняет маркер в соответствующей БД (Label Information Base, LIB) в качестве выходного маркера для данного FEC-класса. Принятое LDP-сообщение «отображение» может включать поле «счётчик РУ», содержащее число РУ, на которое следует уменьшить TTL-значение после прохождения IP-пакетом сетевого FR/LSR-сегмента до выходного FR/LSR-коммутатора при использовании данного маркера. Такая информация может храниться для последующих расчётов TTL-значений. После того, как всё это будет выполнено, LSR-маршрутизатор может использовать MPLS-коммутацию для трансляции IP-пакетов данного FEC-класса.
Когда граничный LSR-маршрутизатор из группы граничных LSR-маршрутизаторов, входящих в сетевой FR/LSR-сегмент, получает LDP-запрос от FR/LSR-коммутатора в интересах определённого FEC-класса, это означает, что данный граничный LSR-маршрутизатор является выходным FR/LSR-коммутатором. По получении LDP-запроса, он формирует и сохраняет маркер, т.е. делает новую запись в своей LIB-базе и помещает в неё (в специальное поле «входящий маркер») этот маркер. После этого, данный LSR-маршрутизатор отправляет ответное LDP-сообщение («отображение»), содержащее сформированный маркер, назад по направлению восходящего потока противоположной стороне сквозного LDP-соединения, передавшей запрос. Ответное LDP-сообщение («отображение») содержит поле «счётчик РУ» со значением «1».
Когда в результате маршрутизационных вычислений граничному LSR-маршрутизатору необходимо изменить следующий РУ маршрута, а предыдущий РУ находился в сетевом FR/LSR-сегменте, граничный LSR-маршрутизатор должен оповестить противоположную сторону предыдущего РУ (с помощью LDP-сообщения «разъединение», release), что данные о привязке маркера, относительно данного маршрута, больше не нужны.
Когда FR/LSR-коммутатор получает LDP-запрос (сообщение «запрос») в интересах определённого маршрута (FEC-класса) от противоположной стороны LDP-соединения, установленного с этим FR/LSR-коммутатором через LC/FR-интерфейс, тогда FR/LSR-коммутатор выполняет следующие действия:
- формирует и сохраняет маркер, т.е. делает новую запись в своей LIB-базе и помещает в неё (в специальное поле «входящий маркер») этот маркер;
- направляет LDP-сообщение «запрос» LSR-маршрутизатору, расположенному на противоположной стороне следующего РУ, по направлению нисходящего потока для данного маршрута (FEC-класса).
В режиме «регулируемого управления LSP-маршрутом» (RFC-3031) FR/LSR-коммутатор будет ожидать команду на отправку своего «запроса», на который он в последствие получит ответ от LSRНП, содержащий сообщение «отображение», прежде чем отправит ответное сообщение «отображение» LSRВП на запрос последнего. В данном случае FR/LSR-коммутатор уменьшит на единицу число РУ, полученное от LSRНП, и будет использовать это значение в ответных сообщениях «отображение», направляемых LSRВП.
В качестве альтернативы, FR/LSR-коммутатор может направить LSRВП данные о привязке маркера, не дожидаясь получения данных о привязке маркера от LSRНП (режим «управления LSP-маршрутом»). В этом случае, FR/LSR-коммутатор использует зарезервированное значение числа РУ в отправляемом сообщении «отображение», указывая в последнем, что это число ему не известно. Корректное значение числа РУ будет отправлено позднее, как это определено ниже.
Так как оба режима управления LSP-маршрутом (регулируемое и независимое) имеют свои преимущества и недостатки, то право выбор режима остаётся за конкретной реализацией системы или субъектом настройки параметров системы.
После того, как FR/LSR-коммутатор получит от противоположной стороны следующего РУ ответное LDP-сообщение («отображение»), он размещает маркер потока в специальном поле «исходящий маркер» LIB-записи.
Следует заметить, что FR/LSR-коммутатор или граничный LSR-маршрутизатор из группы граничных LSR-маршрутизаторов, входящих в сетевой FR/LSR-сегмент, может получить несколько запросов на данные о привязке для одного и того же маршрута (FEC-класса) от одного и того же FR/LSR-коммутатора. Тогда он должен сформировать новое ответное сообщение «отображение» с маркером потока для каждого запроса (полагая, что для этого достаточно ресурсов) и сохранить любой(ые) существующей(ие) маркер(ы) потока. Также целесообразно, чтобы FR/LSR-коммутатор для каждого полученного запроса сформировал новый запрос на данные о привязке к следующему РУ маршрута (FEC-класса).
Когда в результате маршрутизационных вычислений FR/LSR-коммутатору необходимо изменить следующий РУ маршрута (FEC-класса), FR/LSR-коммутатор должен оповестить противоположную сторону предыдущего РУ (с помощью LDP-сообщения «разъединение»), что данные о привязке маркера, относительно данного маршрута, больше не нужны.
Когда LSR-маршрутизатор получает извещение о том, что соответствующие данные о привязке маркера больше не нужны, он может открепить маркер от FEC-класса, а саму привязку уничтожить. Этот режим называется «консервативным режимом сохранения маркера потока» (RFC-3031). Там, где LSR-маршрутизатор получает извещение и уничтожает привязку, ему целесообразно оповестить противоположную сторону следующего РУ, что данные о привязке маркера больше не нужны. Если же LSR-маршрутизатор не уничтожает привязку маркера потока (FR/LSR-коммутатор функционирует в «свободном режиме сохранения маркера потока»), то он может повторно использовать эту привязку, но только тогда, когда он получит запрос относительно одного и того же маршрута и с одним и тем же значением счётчика РУ, как если бы он получил запрос от противоположной стороны РУ на формирование привязки маркера потока.
При изменении маршрута, привязки маркеров потока должны повторно формироваться, причём с той точки, в которой «уклонился» от предыдущего маршрута. LSRВП в такой точке «не обращает внимание» на произошедшее изменение (за одним исключением, рассмотренным ниже). Всякий раз, когда LSR-маршрутизатор изменяет свой следующий РУ соответствующего маршрута, и если на его противоположной стороне размещён FR/LSR-коммутатор или граничный LSR-маршрутизатор из группы граничных LSR-маршрутизаторов, подключённый через LC/FR-интерфейс, то для каждой своей LIB-записи, относящейся к маршруту, LSR-маршрутизатор должен отправить запрос (используя LDP-соединение) на получение данных о привязке от противоположной стороны нового РУ.
Когда FR/LSR-коммутатор получает данные о привязке маркера от соседнего LSRНП, он возможно уже имеет подготовленный соответствующий маркер для данного маршрута до соседнего LSRВП. Это может быть следствием, либо того, что FR/LSR-коммутатор функционирует в режиме независимого управления LSP-маршрутом, либо того, что данные о новой привязке маркера, полученные от LSRНП, являются результатом изменения маршрута. В таком случае, целесообразно извлечь из данных о новой привязке маркера значение счётчика РУ и увеличить его на единицу. Если новое значение счётчика РУ отличается от того, которое было ранее отправлено соседнему LSRВП (включая случай, когда соседний LSRВП получил значение «не известно»), FR/LSR-коммутатор обязан сообщить об этом изменении соседнему LSRВП. Каждый FR/LSR-коммутатор в последовательности LSP-маршрута увеличивает значение счётчика РУ и отправляет его LSRВП, причём до тех пор, пока оно не достигнет входного граничного LSR-маршрутизатора.
Всякий раз, когда FR/LSR-коммутатор направляет запрос на данные о привязке маркера LSR-маршрутизатора на противоположной стороне следующего РУ, вследствие приёма запроса на данные о привязке маркера от другого LSRВП, и этот отправленный LSR-маршрутизатору на противоположной стороне следующего РУ не был удовлетворён, FR/LSR-коммутатор, в ответ на принятый запрос, должен уничтожить сформированную привязку и проинформировать об этом запрашивающую сторону, используя для этого LDP-сообщение «изъятие» (withdraw).
Когда LSR-маршрутизатор установит, что LDP-соединение с другим LSR-маршрутизатором прервано, он выполняет следующие действия:
§ обязан уничтожить любые данные о привязке, полученные по этому соединению;
§ любые данные о привязках маркеров, которые были сформированы в результате приёма запросов на данные о привязках маркеров от противоположной стороны соединения, могут быть уничтожены LSR-маршрутизатором (последний также может открепить маркеры от FEC-классов, связанные с этими привязками).
Эффективное использование диапазона маркеров — функция
слияния, реализуемая FR/LSR-коммутаторами
Ранее предполагалось, что граничный LSR-маршрутизатор будет запрашивать по одному маркеру потока для каждого префикса из своей маршрутной таблицы, который отображает следующий РУ в сетевом FR/LSR-сегменте. Фактически, имеется возможность существенно уменьшить необходимое число маркеров за счёт использования одного маркера для нескольких маршрутов вместо запроса граничного LSR-маршрутизатора. Использование сходящихся (many-to-one) отображений между маршрутами (префиксы IP-адресов) и маркерами на основе FEC-классов позволяет (представляет собой способ) уменьшить/сохранить число используемых маркеров.
Следует заметить, что уменьшение диапазона маркеров (объединение VC-соединений) может быть ограничено в том случае, когда последовательность кадров (трафик) требует FR-фрагментации. Проблема в том, что FR-фрагменты должны передаваться последовательно, т.е. фрагменты разных кадров не должны быть перемежающимися. Если FR/LSR-коммутатор, реализующий функцию фрагментации, гарантирует, что передача последовательности всех фрагментов кадра будет осуществляться без перемежения с фрагментами других кадров, то можно говорить об уменьшении (сохранении) числа маркеров (объединение VC-соединений).
Если реализуется способ уменьшения (сохранения) числа маркеров, и если FR/LSR-коммутатор получает запрос на данные о привязке маркера от для соответствующего FEC-класса и он уже имеет привязку исходящего маркера для этого же FEC-класса, то ему нет необходимости направлять LSRНП запрос на данные о привязке. Вместо этого, FR/LSR-коммутатор может зафиксировать (разместить в своей LIB-базе) входящий маркер и отправить этот маркер в составе сообщения о привязке обратно LSRВП, который прислал запрос. IP-пакеты, принятые от LSRВП, который присылал запрос, и содержащие маркер на верхнем уровне набора маркеров, будут доставляться дальше после замены этого маркера на существующий исходящий маркер для данного FEC-класса. Если FR/LSR-коммутатор не обладает исходящим маркером, привязанным к данному FEC-классу, но имеет неисполненный запрос для этого FEC-класса, то ему нет необходимости отправлять другой запрос. Это означает, что в случае уменьшения (сохранения) числа маркеров, FR/LSR-коммутатор обязан отправить ответ, содержащий данные о новой привязке маркера, на каждый запрос от LSRВП, но ему может понадобиться передать LSRНП всего лишь один запрос на данные о привязке.
В случае уменьшения (сохранения) числа маркеров, и если изменения в маршрутной таблице «вынуждают» FR/LSR-коммутатор выбрать новый РУ для одного из своих FEC-классов, то он может удалить привязку этого маршрута от «старого» РУ. Если же FR/LSR-коммутатор ещё не имеет данных о соответствующей привязке для нового РУ, то он обязан их запросить (необходимо заметить, что выбор нового РУ зависит от режима сохранения маркера потока, RFC-3031).
Если данные о новой привязке получены, и они включают значение счётчика РУ, отличающееся от значения в старых данных о привязке, то FR/LSR-коммутатор обязан выполнить следующие действия:
· увеличить это значение на единицу, если оно не является «неизвестным»;
· уведомить о новом значении счётчика РУ соседние LSRВП, которые имеют привязки маркеров для этого FEC-класса.
Для обеспечения гарантированного обнаружения петлевых маршрутов, в случае, когда новое значение счётчика РУ превысило «максимальное» значение, соответствующие маркеры для данного FEC-класса должны быть отозваны у всех соседних LSRВП, которым ранее высылались данные о привязке этих маркеров.
LDP-сообщения для FR-сетей
LDP-сообщения, которыми обмениваются два FR/LSR-коммутатора, являющиеся взаимодействующими сторонами LDP-соединения, могут содержать специализированную информацию в интересах FR-сетей. К такой информации относится:
1. диапазон FR-маркеров (Frame Relay Label Range). На рис. 35.8 представлен формат блока данных «диапазон FR-маркеров», который включает следующие поля:
§ «зарезервировано». Эти поля являются резервными. Они должны заполняться нулями при передаче и игнорироваться при приёме;
§ «длина». Это поле определяет число бит DLCI-идентификатора. Оно может принимать следующие значения:
a. «0» — 10-битовый DLCI-идентификатор;
b. «2» — 23-битовый DLCI-идентификатор;
c. «1» и «3» — зарезервированы для будущего использования;
§ «минимальное значение DLCI-идентификатора» (Minimum DLCI). Это 23-битовое поле содержит двоичное значение нижней границы диапа зона DLCI-идентификаторов, которое поддерживается FR/LSR-коммутатором. Минимальное значение DLCI-идентификатора должно правильно размещаться в этом поле, а все предшествующие биты должны быть нулевыми;
§ «максимальное значение DLCI-идентификатора» (Maximum DLCI). Это 23-битовое поле содержит двоичное значение верхней границы диапазона DLCI-идентификаторов, которое поддерживается FR/LSR-коммутатором. Максимальное значение DLCI-идентификатора должно правильно размещаться в этом поле, а все предшествующие биты должны быть нулевыми;
0 6 | 7 8 | 9 31 |
Зарезервировано | Длина | Минимальное значение DLCI-идентификатора |
Зарезервировано | Максимальное значение DLCI-идентификатора |
Рис. 35.8. Формат блока данных «диапазон FR-маркеров»
2. объединение VC-соединений в FR-сети (Frame Relay Merge). Данная информация необходима для определения функциональности FR/LSR-коммутатора: способен ли он объединять VC-соединения или нет. На рис. 35.9 представлен формат блока данных «объединение VC-соединений в FR-сети», который включает следующие поля:
§ «зарезервировано». Это поле является резервными. Оно должно заполняться нулями при передаче и игнорироваться при приёме;
§ «объединение VC-соединений» («М»). Это 1-битовое поле определяет функциональность FR/LSR-коммутатора. Оно может принимать следующие значения:
a. «0» — FR/LSR-коммутатор не способен объединять VC-соединения;
b. «1» — FR/LSR-коммутатор способен объединять VC-соединения;
FR-LSR-коммутатор, который способен объединять VC-соединения, обязан гарантировать, что фрагментируемые кадры с входящими DLCI-идентификаторами не будут перемежаться на выходе с фрагментами кадров, имеющих иные исходящие DLCI-идентификаторы;
3. маркер в FR-сети (Frame Relay Label). На рис. 35.10 представлен формат блока данных «маркер в FR-сети», который включает следующие поля:
§ «зарезервировано». Это поле является резервными. Оно должно заполняться нулями при передаче и игнорироваться при приёме;
§ «длина». Это поле определяет число бит DLCI-идентификатора. Оно может принимать следующие значения:
a. «0» — 10-битовый DLCI-идентификатор;
b. «2» — 23-битовый DLCI-идентификатор;
c. «1» и «3» — зарезервированы для будущего использования;
§ «DLCI-идентификатор». Это двоичная величина FR-маркера. Соответствующее число бит (10 или 23) значения маркера отображают DLCI-идентификатор, который является часть заголовка FR-кадра канального уровня.
0 6 | 7 |
Зарезервировано | М |
Рис. 35.9. Формат блока данных «объединение VC-соединений в FR-сети»
0 6 | 7 8 | 9 31 |
Зарезервировано | Длина | DLCI-идентификатор |
Рис. 35.10. Формат блока данных «объединение VC-соединений в FR-сети»
Глава 36 | Применение MPLS-коммутации в сетях с асинхронным режимом доставки |
MPLS-архитектура описывает способ применения ATM-коммутаторов в качестве LSR-маршрутизаторов. ATM-коммутаторы реализуют алгоритмы маршрутизации сетевого уровня (например, OSPF, IS-IS и др.), и по результатам выполнения этих алгоритмов они транслируют поступившие в них данные. Нет необходимости в использовании какой-либо специализированной ATM-системы маршрутизации или адресации. ATM-коммутаторы, используемые таким образом, именуются ATM/LSR-коммутаторами.
В дальнейшем используются следующие термины и определения.
LC/ATM-интерфейс (label switching controlled ATM interface) — ATM-интерфейс, управляемый программным MPLS-модулем. IP-пакет, доставляемый через LC/ATM-интерфейс, интерпретируется как помеченный пакет. Верхний маркер набора маркеров в IP-пакете извлекается, либо из содержания VCI-поля (VC-идентификатор), либо из совместного содержания VPI- (VPI-идентификатор) и VCI-полей (Virtual Path, виртуальный маршрут). Две любые стороны, взаимодействующие по LDP-соединению через LC/ATM-интерфейс, будут использовать LDP-процедуры для согласования и определения, какой из этих двух вариантов извлечении маркера потока применим для данного интерфейса.
ATM/LSR-коммутатор (ATM-LSR) — LSR-маршрутизатор, имеющий один или более LC/ATM-интерфейсов, и который транслирует ATM-ячейки между двумя такими же интерфейсами, используя для этого маркеры потока, расположенные в VPI/VCI-полях, и без повторной сборки ATM-ячеек в кадры перед отправкой.
LSR/frame-коммутатор (frame-based LSR) — LSR-маршрутизатор, который транслирует между своими интерфейсами кадры канального уровня* без фрагментации («целиком»). Следует отметить, что такой LSR-маршрутизатор не иметь и иметь один или более LC/ATM-интерфейсов.
Иногда сетевой программно-аппаратный модуль может функционировать как ATM/LSR-коммутатор, что касается некоторых пар интерфейсов, но может функционировать и как LSR/frame-коммутатор, что касается других пар интерфейсов. Например, ATM-коммутатор с интерфейсом Ethernet-сети может функционировать как ATM/LSR-коммутатор при доставке ячеек между своими LC/ATM-интерфейсами, но может функционировать и как LSR/frame-коммутатор при доставке кадров канального уровня между его Ethernet- интерфейсом и одним или несколькими LC/ATM-интерфейсами. В таких случаях, можно считать, что в одном сетевом модуле реализованы две функции (ATM/LSR- и LSR/frame-коммутаторы).
Предполагается, что LC/ATM-интерфейс используется для соединения, либо двух ATM/LSR-коммутаторов, либо ATM/LSR-коммутатора с LSR/frame-коммутатором. Использование LC/ATM-интерфейса для соединения двух LSR/frame-коммутаторов в данном стандарте не рассматривается.
Сетевой ATM/LSR-сегмент (ATM-LSR domain) — совокупность ATM/LSR-коммутаторов, которые взаимодействуют между собой через LC/ATM-интерфейсы.
Граничные LSR/frame-коммутаторы сетевого ATM/LSR-сегмента (edge set of ATM-LSR domain) — совокупность LSR/frame-коммутаторов, которые соединены с сетевым ATM/LSR-сегментом через LC/ATM-интерфейсы. LSR/frame-коммутатор, который входит в совокупность граничных LSR/frame-коммутаторов сетевого ATM/LSR-сегмента может именоваться граничным LSR-маршрутизатором.
Слияние VC-соединений (VC-merge) — процесс (процедура), с помощью которого коммутатор принимает ячейки по нескольким входным интерфейсам с определёнными VCI-идентификаторами и транслирует их через один выходной интерфейс с определённым VCI-идентификатором, не допуская при этом перемежения ячеек, сформированных из блоков данных различных протоколов на AAL5-уровне адаптации (ATM Adaptation Layer 5).
Дата добавления: 2016-04-11; просмотров: 481;