VXLAN интерфейсы в VyOS
VXLAN (Virtual Extensible LAN) - это технология сетевой виртуализации для создания overlay сетей поверх существующей IP инфраструктуры.
Обзор
VXLAN решает проблемы масштабирования традиционных VLAN сетей:
- Инкапсулирует Layer 2 Ethernet фреймы в Layer 4 UDP датаграммы
- Использует 24-битный VNI (VXLAN Network Identifier) вместо 12-битного VLAN ID
- Поддерживает до 16 миллионов логических сетей (против 4096 VLAN)
- Работает поверх существующей IP сети (underlay)
- Позволяет растягивать L2 сегменты через L3 границы
Ключевые компоненты:
- VNI (VXLAN Network Identifier) - идентификатор виртуальной сети (24 бита)
- VTEP (VXLAN Tunnel Endpoint) - точка инкапсуляции/декапсуляции
- Underlay network - физическая IP сеть для передачи инкапсулированного трафика
- Overlay network - виртуальная L2 сеть поверх underlay
UDP порт:
- VyOS по умолчанию: 8472
- IANA стандарт: 4789
Применение:
- Виртуализация сетей в облачных провайдерах
- Мультитенантные среды
- Data center interconnect (DCI)
- Связывание географически распределенных L2 доменов
- Kubernetes/Docker overlay сети
Базовая конфигурация
Создание VXLAN интерфейса
set interfaces vxlan vxlan100 vni 100
commitМинимальная конфигурация - только VNI (идентификатор сети).
Назначение IP-адреса
set interfaces vxlan vxlan100 address 10.0.100.1/24
commitОписание интерфейса
set interfaces vxlan vxlan100 description 'VXLAN Overlay Network 100'
commitMTU
Рекомендуется уменьшить MTU из-за overhead от инкапсуляции:
set interfaces vxlan vxlan100 mtu 1450
commitVXLAN добавляет 50 байт overhead:
- 20 байт внешний IP header
- 8 байт UDP header
- 8 байт VXLAN header
- 14 байт внешний Ethernet header
Для стандартного MTU 1500:
- VXLAN MTU = 1500 - 50 = 1450
Для jumbo frames (9000):
- VXLAN MTU = 9000 - 50 = 8950
Режимы работы VXLAN
1. Multicast VXLAN
Использует multicast группы для автоматического обнаружения VTEP и рассылки BUM трафика (Broadcast, Unknown unicast, Multicast).
Конфигурация:
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-interface eth0
set interfaces vxlan vxlan100 mtu 1450
set interfaces vxlan vxlan100 group 239.0.0.100
commitПараметры:
vni- идентификатор VXLAN сетиsource-interface- интерфейс для underlay трафикаgroup- multicast группа для данного VNImtu- максимальный размер пакета
Как работает:
- BUM трафик отправляется в multicast группу
- Все VTEP в группе получают трафик
- VTEP изучают MAC-адреса и строят FDB (Forwarding Database)
- Unicast трафик идет напрямую между VTEP
Требования:
- Underlay сеть должна поддерживать multicast (PIM)
- Не все облачные провайдеры поддерживают multicast
2. Unicast VXLAN (Point-to-Point)
Явное указание удаленного VTEP через IP-адрес. Не требует multicast.
Конфигурация:
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-interface eth0
set interfaces vxlan vxlan100 remote 203.0.113.10
set interfaces vxlan vxlan100 mtu 1450
commitПараметры:
remote- IP-адрес удаленного VTEP
Как работает:
- Весь трафик отправляется на указанный remote IP
- Подходит для point-to-point соединений
- Не масштабируется для большого количества VTEP
Преимущества:
- Работает в сетях без multicast (большинство облаков)
- Простая конфигурация для малого количества узлов
- Детерминированное поведение
Недостатки:
- Не поддерживает автоматическое обнаружение VTEP
- Требует ручной настройки для каждой пары VTEP
- Плохо масштабируется
3. Unicast VXLAN с несколькими remote endpoints
Для связи с несколькими VTEP используйте FDB (Forwarding Database) или bridge с fdb entries.
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-interface eth0
set interfaces bridge br100
set interfaces bridge br100 member interface vxlan100
# Статические FDB записи (MAC к VTEP mapping)
# Синтаксис зависит от версии VyOS
# Альтернативно используйте BGP EVPN для автоматического распространения
commit4. VXLAN через source-address
Вместо source-interface можно указать source IP напрямую:
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-address 198.51.100.5
set interfaces vxlan vxlan100 remote 203.0.113.10
commitПолезно когда у вас несколько интерфейсов или loopback адрес.
VLAN-to-VNI Mapping (Single VXLAN Device)
Single VXLAN Device (SVD) позволяет использовать один VXLAN интерфейс для множественных VNI, сопоставляя VLAN с VNI.
Конфигурация SVD
# VXLAN интерфейс с базовым VNI
set interfaces vxlan vxlan0 vni 10000
set interfaces vxlan vxlan0 source-interface eth0
# Bridge для VLAN management
set interfaces bridge br0
set interfaces bridge br0 member interface vxlan0
set interfaces bridge br0 enable-vlan
# VLAN-to-VNI mapping
set interfaces bridge br0 member interface vxlan0 vlan-to-vni 10 vni 10010
set interfaces bridge br0 member interface vxlan0 vlan-to-vni 20 vni 10020
set interfaces bridge br0 member interface vxlan0 vlan-to-vni 30 vni 10030
# Physical interface для локальных VLANs
set interfaces ethernet eth1 vif 10
set interfaces ethernet eth1 vif 20
set interfaces ethernet eth1 vif 30
set interfaces bridge br0 member interface eth1.10 allowed-vlan 10
set interfaces bridge br0 member interface eth1.20 allowed-vlan 20
set interfaces bridge br0 member interface eth1.30 allowed-vlan 30
commitКак работает:
- VLAN 10 локально маппится в VNI 10010
- VLAN 20 локально маппится в VNI 10020
- VLAN 30 локально маппится в VNI 10030
- Один VXLAN интерфейс обслуживает все VNI
- Bridge выполняет VLAN-aware switching
Преимущества:
- Масштабирование до тысяч VNI на одном интерфейсе
- Упрощенная конфигурация
- Меньше системных ресурсов
Примеры конфигурации
Point-to-Point VXLAN (Yandex Cloud)
Соединение двух VyOS в разных подсетях Yandex Cloud:
Узел 1 (192.0.2.10):
# Underlay конфигурация
set interfaces ethernet eth0 address 192.0.2.10/24
# VXLAN tunnel
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-address 192.0.2.10
set interfaces vxlan vxlan100 remote 192.0.2.20
set interfaces vxlan vxlan100 mtu 1450
# Overlay адрес
set interfaces vxlan vxlan100 address 10.100.0.1/24
set interfaces vxlan vxlan100 description 'VXLAN to Node2'
commitУзел 2 (192.0.2.20):
# Underlay конфигурация
set interfaces ethernet eth0 address 192.0.2.20/24
# VXLAN tunnel
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-address 192.0.2.20
set interfaces vxlan vxlan100 remote 192.0.2.10
set interfaces vxlan vxlan100 mtu 1450
# Overlay адрес
set interfaces vxlan vxlan100 address 10.100.0.2/24
set interfaces vxlan vxlan100 description 'VXLAN to Node1'
commitТеперь узлы могут общаться через 10.100.0.0/24 overlay сеть.
VXLAN Bridge для растягивания L2 (VK Cloud)
Растягивание L2 домена между двумя датацентрами:
Site A (198.51.100.10):
# VXLAN интерфейс
set interfaces vxlan vxlan200 vni 200
set interfaces vxlan vxlan200 source-address 198.51.100.10
set interfaces vxlan vxlan200 remote 203.0.113.10
set interfaces vxlan vxlan200 mtu 1450
# Bridge с локальным интерфейсом
set interfaces bridge br200
set interfaces bridge br200 member interface vxlan200
set interfaces bridge br200 member interface eth1
set interfaces bridge br200 description 'Stretched L2 VLAN 200'
# IP для inter-site routing (опционально)
set interfaces bridge br200 address 10.200.0.1/24
commitSite B (203.0.113.10):
# VXLAN интерфейс
set interfaces vxlan vxlan200 vni 200
set interfaces vxlan vxlan200 source-address 203.0.113.10
set interfaces vxlan vxlan200 remote 198.51.100.10
set interfaces vxlan vxlan200 mtu 1450
# Bridge с локальным интерфейсом
set interfaces bridge br200
set interfaces bridge br200 member interface vxlan200
set interfaces bridge br200 member interface eth1
set interfaces bridge br200 description 'Stretched L2 VLAN 200'
# IP для inter-site routing (опционально)
set interfaces bridge br200 address 10.200.0.2/24
commitУстройства в eth1 на обоих сайтах находятся в одном L2 домене.
Multi-tenant VXLAN (облачный провайдер)
Изоляция трафика разных клиентов через отдельные VNI:
# Клиент A - VNI 1000
set interfaces vxlan vxlan1000 vni 1000
set interfaces vxlan vxlan1000 source-interface eth0
set interfaces vxlan vxlan1000 remote 192.0.2.20
set interfaces bridge brA
set interfaces bridge brA member interface vxlan1000
set interfaces bridge brA member interface eth1.100
set interfaces bridge brA address 10.10.0.1/24
set interfaces bridge brA description 'Tenant A'
# Клиент B - VNI 2000
set interfaces vxlan vxlan2000 vni 2000
set interfaces vxlan vxlan2000 source-interface eth0
set interfaces vxlan vxlan2000 remote 192.0.2.20
set interfaces bridge brB
set interfaces bridge brB member interface vxlan2000
set interfaces bridge brB member interface eth1.200
set interfaces bridge brB address 10.20.0.1/24
set interfaces bridge brB description 'Tenant B'
# Клиент C - VNI 3000
set interfaces vxlan vxlan3000 vni 3000
set interfaces vxlan vxlan3000 source-interface eth0
set interfaces vxlan vxlan3000 remote 192.0.2.20
set interfaces bridge brC
set interfaces bridge brC member interface vxlan3000
set interfaces bridge brC member interface eth1.300
set interfaces bridge brC address 10.30.0.1/24
set interfaces bridge brC description 'Tenant C'
commitКаждый клиент полностью изолирован на L2 уровне через отдельный VNI.
VXLAN Multicast (on-premises)
Для on-premises датацентров с поддержкой multicast:
# VXLAN с multicast
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-interface eth0
set interfaces vxlan vxlan100 group 239.1.1.100
set interfaces vxlan vxlan100 mtu 1450
# Bridge для локального L2
set interfaces bridge br100
set interfaces bridge br100 member interface vxlan100
set interfaces bridge br100 member interface eth1
set interfaces bridge br100 member interface eth2
commitАвтоматическое обнаружение VTEP через multicast группу 239.1.1.100.
VXLAN через loopback (рекомендуется для продакшна)
Использование loopback адреса для стабильности:
# Loopback интерфейс
set interfaces loopback lo address 198.51.100.1/32
# VXLAN с source-address на loopback
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-address 198.51.100.1
set interfaces vxlan vxlan100 remote 203.0.113.1
set interfaces vxlan vxlan100 mtu 1450
# Маршрут к remote loopback
set protocols static route 203.0.113.1/32 next-hop 192.0.2.1
commitLoopback адрес не зависит от состояния физических интерфейсов.
VXLAN с IPv6 underlay
VXLAN поддерживает IPv6 для underlay сети:
# IPv6 underlay
set interfaces ethernet eth0 address 2001:db8:1::10/64
# VXLAN через IPv6
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-address 2001:db8:1::10
set interfaces vxlan vxlan100 remote 2001:db8:2::10
set interfaces vxlan vxlan100 mtu 1450
# IPv4 overlay
set interfaces vxlan vxlan100 address 10.100.0.1/24
commitVXLAN с firewall
Защита VXLAN трафика через firewall:
# VXLAN интерфейс
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-interface eth0
set interfaces vxlan vxlan100 remote 192.0.2.20
set interfaces vxlan vxlan100 address 10.100.0.1/24
# Firewall для overlay трафика
set firewall ipv4 input filter rule 100 action accept
set firewall ipv4 input filter rule 100 source address 10.100.0.0/24
set firewall ipv4 input filter rule 100 description 'Allow VXLAN overlay'
# Firewall для underlay VXLAN (UDP 8472)
set firewall ipv4 input filter rule 200 action accept
set firewall ipv4 input filter rule 200 protocol udp
set firewall ipv4 input filter rule 200 destination port 8472
set firewall ipv4 input filter rule 200 source address 192.0.2.0/24
set firewall ipv4 input filter rule 200 description 'Allow VXLAN encapsulation'
commitVXLAN Full-Mesh (3 узла)
Создание полносвязной топологии для 3 узлов:
Вариант 1: Отдельные VXLAN на пару (не рекомендуется): Слишком много интерфейсов для большого количества узлов.
Вариант 2: Multicast (если поддерживается):
# На всех узлах одинаковая конфигурация
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-interface eth0
set interfaces vxlan vxlan100 group 239.0.0.100
set interfaces vxlan vxlan100 mtu 1450
set interfaces bridge br100
set interfaces bridge br100 member interface vxlan100
set interfaces bridge br100 address 10.100.0.X/24
commitВариант 3: BGP EVPN (best practice для продакшна): Используйте BGP EVPN для автоматического распространения MAC/IP маршрутов и построения VXLAN fabric.
Интеграция с облачными провайдерами
Yandex Cloud особенности
Ограничения:
- Multicast не поддерживается
- Используйте только unicast VXLAN
- MTU: рекомендуется 1450 (Yandex Cloud MTU = 1500)
- Security groups: разрешите UDP 8472 между узлами
Конфигурация Security Group:
# В консоли Yandex Cloud создайте правило:
Протокол: UDP
Порт: 8472
Источник: CIDR блок с адресами VTEP узловПример для HA кластера:
# Узел 1 (основной)
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-interface eth0
set interfaces vxlan vxlan100 remote 10.128.0.20
set interfaces vxlan vxlan100 address 172.16.0.1/24
# VRRP для HA
set high-availability vrrp group vxlan100 vrid 100
set high-availability vrrp group vxlan100 interface vxlan100
set high-availability vrrp group vxlan100 address 172.16.0.254/24
set high-availability vrrp group vxlan100 priority 200
commitVK Cloud особенности
Ограничения:
- Multicast не поддерживается
- MTU: рекомендуется 1450
- Firewall: разрешите UDP 8472
Конфигурация Firewall: В панели VK Cloud:
Правило входящего трафика:
- Протокол: UDP
- Порт: 8472
- Источник: IP адреса VTEPOverlay для Kubernetes:
# VXLAN для Kubernetes CNI
set interfaces vxlan vxlan10 vni 10
set interfaces vxlan vxlan10 source-interface eth0
set interfaces vxlan vxlan10 remote 10.0.0.20
set interfaces bridge cni0
set interfaces bridge cni0 member interface vxlan10
set interfaces bridge cni0 address 10.244.0.1/24
# IP forwarding для pod routing
# VyOS автоматически включает forwarding
commitОбщие рекомендации для облаков
- Используйте unicast VXLAN - multicast обычно не поддерживается
- MTU 1450 - для предотвращения фрагментации
- Security groups/Firewall - разрешите UDP 8472 между VTEP
- Source-address на loopback - для стабильности при failover
- Мониторинг underlay - проверяйте доступность remote VTEP
- BGP EVPN - для автоматизации в больших инсталляциях
UDP Port конфигурация
Изменение стандартного порта (8472) на IANA (4789):
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 port 4789
set interfaces vxlan vxlan100 source-interface eth0
set interfaces vxlan vxlan100 remote 192.0.2.20
commitКогда менять порт:
- Интеграция с оборудованием других вендоров (Cisco, Arista используют 4789)
- Корпоративные стандарты требуют IANA порт
- Firewall правила уже настроены на 4789
Важно: Порт должен совпадать на всех VTEP в одном VNI.
MAC Address
Установка статического MAC-адреса для VXLAN интерфейса:
set interfaces vxlan vxlan100 mac 00:50:56:00:00:01
commitМожет потребоваться для:
- Интеграции с legacy системами
- Лицензирования по MAC
- Debugging
ARP и ND
ARP Cache Timeout
set interfaces vxlan vxlan100 ip arp-cache-timeout 3600
commitDisable ARP
set interfaces vxlan vxlan100 ip disable-arp-filter
commitIPv6 Neighbor Discovery
set interfaces vxlan vxlan100 ipv6 dup-addr-detect-transmits 1
commitОперационные команды
Просмотр VXLAN интерфейсов
show interfaces vxlanПример вывода:
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
vxlan100 10.100.0.1/24 u/u VXLAN Overlay 100
vxlan200 10.200.0.1/24 u/u VXLAN Overlay 200Детальная информация VXLAN
show interfaces vxlan vxlan100Пример вывода:
vxlan100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP
link/ether 00:50:56:00:12:34 brd ff:ff:ff:ff:ff:ff
inet 10.100.0.1/24 brd 10.100.0.255 scope global vxlan100
vxlan id 100 remote 192.0.2.20 dev eth0 srcport 0 0 dstport 8472Статистика VXLAN
show interfaces vxlan vxlan100 statisticsПример вывода:
RX: bytes packets errors dropped overrun mcast
1048576 1024 0 0 0 0
TX: bytes packets errors dropped carrier collsns
2097152 2048 0 0 0 0FDB (Forwarding Database)
Просмотр изученных MAC-адресов в VXLAN:
show bridge vxlan vxlan100 fdbПример вывода:
port mac addr flags
vxlan100 00:0c:29:12:34:56 dst 192.0.2.20
vxlan100 00:0c:29:ab:cd:ef dst 192.0.2.30Проверка соединения
Ping через overlay сеть:
ping 10.100.0.2 source-address 10.100.0.1Traceroute:
traceroute 10.100.0.2 source-address 10.100.0.1Мониторинг инкапсулированного трафика
monitor interfaces vxlan vxlan100 trafficCapture VXLAN пакетов:
monitor traffic interface eth0 filter 'udp port 8472'Устранение неполадок
VXLAN интерфейс не поднимается
Проверьте source-interface:
show interfaces ethernet eth0Убедитесь что source интерфейс в состоянии UP.
Проверьте конфигурацию:
show configuration interfaces vxlan vxlan100Нет связности через VXLAN
1. Проверьте underlay связность:
ping 192.0.2.20 source-address 192.0.2.10Если underlay не работает - VXLAN не заработает.
2. Проверьте firewall/security groups:
# На удаленном узле
sudo tcpdump -i eth0 udp port 8472Если пакеты не приходят - проблема в firewall.
3. Проверьте VNI: VNI должен совпадать на обоих концах туннеля.
4. Проверьте MTU:
ping 10.100.0.2 size 1400 do-not-fragmentЕсли пакеты не проходят - уменьшите MTU.
FDB не обучается (MAC не видны)
Проверьте bridge конфигурацию:
show bridge brX fdbУбедитесь что VXLAN интерфейс в bridge:
show bridge brXПроверьте aging time:
show configuration interfaces bridge brXBroadcast storm в VXLAN
Возможные причины:
- Петля в overlay топологии
- Неправильная конфигурация STP
- Duplicate MAC addresses
Решение:
# Включите STP на bridge
set interfaces bridge br100 stp
commit
# Проверьте STP
show bridge br100 spanning-treeВысокая фрагментация пакетов
Уменьшите VXLAN MTU:
set interfaces vxlan vxlan100 mtu 1400
commitИли увеличьте underlay MTU (если возможно):
set interfaces ethernet eth0 mtu 1600
commitRemote VTEP недоступен
Проверьте маршрут:
show ip route 192.0.2.20Проверьте ARP:
show arp interface eth0Traceroute к remote VTEP:
traceroute 192.0.2.20VXLAN работает только в одну сторону
Проверьте symmetric конфигурацию на обоих концах:
- VNI должен совпадать
- UDP port должен совпадать
- Remote IP должен указывать на правильный peer
Производительность VXLAN низкая
1. Проверьте CPU load:
show system cpuVXLAN инкапсуляция использует CPU.
2. Включите offloading (если поддерживается):
show interfaces ethernet eth0 offload3. Используйте jumbo frames:
# Underlay
set interfaces ethernet eth0 mtu 9000
# VXLAN
set interfaces vxlan vxlan100 mtu 8950
commit4. Проверьте bandwidth underlay: Возможно bottleneck в физической сети.
Расчет MTU
Стандартный MTU (1500)
VXLAN MTU = Underlay MTU - VXLAN Overhead
VXLAN MTU = 1500 - 50 = 1450Overhead компоненты:
- Outer Ethernet: 14 байт
- Outer IP: 20 байт (IPv4) или 40 байт (IPv6)
- UDP: 8 байт
- VXLAN: 8 байт
- Total: 50 байт (IPv4), 70 байт (IPv6)
Jumbo Frames (9000)
VXLAN MTU = 9000 - 50 = 8950С VLAN tag
VXLAN MTU = 1500 - 50 - 4 = 1446VLAN tag добавляет 4 байта.
Автоматическое определение MTU
# Path MTU Discovery включен по умолчанию
show interfaces vxlan vxlan100Производительность
Рекомендации по оптимизации
1. Hardware offloading: Используйте NIC с поддержкой VXLAN offload.
2. Jumbo frames: Увеличьте MTU до 9000 на underlay и 8950 на overlay.
3. Source на loopback: Используйте loopback адреса для VTEP - стабильнее при failover.
4. Multipath routing: Используйте ECMP для load balancing VXLAN трафика.
5. CPU pinning: Для критичных workloads настройте CPU affinity.
Тестирование производительности
Throughput:
# На сервере
iperf3 -s -B 10.100.0.1
# На клиенте
iperf3 -c 10.100.0.1 -t 60 -P 4Latency:
ping 10.100.0.2 -i 0.2 -c 1000Packet loss:
mtr 10.100.0.2 -c 100Безопасность
Шифрование VXLAN
VXLAN по умолчанию не шифрует трафик. Для шифрования:
Вариант 1: IPsec поверх VXLAN:
# Создайте IPsec туннель между VTEP
set vpn ipsec site-to-site peer 192.0.2.20 ...
# VXLAN через IPsec туннель
set interfaces vxlan vxlan100 source-interface ipsec0Вариант 2: WireGuard underlay:
# WireGuard туннель
set interfaces wireguard wg0 ...
# VXLAN через WireGuard
set interfaces vxlan vxlan100 source-interface wg0Firewall для VXLAN
Защита underlay:
# Разрешить VXLAN только от известных VTEP
set firewall ipv4 input filter rule 100 action accept
set firewall ipv4 input filter rule 100 protocol udp
set firewall ipv4 input filter rule 100 destination port 8472
set firewall ipv4 input filter rule 100 source address 192.0.2.0/24
set firewall ipv4 input filter rule 110 action drop
set firewall ipv4 input filter rule 110 protocol udp
set firewall ipv4 input filter rule 110 destination port 8472
commitЗащита overlay:
# Firewall для overlay трафика
set firewall ipv4 forward filter rule 200 action accept
set firewall ipv4 forward filter rule 200 inbound-interface name vxlan100
set firewall ipv4 forward filter rule 200 state established
set firewall ipv4 forward filter rule 200 state related
commitRate Limiting
Защита от flooding:
set firewall ipv4 input filter rule 300 action accept
set firewall ipv4 input filter rule 300 protocol udp
set firewall ipv4 input filter rule 300 destination port 8472
set firewall ipv4 input filter rule 300 limit rate 1000/second
commitМониторинг
Ключевые метрики
1. Interface statistics:
show interfaces vxlan vxlan100 statisticsОтслеживайте:
- RX/TX errors
- Dropped packets
- Overruns
2. FDB размер:
show bridge brX fdb | count3. CPU usage:
show system cpuVXLAN инкапсуляция использует CPU.
4. Underlay health:
ping 192.0.2.20 source-address 192.0.2.10Logging
Включение debug логов для VXLAN:
# В VyOS 1.4
set system syslog global facility local7 level debug
# В VyOS 1.5
# Смотрите документацию по loggingПросмотр логов:
show log | match vxlanИнтеграция
С BGP EVPN
BGP EVPN автоматизирует распространение MAC/IP маршрутов в VXLAN fabric:
# Loopback для VTEP
set interfaces loopback lo address 192.0.2.1/32
# VXLAN
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-address 192.0.2.1
# Bridge
set interfaces bridge br100
set interfaces bridge br100 member interface vxlan100
# BGP для underlay
set protocols bgp system-as 65000
set protocols bgp neighbor 10.0.0.1 remote-as 65000
# BGP EVPN
set protocols bgp address-family l2vpn-evpn advertise-all-vni
set protocols bgp address-family l2vpn-evpn advertise-default-gw
set protocols bgp address-family l2vpn-evpn neighbor 10.0.0.1 activate
commitС OSPF (underlay)
OSPF для маршрутизации между VTEP:
# Loopback
set interfaces loopback lo address 192.0.2.1/32
# OSPF
set protocols ospf area 0 network 192.0.2.1/32
set protocols ospf area 0 network 10.0.0.0/24
# VXLAN с source на loopback
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 source-address 192.0.2.1
set interfaces vxlan vxlan100 remote 192.0.2.2
commitOSPF анонсирует loopback адреса, обеспечивая underlay связность.
С VRF
Изоляция VXLAN overlay в отдельном VRF:
# VRF для tenant
set vrf name TENANT table 100
# VXLAN в VRF
set interfaces vxlan vxlan100 vni 100
set interfaces vxlan vxlan100 vrf TENANT
set interfaces vxlan vxlan100 address 10.100.0.1/24
commitС QoS
Приоритизация VXLAN трафика:
# QoS для VXLAN underlay
set qos policy shaper VXLAN-QOS bandwidth 1gbit
set qos policy shaper VXLAN-QOS class 10 match vxlan ip protocol udp
set qos policy shaper VXLAN-QOS class 10 match vxlan ip destination port 8472
set qos policy shaper VXLAN-QOS class 10 bandwidth 800mbit
set interfaces ethernet eth0 qos egress VXLAN-QOS
commitСравнение технологий
VXLAN vs VLAN
| Характеристика | VXLAN | VLAN |
|---|---|---|
| Идентификатор | 24 бита (16M) | 12 бит (4096) |
| Масштабируемость | Очень высокая | Ограничена |
| Работает через L3 | Да | Нет |
| Overhead | 50 байт | 4 байта |
| Сложность | Высокая | Низкая |
| Применение | Data center, cloud | Campus, enterprise |
VXLAN vs GRE
| Характеристика | VXLAN | GRE |
|---|---|---|
| Уровень | L2 over L3 | L3 over L3 |
| Multicast | Поддерживается | Нет |
| NAT traversal | Да (UDP) | Ограничено |
| Идентификатор | VNI (24 бит) | Key (32 бит) |
| Масштабируемость | Высокая | Средняя |
VXLAN vs MPLS L2VPN
| Характеристика | VXLAN | MPLS L2VPN |
|---|---|---|
| Протокол | UDP | MPLS |
| Сложность | Средняя | Высокая |
| Стоимость | Низкая | Высокая |
| Control plane | BGP EVPN/Multicast | LDP/BGP |
| Применение | Cloud/DC | Service provider |
Лучшие практики
- MTU планирование - всегда вычитайте 50 байт от underlay MTU
- Source на loopback - для стабильности при failover
- Unicast для облаков - multicast обычно не поддерживается
- Firewall underlay - разрешайте UDP 8472 только от известных VTEP
- Мониторинг FDB - отслеживайте размер forwarding database
- BGP EVPN для продакшна - автоматизация в больших инсталляциях
- Jumbo frames - если underlay поддерживает
- VNI plan - документируйте назначение VNI
- Overlay security - используйте firewall на overlay интерфейсах
- Testing - тестируйте failover сценарии
Ограничения
- VXLAN добавляет overhead 50 байт (IPv4) или 70 байт (IPv6)
- Инкапсуляция использует CPU (рекомендуется hardware offload)
- Multicast VXLAN не работает в большинстве облачных провайдеров
- Требуется тщательное планирование MTU
- FDB таблицы могут расти в больших сетях
- Debugging сложнее чем обычные L2/L3 сети
Примеры для конкретных сценариев
Kubernetes Overlay
# VXLAN для Kubernetes pod network
set interfaces vxlan vxlan-pods vni 1000
set interfaces vxlan vxlan-pods source-interface eth0
set interfaces vxlan vxlan-pods remote 10.0.0.20
set interfaces vxlan vxlan-pods mtu 1450
set interfaces bridge kube-bridge
set interfaces bridge kube-bridge member interface vxlan-pods
set interfaces bridge kube-bridge address 10.244.0.1/24
commitMulti-DC DCI (Data Center Interconnect)
# DC1 VTEP
set interfaces loopback lo address 198.51.100.1/32
set interfaces vxlan vxlan-dci vni 5000
set interfaces vxlan vxlan-dci source-address 198.51.100.1
set interfaces vxlan vxlan-dci remote 203.0.113.1
set interfaces vxlan vxlan-dci mtu 1450
# QoS для DCI
set qos policy shaper DCI bandwidth 10gbit
commitNFV Service Chaining
# VNF1 -> VXLAN -> VNF2 -> VXLAN -> VNF3
# VXLAN сегменты
set interfaces vxlan vxlan-vnf1-vnf2 vni 2001
set interfaces vxlan vxlan-vnf1-vnf2 source-interface eth0
set interfaces vxlan vxlan-vnf1-vnf2 remote 192.0.2.20
set interfaces vxlan vxlan-vnf2-vnf3 vni 2002
set interfaces vxlan vxlan-vnf2-vnf3 source-interface eth0
set interfaces vxlan vxlan-vnf2-vnf3 remote 192.0.2.30
# Bridges для service chaining
set interfaces bridge br-vnf1
set interfaces bridge br-vnf1 member interface vxlan-vnf1-vnf2
set interfaces bridge br-vnf1 member interface eth1
set interfaces bridge br-vnf2
set interfaces bridge br-vnf2 member interface vxlan-vnf2-vnf3
set interfaces bridge br-vnf2 member interface eth2
commitСледующие шаги
- Bridge интерфейсы - L2 bridging и VLAN-aware mode
- GRE туннели - альтернативная туннельная технология
- VRF - изоляция routing таблиц для multi-tenancy
- BGP - control plane для VXLAN fabric
- Firewall - защита VXLAN overlay и underlay
- QoS - приоритизация VXLAN трафика