Linux网络排查故障路由扫描traceroute命令详解

Linux网络排查故障路由扫描traceroute命令详解

前言

在运维工作中,总是会遇到网络故障的情况,在这样的情况,我们就需要需要trace这个命令来进行路由扫描,通过扫描的过程中查看各个路由节点,根据该节点进行网络问题的分析,其中Linux平台下,就是traceroute命令。这里以CentOS 7.X 系列主机为例来进行具体的说明。

实现原理和功能介绍

traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

Traceroute最简单的基本用法是:traceroute hostname

Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器…… traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?

Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。

Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。

常用选项实例

# 可直接使用yum进行安装
[root@python-0308 ~]# yum -y install traceroute
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * epel: ftp.jaist.ac.jp
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.neusoft.edu.cn
Package 3:traceroute-2.0.22-2.el7.x86_64 already installed and latest version
Nothing to do

默认用法:
traceroute [IP/hostname]
操作实例:

[root@python-0308 ~]# traceroute www.baidu.com
traceroute to www.baidu.com (220.181.111.188), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  100.86.0.1 (100.86.0.1)  8.679 ms  8.748 ms  8.916 ms
 4  10.39.3.177 (10.39.3.177)  9.017 ms  9.069 ms  9.250 ms
 5  192.168.10.2 (192.168.10.2)  8.564 ms  8.488 ms  8.682 ms
 6  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值