traceroute不通linux,能ping通traceroute不通

问题现象:

Linux下可以ping通IP,但是traceroute不通

ee60550d1f90904f7d35ad5eed974956.png

问题原因:

traceroute路由跟踪是利用IP数据包的TTL值来实现的,Linux 下 traceroute 首先发出 TTL = 1 的UDP 数据包,第一个路由器将 TTL 减 1 得 0 后就不再继续转发此数据包,而是返回一个 ICMP 超时报文,traceroute 从超时报文中即可提取出数据包所经过的第一个网关的 IP 地址。然后又发送了一个 TTL = 2 的 UDP 数据包,由此可获得第二个网关的 IP 地址。依次递增 TTL 便获得了沿途所有网关的 IP 地址。

dea47428ae3b1404a405bdc1e7ea3b6a.png

因为UDP 常被用来做网络攻击,因为 UDP 无需连接,因而没有任何状态约束它,比较方便攻击者伪造源 IP、伪造目的端口发送任意多的 UDP 包,长度自定义。所以运营商为安全考虑,对于 UDP 端口常常采用白名单 ACL,就是只有 ACL 允许的端口才可以通过,没有明确允许的则统统丢弃。比如允许 DNS/DHCP/SNMP 等

注意:

Linux下traceroute程序默认发送的探测包为UDP协议,windows下tracert、mtr,以及Linux下mtr默认都发送的是icmp的数据包,并不是所有网关都会如实返回 ICMP 超时报文。处于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP 报文,其余路由器或交换机也可能被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿到所有的沿途网关地址。所以,当某个 TTL 值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL 递增而发出下一个数据包。这个过程将一直持续到数据包发送到目标主机,或者达到默认或用参数指定的追踪限制(maximum_hops 默认最大为30)才结束追踪

验证:

Linux 下 traceroute 114.114.114.114

如图,以第一跳和第五跳为例,对比抓包可以看出,第一组(每次发三个包)UDP 的 request 数据包 TTL 值为1,在到达第1个路由节点后,TTL减1后为0,则不继续传递,返回一个 ICMP 超时报文,这时客户端获取到了第1个路由节点IP,与traceroute测试信息相符

f4f8396b98a3c0b2233277dd30a2e188.png

393dd50aa9b1135b34b3c0479a81e114.png

6af617152c606fe4021766bcc9abb5a0.png

第五跳时,发送的 request 数据包 TTL 值为5,在到达第5个路由节点后,TTL减为0,则不继续传递,返回一个 ICMP 超时报文,这时客户端获取到了第5个路由节点IP,与traceroute测试信息相符

1eb6d7a02f779990cd6d746947948558.png

总结:

Linux 下 traceroute 默认发送的时 udp 协议 request 包,很多路由节点上会丢弃该部分数据包不做响应;windows 下 tracert、mtr 以及 Linux 下 mtr 默认发送的是是 icmp 协议 request 包,测试网络时更有参考价值

Linux 下 traceroute、mtr 都支持指定协议端口进行网络探测,建议使用 icmp 或 tcp 协议进行网络探测

traceroute 常用参数:

-I --icmp //指定ICMP协议

-T --tcp //指定TCP协议

-p port --port=port //指定端口

mtr 常用参数:

-c //指定发包次数

--tcp //指定tcp协议

--port=PORT //指定端口

--udp //指定udp协议

34532bd6b9ed17716a7b67f9e65a43f9.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值