Модель трубы
В модели трубы MPLS-туннели (иными словами LSP) используются, чтобы спрятать промежуточные MPLS-узлы между началом LSP и концом с точки зрения Diff-Serv.
В этой модели, туннелируемые пакеты должны нести в себе две значимые вещи:
- информация Diff-Serv, которая важна для промежуточных узлов LSP включая конец LSP (которую мы называем - информация LSP Diff-Serv). Эта информация LSP Diff-Serv не играет роли за пределами конца LSP: Воздействует ли формирование трафика в промежуточных узлах LSP на информацию LSP Diff-Serv или нет, эта модифицированная информации Diff-Serv не рассматривается значимой за пределами конца LSP и игнорируется.
- информация Diff-Serv, которая имеет значение после конца LSP (ее мы называем "туннельной информацией Diff-Serv"). Эта информация должна быть передана началом LSP его концу. Эта информация Diff-Serv не имеет значения для промежуточных узлов LSP.
Работа модели трубы без PHP проиллюстрирована ниже:
Рис. 2
(M) обозначает "данные LSP Diff-Serv"
(m) обозначает "туннелированные данные Diff-Serv"
(*) Выход LSP рассматривает информацию LSP Diff-Serv, полученную из выходного заголовка (т.e., до выполнения операции pop), для того чтобы применить ее при осуществлении переадресации Diff-Serv (т.е., реальной PHB)
I обозначает входной узел LSP
E обозначает выходной узел LSP
При модели трубы, информация узлов LSP Diff-Serv должна передаваться концу LSP, так чтобы она могла использоваться для переадресации пакетов. "Туннелируемая информация Diff-Serv" также должна пересылаться концу LSP, чтобы она передавалась дальше “вниз по течению”.
Так как в обоих случаях нужно передать данные Diff-Serv к концу LSP, модель трубы работает только без PHP. Модель трубы наиболее привлекательна для среды, в которой:
- облако выше по течению входного интерфейса начала LSP и облако ниже по течению выходного интерфейса конца LSP являются областями Diff-Serv, которые используют общий набор политик Diff-Serv и PHB определений, в то время как LSP покрывает одну (или более) областей Diff-Serv, которые используют различные наборы политик Diff-Serv и PHB определения.
- выходной интерфейс конца LSP является (последней) областью Diff-Serv LSP.
В качестве примера, рассмотрим случай, где сервис провайдер предлагает услуги MPLS VPN (в качестве примера архитектуры MPLS VPN смотри [MPLS_VPN]), включая услуги Diff-Serv. Будем считать, что набор сайтов соединен через такую MPLS VPN сеть. Теперь скажем, что этот набор сайтов управляется общей администрацией и поддерживает Diff-Serv. Если администрация VPN-сайта и сервис провайдер не придерживаются общей политики Diff-Serv (например, не поддерживают то же число PHB), тогда работа Diff-Serv в модели трубы поверх MPLS VPN будет допускать, чтобы политика Diff-Serv VPN-сайтов реализовалась совместимым образом между входным и выходным сайтом VPN, обеспечивая прозрачность в области Diff-Serv сервис провайдера. Может быть, полезно рассмотреть такие LSP, как соединения областей Diff-Serv с одной общей областью, сделав граничные точки виртуально смежными, даже если они физически разделены промежуточными сетевыми узлами. Модель трубы должна поддерживаться.
Для поддержки модели трубы для данного LSP без PHP, LSR определяет входное PHB и кодирование информации Diff-Serv следующим образом:
- при получении непомеченного пакета, LSR осуществляет определение входного PHB, просматривая IP-заголовок полученного пакета.
- при получении помеченного пакета, LSR определяет входное PHB, просматривая запись выходной метки в полученном стеке меток. В частности, когда должна быть выполнена операция pop для рассмотренного LSP, LSR определяет входное PHB до осуществления этой операции.
- при выполнении операции push для рассмотренного LSP, LSR:
- кодирует информацию Diff-Serv, соответствующую выходному PHB в записи передаваемой метки, которая соответствует метке, извлеченной из стека.
- кодирует информацию Diff-Serv, соответствующую входному PHB в инкапсулированном заголовке (замененная запись метки или IP-заголовка).