Сети и телекоммуникации
.pdf
521
522
нее, набор маркеров может быть полностью удалѐн предпоследним LSR-марш-
рутизатором в туннеле.
«LSP-туннель, сформированный на основе поузловой маршрутизации»
(hop-by-hop routed LSP tunnel), представляет собой туннель, сформированный как LSP-маршрут с поузловой маршрутизацией между крайней точкой переда-
чи и крайней точкой приѐма.
«LSP-туннель, сформированный на основе точной маршрутизации» (explicitly routed LSP tunnel), представляет собой туннель, сформированный как
LSP-маршрут на основе точной маршрутизацией.
Иерархия: LSP-туннели в рамках LSP-маршрутов
Пусть имеет место LSP-маршрут < R1, R2, R3, R4 >. Теперь предположим,
что R1 принял непомеченный IP-пакет P и поместил в его набор маркеров свой маркер, чтобы направить его по данному маршруту. Фактически, такой мар-
шрут является поузловым. Однако в дальнейшем полагаем, что R2 и R3 не име-
ют прямого соединения между собой, но считаются «соседями» в силу того, что являются оконечными (крайними) точками LSP-туннеля. Таким образом, ре-
альной последовательностью LSR-маршрутизаторов, по которым доставляется IP-пакет P, является < R1, R2, R21, R22, R23, R3, R4 > (рис. 33.6).
Когда P следует по маршруту от R1 до R2, он имеет глубину набора мар-
керов равную 1. R2, осуществляющий коммутацию по маркеру, определяет, что
P должен следовать далее по туннелю. R2 первым заменяет входящий маркер на маркер, который является значимым для R3. Затем он «заталкивает» новый мар-
кер. Этот маркер второго уровня имеет значение, которое является значимым для R21. Далее коммутация осуществляется R21, R22 и R23, с использованием мар-
кера второго уровня. R23, который является предпоследним коммутатором в туннеле R2R3, перед тем, как отправить IP-пакет R3, выталкивает набор мар-
керов. Когда R3 проанализирует IP-пакет P, он установит, что в P содержится только один маркер первого уровня, что указывает на выход из туннеля. Так
523
как R3 является предпоследним коммутатором в LSP-маршруте первого уровня при доставке IP-пакет P, он выталкивает набор маркеров, а R4 принимает P не-
помеченным.
Использование набора маркеров позволяет формировать LSP-туннели любой глубины.
Информационный обмен при доставке маркеров и иерархия
Предположим, что IP-пакет P доставляется по LSP-маршруту первого уровня < R1, R2, R3, R4 >, а когда он будет доставляться от R2 до R3, то будет сле-
довать по LSP-маршруту второго уровня < R2, R21, R22, R3 >. С точки зрения
LSP-маршрута второго уровня, противоположной стороной доставки (распре-
деления) маркеров для R2 является R21. С точки зрения LSP-маршрута первого уровня, противоположными сторонами доставки (распределения) маркеров для
R2 являются R1 и R3. R2 может проводить процедуры распределения маркеров с соседними коммутаторами на любом уровне иерархии. В дальнейшем будут рассмотрены некоторые способы использования такой иерархии. Следует заме-
тить, что в представленном выше примере коммутаторы R2 и R21 должны быть соседями с точки зрения IGP-протокола, в то время как для коммутаторов R2 и
R3 такое требование не обязательно.
Когда два LSR-маршрутизатора являются соседями с точки зрения IGP-
протокола, то говорят, что они являются «взаимодействующими сторонами ло-
кальной процедуры распределения маркеров» (local label distribution peers). Ко-
гда два LSR-маршрутизатора не являются соседями с точки зрения IGP-про-
токола, то говорят, что они являются «взаимодействующими сторонами при проведении удалѐнной процедуры распределения маркеров» (remote label distribution peers). В рассмотренном ранее примере коммутаторы R2 и R21 являются взаимодействующими сторонами локальной процедуры распределения марке-
ров, а коммутаторы R2 и R3 — взаимодействующими сторонами удалѐнной процедуры распределения маркеров.
524
MPLS-архитектура рассматривает два способа распределения (доставки)
маркеров на различных уровнях иерархии: явная (точная) процедура доставки маркеров (explicit peering) и неявная процедура доставки маркеров (implicit peering).
Коммутатор (сетевой узел) проводит процедуру распределения (доставки)
маркеров с другой взаимодействующей стороной (другим коммутатором, сете-
вым узлом) путѐм передачи сообщений LDP-протокола, которые адресованы этой стороне. Коммутатор (сетевой узел) может организовать распределение
(доставку) маркеров с удалѐнной взаимодействующей стороной (другим ком-
мутатором, сетевым узлом) одним из следующих двух способов:
1.явная (точная) процедура доставки маркеров. При реализации этой про-
цедуры коммутатор (сетевой узел) доставляет маркеры взаимодействую-
щей с ним стороне путѐм передачи сообщений LDP-протокола, которые адресованы данной стороне, причѐм точно так же, как если бы они были сторонами локального обмена маркерами (local label distribution peers).
Этот способ наиболее приемлем там, где число удаленных сторон, кото-
рые обмениваются маркерами, — мало, или тогда, когда число привязок маркеров верхнего уровня — большое, или тогда, когда удаленные сто-
роны, которые обмениваются маркерами, расположены в определѐнных маршрутизационных областях или сегментах. Естественно, коммутатору необходимо знать, какие маркеры и каким сторонам следует доставлять;
2.неявная процедура доставки маркеров. При реализации этой процедуры коммутатор (сетевой узел) не передаѐт взаимодействующей с ним сторо-
не сообщения LDP-протокола, которые адресованы данной стороне. Ве-
роятнее всего, для доставки маркеров верхнего уровня другим удалѐнным сторонам обмена маркерами, коммутатор (сетевой узел) кодирует маркер верхнего уровня как атрибут маркера нижнего уровня, и затем транслиру-
ет маркер нижнего уровня, вместе с атрибутом, другим взаимодействую-
щим с ним локальным сторонам обмена маркерами. После этого, локаль-
525
ные стороны (коммутаторы и/или сетевые узлы) обмена маркерами рас-
пространяют информацию о своих локальных сторонах обмена маркера-
ми. Этот процесс продолжается до тех пор, пока информация не достиг-
нет удалѐнной стороны обмена маркерами.
Этот способ наиболее приемлем там, где число удалѐнных сторон обмена маркерами очень велико. Неявная доставка маркеров не требует n-связ-
ной сети информационного обмена для доставки маркеров удалѐнным сторонам обмена маркерами, так как информация распространяется в ду-
плексном режиме с помощью локальных процедур обмена маркерами.
Однако неявная доставка маркеров требует наличия промежуточных се-
тевых узлов для хранения информации, в которой они напрямую могут быть не заинтересованы.
Доставка данных о LDP-протоколе
LDP-протокол используется между узлами MPLS-сети для формирования и обработки привязок маркеров. Для корректного функционирования MPLS-
сети информация о доставке маркеров должна передаваться надѐжно, а сооб-
щения LDP-протокола, принадлежащие определѐнному FEC-классу, должны транслироваться последовательно. Также для этого необходимо обеспечить управление потоком, так как оно обеспечит доставку сообщений с несколькими маркерами в одной дейтаграмме.
Одним из решений указанных выше проблем является использование протокола транспортного уровня с установлением соединения, в частности ТСР-протокола (RFC-4271, RFC-5036).
Глава 34 Кодирование набора маркеров в MPLS-системах
В этой главе рассматриваются правила кодирования и процедуры обра-
ботки различных полей набора маркеров, используемые LSR-маршрутизатора-
ми при передаче помеченных IP-пакетов по сквозным каналам передачи данных,
организуемых PPP-протоколом (Point-to-Point Protocol, протокол (канального уровня) сквозного канала передачи данных), и каналам передачи данных ЛВС.
Набор маркеров
Кодирование набора маркеров
Набор маркеров представляет собой последовательность «записей набора маркеров». Каждая запись в наборе включает четыре байта (рис. 34.1).
Записи в наборе маркеров начинаются после протокольных заголовков канального уровня, но заканчиваются перед протокольными заголовками сете-
вого уровня (рис. 33.5). Вначале идут верхние записи набора, а нижняя запись в наборе является его окончанием. Пакет сетевого уровня следует сразу же за за-
писью набора маркеров, в которой бит «S» установлен в единицу.
0 |
19 20 |
22 23 24 |
31 |
|||
|
|
|
|
|
|
|
Значение маркера |
|
Экспериментальные |
S |
|
«Время жизни» |
|
|
|
|
|
|
|
|
Рис. 34.1. Формат записи набора маркеров
Каждая запись набора маркеров включает следующие поля:
1.бит «S» (окончание набора маркеров). Этот бит указывает на окончание набора маркеров, если он установлен в «1». Если же он нулевой, то за этой записью набора ещѐ будут следовать записи;
2.«время жизни» (Time to Live, TTL). Это 8-битовое поле используется для кодирования TTL-значения;
527
3.«экспериментальное поле» (3 бита). Это 3-битовое поле зарезервировано для экспериментальных исследований;
4.«значение маркера потока» (20 бит). Это 20-битовое поле содержит ре-
альное значение маркера потока.
Когда принят помеченный пакет, то значение верхнего маркера в наборе
подвергается анализу. В результате успешного анализа становятся известными:
a)следующий РУ, по которому будет далее транслироваться IP-пакет;
b)процедура обработки набора маркеров, которая должна быть выполнена перед тем, как будет отправлен IP-пакет. В результате этой процедуры может быть заменена верхняя запись в наборе на другую запись, либо удалена верхняя запись из набора, либо заменена верхняя запись в наборе
и затем вставлена одна или несколько дополнительных записей в набор маркеров.
В дополнение к этой информации могут быть получены данные, позво-
ляющие определить необходимую выходную процедуру повторного обрамле-
ния на канальном уровне, а также и возможные другие данные, которые позво-
лят уточнить особенности дальнейшей доставки IP-пакета.
Существуют несколько следующих зарезервированных значений марке-
ров:
i.значение «0» представляет собой «явный нулевой маркер для IPv4-
протокола» (IPv4 explicit NULL label). Это значение может располагать-
ся только (и только) на самом нижнем уровне набора маркеров. Оно указывает на то, что набор маркеров должен быть удалѐн, а дальнейшая доставка IP-пакета, должна осуществляться на основе IPv4-заголовка;
ii.значение «1» представляет собой «маркер-предупреждение для мар-
шрутизатора» (router alert label). Этот маркер может располагаться на любом, кроме самого нижнего, уровне набора маркеров. Если получен-
ный IP-пакет содержит, на самом верхнем уровне набора, маркер с та-
ким значением, то он должен быть обработан локальным программным
529
Когда из набора маркеров пакета удаляется последний маркер (в резуль-
тате чего набор «опустошается»), дальнейшая обработка пакета основывается на заголовке сетевого уровня. LSR-маршрутизатор, который удаляет последний маркер из набора, обязан, вследствие этого, определить к какому протоколу се-
тевого уровня принадлежит пакет. Тем не менее, набор маркеров не содержит каких-либо полей, с помощью которых можно точно установить протокол сете-
вого уровня. Это означает, что идентификация протокола сетевого уровня должна осуществляться на основе анализа значения маркера, который послед-
ним удаляется из набора маркеров, возможно совместно с содержанием самого заголовка сетевого уровня.
Следовательно, если в пакет сетевого уровня вставляется первый маркер,
то маркер должен быть таким, который используется только, либо в пакетах определѐнного сетевого уровня, либо в некоторой совокупности протоколов се-
тевого уровня, т.е. пакеты конкретного протокола сетевого уровня могут быть установлены путѐм анализа заголовка сетевого уровня. Более того, всякий раз,
когда такой маркер замещается маркером с другим значением (в течение ретрансляции пакета), новое значение маркера должно удовлетворять одному и тому же установленному критерию. Если же эти условия не выполняются, то
LSR-маршрутизатор, который удаляет последний маркер из набора, не спосо-
бен идентифицировать протокол сетевого уровня, которому принадлежит пакет.
Соблюдение этих условий не обязательно обеспечит для промежуточных сетевых узлов способность идентифицировать протокол сетевого уровня, кото-
рому принадлежит пакет. Даже нет необходимости в соблюдении обычных ус-
ловий, но, тем не менее, в случае возникновения нештатной ситуации жела-
тельно, чтобы сетевые узлы были способны идентифицировать протокол сете-
вого уровня. Например, если промежуточный LSR-маршрутизатор определит,
что пакет «нетранспортабелен», то желательно, чтобы LSR-маршрутизатор мог сформировать сообщения об ошибке, которые, в свою очередь, определяли бы протокол сетевого уровня, которому принадлежит пакет. Единственным сред-
530
ством для промежуточного LSR-маршрутизатора при определении им протоко-
ла сетевого уровня является проверка (анализ) маркера верхнего уровня в набо-
ре или заголовок сетевого уровня. Действительно, если промежуточные сете-
вые узлы способны формировать определѐнные протокольные сообщения об ошибках для помеченных пакетов, то все маркеры в наборе должны удовлетво-
рять определѐнным критериям, указанным выше для маркеров, которые распо-
лагаются на самом нижнем уровне в наборе маркеров.
Если по какой-либо причине пакет не может быть доставлен (например,
он превышает максимальной допустимый MTU-размер для канального уровня),
а также если не может быть определѐн протокол сетевого уровня, которому принадлежит пакет, или не известны правила процедурной характеристика про-
токола для выхода из нештатной ситуации, то такой пакет должен быть унич-
тожен в режиме «по умолчанию».
Формирование сообщений ICMP-протокола для помеченных IP-пакетов
Ранее обсуждались ситуации, в которых было бы желательно формиро-
вать ICMP-сообщения для помеченных IP-пакетов. Чтобы соответствующий
LSR-маршрутизатор был способен формировать ICMP-пакет и в последующем мог его отправить источнику IP-пакета, должны быть выполнены следующие два условия:
1.у LSR-маршрутизатора должна быть возможность определения, что соот-
ветствующий помеченный пакет является IP-пакетом;
2.у LSR-маршрутизатора должна быть возможность определения маршрута до адреса отправителя IP-пакета.
Обработка TTL-поля
