Перейти до вмісту
EuroVPSEuroVPS

Розтягування VLAN між сайтами за допомогою WireGuard і VXLAN

Як розширити сегмент Layer 2 між двома локаціями через WireGuard і VXLAN на Linux: арифметика MTU, компоновка bridge, захист від петель, порядок міграції.

Автор EuroVPS Engineering

5 хв читання
Stretching a VLAN between sites with WireGuard and VXLAN

Найдорожча частина зміни провайдера рідко полягає в серверах. Це адреси: кожен запис DNS, правило firewall, ліцензійний ключ і allow list партнера, у які вписані ваші IP. Якщо той самий VLAN може існувати в обох місцях, поки ви переїжджаєте, нічого з цього не треба міняти. Ось як будується розширення Layer 2 зі звичайних частин Linux і що треба зробити правильно, перш ніж довіряти йому робочий трафік.

Навіщо взагалі розтягувати

Зміна адресації змушує робити cutover великим вибухом: усе переїжджає за одну ніч, або нічого. Розтягнутий VLAN перетворює це на багато малих кроків. Сервер, який уже переїхав, і сервер, який ще ні, ділять підмережу і шлюз, тож ви можете перемістити один хост, протестувати його на новому місці і повернути назад, якщо щось не так. Ціна є тимчасовим тунелем; економія є тижнями зміни адресації і ніччю cutover без шляху назад.

Звичайне заперечення полягає в тому, що Layer 2 між сайтами крихкий. Так і є, якщо його побудовано як плаский bridge через інтернет. Побудований як шифрований overlay на кожен VLAN, що приземляється в належному fabric, він є добре вихованим інструментом міграції.

Будівельні блоки

Чотири частини, усі в основному ядрі Linux:

  1. WireGuard для шифрованого шляху точка-точка між двома кінцевими точками. Він малий, швидкий і майже не має нічого, що можна налаштувати неправильно.
  2. VXLAN поверх WireGuard, один інтерфейс VXLAN на кожен розтягнутий VLAN, щоб кожен сегмент залишався окремим усередині тунелю.
  3. Linux bridge на кожен VLAN, що з’єднує інтерфейс VXLAN з локальним VLAN.
  4. Субінтерфейс VLAN на trunk кінцевої точки в бік локального switch.

На кожній кінцевій точці, для одного VLAN, форма така:

# encrypted underlay
ip link add wg0 type wireguard
wg setconf wg0 /etc/wireguard/wg0.conf
ip address add 10.255.0.1/30 dev wg0
ip link set wg0 up

# one VXLAN per stretched VLAN, unicast to the far end over the tunnel
ip link add vx210 type vxlan id 210 local 10.255.0.1 remote 10.255.0.2 dstport 4789
ip link add br210 type bridge
ip link add link eth1 name eth1.210 type vlan id 210
ip link set vx210 master br210
ip link set eth1.210 master br210
ip link set vx210 up; ip link set eth1.210 up; ip link set br210 up

Зробіть це постійним через NetworkManager або systemd-networkd, щойно воно запрацює; форма команд є найяснішим способом побачити шари.

Спочатку правильно задайте MTU

Майже кожна проблема «ping проходить, а застосунок зависає» на розтягнутому VLAN є MTU. Кожен шар додає накладні витрати:

  • WireGuard додає 60 байтів через IPv4 (80 через IPv6).
  • VXLAN додає 50 байтів (зовнішній Ethernet, IP, UDP і заголовок VXLAN).

Зі стандартним шляхом 1500 байтів між сайтами повний кадр 1500 байтів від сервера не вміститься. У вас є два чесні варіанти: підняти MTU шляху underlay (якщо оптичний шлях і обидва кінці підтримують jumbo frames, це чиста відповідь) або знизити MTU на розтягнутому сегменті на час міграції. Чого не можна робити, так це сподіватися, що фрагментація все владнає. Тестуйте ping з don’t-fragment на розмірі, якого очікуєте:

ping -M do -s 1472 <host-on-far-side>

Збережіть захист від петель

Розтягнутий VLAN з’єднує два домени Layer 2, і спокусливе виправлення для скарг spanning tree полягає в тому, щоб вимкнути spanning tree на порту. Не робіть цього. Фільтруйте BPDU лише там, де під’єднується кінцева точка розширення, щоб дві сторони не зливали свої домени spanning tree, тоді як кожен інший порт зберігає повний захист від петель. І ніколи не будуйте два паралельні розширення для одного VLAN, якщо щось явно не заважає обом бути активними одночасно.

Приземліть його у справжньому fabric

На приймальному боці trunk кінцевої точки має приземлятися на звичайний порт switch у fabric, щоб розтягнутий VLAN став нормальним сегментом: той самий шлюз, те саме подвійне підключення, той самий моніторинг, що й у будь-якого рідного. Якщо ваші номери VLAN конфліктують з номерами, які вже використовуються в місці призначення, зіставте їх з вільним діапазоном на вході і ведіть записану таблицю відповідності. У fabric EVPN виводьте ідентифікатор сегмента з локального номера призначення, ніколи з номера джерела, щоб власне правило нумерації fabric і далі діяло.

Плануйте пропускну здатність

Шифрування плюс інкапсуляція є роботою для CPU, і один тунель на даній кінцевій точці має стелю пропускної здатності, задану цією роботою. Її вистачає для більшості міграцій, але це реальна стеля. Виміряйте її на обладнанні вашої кінцевої точки перед міграцією за допомогою iperf3 через тунель, закріпіть переривання і роботу тунелю за виділеним ядром і вирішіть заздалегідь, за якого навантаження ви додаєте другий тунель на другому ядрі і розділяєте VLAN між ними.

Порядок міграції, який працює

  1. Побудуйте розширення і протестуйте його з одноразовим хостом на кожному боці.
  2. Перевірте MTU наскрізь на повному розмірі кадру.
  3. Спочатку перемістіть сервер з низьким ризиком. Перевірте досяжність шлюзу, DNS, моніторинг і backup з його нового місця.
  4. Переміщуйте решту партіями, які відповідають залежностям вашого застосунку (репліки баз даних перед primary, воркери перед front end).
  5. Перемістіть шлюз останнім, коли більша частина трафіку вже локальна для нового боку.
  6. Приберіть розширення лише тоді, коли ніщо на старому боці більше не відповідає в сегменті.

Перш ніж почати, перевірте

  • Чи тунель шифрований наскрізь, а не просто «на приватній лінії»?
  • Чи знаєте ви стелю MTU шляху, виміряну, а не припущену?
  • Чи обмежено фільтрування BPDU портами розширення?
  • Чи є записана таблиця відповідності VLAN?
  • Чи маєте ви виміряну стелю пропускної здатності і план на випадок її перевищення?

Ми будуємо такі розширення між власними сайтами і з будь-якої локації, до якої можемо дістатися оптикою, щоб клієнти переїжджали до нас без зміни адресації. Якщо ви плануєте переїзд і хочете, щоб адреси залишилися на місці, ми радо спланували б його разом з вами.

Поговоріть з інженером

Related (rows[1])

Пов’язане: Переїзд до нас без зміни адрес: розширення Layer 2 · Fabric датацентру: EVPN/VXLAN на Cisco Nexus · Шифрований backbone між сайтами: DMVPN mesh

Опубліковано 1 вересня 2026 р..

Усі нотатки з практики