понедельник, 6 февраля 2017 г.

Basic MPLS

Пост посвящен базовым вещам в мире MPLS и является конспектом соответствующей главы из книги Network Routing Specialist II (Nokia - Alcatel-Lucent).

Архитектура MPLS описана в RFC 3031.


Ограничения классической IP сети


MPLS решает несколько ограничений классической IP сети:

1) hyper aggregation. Выбор маршрута в IP сети происходит на основе наименьшей метрики. При этом, зачастую, не используются все ресурсы сети;

2) end-to-end service level limitations. Выбор next-hop в IP сети происходит на каждом роутере по пути следования пакета. Это очень гибкий механизм, но он не позволяет обеспечить качество сервиса на всем пути следования трафика.

3) address-based forwarding is limiting. Пример проблемы: два кастомера одного провайдера имеют одинаковую серую адресацию. С помощью MPLS, а точнее L2VPN и L3VPN, проблема легко решаема.

Применение MPLS

1) VPN: Virtual Private Wire Services (VPWS), Virtual Private LAN Services (VPLS), Virtual Private Routed Network (VPRN);

2) High availability;

3) Traffic engineering - решает проблему качества сервиса на всем пути следования трафика;

4) IGP shortcuts - решает проблему необходимости создания iBGP full mesh topology;

5) Consolidation of services: B2B L2VPN, B2B L3VPN, Triple Play, Mobile aggregation (2G/3G/4G).

Kомпоненты MPLS

LSP (label switch path) - однонаправленный путь движения трафика.

Определения для каждого роутера в MPLS домене меняется в зависимости от его положения по отношению к LSP.

LSR (P) - label switch router. Все интерфейсы LSR(P) находятся в MPLS домене. LSR(P) игнорирует ip-заголовки транзитных пакетов и действует только на основе label switching mechanism.

LER (PE) - label edge router. Как минимум один интерфейс LER (PE) находится не в MPLS домене. В зависимости от положения в отношении LSP, LER (PE) инкапсулирует пакет в метку или снимает метку.

Forwarding equivalence class (FEC)

FEC определяет группу пакетов, которые должны быть переданы в одно место назначение и с одним типом обработки.

Пример FEC - префикс сети назначения. Два пакета, у которых совпадает префикс сети назначения, относятся к одному FEC.

Label switching

Основные операции с метками: push - вставить метку, swap - поменять метку, pop label - снять метку.

Простейшая топология

CE1 - PE1 - P1 - P2- PE2 - CE2

Логика работы:

PE1 роутер получает пакет от CE1. Адрес назначения пакета находится за MPLS доменом - CE2. PE1 определяет FEC пакета, добавляет метку и отправляет пакет P1. Все это происходит при условии, что LSP до FEC уже построен. P1 получает получает пакет с меткой, делает lookup и отправляет пакет P2, поменяв метку в соответствии с  таблицей меток. P2 проделывает аналогичную операцию - swap label. PE2 получив пакет, делает lookup, снимает метку и отправляет ip пакет CE2.

Label Distribution

Трафик в IP/MPLS сети движется только по заранее созданным туннелям - LSP (Label Switch Path). Для построения LSP используются два способа: создание static LSP вручную и использование протоколов распространения меток. 

Протоколы распространения меток:
LDP (Label Distribution Protocol)
tLDP
RSVP-TE (Resource Reservation Protocol–Traffic Engineering)
Multiprotocol BGP

Control plane and Data Plane

Важнейшим принципом работы MPLS является разделение Control plane и Data Plane. 


Control plane: запускаем IGP - IGP сошелся - маршруты происталлировались в FIB - LSR генерируют метки для FEC - анонс меток между LSR - метки загружаются в LFIB - LSP построены. 

MPLS label structure

Заголовок MPLS добавляется перед ip заголовком. Также фрейм может содержать несколько MPLS меток.

label - MPLS label - 20 bits
TC - traffic class - 3 bits
S - bottom of stack - 1 bits (указывает последняя метка в стеке или нет)
TTL - 8 bits


Label values

Для оптимизации работы с метками используется несколько специальных значений:

0 - IPv4 explicit null (явный нуль)
1 - router alert (используется для тестирования)
2 - IPv6 explicit null
3 - IPv4 implicit null (неявный нуль)


Penultimate hop popping

Схема: iLER - LSR - eLER

eLER сигнализирует LSR, что он последний в LSP, отсылая label = 3. LSR получив пакет, у которого метка равна 3, снимает метку и отсылает eLER ip пакет уже без метки. Это предотвращает двойной lookup на eLER (LFIB и FIB). Минус использования - теряются значения TC и TTL.

Explicit null label

Схема: iLER - LSR - eLER

eLER сигнализирует LSR, что он последний в LSP, отсылая label = 0. eLER получив пакет, у которого метка равна 0, снимает метку без lookup в LFIB. Сохраняются значения TC и TTL.


Label Distribution Protocols

При использовании MPLS сети для предоставления VPN используется две метки: outer label - transport label, inner label - service label.


Для распространения transport label используются: LDP и RSVP-TE.

Для распространения service label используются: tLDP и MP-BGP.


Downstream and Upstream

Downstream - направление движения трафика от iLER <--> eLER.

Upstream - направление распространения меток от eLER <--> iLER.


                                 control plane

FEC 1.1.1.1  -------------------------------------------->
                     <-------------------------------------------
                                    data plane


LER 1.1.1.1 - LSR - LSR - LSR - LSR - LSR - LSR - LER 2.2.2.2



                                 control plane

                <--------------------------------------------FEC 2.2.2.2
                ----------------------------------------------->
                                    data plane


Label distribution mode

Downstream Unsolicited - eLER генерирует метки для всех известных ему FEC и распространяет всем соседям без запроса, последующие LSR начинают рассылать всем своим соседям метки также без запроса.

Downstream on Demand - iLER генерирует запрос на определенный FEC и рассылает своим соседям в сторону eLER. Запрос достигает eLER. eLER выделяет метку для FEC и распространяет метки в сторону запроса.

Ordered and Independant control mode

Independant control mode - LSR рассылает метки о всех известных ему FEC не дожидаясь получения метки от downstream LSR.

Ordered control mode - LSR не рассылает метки о известных ему FEC, пока не получит метку от downstream LSR.

При Ordered control mode LSP строится медленней, но при этом iLSR точно знает, что, получив метку, LSP уже полностью построен.

Label Retention modes

Cуществует два метода хранения меток в LIB.

Liberal label retention - LSR хранит все полученные метки в LIB (быстрее реагирует на изменение топологии, но занимает больше памяти)
Conservative label retention - LSR хранит только одну метку для каждого FEC  (медленнее реагирует на изменение топологии, но занимает меньше памяти)


Alcatel-Lucent SR 7750

SR 7750 использует два режима распространения меток:

Downstream Unsolicited, Ordered control with liberal retention (LDP)

Downstream on demand, ordered control with conservative retention (RSVP-TE)