![openVPN - 通过 openVPN 服务器路由流量,该服务器也是另一个 openVPN 服务器的客户端](https://linux22.com/image/722405/openVPN%20-%20%E9%80%9A%E8%BF%87%20openVPN%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%B7%AF%E7%94%B1%E6%B5%81%E9%87%8F%EF%BC%8C%E8%AF%A5%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%9F%E6%98%AF%E5%8F%A6%E4%B8%80%E4%B8%AA%20openVPN%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
我有一个 openVPN 客户端连接到一个具有一组特定路由表的 openVPN 服务器。该 openVPN 服务器也是一个客户端,连接到另一个具有一组不同路由表的 openVPN 服务器。我无法让我的客户端将特定子网路由到第二个 openVPN 服务器。
下面是我使用上述路由表进行的设置的快速说明(希望有帮助):
客户端的 openvpn 客户端配置:
client
dev tun0
proto udp
remote some-domain.com 1195
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
key keys/vpn192-168-128-0.key
cert keys/vpn192-168-128-0.crt
ca keys/ca.crt
log /var/log/openvpn.log
verb 4
route 10.100.0.0 255.255.255.0
route 10.55.128.0 255.255.255.0
服务器1的openvpn服务器配置:
mode server
tls-server
port 1195
proto udp
dev tun1
ca server/keys/ca.crt
cert server/keys/server.crt
key server/keys/server.key
dh server/keys/dh1024.pem
server 10.100.1.0 255.255.255.0
ifconfig-pool-persist ipp.txt
topology p2p
# route these networks
route 192.168.128.0 255.255.240.0
route 10.55.128.0 255.255.255.0
client-to-client
# client specific configs in here
client-config-dir ccd
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status-vpn100.log
log /var/log/openvpn-server.log
verb 4
服务器1的客户端配置到服务器2:
client
dev tun0
proto udp
remote some-domain2.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
key /etc/openvpn/client/vpc10-100-0-0.key
cert /etc/openvpn/client/vpc10-100-0-0.crt
ca /etc/openvpn/client/ca.crt
log /var/log/openvpn-client.log
verb 4
route 10.55.128.0 255.255.255.128
服务器2的openvpn服务器配置:
mode server
tls-server
port 1194
proto udp
dev tun1
ca keys-vpc/ca.crt
cert keys-vpc/server.crt
key keys-vpc/server.key
dh keys-vpc/dh1024.pem
server 10.41.88.0 255.255.255.0
ifconfig-pool-persist ipp.txt
topology p2p
# push 10.45.0.0 route to all connecting clients.
push "route 10.45.0.0 255.255.128.0"
push "route 10.39.88.0 255.255.255.0"
route 10.44.0.0 255.255.128.0 #core-west
route 10.55.128.0 255.255.128.0 #us-east-1 galaxy
route 10.100.0.0 255.255.255.0 #gcp-us-east-1
route 192.168.128.0 255.255.240.0 #gcp-zing-preview
client-to-client
# client specific configs in here
client-config-dir ccd-vpc
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status-vpc.log
log /var/log/openvpn-vpc.log
verb 4
duplicate-cn
客户端的路由表:
default via 192.168.128.1 dev ens4 proto dhcp metric 100
10.55.128.0/24 via 10.100.1.1 dev tun0
10.100.0.0/24 via 10.100.1.1 dev tun0
10.100.1.1 dev tun0 proto kernel scope link src 10.100.1.4
192.168.128.1 dev ens4 proto dhcp scope link metric 100
服务器1的路由表:
default via 10.100.0.1 dev ens4 proto dhcp metric 100
10.39.88.0/24 via 10.41.88.1 dev tun0
10.41.88.0/24 via 10.41.88.1 dev tun0
10.41.88.1 dev tun0 proto kernel scope link src 10.41.88.6
10.55.128.0/24 via 10.41.88.1 dev tun0
10.100.0.1 dev ens4 proto dhcp scope link metric 100
10.100.1.0/24 via 10.100.1.2 dev tun1
10.100.1.2 dev tun1 proto kernel scope link src 10.100.1.1
192.168.128.0/20 via 10.100.1.2 dev tun1
服务器2的路由表:
default via 10.45.0.1 dev eth0
10.39.88.0/24 dev tun0 proto kernel scope link src 10.39.88.1
10.41.88.0/24 via 10.41.88.2 dev tun1
10.41.88.2 dev tun1 proto kernel scope link src 10.41.88.1
10.45.0.0/27 dev eth0 proto kernel scope link src 10.45.0.10
10.55.128.0/17 via 10.41.88.2 dev tun1
10.100.0.0/24 via 10.41.88.2 dev tun1
192.168.128.0/20 via 10.41.88.2 dev tun1
截至目前,所有三个盒子上的 Iptables 都是干净的。
我正在尝试 ping10.55.128.18从客户端发送并让它一直路由到服务器 2。它会直接到达服务器 1,而不会路由到服务器 2。我能平10.55.128.18直接在服务器 1 上(而不是从客户端)。
我已经在所有地方启用了 IP 转发,并且所有三个设备之间的防火墙规则都对 ICMP 开放。
您提供的任何见解都将非常有帮助!
谢谢。
答案1
我已经解决了这个问题。需要添加其他路由(不存在的 VPN 路由),并且该连接的 ccd 目录中的 iroute 配置错误。