openvpn - 第二跳 IP 地址到底是谁

openvpn - 第二跳 IP 地址到底是谁

我与 Digital Ocean Debian 服务器建立了有效的 OpenVPN 连接。

这是我的路由表ip route

0.0.0.0/1 via 10.8.0.5 dev tun0 
default via 192.168.1.1 dev eth0 onlink 
10.8.0.1 via 10.8.0.5 dev tun0 
10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6 
128.0.0.0/1 via 10.8.0.5 dev tun0 
159.203.40.61 via 192.168.1.1 dev eth0 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.132 

一切皆好。

如果我跟踪我的 Debian 机器 (159.203.40.61),由于规则,第一跳立即是默认网关159.203.40.61 via 192.168.1.1 dev eth0。毫无疑问。

如果我跟踪外部 IP(例如 8.8.8.8),则第一跳是 10.8.0.1。这是因为规则0.0.0.0/1 via 10.8.0.5 dev tun0和单播规则10.8.0.1 via 10.8.0.5 dev tun0。因此,流量使用 tun0 接口(第一跳 10.8.0.1)在本地加密。我认为由于单播规则,它将到达 10.8.0.1(而不是 .5)(如果我错了,请纠正我)。

但是,第二跳(跟踪路由外部 IP 时)是 159.203.24.253。这是 Digital Ocean 的 IP,但不是我的 Digital Ocean Debian 机器的 IP。这是为什么?

 2  159.203.24.253 (159.203.24.253)  117.230 ms  116.918 ms 159.203.24.254 (159.203.24.254)  117.266 ms

(还有一个 .254,我猜是为了负载平衡)

我认为,由于它需要到外面,所以它会从接口 tun0 切换到接口 eth0,其中默认网关是 (192.168.1.1)。然后,由于有单播规则159.203.40.61 via 192.168.1.1 dev eth0,我预计第二跳是 159.203.40.61,但事实并非如此(而是 159.203.24.253)。

更新:在 Digital Ocean Debian 机器上,有以下路由规则:

159.203.24.0/20 dev eth0 proto kernel scope link src 159.203.40.61

因此,159.203.24.253 和 .254 与我的数字海洋机器位于同一网络上。

那里的默认网关是 159.203.24.1

也许 159.203.24.1 路由器上有一条规则,将数据包发送到 159.203.24.253 和 .254

更新 2,也许是答案:

在我的本地机器上请求 8.8.8.8。在 tun0 上进行数据加密。第一跳是 10.8.0.1(不是 .5,因为单播规则)要到达那里,需要切换到 eth0:使用默认网关 192.168.1.1 到达 159.203.40.61(单播规则)。

数字海洋机器收到数据包。它首先转到 10.8.0.1,在 tun0 上解密数据。然后,由于最终目的地是 8.8.8.8,它切换到 eth0 :默认网关是 159.203.24.1,这是一个路由器,它将数据包发送到第二跳,即 159.203.24.253/254

似乎两跳之间所涉及的网关没有显示在跟踪路由中。

相关内容