ITequipment.ruсетевое и серверное оборудование · МоскваПерейти в каталог →

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.

ЗаголовокРазмерНазначение
Внешний Ethernet14 байтДоставка до следующего устройства
Внешний IP20 байтАдреса коммутаторов-туннелей
UDP8 байтПорт 4789, балансировка по потокам
VXLAN8 байтИдентификатор сегмента 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

Протокол использует несколько типов маршрутов, каждый со своим назначением.

ТипНазваниеДля чего
Тип 1Ethernet Auto-DiscoveryПодключение узла к нескольким коммутаторам, быстрое переключение при отказе
Тип 2MAC/IP AdvertisementРасположение MAC-адреса и связанного с ним адреса IP
Тип 3Inclusive MulticastСписок VTEP сегмента для рассылки широковещания
Тип 4Ethernet SegmentВыбор ответственного за рассылку при многодомном подключении
Тип 5IP PrefixПередача маршрутов подсетей между сегментами

На практике основную нагрузку несут типы 2 и 3, а типы 1 и 4 появляются там, где серверы подключены к паре коммутаторов. Тип 5 используется, когда нужно передать подсеть целиком, не перечисляя отдельные адреса.

Распределённый шлюз и подавление ARP

EVPN делает возможными две функции, заметно меняющие поведение сети.

Распределённый шлюз. Один и тот же адрес шлюза с одним и тем же MAC-адресом настраивается на всех leaf-коммутаторах сегмента. Сервер отправляет пакет своему шлюзу и попадает на ближайший коммутатор, независимо от стойки. При миграции виртуальной машины шлюз остаётся прежним, а трафик не делает лишний переход к единственному маршрутизатору.

Подавление ARP. Коммутатор знает соответствия адресов IP и MAC из маршрутов типа 2 и отвечает на запрос ARP локально, не рассылая его по фабрике. Это снимает заметную долю широковещательного трафика в сегментах с большим числом узлов.

Какие требования предъявляются к коммутаторам

  1. Поддержка VXLAN в микросхеме коммутации. Программная обработка на центральном процессоре устройства даёт производительность на порядки ниже линейной и для фабрики непригодна.
  2. Поддержка маршрутизации между сегментами в туннеле, обозначаемая как VXLAN routing. Часть устройств умеет только переносить кадры в пределах одного VNI, а маршрутизацию между VNI выполняет с ограничениями.
  3. Поддержка семейства адресов L2VPN EVPN в реализации BGP на устройстве.
  4. Достаточный объём таблиц: записи MAC, ARP и маршрутов расходуются быстрее портов, а в фабрике с EVPN каждый leaf хранит сведения обо всех активных адресах своих сегментов.
  5. Поддержка MTU не менее 9000 байт на всех линках фабрики.
  6. Поддержка многодомного подключения серверов — через MLAG либо через механизм Ethernet Segment самого EVPN.
  7. Наличие лицензии. У ряда производителей функции overlay активируются отдельной лицензией, и её стоит проверять до закупки, а не после.

Подобрать устройства с нужными возможностями можно в разделе коммутаторов; при необходимости подберём модели под планируемый размер фабрики.

Типичные ошибки

Оставлен MTU 1500. Самая частая ошибка при вводе фабрики. Короткие пакеты проходят, крупные теряются, и проблема выглядит как нестабильная работа приложений, а не как ошибка конфигурации.

Выбран коммутатор без аппаратной поддержки. Устройство заявляет VXLAN в списке возможностей, но выполняет инкапсуляцию программно. Производительность падает в десятки раз относительно паспортной.

Не учтён размер таблиц. Фабрика проектируется по числу портов, а упирается в число записей ARP или MAC на leaf.

Overlay внедряют без необходимости. Если приложениям не нужна мобильность между стойками и нет арендаторов с пересекающейся адресацией, маршрутизируемая фабрика без наложенной сети проще в эксплуатации и диагностике.

Разные версии программного обеспечения. Реализации EVPN у производителей различаются деталями, а между версиями одного производителя встречаются расхождения в поведении. Для фабрики фиксируют единую версию.

Что учесть при закупке

Партномера и лицензии. Фиксируйте артикул устройства и отдельно артикул лицензии на функции overlay. Одинаковые по виду коммутаторы могут отличаться объёмом таблиц и набором активированных возможностей.

Комплектность. Блоки питания, вентиляторные модули с нужным направлением продува и монтажные комплекты уточняйте отдельно.

Версия программного обеспечения. Согласуйте минимальную версию, в которой нужные функции EVPN работают без известных ограничений, и проверьте, что объём флеш-памяти устройства позволяет её установить.

Оптика. Число межкоммутаторных линков считайте заранее: в фабрике оно равно произведению числа leaf на число spine. Выбор между DAC, AOC и трансиверами влияет на объём закупки.

Гарантия и подменный фонд. Для однотипной фабрики разумно держать запасной leaf на каждые 10–15 установленных. Общая методика подготовки закупки разобрана в материале о планировании закупки, а устройство самой фабрики — в разборе архитектуры leaf-spine.

Смотреть коммутаторы в наличии →

Вопросы по теме

Чем VXLAN отличается от VLAN?
VLAN — поле в заголовке кадра Ethernet, работающее в пределах одного канального домена, с 4094 доступными значениями. VXLAN — инкапсуляция кадра в UDP для передачи поверх маршрутизируемой сети, с 16,7 миллионами значений идентификатора и без привязки к расстоянию.
Можно ли использовать VXLAN без EVPN?
Да, в исходном режиме с лавинной рассылкой и обучением. Рассылку организуют многоадресной передачей или репликацией на входе. Такой вариант работает на небольших фабриках, но хуже масштабируется и сложнее в эксплуатации.
Какой MTU нужен для VXLAN?
Инкапсуляция добавляет 50 байт, поэтому при исходном кадре 1500 байт требуется не менее 1550. На практике на всех линках фабрики выставляют 9000 байт, что оставляет запас для любой инкапсуляции.
Какой порт UDP использует VXLAN?
Порт назначения 4789, закреплённый организацией IANA. Исходный порт вычисляется из полей внутреннего кадра, чтобы механизм ECMP различал потоки и распределял их по всем линкам фабрики.
Что такое VTEP?
VXLAN Tunnel End Point — точка входа и выхода туннеля, выполняющая упаковку и распаковку кадров. Обычно это leaf-коммутатор, реже программный коммутатор на сервере. Каждому VTEP назначается адрес IP, анонсируемый в фабрику.
Нужна ли многоадресная маршрутизация для VXLAN?
При использовании EVPN не нужна: сведения о расположении адресов распространяет BGP, а список получателей широковещания передаётся маршрутом типа 3. Многоадресная передача требуется только в исходном режиме с лавинной рассылкой.
Что даёт распределённый шлюз?
Один и тот же адрес и MAC-адрес шлюза настраиваются на всех leaf сегмента. Сервер попадает на шлюз в своей стойке, а при миграции виртуальной машины между стойками настройки не меняются и лишний переход к центральному маршрутизатору не возникает.
Любой ли коммутатор поддерживает VXLAN?
Нет. Требуется поддержка в микросхеме коммутации; программная реализация даёт производительность, непригодную для фабрики. Отдельно проверяют поддержку маршрутизации между сегментами в туннеле и семейства адресов L2VPN EVPN в реализации BGP.
Применим ли EVPN вне ЦОД?
Да. Изначально EVPN описывался для сетей MPLS у поставщиков услуг, а VXLAN стал одним из вариантов среды передачи. Тот же протокол применяют для связи между площадками и в сетях операторов связи.