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'
commit

MTU

Рекомендуется уменьшить MTU из-за overhead от инкапсуляции:

set interfaces vxlan vxlan100 mtu 1450
commit

VXLAN добавляет 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 группа для данного VNI
  • mtu - максимальный размер пакета

Как работает:

  1. BUM трафик отправляется в multicast группу
  2. Все VTEP в группе получают трафик
  3. VTEP изучают MAC-адреса и строят FDB (Forwarding Database)
  4. 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 для автоматического распространения
commit

4. 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

commit

Site 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

commit

Loopback адрес не зависит от состояния физических интерфейсов.

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

commit

VXLAN с 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'

commit

VXLAN 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

commit

VK Cloud особенности

Ограничения:

  • Multicast не поддерживается
  • MTU: рекомендуется 1450
  • Firewall: разрешите UDP 8472

Конфигурация Firewall: В панели VK Cloud:

Правило входящего трафика:
- Протокол: UDP
- Порт: 8472
- Источник: IP адреса VTEP

Overlay для 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

Общие рекомендации для облаков

  1. Используйте unicast VXLAN - multicast обычно не поддерживается
  2. MTU 1450 - для предотвращения фрагментации
  3. Security groups/Firewall - разрешите UDP 8472 между VTEP
  4. Source-address на loopback - для стабильности при failover
  5. Мониторинг underlay - проверяйте доступность remote VTEP
  6. 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
commit

Disable ARP

set interfaces vxlan vxlan100 ip disable-arp-filter
commit

IPv6 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        0

FDB (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.1

Traceroute:

traceroute 10.100.0.2 source-address 10.100.0.1

Мониторинг инкапсулированного трафика

monitor interfaces vxlan vxlan100 traffic

Capture 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 brX

Broadcast 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
commit

Remote VTEP недоступен

Проверьте маршрут:

show ip route 192.0.2.20

Проверьте ARP:

show arp interface eth0

Traceroute к remote VTEP:

traceroute 192.0.2.20

VXLAN работает только в одну сторону

Проверьте symmetric конфигурацию на обоих концах:

  • VNI должен совпадать
  • UDP port должен совпадать
  • Remote IP должен указывать на правильный peer

Производительность VXLAN низкая

1. Проверьте CPU load:

show system cpu

VXLAN инкапсуляция использует CPU.

2. Включите offloading (если поддерживается):

show interfaces ethernet eth0 offload

3. Используйте jumbo frames:

# Underlay
set interfaces ethernet eth0 mtu 9000

# VXLAN
set interfaces vxlan vxlan100 mtu 8950

commit

4. Проверьте bandwidth underlay: Возможно bottleneck в физической сети.

Расчет MTU

Стандартный MTU (1500)

VXLAN MTU = Underlay MTU - VXLAN Overhead
VXLAN MTU = 1500 - 50 = 1450

Overhead компоненты:

  • 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 = 1446

VLAN 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 4

Latency:

ping 10.100.0.2 -i 0.2 -c 1000

Packet 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 wg0

Firewall для 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

commit

Rate 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 | count

3. CPU usage:

show system cpu

VXLAN инкапсуляция использует CPU.

4. Underlay health:

ping 192.0.2.20 source-address 192.0.2.10

Logging

Включение 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

commit

OSPF анонсирует 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

ХарактеристикаVXLANVLAN
Идентификатор24 бита (16M)12 бит (4096)
МасштабируемостьОчень высокаяОграничена
Работает через L3ДаНет
Overhead50 байт4 байта
СложностьВысокаяНизкая
ПрименениеData center, cloudCampus, enterprise

VXLAN vs GRE

ХарактеристикаVXLANGRE
УровеньL2 over L3L3 over L3
MulticastПоддерживаетсяНет
NAT traversalДа (UDP)Ограничено
ИдентификаторVNI (24 бит)Key (32 бит)
МасштабируемостьВысокаяСредняя

VXLAN vs MPLS L2VPN

ХарактеристикаVXLANMPLS L2VPN
ПротоколUDPMPLS
СложностьСредняяВысокая
СтоимостьНизкаяВысокая
Control planeBGP EVPN/MulticastLDP/BGP
ПрименениеCloud/DCService provider

Лучшие практики

  1. MTU планирование - всегда вычитайте 50 байт от underlay MTU
  2. Source на loopback - для стабильности при failover
  3. Unicast для облаков - multicast обычно не поддерживается
  4. Firewall underlay - разрешайте UDP 8472 только от известных VTEP
  5. Мониторинг FDB - отслеживайте размер forwarding database
  6. BGP EVPN для продакшна - автоматизация в больших инсталляциях
  7. Jumbo frames - если underlay поддерживает
  8. VNI plan - документируйте назначение VNI
  9. Overlay security - используйте firewall на overlay интерфейсах
  10. 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

commit

Multi-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

commit

NFV 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 трафика

Ссылки

Проверено OpenNix LLC · Обновлено