Открыть сервис

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-пакет включает:

  1. Внешний Ethernet-заголовок (MAC-адреса VTEP).
  2. Внешний IP-заголовок (адреса VTEP).
  3. Внешний UDP-заголовок (порт назначения — 4789 по стандарту, или 8472 для совместимости с некоторыми реализациями).
  4. VXLAN-заголовок (8 байт: флаги, VNI, зарезервированные поля).
  5. Исходный 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)4096Ethernet-тегЛокальные сети, сегментация L2
Q-in-Q (802.1ad)4096 (внешний)Двойной тегПровайдерские сети
VXLAN16 777 216MAC-in-UDPЦОД, облака, мультиарендность
NVGRE16 777 216MAC-in-GREЦОД (Microsoft Hyper-V)
GENEVE16 777 216MAC-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 →