Рейтинг:1

VXLAN L3 через Wireguard L3 с сопоставлением VLAN-VNI

флаг in

Надеюсь, что это правильное место - я первоначально разместил сообщение в Network Engineering, но оно было закрыто, и мне указали на сбой сервера.

В настоящее время я пытаюсь настроить мост L2 между двумя сайтами, используя VXLAN для обеспечения подключения L2 и Wireguard в качестве транспорта/L3. Раньше я делал подобный мост уровня 2, используя GRE через Wireguard, и он был надежным, но сейчас я пытаюсь лучше понять VXLAN и собираюсь заменить туннель GRE на VXLAN.

Я пытался использовать информацию как здесь и здесь но хоть убей меня, я не могу заставить трафик передаваться по IP-адресам без защиты проволоки между сайтами.

У меня есть две машины Debian с установленными утилитами моста. Они также используют nftables с правилами для отбрасывания всего DHCP-трафика, поскольку, когда я впервые настроил туннель GRE, я столкнулся с тем, что машины получили назначенные IP-адреса из удаленной сети. Но все остальное настроено на разрешение, и оно доступно только извне через порт Wireguard.

Хост A настроен с помощью:

Wireguard WG0 - 172.30.100.1/24
Мост бр0 - 10.0.0.160/24

Хост B настроен с помощью:

Wireguard WG0 - 172.30.100.2/24
Мост бр0 - 10.1.0.160/24

Разрешенные IP-адреса в конфигах Wireguard только для подсети Wireguard 172.30.100.0/24. Это работало с конфигурацией GRE, и я предполагаю, что будет работать и с VXLAN, поскольку трафик VXLAN инкапсулируется в туннеле Wireguard. Хосты могут пинговать и ssh друг друга на своих IP-адресах Wireguard, так что этот бит работает нормально.

Оба моста имеют порт ens18, поддержка моста vlan да и Мост-видео 1-4096 в /etc/сеть/интерфейсы

У меня есть сценарий, основанный на «Рецепте 2» из первой ссылки, которую я разместил выше, то есть один туннель с несколькими VNI. Идея в том, что скрипт добавляет интерфейс VXLAN vx0 к бр0, который ждет до тех пор, пока WG0 работает (используя службу systemd), а затем выполняет сопоставление VLAN/VNI.

#!/бин/баш

# Получает IP-адрес интерфейса Wireguard.
wgip=`ip as wg0 | egrep -o 'inet [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3 }' | вырезать -d'' -f2`

ip link add vx0 type vxlan dstport 4789 external local $wgip dev wg0 # Создает vxlan с IP-адресом wg0 как локальный
#Вот здесь я могу ошибаться, но я пробовал разные комбинации ^^^

спать 1
ip link set dev vx0 master br0 # Добавляет vxlan в мост
bridge link set dev vx0 vlan_tunnel on # Включает туннель vlan на vxlan

# Сопоставляет каждую VLAN с VNI через туннель.
для vlan в 10 20 30; делать
        мост vlan добавить видео $vlan dev vx0
        мост vlan добавить видео $vlan dev ens18
        мост vlan добавить dev vx0 vid $vlan туннель_информация id $vlan

# Думаю, я могу удалить строку ниже, если я переключусь на BGP-EVPN для обучения позже?
мост fdb добавить 00:00:00:00:00:00 dev vx0 vni $vlan dst 10.1.0.160

сделано

ip link set dev vx0 up

Я могу быть совершенно на неправильном пути здесь, но если есть что-то, что выглядит не так, как указано выше, любое руководство в правильном направлении будет очень признательно!

(Это может быть даже просто маршрутизация, а не конфигурация. Конфигурация Wireguard настроена на Table = off, что я сделал в конфигурации GRE / WG)

ОБНОВИТЬ Похоже на внешний флаг в vx0 линия установки вызывает драмы. Если я изменю его на приведенный ниже, а также изменю статическую запись FDB на удаленную WG0 IP, а не удаленный ens18 IP, я могу пинговать хост для хоста:

IP-ссылка добавить тип vx0 vxlan dstport 4789 vni 1000 локальный $wgip dev wg0

Тогда похоже, что нетегированный трафик проходит через VNI 1000, а VID 10, 20 и 30 сопоставляются с соответствующими VNI.

Что это внешний флаг сделать, чтобы исходная конфигурация не работала? Это отсутствие явного отображения VID 1?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.