Начинаем разбираться с MPLS.
Мы уже знаем, что маршрутизация происходит по Layer 3 адресам, а затем идет коммутация пакета (переписывание L2, и так далее).
Так вот, MPLS работает не по IP адресам, а по специально созданным меткам. То есть для каждого маршрута, MPLS создает специальную метку и тем самым четко определяет что это за маршрут, нам не нужно искать next hop, интерфейс и так далее, нам нужна только метка и больше ничего.
Тем самым у нас увеличивается скорость обработки данных, но как показывает практика скорость эта вырастает не в разы, как обещалось, а значительно меньше, так как все по прежнему работает через CEF, а CEF и так очень быстр 🙂
То есть, если вы хотите внедрить MPLS только для того чтобы повысить производительность, то этого делать не стоит.
Таким образом, можно выделить, то на чем основывается MPLS:
- На IP роутинге и CEF
- Форвардинг происходит по специально созданным меткам.
- MPLS метка обычно показывает нам сеть назначения. Метка так же может нести в себе такой параметр как например QOS
- MPLS основывается на IGP протоколах.
Из прошлой заметке мы уяснили что роутер состоит из Control Plane и Data Plane, которые в свою очередь состоят из Routing Protocol, RIB и FIB, Adj-table.
С использованием MPLS все это у нас немного расширяется.
В Control Plane добавляется протокол создания и обмена метками Label Exchange Protocol (LDP или TDP), далее все это помещается в базу Label Information Base (LIB).
Далее все это передается в Data Plane, а именно создается кеш, которые называется Label Forwarding Table (LFIB).
И на основании метки происходит коммутация пакета.
Все очень похоже на ip forwarding и ip routing, только делается еще такая надстройка ввиде меток.
Если представить графически, как в прошлой статье, то получится нечто такое:
Давайте чуть подробнее рассмотрим процесс, который происходит в MPLS.
Control Plane на основе протокола маршрутизации создает таблицу RIB, далее, на основе этой таблицы работает протокол Label Exchange Protocol, который создает метки для маршруток пришедших по IGP и обменивается этими метками с соседними маршрутизаторами.
Далее формируется Label Information Base, которая состоит из Метка — Сетка. Метки разносятся по соседям используя один из протоколов LDP (стандартизированный протокол), TDP (Cisco протокол, устаревший), либо через BGP.
Далее в Data Plane создается LFIB, где содержится метка и интерфейс через который выпускать этот пакет.
Data Plane не зависит от того, какие протоколы распространения меток используется. В Data Plane происходит очень простой процесс посдтавления из кеша нужной записи по метке.
В сети MPLS различают два вида роутеров:
— Label Switch Router (LSR) — на всех интерфейсах включен MPLS.
Основной задачей такого роутера является обмен метками между другими LSR роутерами и передача пакетов с метками.
— edge LSR — не на всех интерфейсах включен MPLS. Так же этот роутер можно назвать как граничный роутер MPLS домена. Такой роутер передает пакеты с метками в MPLS домен, и IP пакеты вне MPLS домена.
Так же есть еще такое понятие как LSP — Label-Switched Path — это совокупонсть LSR, которые пакет прошел от начала до конца. Некий такой аналог AS-Path, который мы помним из BGP.
Для каждого класса трафика создается свой LSP. Такой класс трафика в MPLS называют Forwarding Equivalence Class или FEC.
FEC — это группа пакетов, которые передаются по одинаковому пути, имеют одинаковый LSP, одинаковый destination адрес. Так же FEC может создаваться и по другим критериям.
Графикчески все это можно отобразить так:
На этой картинке изображны и различные приложения (FEC) и LSR и eLSR, и что такое LSP. Думаю теперь стало все более понятно.