Теоретические основы и архитектура

Маршруты Type 2 и Type 3 решают задачу L2: они переносят MAC-адреса и BUM-списки внутри одного EVI. Но клиентам нужна и маршрутизация между подсетями, а это уже L3. EVPN решает её через IRB (Integrated Routing and Bridging, RFC 9135): на PE создаётся L3-интерфейс (BDI, Vbdif или irb), привязанный к VRF, и этот интерфейс служит шлюзом для хостов. Привязки MAC-IP из ARP/ND передаются в Type 2, а целые префиксы IP-VRF - в маршрутах Type 5 (IP Prefix, RFC 9136). Урок разбирает асимметричный и симметричный IRB, anycast-шлюз с общим IP и MAC на всех PE, L3-метку (L3 VNI в VXLAN), подавление ARP/ND, поведение привязки MAC-IP при MAC mobility и выбор между Type 2 и Type 5. Предполагается знание Type 2/3 и MAC mobility из предыдущего модуля и основ L3VPN (VRF, RD, RT).

От L2 к L3: зачем IRB

Type 2/3 делают EVI виртуальным коммутатором, но подсети в EVPN-сети нужно соединять маршрутизацией. Раньше для этого использовали внешний маршрутизатор («router on a stick») или централизованный шлюз на одном PE: трафик между подсетями одного сайта проходил через дальний шлюз и обратно (hairpin). IRB (RFC 9135) переносит маршрутизацию на PE: интерфейс BDI, Vbdif или irb одновременно подключён к bridge domain (MAC-VRF) и к VRF (IP-VRF). Хост использует IP этого интерфейса как шлюз, поэтому маршрутизация выполняется на ближайшем PE.

Асимметричный и симметричный IRB

В асимметричной модели ingress PE выполняет и маршрутизацию, и коммутацию: пакет из подсети A попадает в IRB, маршрутизируется в подсеть B, и в сеть уходит кадр уже с MAC получателя в EVI подсети B. Egress PE только коммутирует. Поэтому каждый PE должен иметь MAC-VRF и IRB всех подсетей, к которым могут обращаться его хосты, и изучать MAC удалённых хостов этих подсетей. Модель проста, но плохо масштабируется по MAC и ARP-записям.

В симметричной модели маршрутизация выполняется дважды: на ingress PE (из подсети A в IP-VRF) и на egress PE (из IP-VRF в подсеть B). Между PE пакет идёт как IP-пакет внутри кадра, у которого destination MAC равен Router's MAC egress PE, а метка (в MPLS) или L3 VNI (в VXLAN) указывает IP-VRF. Каждому PE нужны только локальные подсети и IP-VRF, а удалённые подсети известны как Type 2 (хосты) или Type 5 (префиксы). Именно симметричная модель применяется в большинстве реальных сетей.

Type 2 с привязкой MAC-IP

Route Type 2 содержит RD, ESI, Ethernet Tag, длину и значение MAC, длину и значение IP (0, 32 или 128 бит), Label1 и необязательный Label2. Label1 идентифицирует MAC-VRF (для bridging), Label2 - IP-VRF (для симметричной маршрутизации). Маршрут с IP несёт два RT: RT EVI и RT IP-VRF; в результате один и тот же анонс попадает и в MAC-VRF, и в IP-VRF. PE получает привязку MAC-IP из ARP или ND (RFC 7432 допускает и объявление только MAC без IP, и пару), и IP из Type 2 используется для хост-маршрута /32 (/128) в IP-VRF и для подавления ARP/ND.

Type 5 и RFC 9136

Route Type 5 (IP Prefix) содержит RD, ESI, Ethernet Tag, длину и значение префикса, поле Gateway IP, и метку (MPLS label или VNI). Поле Gateway IP и ESI задают «overlay index», по которому следующий хоп разрешается рекурсивно. Основная модель IP-VRF-to-IP-VRF «interface-less»: в маршруте нет Gateway IP, а адрес и MAC получателя берутся из next hop (PE) и extended community Router's MAC (RFC 9135/9136). Тип 5 распространяет любые префиксы IP-VRF: подключённые подсети, статические маршруты, маршруты BGP/OSPF от CE, суммарные маршруты. Он не несёт MAC-адрес хоста и не участвует в MAC mobility, поэтому не заменяет Type 2 там, где нужны точные хост-маршруты и подавление ARP.

Что выбрать: Type 2 или Type 5

Type 2 даёт точный маршрут к хосту и работает при переездах виртуальных машин, но число маршрутов растёт с числом хостов. Type 5 экономит маршруты: достаточно объявить подсеть, но возможен субоптимальный путь, если одна подсеть растянута между несколькими PE (трафик идёт к PE, который объявил префикс, а не к PE хоста). Практика: для растянутых подсетей объявляют Type 2 (хост-маршруты) и Type 5 для подсети, для нерастянутых подсетей и внешних префиксов - только Type 5. Если префикс объявлен и Type 5, и Type 2/32, предпочитается более специфичный.

Anycast-шлюз

Anycast-шлюз - один IP и один MAC на IRB всех PE подсети. Хост при переезде между PE не нуждается в новой ARP-записи и не теряет шлюз. Реализации: Cisco задаёт одинаковые ip address и mac-address на BDI, Huawei - Vbdif с одинаковым mac-address, Junos использует virtual-gateway-address с virtual-gateway-v4-mac; уникальные IP на каждом PE используются только как адреса источника для ICMP и ARP от шлюза. Если MAC шлюза различается, ARP-кэши хостов устаревают при переездах и трафик чёрнится.

Подавление ARP/ND

PE хранит привязки MAC-IP из Type 2 и отвечает на ARP-запросы (и NS в IPv6) сам, как proxy. Запрос не отправляется в ядро, что снижает BUM-нагрузку; если привязки нет, запрос флудится как обычно. RFC 9161 описывает операционные нюансы: время жизни, обработку gratuitous ARP, обнаружение дубликатов IP и переезды. Подавление не отключает необходимость Type 3: неизвестный unicast и ARP для неизвестных хостов по-прежнему идут через IM.

MAC mobility и IP