美好的一天
我的应用程序主要使用组播数据包
ip = 224.8.0.1
我已经在普通的Wifi /以太网和托pipenetworking上进行了testing,这些都很好。
问题:
我的OpenVZ服务器运行OpenVPN:UDP。 我的应用程序应该允许组播数据包stream经VPN,并且可以被连接到VPN的任何其他客户端接收,但是它不会。
我在OpenVPN tun0适配器上做了一个tcpdump,没有发送多播stream量,但是在发送端,wireshark检测到发送的stream量。
经过研究,我遇到了这个post
https://openvpn.net/archive/openvpn-devel/2004-04/msg00032.html
我会尝试切换到“开发水龙头”(无桥接),看看是否有帮助。
我确实看到一些关于multicast / igmp的旧报告不能在tun设备上工作,但也读过了“现在可以正常工作”的报告。
还要确保你已经禁用tun设备上的rp_filter,因为多播地址不能通过'rp_filter'检查(/ proc / sys / net / ipv4 / conf / * / rp_filter)
我不能切换到水龙头,因此我试图回声1> ../../rp_filter,但它是写保护。
基于另一篇文章,这里有3个可能的解决scheme :
https://community.openvpn.net/openvpn/ticket/79
(1)让内核做路由。 这意味着在隧道的每一端回退到一个OpenVPN守护进程,如1.x.
(2)在多客户端模式下使用OpenVPN 2.0中的tun接口。 这将像广播一样对待多播。
(3)使用组播隧道 – 这将通过封装在IP-in-IP容器中的OpenVPN隧道来传送组播数据包,该IP容器应该工作正常。
另一个[可能的] [3]解决scheme是:
您需要嗅探并拦截进入的IGMP报文,维护组播路由状态,并根据新引入的组播转发表复制组播报文。
选项(3)似乎是最合适的,但我不知道如何设置。
有人能帮助我吗?
为server.conf
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 xxxx" push "dhcp-option DNS 8.8.8.8" ccd-exclusive #for checking active clients management localhost 7505
iptables是好的,我最近补充说
iptables -A INPUT -i tun0 -m pkttype -pkt-type multicast -j ACCEPT
iptables -A INPUT -i tun0 – 协议igmp -j ACCEPT
但没有运气