为什么路由的第一跳虽然可以访问,但却没有被指示?

为什么路由的第一跳虽然可以访问,但却没有被指示?

概括:

我可以 ping 网关,但是通过此网关的跟踪路由并未显示它作为第一跳,为什么?

root@tor ~# traceroute 1.1.1.1  -nn
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  * * *
 2  * * *

细节:

我正在调试容器中的连接,该容器设有防火墙,仅允许通过 VPN 进行通信。从容器的角度来看,这是不可见的(防火墙位于容器的主机上)。

我的问题是连接有时会失败,我怀疑是 VPN 提供商的问题。典型的症状是挂起

root@tor ~# ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.

为了调查,我检查了数据包的1.1.1.1路由

root@tor ~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: host0@if59: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether d6:fa:2e:69:dd:30 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.200.0.3/24 brd 10.200.0.255 scope global host0
       valid_lft forever preferred_lft forever
    inet6 fe80::d4fa:2eff:fe69:dd30/64 scope link
       valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none
    inet 10.29.10.6 peer 10.29.10.5/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::8d09:3f0d:9e5f:8298/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

root@tor ~# ip route get 1.1.1.1
1.1.1.1 via 10.29.10.5 dev tun0 src 10.29.10.6 uid 0
    cache

root@tor ~# ip route
0.0.0.0/1 via 10.29.10.5 dev tun0
default via 10.200.0.254 dev host0 proto dhcp src 10.200.0.3 metric 1024
10.1.1.0/24 via 10.200.0.254 dev host0 proto static onlink
10.29.10.1 via 10.29.10.5 dev tun0
10.29.10.5 dev tun0 proto kernel scope link src 10.29.10.6
10.30.1.0/24 via 10.200.0.254 dev host0 proto static onlink
10.100.10.0/24 via 10.200.0.254 dev host0 proto static onlink
10.100.20.0/24 via 10.200.0.254 dev host0 proto static onlink
10.200.0.0/24 dev host0 proto kernel scope link src 10.200.0.3
10.200.0.254 dev host0 proto dhcp scope link src 10.200.0.3 metric 1024
46.166.138.140 via 10.200.0.254 dev host0
128.0.0.0/1 via 10.29.10.5 dev tun0

同时,traceroute 不能识别第一跳:

root@tor ~# traceroute 1.1.1.1  -nn
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  * * *
 2  * * *

为什么会这样?我期望跟踪在网关后停止。

注意:重新启动 VPN 可以解决问题,所以我很确定它就是罪魁祸首。

编辑:重新启动(或正确运行)时,路线是可追踪的:

root@tor /e/s/system# traceroute 1.1.1.1  -nn
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  10.38.10.1  17.959 ms  18.217 ms  18.230 ms
 2  46.166.138.190  18.393 ms * *
(...)

相关内容