一台服务器上具有 OpenVPN 和 HAProxy 的网络网关 --> 路由问题

一台服务器上具有 OpenVPN 和 HAProxy 的网络网关 --> 路由问题

我正在为我的网络设置一个网关,其中包括同一台计算机上的反向代理 (HAProxy) 和 openvpn 服务器。

我想使用 openvpn 连接到 VPN 提供商,以便对来自我的网络的所有流量进行加密。

现在的问题是,一旦我打开与 VPN 提供商的连接,它就会将新路由推送到我的路由表。这些路由与我的 HAProxy 冲突,无法访问我的内部服务器。

不连接 VPN 提供商的路由表:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
default         192.168.1.1     0.0.0.0         UG    203    0        0 eth1
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     203    0        0 eth1

连接到 VPN 提供商后的路由表:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.3.1        128.0.0.0       UG    0      0        0 tun1
default         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
default         192.168.1.1     0.0.0.0         UG    203    0        0 eth1
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
10.8.3.0        0.0.0.0         255.255.255.0   U     0      0        0 tun1
123.243.152.126 192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
128.0.0.0       10.8.3.1        128.0.0.0       UG    0      0        0 tun1
192.168.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U     203    0        0 eth1

我按照以下指南设置路由和 nat 规则:https://gist.github.com/superjamie/ac55b6d2c080582a3e64

我想通过 tun1 路由到达 eth1 的所有流量,tun1 是与 VPN 提供商的连接。

sudo iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
sudo iptables -A FORWARD -i tun1 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o tun1 -j ACCEPT

eth0 上的所有请求都不应该通过该隧道。相反,它们要么访问我的内部服务器,要么响应来自网络外部的客户端的请求。

相关内容