VXLAN
Встала задача поменять туннели филиалов с ipsec на wireguard без возни с телефонией за NAT-ом — всех этих STUN/TURN и прочих непотребств. Пришлось осваивать L2 поверх L3.
Примеры проброса
Через WireGuard
адреса привязки VXLAN следует указывать IP другой стороны туннеля, а не собственный.
Скриптом
| Сервер | WireGuard | wg | 192.168.252.254/24 |
ip li a vxwg type vxlan id 50000 dstport 4789 dev wg
bridge fdb append to 00:00:00:00:00:00 dst 192.168.252.244 dev vxwg
ip a a 172.22.22.254/24 dev vxwg
ip li set up vxwg
|
|---|---|---|---|---|
| VXLAN | vxwg | 172.22.22.254/24 | ||
| Где | Интерфейс | Имя | Адрес | Команды в скрипте (отличия только в адресах) |
| Клиент | WireGuard | wg | 192.168.252.244/24 |
ip li a vxwg type vxlan id 50000 dstport 4789 dev wg
bridge fdb append to 00:00:00:00:00:00 dst 192.168.252.254 dev vxwg
ip a a 172.22.22.244/24 dev vxwg
ip li set up vxwg
|
| VXLAN | vxwg | 172.22.22.244/24 |
Проверить пробросы по мосту можно командой $ /sbin/bridge fdb show dev vxwg.
Посредством systemd-networkd
...заработало благодаря коллеге после задания опций Independent и ConfigureWithoutCarrier (см. ниже).
Показаны конфиги одной стороны: на другой следует просто поменять меж собой последние октеты обоих адресов в vxwg.network.
/etc/systemd/network/vxwg.netdev |
/etc/systemd/network/vxwg.network
|
|---|---|
[NetDev]
Name = vxwg
Kind = vxlan
[VXLAN]
VNI = 50000
Independent = true
DestinationPort = 4789
|
[Match]
Name = vxwg
[Network]
Address = 172.22.22.254/24
ConfigureWithoutCarrier = yes
[BridgeFDB]
MACAddress = 00:00:00:00:00:00
Destination = 192.168.252.244
|
bridge fdb (Forward DataBase) может быть больше одного — например, на общем сервере, до которого строятся туннели от филиалов. И задать их все можно как командами, так и добавочными секциями в vxwg.network.
Иные варианты
А вот пробросить VXLAN между адресами из разных подсетей, пусть и смаршрутизированных — к примеру, на работе (192.168.7.1) и дома (172.31.105.6) — не получается.
То есть, точки соединения должны быть как минимум в одной сети. Так что оно хоть и поверх L3, но в довольно стеснённых границах.