Принципы работы MPLS Traffic Engineering

Какие же функции по управлению трафиком предоставляет MPLS Traffic Engineering?
  • Расширяет возможности стандартных IGP, позволяя маршрутизировать трафик разных классов разными способами.
  • Передаёт трафик через сеть, используя коммутацию MPLS, что означает поддержку всяческих VPNов.
  • При построении маршрута учитывает заданные ограничения, например, какие ресурсы необходимы этому классу трафика и сколько их доступно на всех узлах и линиях по пути, или по каким линиям нельзя строить туннели.
  • Быстрое перестроение путей в соответствии с требованиями в случае аварии.
  • Периодическая оптимизация путей.
Базовые механизмы работы MPLS TE были рассмотрены в выпуске СДСМ 10, куда я вас и шлю за подробным рассмотрением. А здесь приведу лишь короткую сводку.

Data Plane

С точки зрения передачи данных TE несколько отличается от LDP. Жирным выделены отличия:
  1. 1.
    В TE-туннель трафик нужно поместить насильно, тогда как в LDP он попадает автоматически
Juniper здесь — исключение.
  1. 1.
    Первый маршрутизатор навешивает внешнюю MPLS-метку (PUSH LABEL)
  2. 2.
    Транзитные маршрутизаторы смотрят на какой интерфейс поступил пакет и значение метки и, поменяв её на новую согласно таблице меток, отправляют её в выходной интерфейс (SWAP LABEL)
  3. 3.
    Предпоследний маршрутизатор снимает транспортную метку (POP LABEL, PHP — зависит от реализации и настроек)
  4. 4.
    В случае обрыва на пути трафик можно спасти путём перенаправления пакетов в заранее подготовленный туннель.

Control Plane

А вот в плане управления отличия гораздо более значительные. C ними всю оставшуюся дорогу и будем разбираться.
Терминология
LSP — Label Switched Path — вообще говоря, любой путь через сеть MPLS, но порой подразумевают LDP LSP. Однако мы не будем столь категоричны — при необходимости я буду указывать, что имею в виду именно LDP LSP. RSVP LSP — соответственно LSP, построенный с помощью RSVP TE с учётом наложенных ограничений. Может также иногда называться CR-LSP — ConstRaint-based LSP. Туннелем мы будем называть один или несколько MPLS LSP, соединяющих два LSR-маршрутизатора. Метка MPLS — это по сути туннельная инкапсуляция. В случае LDP — каждый LSP — это отдельный туннель. В случае RSVP туннель может состоять из одного или нескольких LSP: основной, резервный, best-effort, временный. Говоря TE-туннель, мы будем подразумевать уже конкретно MPLS Traffic Engineering туннель, построенный RSVP-TE. TEDB — Traffic Engineering Data Base — тот же LSDB протоколов IS-IS/OSPF, но с учётом ресурсов сети, которые интересны модулю TE. CSPF — Constrained Shortest Path First — расширение алгоритма SPF, которое ищет кратчайший путь с учётом наложенных ограничений.
Итак, MPLS TE хочет строить LSP с учётом требуемых ресурсов и пожеланий оператора, поэтому столь простой LDP с его лучшим маршрутом тут не у дел. И его место занимает RSVP-TE — наследник отвергнутого стеком TCP/IP протокола RSVP. TE работает в тесном симбиозе с IGP. Хотя правильнее это называть паразитизмом. Он вынуждает их (OSPF или IS-IS) служить себе: переносить нужную ему информацию и тем самым наполнять TEDB.
Процесс выглядит следующим образом:
  1. 1.
    IGP собирает со всей сети информацию: — о линиях и сетях, — о метриках, — о доступных ресурсах, — о характеристиках линий. И заполняет TEDB, где всё это отражено.
  2. 2.
    Когда RSVP-TE хочет построить LSP до какого-то узла, он просто обращается к CSPF и говорит: «Хочу кратчайший маршрут до точки G с вот этими ограничениями». Ограничения могут быть следующими: — требуемая полоса пропускания, — определённый путь или линии, — характеристики линии.
  3. 3.
    Из запроса RSVP-TE CSPF берёт ограничения, а из TEDB — реальную информацию о сети. И выдаёт маршрут… или не выдаёт, если ограничения удовлетворить не удалось.
  4. 4.
    Когда маршрут получен, RSVP-TE отправляет RSVP PATH в эту точку G с запросом на резервирование ресурсов.
  5. 5.
    А точка G возвращает RSVP RESV — так резервируются ресурсы на всём пути. И если RESV вернулся с хорошими новостями, RSVP LSP/туннель поднимается.
Всё это подробно и в красках в статье СДСМ10. А ещё там же самый простой пример на практике.
Далее мы будем ходить вокруг да около вот этой схемы:
У нас есть L3VPN-клиент, офисы которого подключены к Linkmeup_R1 и Linkmeup_R4.