本篇文章给大家谈谈trace,以及一文掌握linux系统路由跟踪指令traceroute对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。
yum-yinstalltraceroutenTraceroute的工作原理
Traceroute最简单的基本用法是:traceroutehostname
Traceroute程序的设计是利用ICMP及IPheader的TTL(TimeToLive)栏位(field)。首先,traceroute送出一个TTL是1的IPdatagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMPtimeexceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute再送出另一个TTL是2的datagram,发现第2个路由器......traceroute每次将送出的datagram的TTL加1来发现另一个路由器,这个重复的动作一直持续到某个datagram抵达目的地。当datagram到达目的地后,该主机并不会送回ICMPtimeexceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?
Traceroute在送出UDPdatagrams到目的地时,它所选择送达的portnumber是一个一般应用程序都不会用的号码(30000以上),所以当此UDPdatagram到达目的地后该主机会送回一个「ICMPportunreachable」的消息,而当traceroute收到这个消息时,便知道目的地已经到达了。所以traceroute在Server端也是没有所谓的Daemon程式。
Traceroute提取发ICMPTTL到期消息设备的IP地址并作域名解析。每次,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及IP地址,三个包每次来回所花时间。
常见命令参数:
-d使用Socket层级的排错功能。n-f设置第一个检测数据包的存活数值TTL的大小。n-F设置勿离断位。n-g设置来源路由网关,最多可设置8个。n-i使用指定的网络界面送出数据包。n-I使用ICMP回应取代UDP资料信息。n-m设置检测数据包的最大存活数值TTL的大小。n-n直接使用IP地址而非主机名称。n-p设置UDP传输协议的通信端口。n-r忽略普通的RoutingTable,直接将数据包送到远端主机上。n-s设置本地主机送出数据包的IP地址。n-t设置检测数据包的TOS数值。n-v详细显示指令的执行过程。n-w设置等待远端主机回报的时间。n-x开启或关闭数据包的正确性检验。n实例
1、traceroute用法简单、最常用的用法
traceroutewww.baidu.comn
说明:
记录按序列号从1开始,每个纪录就是一跳,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用traceroute-q4www.58.com,表示向每个网关发送4个数据包。
有时我们traceroute一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会有延时长的现象;您可以加-n参数来避免DNS解析,以IP格式输出数据。
如果在局域网中的不同网段之间,我们可以通过traceroute来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题。
traceroute-m10www.baidu.comn
3、显示IP地址,不查主机名
traceroute-nwww.baidu.comn
4、探测包使用的基本UDP端口设置6888
traceroute-p6888www.baidu.comn
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
好了,文章到这里就结束啦,如果本次分享的trace和一文掌握linux系统路由跟踪指令traceroute问题对您有所帮助,还望关注下本站哦!
还没有评论,来说两句吧...