SDN в ЦОД: spine-leaf, EVPN/VXLAN и OVN

Цикл «Виды связности и SDN», часть 10. Предыдущая часть: «Self-hosted mesh: Headscale, NetBird, Netmaker, Nebula, ZeroTier и OpenZiti».
Ось: область — ЦОД.
Фабрика ЦОД строится вокруг простой идеи: underlay должен быстро и предсказуемо доставлять IP-пакеты между leaf-коммутаторами, а tenant-сети и политики живут поверх него.
Spine-leaf
Каждый leaf подключён к каждому spine. Сервер обычно подключают к одному leaf или к паре. Путь между стойками имеет одинаковое число L3-переходов.
ECMP распределяет потоки по нескольким равнозначным путям. Отказ одного линка или spine уменьшает доступную полосу, но не обязан разрывать связность.
Underlay часто использует eBGP или OSPF/IS-IS. Его задача — маршрутизация loopback/VTEP-адресов и стабильная IP-доставка.
VXLAN data plane
Leaf или гипервизор выступает VTEP. Ethernet или IP-трафик tenant помещается в VXLAN и идёт к удалённому VTEP.
Underlay не хранит MAC конечных VM. Он видит только IP VTEP и UDP-потоки.
EVPN control plane
BGP EVPN распространяет информацию, необходимую overlay.
Коротко по типам маршрутов, которые здесь важны:
- Type 1 — Ethernet Auto-Discovery, в том числе для ESI и multi-homing;
- Type 2 — MAC и, при наличии, IP хоста (привязка ARP/ND); next-hop — VTEP, а не «IP endpoint»;
- Type 3 — Inclusive Multicast Ethernet Tag, обычно ingress replication для BUM;
- Type 4 — Ethernet Segment;
- Type 5 — IP prefix routes для L3.
EVPN уменьшает flood-and-learn, но BUM не исчезает: Type 3 как раз про него. Type 2 убирает unknown-unicast learning и даёт ARP suppression, а не «больше никакого flooding».
L2VNI и L3VNI
L2VNI соответствует логическому Ethernet-сегменту.
L3VNI связывается с VRF и используется для маршрутизации между сетями. Tenant может иметь несколько L2VNI внутри одной VRF.
Distributed anycast gateway размещает одинаковый gateway IP/MAC на leaf. VM отправляет пакет ближайшему leaf, и inter-VLAN routing происходит локально.
Symmetric и asymmetric IRB
IRB — Integrated Routing and Bridging: leaf одновременно коммутирует внутри сегмента и маршрутизирует между сегментами.
При asymmetric IRB ingress leaf должен знать L2VNI назначения. Он маршрутизирует пакет и затем передаёт кадр в удалённый L2-сегмент.
При symmetric IRB оба leaf делают IP lookup, а между ними ходит L3VNI. Egress leaf переводит пакет в нужный L2VNI. Такая модель обычно лучше масштабируется по числу tenant-сегментов: ingress не обязан знать все удалённые L2VNI.
Border leaf
Overlay должен соединяться с внешним миром: Интернетом, MPLS, firewall, физическими серверами и legacy VLAN. Это выполняют border leaf или gateway routers.
Именно здесь часто появляется централизованный транзит, NAT, service chaining и дополнительная точка отказа. Красивый distributed east-west не отменяет проектирование north-south.
OVN и виртуальная сеть гипервизоров
OVN создаёт logical switches, logical routers, ACL, DHCP и DNS поверх Open vSwitch.
Distributed logical router реализуется на гипервизорах. East-west пакет может маршрутизироваться на исходном compute, не проходя через центральный network node. Для выхода к физической сети используются gateway chassis.
В OpenStack Neutron ML2/OVN создаёт tenant networks, ports, routers и security groups, а OVN переводит желаемую модель в logical flows и правила OVS.
Geneve удобен OVN из-за передачи metadata. VXLAN применяется при взаимодействии с VTEP и в отдельных сценариях.
Связь EVPN и OVN
Это не взаимоисключающие системы.
- EVPN/VXLAN может работать в физической fabric.
- OVN создаёт overlay между гипервизорами.
- Gateway связывает виртуальные logical networks с физическими VLAN/VXLAN/EVPN.
- Более новые интеграции позволяют динамически рекламировать маршруты через BGP.
Главное — не построить два независимых control plane, каждый из которых считает себя главным владельцем одного маршрута.
Что резервировать
- spine и leaf links;
- BGP route reflectors, если используются;
- border leaf;
- OVN Northbound/Southbound databases;
- gateway chassis;
- внешние BGP-сессии;
- DHCP/DNS и metadata services;
- физические подключения storage и management.
Где это ломается
- Два control plane рекламируют один и тот же маршрут в разные стороны.
- EVPN включили, а Type 3/BUM и ARP suppression не проверили.
- Anycast gateway есть, а north-south всё равно едет в один незарезервированный border leaf.
- Все RR и контроллеры OVN стоят в одной стойке.
- MTU фабрики оставили 1500 при VXLAN между leaf.
В следующей части перенесём эти понятия в Kubernetes, где роль endpoints выполняют pods, а выбор между VXLAN, Geneve, IPIP и native routing часто скрыт за одной настройкой CNI.
Предыдущая часть: «Self-hosted mesh: Headscale, NetBird, Netmaker, Nebula, ZeroTier и OpenZiti»
Оглавление цикла: «SDN без магии: карта видов связности»
Следующая часть: «SDN в Kubernetes: Flannel, Calico, Cilium и OVN-Kubernetes»
