跳转到内容
搜索文档

运行 traceroute

最后更新 查看 MarkdownAgent 设置

如果您有一个通过 GREIPsecCNIWARP 连接的 Cloudflare WAN(前称 Magic WAN)客户端,并希望对 Cloudflare Tunnel 后面的终端节点执行 traceroute,则必须应用以下设置,以便该命令返回有用的信息。

继承的 TTL 值

在执行 traceroute 客户端的计算机上,确保隧道设备不继承内部数据包的 TTL 值。这是 Linux 上的默认行为,可能会导致无用的 traceroute 结果:

sudo traceroute -s 10.1.0.100 -I 10.3.0.100
traceroute to 10.3.0.100 (10.3.0.100), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  10.3.0.100 (10.3.0.100)  420.505 ms  420.779 ms  420.776 ms

显式设置 TTL 可以返回好得多的结果:

sudo ip link set cf_gre type gre ttl 64
sudo traceroute -s 10.1.0.100 -I 10.3.0.100
traceroute to 10.3.0.100 (10.3.0.100), 30 hops max, 60 byte packets
 1  10.0.0.11 (10.0.0.11)  58.947 ms  58.933 ms  58.930 ms
 2  173.245.60.175 (173.245.60.175)  61.138 ms  61.316 ms  61.313 ms
 3  172.68.145.21 (172.68.145.21)  367.448 ms  367.532 ms  367.530 ms
 4  mplat-e2e-vm3.c.magic-transit.internal (10.152.0.20)  370.362 ms  370.440 ms  370.522 ms
 5  10.3.0.100 (10.3.0.100)  370.519 ms  370.541 ms  518.152 ms

Cloudflare One Client

某些 Linux 发行版默认采用非常严格的反向路径过滤(reverse path filtering)设置。这种严格的设置尝试丢弃虚假流量作为安全措施。在此设置开启的情况下执行 traceroute 可能会无意中丢弃 traceroute 数据包。如果您在 Linux 上使用 Cloudflare One Client,请在尝试执行 traceroute 之前设置较不严格的策略:

sudo sysctl -w net.ipv4.conf.CloudflareWARP.rp_filter=2
net.ipv4.conf.CloudflareWARP.rp_filter = 2
sudo traceroute -s 172.16.0.2 -I 10.3.0.100
traceroute to 10.3.0.100 (10.3.0.100), 30 hops max, 60 byte packets
 1  169.254.21.171 (169.254.21.171)  48.887 ms  48.894 ms  48.620 ms
 2  173.245.60.175 (173.245.60.175)  49.403 ms  49.519 ms  49.603 ms
 3  172.68.65.7 (172.68.65.7)  357.499 ms  357.519 ms  357.520 ms
 4  mplat-e2e-vm3.c.magic-transit.internal (10.152.0.20)  360.024 ms  360.086 ms  360.078 ms
 5  10.3.0.100 (10.3.0.100)  360.283 ms  360.297 ms  360.489 ms

这篇文档对您有帮助吗?