这是我的客户设置:
Site A Site B
192.168.2.0/24 192.168.0.0/24
Client A1 --|-- Server A Server B --|-- Client B1
| (192.168.2.2) (192.168.0.2) |
| (10.8.0.6) (10.8.0.1) |
Client A2 --|-- Router A ---- Internet ---- Router B --|-- Client B2
| (192.168.2.1) (192.168.0.254) |
Client A3 --| |-- Client B3
服务器 A 通过 OpenVPN 连接到服务器 B,将两个站点相互连接。服务器 A 和服务器 B 都是 Windows Server 2003,现在重新安装了 Windows 2012 R2。现在,以前使用 2003 配置的路由不再起作用。
我在服务器上添加了以下路线:
Server A: 192.168.0.0 mask 255.255.255.0 gw 10.8.0.1
Server B: 192.168.2.0 mask 255.255.255.0 gw 10.8.0.6
通过 DHCP 推送到客户端的路由:
Clients A: 192.168.0.0 mask 255.255.255.0 gw 192.168.2.2
default gw 192.168.2.1
Clients B: 192.168.2.0 mask 255.255.255.0 gw 192.168.0.2
default gw 192.168.0.254
服务器 A(OpenVPN 客户端)上的 OpenVPN 配置
client
dev tun
proto udp
remote dyndns.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert server-sb.crt
key server-sb.key
remote-cert-tls server
comp-lzo
verb 3
服务器 B 上的 OpenVPN 配置(OpenVPN 服务器)
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
ping:
- 服务器 A -> 10.8.0.1 正常
- 服务器 B -> 10.8.0.6 正常
- 服务器 A -> 192.168.2.2 失败
- 服务器 B -> 192.168.0.2 失败
- 任何设备 A -> 任何设备 B 失败
- 任何设备 B -> 任何设备 A 发生故障
测试期间,所有 Windows 计算机上的防火墙均被禁用。我的诊断是 VPN 隧道可以正常工作,但问题要么是 OpenVPN 中的设置阻止了路由,要么是我的路由表中的某些内容被关闭了。
我很确定那是与 Windows 2003 相同的配置,其中每个设备都可以访问两个站点上的所有其他设备。
在路由和远程访问中启用了 IPv4 转发和 LAN 路由。
答案1
在阅读了大量手册页之后,我明白了:我缺少iroute
OpenVPN 服务器配置中的指令。
将这些条目添加到配置后,它就可以正常工作了:
服务器.ovpn
client-config-dir ccd
route 192.168.0.0 255.255.255.0 10.8.0.1
ccd\客户端
iroute 192.168.2.0 255.255.255.0