VXLAN
VXLAN (Virtual Extensible LAN — виртуальная расширяемая локальная сеть) — это технология туннелирования канального уровня (L2) поверх сети третьего уровня (L3), предназначенная для создания изолированных, масштабируемых виртуальных сетей в центрах обработки данных (ЦОД) и облачных средах. Разработана компаниями Cisco Systems, VMware, Arista Networks и другими участниками Internet Engineering Task Force (IETF) и стандартизирована в RFC 7348 в 2014 году. VXLAN решает проблему ограниченного количества VLAN (максимум 4096) и необходимости строить сети второго уровня через географически распределённые ЦОД.
История и предпосылки создания
До появления VXLAN основным средством сегментации сетей второго уровня была технология VLAN (IEEE 802.1Q), которая позволяла создавать до 4096 виртуальных сетей. С развитием облачных вычислений, виртуализации серверов и мультиарендных ЦОД этого количества стало недостаточно. Крупные провайдеры и корпоративные дата-центры могли обслуживать десятки тысяч клиентов или виртуальных машин, каждому из которых требовалась изолированная сеть L2.
Кроме того, традиционные сети L2 (Ethernet) имели ограничения по масштабированию из-за протоколов STP (Spanning Tree Protocol), которые блокировали избыточные каналы и снижали эффективность использования пропускной способности. Попытки расширить VLAN за счёт Q-in-Q (IEEE 802.1ad) не решали проблему масштабирования на уровне ядра сети.
В 2011 году консорциум компаний начал разработку VXLAN как альтернативы, основанной на инкапсуляции Ethernet-кадров в UDP-пакеты. В 2014 году RFC 7348 был принят, и технология начала внедряться в коммутаторы, гипервизоры и программные коммутаторы (например, Open vSwitch).
Принцип работы
VXLAN работает по принципу «MAC-in-UDP»: исходный Ethernet-кадр (с MAC-адресами отправителя и получателя) инкапсулируется в UDP-дейтаграмму, которая затем передаётся по IP-сети. Внешний IP-заголовок содержит адреса конечных устройств (VTEP — VXLAN Tunnel Endpoints), которые выполняют инкапсуляцию и декапсуляцию.
Основные компоненты
- VTEP (VXLAN Tunnel Endpoint) — точка входа/выхода туннеля. Может быть реализован как программно (в гипервизоре, контейнерной платформе) или аппаратно (в сетевом коммутаторе). Каждый VTEP имеет IP-адрес в транспортной сети (underlay).
- VNI (VXLAN Network Identifier) — 24-битный идентификатор виртуальной сети, позволяющий создавать до 16 777 216 (2^24) изолированных сегментов L2. Аналог VLAN ID, но с гораздо большим диапазоном.
- Underlay — физическая или логическая IP-сеть (обычно L3), которая обеспечивает связность между VTEP. Обычно строится на базе протоколов ECMP (Equal-Cost Multi-Path) для балансировки нагрузки.
- Overlay — виртуальная сеть L2, создаваемая поверх underlay с помощью VXLAN-туннелей.
Формат пакета
VXLAN-пакет включает:
- Внешний Ethernet-заголовок (MAC-адреса VTEP).
- Внешний IP-заголовок (адреса VTEP).
- Внешний UDP-заголовок (порт назначения — 4789 по стандарту, или 8472 для совместимости с некоторыми реализациями).
- VXLAN-заголовок (8 байт: флаги, VNI, зарезервированные поля).
- Исходный Ethernet-кадр (внутренний кадр с MAC-адресами конечных хостов).
Процесс передачи
- Когда виртуальная машина (ВМ) отправляет кадр в свою сеть, VTEP, к которому она подключена, проверяет VNI. Если получатель известен (MAC-адрес изучен), VTEP инкапсулирует кадр и отправляет его напрямую на VTEP получателя.
- Если MAC-адрес неизвестен, VTEP выполняет широковещательный запрос (BUM — Broadcast, Unknown unicast, Multicast) через underlay. Для этого может использоваться IP-мультикаст (группа для каждого VNI) или метод «голого» широковещания (в некоторых реализациях — через сервер-контроллер).
Классификация и варианты реализации
По способу управления
- VXLAN с мультикастом — классический подход, описанный в RFC 7348. Для каждого VNI выделяется отдельная мультикастовая группа в underlay. Широковещательные и неизвестные кадры распространяются через эту группу. Требует настройки протоколов мультикаста (PIM, IGMP) на всех маршрутизаторах underlay.
- VXLAN с контроллером (EVPN-VXLAN) — более современная реализация, использующая протокол MP-BGP (Multiprotocol BGP) с расширением EVPN (Ethernet VPN). Контроллер (или маршрутизатор-рефлектор) распространяет информацию о MAC-адресах и маршрутах между VTEP, устраняя необходимость в мультикасте. Этот подход стандартизирован в RFC 7432 и является основным в современных ЦОД.
По типу VTEP
- Программные VTEP — встроены в гипервизоры (VMware vSphere, KVM, Microsoft Hyper-V) или контейнерные платформы (Kubernetes с CNI-плагинами, например, Calico, Flannel). Обеспечивают гибкость и простоту развёртывания.
- Аппаратные VTEP — реализованы в коммутаторах (Cisco Nexus 9000, Arista 7050X, Juniper QFX). Обеспечивают высокую производительность и низкую задержку.
- Гибридные VTEP — комбинация программных и аппаратных решений, где часть трафика обрабатывается на серверах, часть — на коммутаторах.
Применение
VXLAN широко используется в следующих сценариях:
- Виртуализация сетей в ЦОД — создание изолированных сетей для разных клиентов (мультиарендность) или приложений в рамках одного физического ЦОД.
- Миграция виртуальных машин — перемещение ВМ между физическими серверами без изменения IP-адреса, так как сеть L2 сохраняется через VXLAN-туннели.
- Географически распределённые ЦОД — объединение нескольких ЦОД в единую сеть L2, что позволяет реализовать активную репликацию данных и балансировку нагрузки.
- Контейнерные платформы — в Kubernetes и других оркестраторах VXLAN используется для изоляции подов и обеспечения их сетевой связности (например, через плагин Flannel в режиме VXLAN).
- Облачные провайдеры — такие как Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP) используют VXLAN (или его вариации) для построения виртуальных частных облаков (VPC).
Преимущества и недостатки
Преимущества
- Масштабируемость — до 16 миллионов виртуальных сетей, что на порядки больше, чем у VLAN.
- Независимость от физической топологии — overlay-сеть может быть построена поверх любой IP-сети, включая WAN.
- Использование ECMP — благодаря инкапсуляции в UDP, трафик VXLAN может балансироваться по нескольким каналам в underlay, что повышает пропускную способность.
- Поддержка мультиарендности — каждая аренда получает изолированную сеть L2.
- Совместимость с существующим оборудованием — большинство современных коммутаторов и маршрутизаторов поддерживают VXLAN.
Недостатки
- Увеличение накладных расходов — каждый VXLAN-пакет добавляет 50 байт заголовков (Ethernet + IP + UDP + VXLAN), что снижает полезную пропускную способность (MTU должно быть увеличено до 1550-1600 байт).
- Сложность настройки — особенно в мультикастовых реализациях, где требуется координация underlay и overlay.
- Зависимость от underlay — производительность VXLAN напрямую зависит от качества IP-сети (задержки, джиттер, потеря пакетов).
- Проблемы с широковещательным трафиком — BUM-трафик может создавать нагрузку на underlay, особенно в больших сетях.
Сравнение с альтернативами
| Технология | Макс. число сетей | Тип инкапсуляции | Применение |
|---|---|---|---|
| VLAN (802.1Q) | 4096 | Ethernet-тег | Локальные сети, сегментация L2 |
| Q-in-Q (802.1ad) | 4096 (внешний) | Двойной тег | Провайдерские сети |
| VXLAN | 16 777 216 | MAC-in-UDP | ЦОД, облака, мультиарендность |
| NVGRE | 16 777 216 | MAC-in-GRE | ЦОД (Microsoft Hyper-V) |
| GENEVE | 16 777 216 | MAC-in-UDP (гибкий) | Современные ЦОД (стандарт IETF) |
| MPLS/VPLS | Ограничен метками | MPLS-инкапсуляция | Провайдерские сети, WAN |
VXLAN является наиболее распространённой технологией overlay в ЦОД, вытесняя NVGRE и уступая в гибкости GENEVE, который поддерживает произвольные заголовки.
Интересные факты
- Порт 4789 для VXLAN был зарезервирован IANA в 2013 году, но некоторые ранние реализации (например, в Linux) использовали порт 8472.
- В RFC 7348 изначально не было механизма управления неизвестными MAC-адресами — это привело к появлению EVPN как расширения.
- VXLAN может работать поверх IPv6, что позволяет использовать его в современных сетях с адресацией нового поколения.
- В 2020 году компания Cisco представила технология VXLAN Group Policy Option (GPO), которая добавляет в VXLAN-заголовок теги безопасности для политик доступа.
Источники
- RFC 7348 — Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks.
- RFC 7432 — BGP MPLS-Based Ethernet VPN.
- Cisco Systems. «VXLAN Overview: Cisco Nexus 9000 Series Switches» (2015).
- VMware. «VMware NSX Network Virtualization Design Guide» (2018).
- Open vSwitch documentation. «VXLAN Tunneling» (2019).
- IEEE 802.1Q — Standard for Local and Metropolitan Area Networks—Bridges and Bridged Networks.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →