openvpn 的重定向网关选项如何工作?

openvpn 的重定向网关选项如何工作?

我有一个简单的 openvpn 设置,客户端运行有一个redirect-gateway def1选项。

以下是生成的路由表(VPN_SERVER_IP 是 VPN 服务器的公网 IP,本地网络是 192.168.127.0/24,VPN LAN 是 10.8.0.0/24):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.49       128.0.0.0       UG    0      0        0 tun_tcpdec
0.0.0.0         192.168.127.1   0.0.0.0         UG    0      0        0 eth0
10.8.0.0        10.8.0.49       255.255.255.0   UG    0      0        0 tun_tcpdec
10.8.0.49       0.0.0.0         255.255.255.255 UH    0      0        0 tun_tcpdec
VPN_SERVER_IP   192.168.127.1   255.255.255.255 UGH   0      0        0 eth0
128.0.0.0       10.8.0.49       128.0.0.0       UG    0      0        0 tun_tcpdec
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.127.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

它能正常工作,所有流量都重定向到 VPN,但我不明白如何操作。假设我尝试 ping Cloudflare 的 DNS 1.1.1.1,第二条规则难道不应该只通过路由器发送数据包(规则 2)吗?

答案1

流量通过您的 VPN 流动,因为流量符合以下两个规则之一:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.49       128.0.0.0       UG    0      0        0 tun_tcpdec
128.0.0.0       10.8.0.49       128.0.0.0       UG    0      0        0 tun_tcpdec

redirect-gateway def1选项添加了这两条路由。这些路由用于转发流量,而不是第二条规则,因为这些规则更具体(网络掩码设置了一位,第二条规则中的网络掩码设置了零位)。

这意味着大约一半的互联网使用第一条规则转发,而另一半互联网使用第二条规则转发。

之所以采用这种方法,是因为它适用于大多数平台。另一种方法是使用路由表条目优先级,其中 OpenVPN 分配的默认路由将获得比其他默认网关更高的优先级。

相关内容