MPLS L3 VPN, Network Blog
MPLS VPN дозволяє оператору зв'язку будувати тунелі для різних клієнтів, поєднуючи локальні мережі клієнтів в одну.
При розмові про MPLS L3 VPN слід спочатку згадати технологію VRF. VRF (Virtual Routing and Forwarding) — технологія, що дозволяє одному фізичному маршрутизаторі створити кілька логічних маршрутизаторів. У кожного з цих маршрутизаторів буде своя RIB та FIB, яка буде незалежною від інших RIB та FIB на цьому пристрої та також незалежною від глобальної таблиці.
У контексті MPLS VPN маршрутизатори клієнта називаються CE (Client Edge), маршрутизатори провайдера PE (Provider Edge) (ті, до яких підключені CE) та P (перебувають у хмарі MPLS).

На цій схемі відображено приклад MPLS VPN. Мережі між PE та CE спеціально вибрані однакові, щоб показати, для чого нам тут потрібні VRF.
Наша схема, на якій ми будемо розбирати налаштування MPLS VPN, виглядає наступним чином:

R9, R8 - маршрутизатори, що належать Customer 1. R3 & R2 – належать Customer 2. Між R7, R6, R4 та R5 на інтерфейсах налаштовано MPLS. Воно необхідне роботи MPLS VPN, зокрема, для маршрутизації. Нижче буде докладніше описано як пристрій приймає рішення щодо надсилання пакета.
Отже, почнемо з налаштування VRF для Customer 1.
RD – параметр, званий Route Distinguisher. Існує для того, щоб зробити маршрут унікальним у BGP-таблиці. Наприклад, ми маємо дві однакові підмережі, як на схемі спочатку. Для VRF A у нас RD 1:1, VPNv4 маршрут у нас буде виглядати 1:1:10.7.9.0/24. Для іншої VRF буде свій RD і маршрут виглядатиме по-іншому, хоч мережа буде та сама. Задається, до речі, RD як ASN:n чи IP:n. У нас для простоти 1:1 чи 2:2.
Route-target - атрибут, який служить для того, щоб розміщувати маршрут у потрібний VRF. При відправленні BGP-анонсу своєму сусідові маршрутизатор додає до атрибутів свій route-target export (100:2 у цьому випадку). BGP-сусід, отримавши цей маршрут, побачить цей атрибут (100:2), знайде ту VRF, в якій route-target IMPORT дорівнює 100:2 і помістить цей маршрут до цієї VRF.
Тобто. у нас у цьому випадку буде налаштовано RT export на R7 100:2, RT import 100:1. Значить на R5, щоб маршрути потрапили до VRF A, потрібно налаштувати RT import 100:2, RT export 100:1.
Після налаштування самої VRF необхідно позначити інтерфейси, які належать до цієї VRF. Інтерфейс, що дивиться у бік Customer 1 :
Тепер зробимо аналогічні дії для сусіда R5:
На клієнтах має бути налаштована маршрутизація. Це може бути будь-що — або статика, або динаміка. Ми просто пропишемо основний маршрут.
На R9 та R8 відповідно:
Отже, на цьому етапі ми налаштували VRF A і помістили до неї інтерфейси. Далі нам необхідно, щоб R7 передав VPNv4 маршрути R5 для того, щоб між клієнтами була мережна взаємодія. Те саме ми виконуємо і на R5.
На цьому налаштування завершено, R9 може достукатися R8, а R3 до R2.
Дивимося, що вийшло:
Бачимо, що R7 отримав анонс та помістив маршрут у потрібну VRF завдяки RT. Після того, як ми отримали маршрути, подивимося що видає нам traceroute:
(Командоюno mpls ip propagate-ttl можна вимкнути відображення hop-ів у MPLS хмарі)
Розберемо, що тут у нас:MPLS: Labels 24/16 Exp 0 Перша мітка - мітка, яка прикріплюється до next-hop 150.1.7.7
1) Спочатку маршрутизатор дивиться, яка мітка відповідає next-hop
пакет йде на R4 з міткою 24:155.1.45.4[MPLS: Labels 24/16 Exp 0] 1 msec 1 msec 1 msec мітка для мережі 10.7.9.0 — 16 (отримана за BGP від R7)
Друга мітка: так звана VPN мітка. Виступає як ідентифікатор для VRF, на кшталт route-target, але route-target це атрибут BGP, він потрібний лише при отриманні анонсу, коли ж у нас передається пакет, у ньому немає параметрів RT. Тому використовується VPN мітка. R5 кріпить мітку 16.
Отримавши такий пакет, R7 побачить цю мітку та направить пакет у потрібний VRF.
R4 ставить мітку 24 і відправляє пакет на R6:155.1.146.6 [MPLS: Labels 24/16 Exp 0] 1 msec 1 msec 1 msec
3) R6 знімає мітку та відправляє пакет на R7
4) Пакет приходить на R7 і R7 розуміє, яку VRF його відправити завдяки мітці 16. Навіщо тоді route-target? Він потрібний для того, щоб помістити маршрут у певний VRF під час обміну BGP-анонсами. Але при проходженні звичайних пакетів через мережу він не передається. Тому потрібно передавати мітку.
- Настроюється MPLS у середовищі провайдера.
- PE налаштовується VRF Х для клієнта.
- На PE в VRF Х розміщуються необхідні інтерфейси.
- На PE налаштовується BGP, активується передача маршрутів VPNv4, імпортуються мережі клієнта.
- Налаштовується маршрутизація між CE та PE.