在通过VPN连接的客户端上接收特定的多播消息

时间:2018-11-06 11:51:33

标签: networking multicast pptp

情况: [子网A,animations: [ trigger('toggle', [ state( VisibilityState.Hidden, style({ transform: 'scaleY(0.2)' }) ), state( VisibilityState.Visible, style({ transform: 'scaleY(1)' }) ), transition('* => *', animate('200ms ease-in')) ]) ] ,基于Padavan固件的Internet gw]

[子网B,192.168.2.0/24,基于Padavan固件的Internet gw]

来自子网A(2.155)的主机通过VPN(可能的选项:PPTP,OpenVPN,不带ipsec的L2TP)连接到子网B,并接收地址为192.168.1.0/24

在子网B中存在主机(1.245/32),该主机将多播数据报发送到1.10/32;在路由器上,我看到了

224.0.0.50:9898

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

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

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

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

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

欢迎任何想法。

[UPD]其他信息-每个评论中的讨论

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

2 个答案:

答案 0 :(得分:0)

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

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

在子网A中,我在控制主机上安装了openvpn客户端,该客户端连接到子网B,分配的接口为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也可以在针对多播转发的信息过滤器上进行优化。

答案 1 :(得分: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