openvpn – 究竟是第二跳IP地址

我有一个functionopenvpn连接到数字海洋debian服务器。

这是我的路由表, 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 。 那里没有问题。

如果我traceroute一个外部IP,如8.8.8.8,第一跳是10.8.0.1。 这是因为0.0.0.0/1 via 10.8.0.5 dev tun0的规则0.0.0.0/1 via 10.8.0.5 dev tun0单播规则10.8.0.1 via 10.8.0.5 dev tun0 。 所以,stream量使用tun0接口(第一跳10.8.0.1)进行本地encryption。 我认为这是10.8.0.1(而不是.5),因为单播规则(纠正我,如果我错了)。

但是,第二跳(当追踪外部IP时)是159.203.24.253。 这是一个数字海洋知识产权,但这不是我的数字海洋debian机器的知识产权。 这是为什么 ?

  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切换到默认网关是(192.168.1.1)的eth0接口。 那么,由于有单播规则159.203.40.61 via 192.168.1.1 dev eth0 ,我期待第二跳是159.203.40.61,但它不是(而是159.203.24.253)。

更新:在数字海洋debian机器上,有这个路由规则:

 159.203.24.0/20 dev eth0 proto kernel scope link src 159.203.40.61 

所以,159.203.24.253和.254与我的数字海洋机器在同一个networking上。

那里的默认网关是159.203.24.1

也许在159.203.24.1路由器上有规则发送数据包到159.203.24.253 et。254

更新2,也许答案是:

在本地机器上请求8.8.8.8。 tun0上的数据encryption。 第一跳是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

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