Я пытался найти способ разрешить серверу в определенной подсети отправлять широковещательные рассылки UDP по нескольким подсетям. Сценарий такой:
В сети A (192.168.1.0/24) у нас есть резервный сервер (с использованием urbackup), сервер использует автоматическое обнаружение хостов LAN с использованием широковещательной передачи UDP, каждые 50 секунд он отправляет широковещательную рассылку, это отлично работает в сети A.
Но у нас также есть удаленный сайт (192.168.5.0/24), который также должен использовать этот резервный сервер, но поскольку автоматическое обнаружение там не работает, мы должны вручную добавить все серверы.
Сервер urbackup будет отправлять широковещательную рассылку UDP на каждом указанном сетевом интерфейсе, поэтому я могу добавить еще один интерфейс с IP 192.168.5.X, но мне нужен способ передачи широковещательной передачи на удаленный сайт.
Я пробовал настроить туннель GRE и использовать мост для соединения двух сетей, но это не сработало (либо я сделал это неправильно, либо я что-то пропустил). Я установил две виртуальные машины и попробовал следующее:
gre1:
ip link set dev ens192 down
ip link add gretap1 type gretap local 192.168.1.X remote 192.168.5.X
ip link set dev gretap1 up
ip link set dev ens192 up
brctl addbr br1
brctl addif br1 gretap1
brctl addif br1 ens192
ip addr add 10.0.0.1/24 dev br1
ip link set br1 up
gre5:
ip link set dev ens192 down
ip link add gretap1 type gretap local 192.168.5.X remote 192.168.1.X
ip link set dev gretap1 up
ip link set dev ens192 up
brctl addbr br1
brctl addif br1 gretap1
brctl addif br1 ens192
ip addr add 10.0.0.2/24 dev br1
ip link set br1 up
После двух дней возиться с GRE, в настоящее время, если я попробую вышеуказанную конфигурацию, произойдет сбой, на котором размещен ESX gre1 (не знаю почему).
Вот наша сетевая диаграмма (мы используем pfsense 2.4 на обоих сайтах)
Я также думал о настройке L2TP VPN на сайте B, но может ли он предоставить IP-адреса из той же подсети, что и DHCP?
Трафик UDP Broadcast обычно не пересылается через вашу VPN pfsense.
Есть очень короткая программа на c (источник здесь) называется udp-proxy, который должен решить вашу проблему.
Вам нужно запустить две копии udp-proxy: одну на сервере на вашем 192.168.5.0/24, а другую копию на сервере 192.168.1.0/24.
Предположим, что ваше программное обеспечение для резервного копирования транслируется на порт 5000, тогда вы должны:
udp-proxy 5000 $IP_OF_SERVER_ON_OTHER_SIDE_OF_VPN
Затем на этом удаленном сервере вы должны:
udp-proxy 5000 192.168.1.255 # to forward to the broadcast address