L2.5 MPLS, L2VPN, L3VPN, EVPN, Segment Routing
Это «операторская кухня» — то, на чём работают сети провайдеров, телеком-операторов и крупнейших дата-центров. MPLS живёт между L2 и L3 (отсюда полушуточное «L2.5»): он не маршрутизирует по IP и не коммутирует по MAC, а переключает пакеты по меткам. Поверх него строят виртуальные частные сети (VPN) для тысяч клиентов на одной физической инфраструктуре.
Сцена 1, оператор: в конфиге арендованного канала между офисами мелькает
vrf forwarding CLIENT-A и rd 65000:100 — провайдер объясняет аварию
«у вас RT не совпал», и ты хочешь понимать, о чём речь.
Сцена 2, DevOps: поды Kubernetes на разных нодах не пингуются; в tcpdump на ноде —
странный UDP на порт 4789, внутри которого… целый Ethernet-кадр. Это VXLAN.
Обе сцены — одна и та же тема этого модуля: туннели и оверлеи, на которых стоят
и операторские VPN, и сети контейнеров.
- Объяснить, зачем придумали MPLS и почему сегодня он «не про скорость, а про сервисы»
- Разобрать MPLS-метку побитно и прочитать стек меток в дампе
- Назвать роли LER/LSR и операции push/swap/pop, объяснить PHP
- Сказать, кто раздаёт метки (LDP) и когда нужен RSVP-TE
- Объяснить тройку VRF / RD / RT одной фразой каждый — и не перепутать RD с RT
- Различить pseudowire, VPLS и EVPN — и почему EVPN победил
- Прочитать VXLAN-заголовок и объяснить overlay/underlay на примере Kubernetes
- Сформулировать идею Segment Routing для собеседования
- Собрать VXLAN-туннель руками в Linux (мини-лаба)
Модуль 7: BGP и его расширяемость — сегодня он повезёт клиентские маршруты (VPNv4) и даже MAC-адреса (EVPN). Модуль 6: IGP (OSPF) строит топологию ядра — LDP навесит на неё метки. Модуль 3: VLAN и его 12-битный предел в 4094 сегмента — сегодня увидишь, чем он заменяется в дата-центрах (VXLAN, 16 млн). Если хочешь потом увидеть, как всё это продаётся клиентам как услуга — в треке СПД есть практический разбор IPVPN с заявками и плейбуками.
1. Зачем придумали MPLS
В 1990-х классическая IP-маршрутизация была медленной: на каждом роутере для каждого пакета делался дорогой longest-prefix-match по огромной таблице. MPLS предложил иначе: на входе в сеть пакету один раз присваивается короткая метка (label), а дальше роутеры переключают его, глядя только на метку — простой и быстрый lookup по таблице меток, как по индексу.
Сегодня железо умеет делать IP-lookup на полной скорости, и «MPLS ради скорости» уже неактуально. Но MPLS остался — по другой причине: метки создают «туннели», поверх которых удобно строить сервисы, не зависящие от IP-адресации клиентов: VPN, Traffic Engineering, QoS-классы, быстрое перенаправление при отказе (FRR).
2. Анатомия метки и коммутация
MPLS-метка вставляется между L2-заголовком (Ethernet) и L3-заголовком (IP) — поэтому «L2.5». Это 32-битная вставка (shim header):
Три операции и роли устройств
| Термин | Что значит |
|---|---|
| LER (Edge / PE) | граница MPLS-домена: навешивает метку на входе (push), снимает на выходе |
| LSR (Core / P) | ядро: переключает по метке (swap), не смотрит в IP |
| push | добавить метку (вход в домен) |
| swap | заменить метку на следующую (транзит) |
| pop | снять метку (выход) |
| LSP | Label-Switched Path — однонаправленный «туннель» из меток через домен |
MPLS-стек «на проводе»:
3. Как раздаются метки: LDP (и RSVP-TE)
Чтобы все роутеры согласовали, «какая метка ведёт к какому префиксу», нужен протокол распределения меток. Самый распространённый — LDP (Label Distribution Protocol): он привязывает метки к IGP-маршрутам (OSPF/IS-IS). То есть IGP строит топологию, а LDP «навешивает» на неё метки.
- LDP — просто следует за IGP. Лёгкий, без управления трафиком. 90% MPLS-сетей.
- RSVP-TE — позволяет строить туннели по заданному пути с резервированием ресурсов (Traffic Engineering), обходить узкие места, делать быстрый ре-роут (FRR). Сложнее.
4. L3VPN: VRF, Route Distinguisher, Route Target
Самый востребованный сервис на MPLS — MPLS L3VPN. Провайдер подключает множество клиентов; у каждого свои IP-адреса, и они могут пересекаться (все любят 10.0.0.0/8). Как держать их изолированными на одном железе? Три понятия:
| Понятие | Что делает |
|---|---|
| VRF (Virtual Routing and Forwarding) | отдельная таблица маршрутизации на роутере «для этого клиента» — как виртуальный роутер внутри роутера |
| RD (Route Distinguisher) | префикс-уникализатор: делает пересекающиеся 10.0.0.0/8 разных клиентов уникальными (RD:префикс), чтобы BGP их различал |
| RT (Route Target) | BGP-community «кому импортировать»: управляет, какие VRF видят какие маршруты (отсюда и hub-and-spoke, и any-to-any топологии) |
Маршруты клиентов переносятся между PE-роутерами по MP-BGP (multiprotocol BGP, address-family VPNv4) — да, тот самый BGP из модуля 7, расширенный для VPN. Внутри ядра — MPLS-метки.
5. L2VPN, VPLS, pseudowire — «протянуть L2»
Иногда клиенту нужен не L3-сервис, а «как будто один общий коммутатор» между удалёнными площадками — один broadcast-домен, свой L2. Это семейство L2VPN:
- Pseudowire (VPWS) — точка-точка: «виртуальный провод» между двумя портами через MPLS.
- VPLS — точка-многоточка: эмуляция единого Ethernet-сегмента между многими площадками.
Проблема классического VPLS — он «учит» MAC-адреса в data-plane (как обычный свитч), плохо масштабируется и плохо дружит с резервированием. Эту проблему и решил EVPN.
Pseudowire «точка-точка» — это техническая начинка услуги, которую оператор продаёт под названием выделенный канал L2 (EPL): клиент получает два порта в разных городах и ведёт себя так, будто между ними патч-корд. Там же разбираются вопросы, которые заказчик задаёт первыми, — прозрачность для тегов, допустимый размер кадра и что именно записано в договоре. Ветка L3 продаётся как IP VPN.
6. EVPN + VXLAN — современная замена и мост в облако
EVPN (Ethernet VPN) — это «правильный» способ переносить L2 (и L3) поверх сети, где MAC-адреса распространяются через BGP (control plane), а не учатся вслепую. Чаще всего EVPN работает в паре с VXLAN — инкапсуляцией, которая заворачивает Ethernet-кадр в UDP-пакет и тащит его поверх обычной IP-сети.
Почему это важно именно тебе, идущему в DevOps:
- EVPN-VXLAN — стандарт современных дата-центров (фабрика Spine-Leaf). Облака внутри устроены похоже.
- VXLAN — основа overlay-сетей в Kubernetes: CNI вроде Flannel (vxlan backend) и Calico (vxlan mode) заворачивают трафик подов именно в VXLAN. Ты буквально встретишь VNI и VTEP, отлаживая сеть кластера.
- Понимание «overlay поверх underlay» — ключ к тому, как вообще устроены сети контейнеров и мульти-облака.
7. Segment Routing — куда всё движется
Segment Routing (SR) — современная эволюция MPLS. Идея: вместо того чтобы каждый роутер хранил состояние туннелей (как в LDP/RSVP-TE), весь путь кодируется списком «сегментов» прямо в заголовке пакета на входе. Ядро не держит per-flow состояние — оно просто исполняет инструкции из пакета. Это проще, масштабируемее и идеально дружит с SDN-контроллерами.
- SR-MPLS — сегменты кодируются стеком MPLS-меток (работает на существующем MPLS-железе).
- SRv6 — сегменты кодируются прямо в IPv6-адресах (расширение IPv6). Будущее операторских и облачных сетей.
8. Мост в DevOps: где ты это встретишь
| Технология | Где встретишь в DevOps/облаке |
|---|---|
| VXLAN | overlay-сети Kubernetes (Flannel, Calico vxlan), сети дата-центров, OpenStack Neutron |
| EVPN | фабрики Spine-Leaf под облаком/кластерами, мульти-ДЦ растяжка L2 |
| VRF | Linux network namespaces / VRF (ip vrf) — изоляция таблиц на сервере; multi-tenant сети |
| MP-BGP | тот же BGP (модуль 7), на котором держится EVPN; Calico умеет EVPN-подобные схемы |
| MPLS L3VPN | линки между офисами/ДЦ от провайдера (ты будешь «клиентом» такого сервиса) |
Не операторские конфиги LDP, а модель «overlay поверх underlay» (VXLAN/EVPN) и понятие VRF как изоляции таблиц. Это прямо ложится на сети Kubernetes и мульти-облако. Остальное — эрудиция для собеседования и спокойствия в разговоре с сетевиками-операторами.
9. Мини-лаба: собери VXLAN своими руками
MPLS дома не поднять, а вот VXLAN — легко: он встроен в ядро Linux. Если есть WSL2 или любая Linux-VM — за 10 минут построишь настоящий overlay:
ip netns exec hostA ip link show vx0 покажет MTU 1450 —
ядро само вычло ~50 байт на инкапсуляцию. Теперь понятно, откуда берётся «поды не пингуются
большими пакетами»: если underlay 1500 и кто-то поставил overlay-MTU тоже 1500 — большие кадры
погибнут. Уборка: sudo ip netns del hostA; sudo ip netns del hostB.10. Словарик урока
| Термин | По-английски | Смысл в одну строку |
|---|---|---|
| Метка / стек меток | label / label stack | 32-битная вставка между L2 и L3; верхняя — транспорт, нижняя (S=1) — сервис/VPN |
| LER / LSR | label edge/switching router | граница (push/pop) / ядро (swap); в операторских терминах PE и P |
| LSP | label switched path | однонаправленный «туннель» из меток через MPLS-домен |
| PHP | penultimate hop popping | предпоследний хоп снимает транспортную метку, разгружая выходной PE |
| LDP / RSVP-TE | — | раздача меток по IGP-топологии / туннели по заданному пути с TE и FRR |
| VRF / RD / RT | — | изоляция таблиц / уникализация префиксов / политика «кто кого видит» |
| Pseudowire / VPLS | VPWS | виртуальный L2-провод точка-точка / эмуляция общего свитча на много точек |
| EVPN | Ethernet VPN | MAC-адреса разносятся по BGP (control plane) — замена VPLS |
| VXLAN / VNI / VTEP | — | L2-кадр в UDP-4789 поверх IP / номер сегмента (24 бита, 16 млн) / точка за/раскрытия |
| Overlay / underlay | — | виртуальная сеть поверх / физическая IP-сеть под ней |
| Spine-Leaf | — | топология ДЦ-фабрики: каждый leaf связан с каждым spine; поверх — EVPN-VXLAN |
| Segment Routing | SR-MPLS / SRv6 | путь кодируется списком сегментов в самом пакете; ядро без состояния |
11. Задачи на понимание
Задача 1. В дампе на границе провайдера видишь пакет с двумя MPLS-метками: 22 (S=0) и 301 (S=1). Кто и для чего смотрит каждую?
Верхняя (22, транспортная) — для P-роутеров ядра: «как доехать до выходного PE», меняется swap'ом на каждом хопе. Нижняя (301, S=1 — дно стека) — VPN-метка для выходного PE: «в какой VRF отдать». Ядро её не читает вовсе.
Задача 2. Два клиента провайдера используют одинаковую сеть 10.0.0.0/8. Благодаря чему их маршруты не смешиваются в BGP и на PE?
На PE — благодаря VRF (отдельные таблицы). В BGP — благодаря RD: префикс превращается в уникальный «RD:10.0.0.0/8», и записи разных клиентов различимы. А RT следит, чтобы каждый VRF импортировал только «своё».
Задача 3. «MPLS VPN — это же шифрованный канал, зачем нам ещё IPsec?» — говорит заказчик. Что ответишь?
MPLS VPN даёт изоляцию (другие клиенты твой трафик не видят), но не шифрование: внутри сети оператора пакеты идут открытыми. Если требование — конфиденциальность (банк, персональные данные), поверх MPLS VPN строится IPsec. Изоляция ≠ криптография.
Задача 4. В Kubernetes поды на одной ноде общаются, на разных — маленькие пинги ходят, а HTTP-ответы с телом «зависают». CNI — Flannel (vxlan). Диагноз?
Классика MTU при overlay: VXLAN добавляет ~50 байт, а MTU интерфейсов подов
не уменьшен относительно underlay — большие пакеты гибнут. Проверка: ping большим
размером с DF между подами; лечение: правильный MTU в конфиге CNI (например, 1450 при underlay 1500).
Задача 5. Чем VXLAN принципиально лучше VLAN для дата-центра с тысячами арендаторов? Два аргумента.
1) Масштаб: VNI — 24 бита (16 млн сегментов) против 4094 VLAN. 2) География: VXLAN едет поверх обычной маршрутизируемой IP-сети — сегмент можно растянуть между стойками, залами и даже ДЦ, не строя сквозной L2 (и не таща STP через весь мир).
12. Вопросы с собеседования
13. Частые заблуждения
- MPLS («L2.5») переключает по меткам между L2 и L3; метка = 32 бита (Label/TC/S/TTL), бывает стек меток.
- LER (PE) делает push/pop на границе, LSR (P) — swap в ядре; LSP — туннель из меток; часто PHP.
- LDP раздаёт метки по IGP; RSVP-TE — для Traffic Engineering; тренд — Segment Routing.
- L3VPN: VRF (изоляция таблиц), RD (уникализация префиксов), RT (политика импорта); перенос по MP-BGP VPNv4.
- L2VPN/VPLS тянут L2; EVPN — современная замена, MAC через BGP, обычно с VXLAN.
- VXLAN = L2 в UDP поверх IP, VNI до 16М сегментов; основа ДЦ-фабрик и overlay в Kubernetes.
- Segment Routing (SR-MPLS/SRv6) кодирует путь в заголовке, ядро без состояния — будущее.
- MPLS-VPN изолирует, но НЕ шифрует. Помни про MTU при любой инкапсуляции.
- В DevOps отсюда реально нужны: overlay/underlay (VXLAN/EVPN) и VRF как изоляция.