VXLAN и EVPN простыми словами
Коротко: VXLAN (Virtual Extensible LAN, RFC 7348) — технология наложенной сети, которая упаковывает кадры канального уровня в пакеты UDP и переносит их поверх обычной маршрутизируемой сети. Это позволяет растянуть сегмент второго уровня между стойками и площадками, не растягивая сам канальный уровень. Идентификатор сегмента VNI занимает 24 бита, что даёт свыше 16 миллионов логических сетей вместо 4094 доступных в VLAN. EVPN (Ethernet VPN) — управляющий протокол на основе BGP, который распространяет сведения о расположении MAC- и IP-адресов и заменяет собой исходный механизм VXLAN, основанный на лавинной рассылке.
Какую задачу решает VXLAN
Сеть ЦОД, построенная по схеме leaf-spine, маршрутизируема: между коммутаторами работает протокол третьего уровня, а домен широковещания ограничен одной стойкой. Это даёт предсказуемость и отказ от блокирующих линков, но создаёт проблему для приложений.
Виртуальная машина при миграции между стойками должна сохранить адрес IP, иначе сессии оборвутся. Кластеры высокой доступности требуют общего сегмента канального уровня между узлами. Такие требования противоречат маршрутизируемой фабрике.
VXLAN разрешает противоречие: физическая сеть остаётся маршрутизируемой, а логические сегменты строятся поверх неё. Коммутатор принимает кадр Ethernet от сервера, упаковывает его в пакет UDP и отправляет на коммутатор, за которым находится получатель. Тот распаковывает кадр и выдаёт его в порт. Для серверов это выглядит как общий коммутатор, хотя между ними маршрутизируемая сеть и несколько переходов.
Как устроена инкапсуляция
К исходному кадру добавляется четыре заголовка: внешний Ethernet, внешний IP, UDP и собственно VXLAN. Порт назначения UDP — 4789, закреплённый организацией IANA.
| Заголовок | Размер | Назначение |
| Внешний Ethernet | 14 байт | Доставка до следующего устройства |
| Внешний IP | 20 байт | Адреса коммутаторов-туннелей |
| UDP | 8 байт | Порт 4789, балансировка по потокам |
| VXLAN | 8 байт | Идентификатор сегмента VNI |
| Суммарно | 50 байт | Накладные расходы на кадр |
Пятьдесят дополнительных байт означают, что при MTU 1500 на фабрике кадр полного размера перестанет проходить. На всех линках между коммутаторами MTU увеличивают: распространённое значение — 9000 байт, которое оставляет запас для любой инкапсуляции.
Исходный порт UDP вычисляется из полей внутреннего кадра. Благодаря этому механизм ECMP в фабрике видит разные потоки как разные соединения и распределяет их по всем линкам, хотя адреса внешнего заголовка у них совпадают.
Почему 4094 VLAN перестало хватать
Поле идентификатора VLAN в стандарте IEEE 802.1Q занимает 12 бит, из которых доступны значения с 1 по 4094. Для одного предприятия этого достаточно, а для поставщика услуг или крупной платформы виртуализации — нет.
Поле VNI в заголовке VXLAN занимает 24 бита, что даёт 16 777 216 значений. Этого хватает, чтобы выделить каждому арендатору собственное адресное пространство и не согласовывать нумерацию между подразделениями.
Второе ограничение VLAN — географическое. Идентификатор имеет смысл в пределах одного канального домена, и перенести сегмент на другую площадку без специальных технологий нельзя. VNI переносится поверх маршрутизируемой сети, поэтому расстояние ограничено только задержкой.
Что такое VTEP
Точка входа и выхода туннеля называется VTEP (VXLAN Tunnel End Point). Обычно эту роль выполняет leaf-коммутатор, реже — программный коммутатор на сервере.
VTEP выполняет две операции. При получении кадра от сервера он определяет, за каким удалённым VTEP находится MAC-адрес получателя, добавляет заголовки и отправляет пакет. При получении пакета из фабрики он снимает заголовки, проверяет VNI и выдаёт кадр в порт нужного сегмента.
Каждому VTEP назначается адрес IP, обычно на логическом интерфейсе, который анонсируется в фабрику протоколом маршрутизации. Для пары коммутаторов, работающих в режиме MLAG, применяют общий виртуальный адрес, чтобы сервер с двумя линками выглядел подключённым к одному VTEP.
Зачем нужен EVPN и что он заменил
Исходная спецификация VXLAN не описывала, откуда VTEP узнаёт о расположении MAC-адресов. Применялся механизм лавинной рассылки с обучением (flood and learn), унаследованный от обычных коммутаторов: неизвестный кадр рассылался всем VTEP, а ответ позволял запомнить соответствие.
Рассылку организовывали двумя способами: многоадресной передачей в фабрике, что требовало настройки протокола многоадресной маршрутизации, либо репликацией на входе, когда VTEP отправлял копию каждому соседу по отдельности. Первый способ сложен в эксплуатации, второй плохо масштабируется.
EVPN заменяет лавинную рассылку управляющим протоколом. Коммутаторы устанавливают сессии BGP и обмениваются сведениями о том, какой MAC-адрес и какой адрес IP находятся за каким VTEP. Адреса распространяются заранее, а не изучаются по факту прохождения трафика. Спецификация EVPN описана в RFC 7432, применение VXLAN в качестве среды передачи — в RFC 8365.
Выигрыш заметен на масштабе: объём широковещательного трафика падает, сходимость при отказах определяется работой BGP, а сведения о расположении адресов можно фильтровать политиками, как любые маршруты.
Какие сведения переносит EVPN
Протокол использует несколько типов маршрутов, каждый со своим назначением.
| Тип | Название | Для чего |
| Тип 1 | Ethernet Auto-Discovery | Подключение узла к нескольким коммутаторам, быстрое переключение при отказе |
| Тип 2 | MAC/IP Advertisement | Расположение MAC-адреса и связанного с ним адреса IP |
| Тип 3 | Inclusive Multicast | Список VTEP сегмента для рассылки широковещания |
| Тип 4 | Ethernet Segment | Выбор ответственного за рассылку при многодомном подключении |
| Тип 5 | IP Prefix | Передача маршрутов подсетей между сегментами |
На практике основную нагрузку несут типы 2 и 3, а типы 1 и 4 появляются там, где серверы подключены к паре коммутаторов. Тип 5 используется, когда нужно передать подсеть целиком, не перечисляя отдельные адреса.
Распределённый шлюз и подавление ARP
EVPN делает возможными две функции, заметно меняющие поведение сети.
Распределённый шлюз. Один и тот же адрес шлюза с одним и тем же MAC-адресом настраивается на всех leaf-коммутаторах сегмента. Сервер отправляет пакет своему шлюзу и попадает на ближайший коммутатор, независимо от стойки. При миграции виртуальной машины шлюз остаётся прежним, а трафик не делает лишний переход к единственному маршрутизатору.
Подавление ARP. Коммутатор знает соответствия адресов IP и MAC из маршрутов типа 2 и отвечает на запрос ARP локально, не рассылая его по фабрике. Это снимает заметную долю широковещательного трафика в сегментах с большим числом узлов.
Какие требования предъявляются к коммутаторам
- Поддержка VXLAN в микросхеме коммутации. Программная обработка на центральном процессоре устройства даёт производительность на порядки ниже линейной и для фабрики непригодна.
- Поддержка маршрутизации между сегментами в туннеле, обозначаемая как VXLAN routing. Часть устройств умеет только переносить кадры в пределах одного VNI, а маршрутизацию между VNI выполняет с ограничениями.
- Поддержка семейства адресов L2VPN EVPN в реализации BGP на устройстве.
- Достаточный объём таблиц: записи MAC, ARP и маршрутов расходуются быстрее портов, а в фабрике с EVPN каждый leaf хранит сведения обо всех активных адресах своих сегментов.
- Поддержка MTU не менее 9000 байт на всех линках фабрики.
- Поддержка многодомного подключения серверов — через MLAG либо через механизм Ethernet Segment самого EVPN.
- Наличие лицензии. У ряда производителей функции overlay активируются отдельной лицензией, и её стоит проверять до закупки, а не после.
Подобрать устройства с нужными возможностями можно в разделе коммутаторов; при необходимости подберём модели под планируемый размер фабрики.
Типичные ошибки
Оставлен MTU 1500. Самая частая ошибка при вводе фабрики. Короткие пакеты проходят, крупные теряются, и проблема выглядит как нестабильная работа приложений, а не как ошибка конфигурации.
Выбран коммутатор без аппаратной поддержки. Устройство заявляет VXLAN в списке возможностей, но выполняет инкапсуляцию программно. Производительность падает в десятки раз относительно паспортной.
Не учтён размер таблиц. Фабрика проектируется по числу портов, а упирается в число записей ARP или MAC на leaf.
Overlay внедряют без необходимости. Если приложениям не нужна мобильность между стойками и нет арендаторов с пересекающейся адресацией, маршрутизируемая фабрика без наложенной сети проще в эксплуатации и диагностике.
Разные версии программного обеспечения. Реализации EVPN у производителей различаются деталями, а между версиями одного производителя встречаются расхождения в поведении. Для фабрики фиксируют единую версию.
Что учесть при закупке
Партномера и лицензии. Фиксируйте артикул устройства и отдельно артикул лицензии на функции overlay. Одинаковые по виду коммутаторы могут отличаться объёмом таблиц и набором активированных возможностей.
Комплектность. Блоки питания, вентиляторные модули с нужным направлением продува и монтажные комплекты уточняйте отдельно.
Версия программного обеспечения. Согласуйте минимальную версию, в которой нужные функции EVPN работают без известных ограничений, и проверьте, что объём флеш-памяти устройства позволяет её установить.
Оптика. Число межкоммутаторных линков считайте заранее: в фабрике оно равно произведению числа leaf на число spine. Выбор между DAC, AOC и трансиверами влияет на объём закупки.
Гарантия и подменный фонд. Для однотипной фабрики разумно держать запасной leaf на каждые 10–15 установленных. Общая методика подготовки закупки разобрана в материале о планировании закупки, а устройство самой фабрики — в разборе архитектуры leaf-spine.
Смотреть коммутаторы в наличии →