linux 路由追踪(麒麟系统路由追踪命令)
大家好,今天小编来为大家解答以下的问题,关于linux 路由追踪,麒麟系统路由追踪命令这个很多人还不知道,现在让我们一起来看看吧!
用tracert命令追踪路由情况
使用`tracert`(在Windows系统中)或`traceroute`(在Unix/Linux系统中)命令可以追踪数据包从源地址到目标地址所经过的路由路径。以Windows系统下的`tracert`为例,当你执行如`tracert www.example.com`的命令时,系统会发送一系列ICMP回显请求(Echo Request)消息到目标地址,并记录每一跳(即每个中间路由器)的响应时间。
命令执行后,你将看到一系列按照序号排列的行,每行代表数据包到达的下一个路由器或目标地址的IP地址。每行后面还会显示往返该跳所需的时间(毫秒),以及该跳是否成功响应。如果某跳超时,会显示星号(*)作为响应时间。通过这种方式,你可以了解数据包在到达目标之前所经过的具体路径,以及每个阶段的延迟情况。这对于诊断网络连接问题、了解网络拓扑结构或进行网络性能分析非常有帮助。
【traceroute】关于traceroute(路由追踪)的原理分析
traceroute主要利用 IP数据包的 TTL字段值+ ICMP来实现,它发送的用于探测网络路径的数据包的 IP之上的协议可以是 UDP、TCP或ICMP。
协议表示该数据报文所携带的数据所使用的协议类型,占 8位。
该字段可以方便目的主机的 IP层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。
例如,TCP的协议号为 6,UDP的协议号为 17,ICMP的协议号为 1。
不同模式下,探测过程中设计的数据包如下:
UDP探测数据包(目标端口大于 30000)+中间网关发回 ICMP TTL超时数据包+目标主机发回 ICMP Destination Unreachable数据包
TCP [SYN]探测数据包(默认目标端口为 80)+中间网关发回 ICMP TTL超时数据包+目标主机发回 TCP [SYN ACK]数据包
ICMP Echo(ping) Request探测数据包+中间网关发回 ICMP TTL超时数据包+目标主机发回 ICMP Echo(ping) reply数据包
UDP端口扫描比较麻烦,它同TCP不一样,因为它不需要建立连接。
我们向目标主机的固定端口发送UDP数据包,可以得到两种结果:
在运营商的路由器上,UDP与 ICMP的待遇大不相同。
为了利于 troubleshooting,ICMP ECHO Request/Reply是不会封的,而 UDP则不同。
UDP常被用来做网络攻击,因为 UDP无需连接,因而没有任何状态约束它,比较方便攻击者伪造源 IP、伪造目的端口发送任意多的 UDP包,长度自定义。
所以运营商为安全考虑,对于 UDP端口常常采用白名单 ACL,就是只有 ACL允许的端口才可以通过,没有明确允许的则统统丢弃。比如允许 DNS/DHCP/SNMP等。
当网络工程师用Ping时,Ping在偷摸做啥事儿?
ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。
ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。
另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。
有时我们traceroute一台主机时,会看到有一些行是以星号表示的。
出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有些路由器会隐藏的自己的位置,不让ICMP Timeout的消息通过,结果就是在那一跳上始终会显示星号。此外服务器也可以伪造traceroute路径的,不过一般应用服务器也没有理由这么做,所以Traceroute的结果还是能够为网络分析提供一些参考的。
Linux下traceroute程序默认发送的探测包为UDP协议,windows下tracert、mtr,以及Linux下mtr默认都发送的是icmp的数据包,并不是所有网关都会如实返回 ICMP超时报文。处于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP报文,其余路由器或交换机也可能被管理员主动修改配置变为不返回 ICMP报文。因此 Traceroute程序不一定能拿到所有的沿途网关地址。所以,当某个 TTL值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL递增而发出下一个数据包。这个过程将一直持续到数据包发送到目标主机,或者达到默认或用参数指定的追踪限制(maximum_hops默认最大为30)才结束追踪
如果在局域网中的不同网段之间,我们可以通过traceroute来排查问题所在,是主机的问题还是网关的问题。
如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
动态图解traceroute(路由追踪)的原理与实现
IP数据报格式详解
解析为何traceroute探测的时候中间有些节点探测不到?
traceroute使用与实现原理分析
traceroute(路由追踪)的原理及实现
为什么目标地址ping能通,但是tracetoute不通?
只会用ping测试网络通不通?高级网工还会这么用
当网络工程师用Ping时,Ping在偷摸做啥事儿?
traceroute原理
TCP/UDP/ICMP Traceroute的原理及区别
linux下tracert命令的作用
1.命令格式:
traceroute [参数] [主机]
2.命令功能:
traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>…][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]《Linux就该这么学》一起学习linux
3.命令参数:
-d使用Socket层级的排错功能。
-f设置第一个检测数据包的存活数值TTL的大小。
-F设置勿离断位。
-g设置来源路由网关,最多可设置8个。
-i使用指定的网络界面送出数据包。
-I使用ICMP回应取代UDP资料信息。
-m设置检测数据包的最大存活数值TTL的大小。
-n直接使用IP地址而非主机名称。
-p设置UDP传输协议的通信端口。
-r忽略普通的Routing Table,直接将数据包送到远端主机上。
-s设置本地主机送出数据包的IP地址。
-t设置检测数据包的TOS数值。
-v详细显示指令的执行过程。
-w设置等待远端主机回报的时间。
-x开启或关闭数据包的正确性检验。
4实例:
实例4.1: traceroute www.baidu.com
实例4.2:跳数设置
命令:traceroute-m 10 www.baidu.com