我在运行Ubuntu 16.04的三个VirtualBox虚拟机上configuration了OpenVPN。
networkingconfiguration如下: networkingconfiguration图 。
服务器configuration:
local 192.168.2.2 port 1194 proto udp dev tap0 ca ca.crt cert server.crt key server.key dh dh2048.pem ifconfig-pool-persist ipp.txt server-bridge 192.168.0.2 255.255.255.0 192.168.0.50 192.168.0.100 client-to-client keepalive 10 20 cipher AES-128-CBC comp-lzo persist-key persist-tun verb 3
客户端configuration:
client dev tap proto udp remote 192.168.2.2 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client1.crt key client1.key cipher AES-128-CBC comp-lzo verb 3
我正在使用OpenVPN随附的网桥启动和网桥停止脚本来使用网桥。 连接打开没有问题。 我可以从客户端ping服务器和服务器的客户端。 问题是我无法ping客户端到客户端,例如ping从远程客户端(lab3)到另一个客户端(lab2),只能From 192.168.0.50 icmp_seq=1 Destination Host Unreachable 。
看来这个问题与ARP有关,因为当我在服务器上的br0的tcpdump上,我看到有一个问题ARP, Request who-has 192.168.0.1 tell 192.168.0.50, length 28 。 然后在客户端(lab2)上看到:
ARP, Request who-has 192.168.0.1 tell 192.168.0.50, length 46 ARP, Reply 192.168.0.1 is-at 08:00:27:c8:1c:c7, length 28
但答复似乎没有达到任何机器。
当OpenVPN连接打开时,路由表似乎是正确的:
服务器:
default via 10.0.2.1 dev enp0s3 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.4 192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.2 192.168.2.0/24 dev enp0s9 scope link 192.168.2.0/24 dev enp0s9 proto kernel scope link src 192.168.2.2
客户:
default via 10.0.2.1 dev enp0s3 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.7 192.168.0.0/24 dev enp0s8 proto kernel scope link src 192.168.0.1
远程客户端:
default via 10.0.2.1 dev enp0s3 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.6 192.168.0.0/24 dev tap0 proto kernel scope link src 192.168.0.50 192.168.2.0/24 dev enp0s8 proto kernel scope link src 192.168.2.1
任何想法如何让消息在两个客户端之间stream动? 我做错了什么或缺lessconfiguration中的东西吗?
这是通过将GW的networking适配器连接到192.168.0.0/24networking从VirtualBox设置为混杂模式解决的,因此桥接的接口处于混杂模式。 总而言之,VirtualBox需要混合模式才能够正确桥接,但至less我可以在这里提及它!
你应该检查你的VPN服务器是否启用了ipv4转发:
cat /proc/sys/net/ipv4/ip_forward
1 =启用,0 =禁用
启用它:
echo 1 > /proc/sys/net/ipv4/ip_forward
要使此设置在重新启动后生效,请确保以下行位于/etc/sysctl.conf中:
net.ipv4.ip_forward = 1