OpenVPN连接隧道

我现在正在为一个特定的OpenVPN场景苦苦挣扎几个月。 研究谷歌,阅读Serverfault,浏览博客和其他论坛,一次又一次搞乱我的configuration。 我不知道,如果我的要求甚至在逻辑上工作。

这里的场景:

我有一个租用的根服务器,我使用它来进行多种服务,云存储,备份等。为了简单起见,我们调用元素Client1和Client2和Server1。

Server1正在使用tun-Device。

  • Client1物理networking:192.168.1.0/24
  • Client2物理networking:192.168.178.0/24
  • Client1物理IP:192.168.1.4
  • Client2物理IP:192.168.178.22

  • Server1虚拟networking:192.168.2.0/24

  • Server1 VPN-IP:192.168.2.1
  • Client1 VPN-IP:192.168.2.6
  • Client2 VPN-IP:192.168.2.10

这两个客户端都可以连接到VPN服务器并使用它的服务。 这两个客户端都可以成功地ping服务器VPN-IP。 Server1不能ping客户端VPN-IP。 两个客户端不能ping通VPN-IP。

我想要连接两个客户端,以便它们可以在物理LAN中进行通信,但是却无法这样做。

这是我的configuration。

服务器configuration:

port 1195 proto tcp-server dev tun1 ca keys/server1/ca.crt cert keys/server1/openvpn-server.crt key keys/server1/openvpn-server.key dh keys/server1/dh4096.pem server 192.168.2.0 255.255.255.0 crl-verify keys/server1/crl.pem ifconfig-pool-persist servers/server1/logs/ipp.txt cipher AES-256-CBC user nobody group nogroup status servers/server1/logs/openvpn-status.log log-append servers/server1/logs/openvpn.log verb 2 mute 20 max-clients 100 local XXX.XXX.XXX.245 management 127.0.0.1 8877 keepalive 10 120 client-config-dir /etc/openvpn/servers/server1/ccd client-to-client comp-lzo persist-key persist-tun ccd-exclusive push "redirect-gateway def1" push "dhcp-option DNS XXX.XXX.XXX.98" push "route 192.168.2.0 255.255.255.0" 

Client1configuration:

 client proto tcp-client dev tun ca ca.crt dh dh4096.pem cert user1.crt key user1.key remote XXX.XXX.XXX.245 1195 cipher AES-256-CBC verb 2 mute 20 keepalive 10 120 comp-lzo persist-key persist-tun float resolv-retry infinite nobind push "route-gateway 192.168.2.1" 

除了证书,Client2的configuration完全一样。

在服务器上/etc/sysctl.conf包含条目net.ipv4.ip_forward = 1客户端 – 防火墙已经过调整,让OpenVPN通过。 每个IPEnableRouterregistry交换机上的客户端都会激活IP转发。

IP-Tables只有一个特定的额外规则,以允许访问互联网。

 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to XXX.XXX.XXX.245 

大多数常见问题解答,教程或博客文章讨论连接多个不同VPN的客户端。 我想有我的客户在同一个VPN。 我心有余而力不足,连客户端都无法ping通。 这甚至是可能的,还是我完全误解了VPN的概念?

我会很感激你能给我的每一个提示,来解决这个自创的问题。

编辑:Traceroute客户端1 – >服务器1

 traceroute to 192.168.2.1 (192.168.2.1), 30 hops max, 60 byte packets 1 19 ms 18 ms 18 ms 192.168.2.1 

Traceroute Client1 – > Client2

 traceroute to 192.168.2.10 (192.168.2.10), 30 hops max, 60 byte packets 1 * * * 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 * * * 14 * * * 15 * * * 16 * * * 17 * * * 18 * * * 19 * * * 20 * * * 21 * * * 22 * * * 23 * * * 24 * * * 25 * * * 26 * * * 27 * * * 28 * * * 29 * * * 30 * * * 

Traceroute Server1到Client1的结果与Client1到Client2相同

我不知道为什么会这样,但是解决办法是closures客户端到客户端。 当我启用客户端到客户端时,openVPN忽略了我设置的网关,而traceroute甚至没有到达VPN-Server。 closures后,traceroute终于通过网关路由。 调整防火墙以打开VPN,它通过2跳。

说实话,这是令人难以置信的,因为客户对客户的定义正好相反。 我会尝试在一个新的环境中重现这一点,因为我将客户端与客户端closures,导致了一点胃痛。 但现在我只是接受它。