Молодогвардейцев 454015 Россия, Челябинская область, город Челябинск 89085842764
MindHalls logo

Шпаргалка по связке VRF-MPLS-MPBGP

Доброго времени суток! Первый раз пишу о сетях и сетевых протоколах, хотя по учебе приходилось изучать очень и очень многие из них. Кроме того, в интернете целая куча документации, блогов и циклов статей по каждому из протоколов, с настройкой и прочими прелестями. Основной причиной написания этой заметки послужило то, что я составил для себя неплохую шпаргалку по протоколам MPLS, MPBGP и технологии VRF, и не хочу, чтобы она потерялась и забылась.

Сразу скажу, что информацию черпал из многих источников, затем тщательно сжимал и оставлял только самое основное. Особенно хочу выделить цикл статей «Сети для самых маленьких» — это огромные тексты на много тысяч символов, но они максимально подробно описывают многие сетевые технологии. Для этой шпоры я брал информацию отсюда и отсюда. В поисках более полной информации прошу сразу переходить на первоисточник.

Механизм MPLS

Multiprotocol Label Switching — мультипротокольная коммутация по меткам была придумана для того, чтобы удобно передавать любые пакеты любых протоколов одинаково и вне зависимости от содержимого пакета или реализации протокола. Суть в том, что в  каждый пакет навешивается специальная MPLS-метка, которая несет информацию о том, откуда пришел пакет и куда дальше его оправить.

Определения:

LSR — label switch router — маршрутизатор, который умеет оперировать MPLS-метками;
Label — метка — число в диапазоне от 0 до 2^20;
Ingress LSR — маршрутизатор, который является точкой входа в сеть MPLS;
Egress LSR — маршрутизатор, который является точкой выхода из сети MPLS;
LER — label edge router — любой маршрутизатор, который находится на границе сети MPLS;
LSP — label switch path — путь по которому путешествуют пакеты, грубо говоря, набор меток(10->20->30->..). Не содержится в каком-то конкретном месте, его можно увидеть только скомпоновав таблицы меток всех LSR;
FEC — forwading equivalence class — грубо говоря, префикс на который идут пакет, эквивалентен для разных сетей(прим. если отправить пакет на 172.16.0.1 и 172.16.0.2 префикс 172.16.0.0/24 является FEC для этих пакетов).

Downstream — LSP от ingress LSR до Endgress LSR, от входа в сеть до выхода;
Upstream — наоборот, от выхода ко входу в сеть.

Для каждого FEC строится свой путь из меток и самая прелесть в том, что пакет не нужно разворачивать во время передачи на очередной роутер. Судьба пакета, то есть его путь(LSP) предопределен заранее.

Топовая гифка с визуализацией механизма из статьи из «Сетей для самых маленьких».

Механизм VRF

VRF немного из другой истории, хотя в связке с MPLS можно сделать просто бомбу. Virtual Routing and Forwading — возможность создать полноценный виртуальный роутер на физическом. В каком-то смысле аналог виртуальной машины. Виртуальный роутер ничем не уступает физическому, на нем можно реализовать любой протокол динамической маршрутизации, который никак не пересечется с настройками физического роутера.

В связке с MPLS этот механизм позволит передавать трафик частных сетей через большую сеть провайдера по меткам. Просто для каждой частной сети навесить свою специальную сервисную метку.

Гифка с визуализацией работы двух механизмов вместе. Зеленые квадратики — транспортные метки, а желтый и серый — сервисные.

Протокол MPBGP

Хорошо, пакеты передавать мы научились, но надо же обменяться маршрутами! Для того, чтобы построить тот самый LSP и иметь возможность гонять пакеты с данными. Прелесть MPLS-сети заключается в том, что «умными» являются только граничные маршрутизаторы, в которых есть по несколько виртуальных маршрутизаторов, в каждом своя таблица маршрутизации с маршрутами клиента. Учитывая это нам нужен протокол динамической маршрутизации, который сможет установить соседство между удаленными маршрутизаторами. На помощь приходит IBGP, а точнее его улучшение — MPBGP — Multiprotocol BGP.  Multiprotocol означает то, что теперь можно передавать маршруты всех типов, а не только ipv4.

Определения:

RD — route distinguisher — уникальная приставка к префиксу в VPNv4. Формата [ASNumber:уникальное число:ipv4 маршрут], например, 64500:100:10.0.0./24. Эта штука используется для того, чтобы разделить одинаковые маршруты разных VPN сетей;
RT — route target — уникальное число у каждого VRF`а. Формат такой же как у RD. Существует для того, чтобы правильно отдать маршрут в нужный VRF. Может быть на импорт и на экспорт.

Еще одна крутая гифка, которая иллюстрирует работу всех трех механизмов в совокупности.

Заключение

Это была супер краткая выжимка, за наиболее полной информацией обращаться по ссылкам, которые я дал в начале заметки. На этом у меня все, спасибо за внимание!