如何通过 OpenVPN 客户端之一路由特定 IP

如何通过 OpenVPN 客户端之一路由特定 IP

我有几个 Fedora 服务器作为本地网络的网关,并通过隧道连接:

  • 服务器A使用 eth0 192.168.1.1/24 tun0 192.168.94.1 和 eth1 1.1.1.1 运行 OpenVPN 服务器
  • 服务器B使用 eth0 192.168.20.1/24 tun0 192.168.94.20 和 eth1 2.2.2.2 运行 OpenVPN
  • 服务器C使用 eth0 192.168.30.1/24 tun0 192.168.94.32 和 eth1 3.3.3.3 运行 OpenVPN

每个服务器管理自己的 /24 网络客户端并让它们通过本地 eth1 pub IP 使用互联网。并且所有本地 /24 网络都能毫无问题地相互查看 ( iptables -A FORWARD -s 192.168.0.0/16 -d 192.168.0.0/16 -j ACCEPT),并且当前 NAT 仅针对每个本地 /24 网络执行 MASQ。

现在我想让网络 A 192.168.1.101 中的客户端通过以下方式访问公共 IP 4.4.4.4服务器B。我尝试过添加路线服务器A

ip ro add 4.4.4.4 via 192.168.20.1
ip ro add 4.4.4.4 via 192.168.94.8
ip ro add 4.4.4.4 via 192.168.94.9
ip ro add 4.4.4.4 via 192.168.94.10  #(this is IP shown in ifconfig on SERVER B)
echo "200 custom"| tee -a /etc/iproute2/rt_tables
ip rule add to 4.4.4.4 lookup custom
ip ro add 4.4.4.4 via 192.168.20.1 tables custom
ip ro add 4.4.4.4 via 192.168.94.8 dev tun0 table custom
ip ro add 4.4.4.4 via 192.168.94.9 table custom
ip ro add 4.4.4.4 via 192.168.94.10 table custom  #(this is IP shown in ifconfig on SERVER B)

Error: Nexthop has invalid gateway.但即使我可以 ping 通 192.168.20.1 或 192.168.94.10,我总是得到。我究竟做错了什么?

我认为应该可以通过不同的网关重新路由特定的本地客户端。

例如在本地我可以轻松地做到这一点服务器A有 eth2 和 192.168.2.2,我可以通过另一个重新路由特定的公共 IP服务器D与 192.168.2.1 位于同一位置 ( ip ro add 5.5.5.5 via 192.168.2.1),我没有收到错误并且工作正常,还重新路由 192.168.1.x 中的特定客户端以使用网关D

根据主服务器上的评论请求的额外输出。其他人也有类似的。

#ip -br link
lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> 
eth1             UNKNOWN        00:11:22:33:44:55 <BROADCAST,MULTICAST,UP,LOWER_UP>
eth0             UP             55:44:33:22:11:00 <BROADCAST,MULTICAST,UP,LOWER_UP> 
tun0             UNKNOWN        <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> 

#ip -br addr
lo               UNKNOWN        127.0.0.1/8 ::1/128
eth1             UNKNOWN        1.1.1.1/23 fedb::1233:feef:fedc:1234/64 
eth0             UP             192.168.1.1/24 fedc::1234:cdef:fedc:bbbb/64 
tun0             UNKNOWN        192.168.94.1 peer 192.168.94.2/32 fe80::ddce:16ea:1c30:809a/64 

主服务器上的路由

#ip ro ls
default via 1.1.0.1 dev eth1 
1.1.0.0/23 dev eth1 proto kernel scope link src 1.1.1.1 metric 101 
192.168.0.0/16 via 192.168.94.2 dev tun0 
192.168.1.0/24 dev en2 proto kernel scope link src 192.168.1.1 metric 100 
192.168.94.0/24 via 192.168.94.2 dev tun0 
192.168.94.2 dev tun0 proto kernel scope link src 192.168.94.1

相关内容