0

案例:[ 子网 A , 192.168.2.0/24, Padavan 基于固件的互联网 gw ]

[ 子网 B , 192.168.1.0/24, Padavan 基于固件的互联网 gw ]

来自子网 A (2.155) 的主机通过 VPN(可能的选项:PPTP、OpenVPN、L2TP w/o ipsec)连接到子网 B,并接收地址,说1.245/32

在子网 B 中存在主机(1.10/32),它将多播数据报发送到224.0.0.50:9898;在路由器上,我看到它们

tcpdump -i br0 -c 10 dst host 224.0.0.50 and port 9898 and multicast

13:46:54.345369 IP 192.168.1.10.4321 > 224.0.0.50.9898: UDP, length 135

我正在寻找解决方案来接收/转发这些广播消息,以便主机可以看到它们,通过 VPN 连接

在基于 Padavan 固件的路由器 B 上,如果需要,我有,并且仅限于 udpxy、igmproxy 实用程序。

在客户端主机上,我是基于 debian 的,并且通常不受工具限制。

数据报是专有协议,即不是 iptv 或视频流。

欢迎任何想法。

[UPD] 附加信息 - 评论中的每个讨论

那是一个非常特殊的硬件设备,在以太网方面不是很健谈(说最多 1-2 个数据报在 5 秒内),因此肯定应该是相当可转发的。不幸的是,它纯粹通过广播发送状态更新。在子网 A 中确实存在类似的设备 + 控制软件。因此,我正在寻找一种数据报广播到子网 B 中的 224.0.0.50:9898 以重新出现在子网 A 中的方式。可能需要一些工具的帮助。可能是 smcroute,可能是 udpxy,也可能是 igmproxy

4

2 回答 2

0

由于我不想留下未解决的已解决问题,因此这里是当前有效的解决方案

在子网 BI 中安装了 openVPN 服务器端点,配置为 L2。

在子网 A 中,我在控制主机上安装了连接到子网 B 的 openvpn 客户端,分配的接口是 tapz

20: tapz: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/ether 0a:da:be:96:78:d9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.245/24 brd 192.168.1.255 scope global noprefixroute tapz
       valid_lft forever preferred_lft forever
    inet6 fe80::8da:beff:fe96:78d9/64 scope link 
       valid_lft forever preferred_lft forever

所以现在在控制主机上我有:

从物理以太网 enp5s0 上的本地设备广播

sudo tcpdump -i enp5s0 -c 10 dst host 224.0.0.50 and port 9898 and multicast
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp5s0, link-type EN10MB (Ethernet), capture size 262144 bytes
13:55:05.642963 IP lumi-gateway-v3_miio56591509.4321 > 224.0.0.50.9898: UDP, 
length 136

现在我还收到了来自 Tapz 上远程网络设备的广播

sudo tcpdump -i tapz -c 10 dst host 224.0.0.50 and port 9898 and multicast
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tapz, link-type EN10MB (Ethernet), capture size 262144 bytes
13:53:49.141751 IP 192.168.1.10.4321 > 224.0.0.50.9898: UDP, length 135

到目前为止,我正在寻找我在 VPN 客户端上获得必要的数据报。远程端的 OpenVPN 也可以在为多播转发的信息过滤器上进行优化。

于 2018-12-09T14:57:21.503 回答
0

对于那些来到这里的人来说,同样的问题。

当您在 tap0 上进行必要的多播时,

您可以从 eth0 和 tap0 创建网桥

对于每个有兴趣的人的笔记,谁会来这里。

ip link add br0 type bridge
ip link set tap0 master br0
ip link set eth0 master br0

POC - 单个接口上的多播

sudo tcpdump -i br0 dst host 224.0.0.50 and port 9898
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
21:09:51.823632 IP 192.168.1.10.4321 > 224.0.0.50.9898: UDP, length 135
21:09:55.045138 IP 192.168.2.214.4321 > 224.0.0.50.9898: UDP, length 136
于 2019-01-02T20:24:33.690 回答