通过 VPN 在不同网络之间设置路由

通过 VPN 在不同网络之间设置路由

我在位置 A 有一个 OpenVPN 服务器,在位置 B 有一个客户端。位置 B 的防火墙/路由器为 VPN 网络和位置 A 的本地网络设置了路由。客户端已打开 IP 转发,并且 iptables 转发流量规则进出远程网络和本地网络。我可以从防火墙 ping 到客户端的 VPN IP,但无法跨 VPN ping 任何内容。

网络地址

Router Location A 192.168.69.1/24
OpenVPN Server enp5s0 192.168.69.69/24
OpenVPN Server tun0 172.16.0.1/24

Router Location B 192.168.1.253/24
OpenVPN Client eno1 192.168.1.174/24
OpenVPN Client tun0 172.16.0.254/24

路线

Router Location A:
    192.168.1.0/24 via 192.168.69.69
    172.16.0.0/24 via 192.168.69.69

OpenVPN Server:
    default via 192.168.69.1 dev enp5s0 proto dhcp metric 100 
    169.254.0.0/16 dev enp5s0 scope link metric 1000 
    172.16.0.0/24 dev tun0 proto kernel scope link src 172.16.0.1 
    192.168.1.0/24 via 172.16.0.254 dev tun0 
    192.168.69.0/24 dev enp5s0 proto kernel scope link src 192.168.69.69 metric 100

Router Location B:
    192.168.69.0/24 via 192.168.1.174
    172.16.0.0/24 via 192.168.1.174

OpenVPN Client:
    default via 192.168.1.253 dev eno1 proto dhcp src 192.168.1.174 metric 100 
    172.16.0.0/24 via 172.16.0.1 dev tun0 
    192.168.1.0/24 dev eno1 proto kernel scope link src 192.168.1.174 metric 100 
    192.168.1.252 dev eno1 proto dhcp scope link src 192.168.1.174 metric 100 
    192.168.1.253 dev eno1 proto dhcp scope link src 192.168.1.174 metric 100 
    192.168.69.0/24 via 172.16.0.1 dev tun0 

IP表

OpenVPN Server:
    iptables -A FORWARD -s 192.168.69.0/24 -d 192.168.1.0/24 -i enp5s0 -o tun0 -j ACCEPT
    iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.69.0/24 -i tun0 -o enp5s0 -j ACCEPT
    iptables -A FORWARD -s 172.16.0.0/24 -d 192.168.69.0/24 -i tun0 -o enp5s0 -j ACCEPT
    iptables -A FORWARD -s 192.168.69.0/24 -d 172.16.0.0/24 -i enp5s0 -o tun0 -j ACCEPT

Router Location B:
    iptables -A FORWARD -s 192.168.1.0/24 -d 172.16.0.0/24 -j ACCEPT
    iptables -A FORWARD -s 172.16.0.0/24 -d 192.168.1.0/24 -j ACCEPT
    iptables -A FORWARD -s 192.168.69.0/24 -d 192.168.1.0/24 -j ACCEPT
    iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.69.0/24 -j ACCEPT

OpenVPN Client:
    iptables -A FORWARD -s 192.168.1.0/24 -d 172.16.0.0/24 -i eno1 -o tun0 -j ACCEPT
    iptables -A FORWARD -s 192.168.69.0/24 -d 192.168.1.0/24 -i tun0 -o eno1 -j ACCEPT
    iptables -A FORWARD -s 172.16.0.0/24 -d 192.168.1.0/24 -i tun0 -o eno1 -j ACCEPT
    iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.69.0/24 -i eno1 -o tun0 -j ACCEPT

位置 A 的路由器/防火墙是 TP Link 防火墙/路由器/AP。其余设备都是 Ubuntu 机器。

OpenVPN 客户端可以 ping 通 OpenVPN 服务器和位置 A 的路由器,但不能执行其他操作。位置 B 的路由器可以 ping 通 OpenVPN 客户端的 OpenVPN 接口 [172.16.0.254],但该范围内没有任何其他内容。似乎只有源自 VPN 成员的流量实际上会穿过 VPN 到达另一端,但物理上位于位置 A 的任何内容都可以与位于该站点的 VPN 或本地网络的任何部分以及物理上位于的任何内容进行通信位置 B 可以与 VPN 该端的任何其他设备通信,但位置 A 和位置 B 无法通过 VPN 相互通信。

相关内容