我一直在试图find一种方法来允许certin子网中的服务器通过多个子网发送UDP广播。 情况是这样的:
在networkingA(192.168.1.0/24)我们有一个备份服务器(使用urbackup),服务器使用UDP广播自动发现局域网主机,每隔50秒发送一次广播,这在networkingA中工作正常。
但是我们也有一个远程站点(192.168.5.0/24)也需要使用这个备份服务器,但是由于自动发现在那里不起作用,我们必须手动添加所有的服务器。
urbackup服务器将在每个指定的networking接口上发送一个UDP广播,所以我可以添加另外一个IP 192.168.5.X的接口,但是我需要一种方法来将广播传送到远程站点。
我已经尝试build立一个GRE隧道,并使用桥接来连接这两个networking,但这并不起作用(要么我没有正确做,否则我错过了一些东西)。 我已经安装了两个虚拟机,并尝试以下操作:
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之后,如果我尝试上面的configuration,会崩溃ESX gre1托pipe(不知道为什么)。
这里是我们的networking图(我们在两个站点上都使用pfsense 2.4)
我也想过在B站点上build立一个L2TP VPN,但是它可以提供与DHCP相同的子网的IP吗?
UDP广播stream量通常不会通过您的pfsense VPN转发。
有一个非常短的c程序( 来源在这里 )称为udp代理,应该解决您的问题。
您需要运行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