OpenVPN - OpenVZ - 多播以及如何启用它

OpenVPN - OpenVZ - 多播以及如何启用它

大家好

我的应用程序主要使用多播数据包

IP = 224.8.0.1

我已经在普通 Wifi/以太网和托管网络上进行了测试,一切正常。

问题:

我的 OpenVZ 服务器运行 OpenVPN:UDP。我的应用程序应该允许多播数据包通过 VPN 并被连接到 VPN 的任何其他客户端接收,但事实并非如此。

我在 OpenVPN tun0 适配器上执行了 tcpdump,没有发送多播流量,但是在发送方,wireshark 检测到正在发送的流量。

经过研究,我偶然发现了这篇文章

https://openvpn.net/archive/openvpn-devel/2004-04/msg00032.html

我会尝试切换到“dev tap”(无桥接)看看是否有帮助。

我确实看到过一些关于多播/igmp 无法在 tun 设备上运行的旧报告,但也读过一些关于它“现在可以运行”的报告...

另外,请确保您已在 tun 设备上禁用 rp_filter,因为多播地址未通过“rp_filter”检查(/proc/sys/net/ipv4/conf/*/rp_filter)

我无法切换到 tap,因此我尝试 echo 1 > ../../rp_filter 但它是写保护的。

根据另一篇文章,以下是3 种可能的解决方案

https://community.openvpn.net/openvpn/ticket/79

(1)让内核进行路由。这意味着在隧道的每一端都回退到一个 OpenVPN 守护进程,就像在 1.x 中一样。

(2)在多客户端模式下,使用 OpenVPN 2.0 中的 tun 接口。这会将多播视为广播。

(3)使用多播隧道 - 这将通过封装在 IP-in-IP 容器中的 OpenVPN 来传输多播数据包,这应该可以正常工作。

另一个[可能][3]的解决方案是:

您需要嗅探并拦截传入的 IGMP 数据包、维护多播路由状态并根据新引入的多播转发表复制多播数据包。

选项(3)似乎最合适,但我不知道如何设置。

有人可以帮我吗?

服务器配置文件

port 1025
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh2048.pem

server 10.0.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
route 10.0.0.2 255.255.255.252
push "redirect-gateway def1"

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

client-to-client

keepalive 10 120
comp-lzo no

user nobody
group nogroup

persist-key
persist-tun

status openvpn-status.log
log-append  openvpn.log
verb 4

#possible bandwidth increase
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
push "remote-gateway x.x.x.x"
push "dhcp-option DNS 8.8.8.8"
ccd-exclusive

#for checking active clients
management localhost 7505

iptables 很好,我最近添加了

iptables -A 输入 -i tun0 -m pkttype --pkt 类型多播 -j 接受

iptables -A 输入 -i tun0 --protocol igmp -j 接受

但没有运气

相关内容