有学习过网络都知道,网络从来不是两点一线的,所谓路由跟踪,目的就是看看那一段网络出了问题,对于排查网络故障有很大的用途.
首先说的工具就是古老而又出名的traceroute(win称tracert),安装简单,win甚至自带
traceroute(win称tracert):
安装:
yum install -y traceroute
用法:
traceroute [参数] hostname(ip)
tracert [参数] hostname(ip)
界面说明:
每一跳序号都有一个IP和三个时间值,IP代表当次跳转的路由IP,三个时间值代表ping三次的延时,
当出现*即代表连接超时或路由不通(也可能是禁ping导致),
不过只要能继续下一跳也算正常,只是说是到这个路由地址的网络有丢包现象(非禁ping情况下).
参数说明
traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
-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 开启或关闭数据包的正确性检验。
----------------------------------------------------------------------------------------
tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
-d 指定不对计算机名解析地址。
-h maximum_hops 指定查找目标的跳转的最大数目。
-jcomputer-list 指定在 computer-list 中松散源路由。
-w timeout 等待由 timeout 对每个应答指定的毫秒数。
target_name 目标计算机的名称。
然后要说的是比较新的工具mtr,除了能像traceroute那样做路由跟踪,还能结合ping命令,在win下也有相应的exe文件,可以自行下载:
mtr(实时路由跟踪+ping结合工具)安装:
yum install -y mtr
用法:
mtr [参数] hostname(ip)
界面说明:
第一列(Host):节点IP地址和域名。如前面所示,按n键可以切换显示。
第二列(Loss%):节点丢包率。
第三列(Snt):每秒发送数据包数。默认值是10,可以通过参数 -c 指定。
第四列(Last):最近一次的探测延迟值。
第五、六、七列(Avg、Best、Wrst):分别是探测延迟的平均值、最小值和最大值。
第八列(StDev):标准偏差。越大说明相应节点越不稳定。
参数说明:
-r 或 --report:以报告模式显示输出。
-p 或 --split:将每次追踪的结果分别列出来,而非如 --report统计整个结果。
-s 或 --psize:指定ping数据包的大小。
-n 或 --no-dns:不对IP地址做域名反解析。
-a 或 --address:设置发送数据包的IP地址。用于主机有多个IP时。
-4:只使用 IPv4 协议。
-6:只使用 IPv6 协议。
可以在 mtr 运行过程中,输入相应字母来快速切换模式,比如:
?或 h:显示帮助菜单。
d:切换显示模式。
n:切换启用或禁用 DNS 域名解析。
u:切换使用 ICMP或 UDP 数据包进行探测。