本帖最后由 临兵斗者 于 2024-4-11 18:25 编辑
今天看到一篇感觉不错的技术文章,分享给老铁们,希望对大家的工作有所帮助。 作为IT从业者,Ping测试这个命令想必是非常非常熟悉了!它是用于诊断网络连通性最好用的工具,没有之一!
Ping不通的情况时有发生,那么Ping不通时会结果回显是什么呢?常见的有4种结果:
一、请求超时。
二、来自X.X.X.X的回复: 无法访问目标主机。
三、PING:传输失败。常见故障。
四、来自X.X.X.X的回复: TTL 传输中过期。
Ping失败则回显不同的结果,Windows不是随便给一个结果的,而这些信息表示连通性异常均存在不同的故障原因!那么其背后的逻辑是什么呢?在特定的场景下,我们来一个一个的分析:
回显1:请求超时。
此结果和ICMP回包有关,一定是PC封装了ICMP request发出去了得不到结果才有这个提示,换句话说已经完成了网关设备或者目标设备的arp学习。
【局域网场景】
如图,PC1 Ping测试目标是同一局域网、同网段的PC2设备不通出现该提示,表示:“已经学到了该PC2的ARP条目,但PC1的ICMP包没有得到响应”,所以能明确知道对端是正常存在于网络当中的,就不用再去管物理链路问题了!而PC1得不到响应ICMP的常见原因有:
PC1去往PC2中间的交换机、路由器等设备对ICMP包做了过滤等。
【三层VLAN场景】 如图,在规模较大的三层网络架构下,若VLAN10的PC1 Ping的是VLAN20网段的PC2不通,表示:“PC1已经学习到了VLAN10网关的ARP条目,且网关(核心交换设备等)VLAN20也学到了PC2的ARP条目,但PC1没收到响应ICMP包”,同理可以判断该PC2也正常存在于网络当中,物理网络链路正常。但PC1得不到响应的ICMP包常见原因如下:
PC1去往PC2中间的交换机、路由器等设备对ICMP包做了过滤。
【访问internet】 如图,PC ping的是出口路由WAN侧的internet站点(百度、QQ)等不通,则基本表示该internet站点禁ping。
回显2:来自X.X.X.X的回复: 无法访问目标主机。
此结果一定是和arp学习有关,要么是PC自身没学到同网段设备的arp条目,要么是跨三层访问时网关没有学到另一VLAN中的目标设备arp条目返回给PC的错误报告。 【局域网场景】 如图,PC1 Ping测试目标是同一局域网、同网段的PC2设备不通出现该提示,表示“PC1的网络连接正常,但根本学不到PC2的ARP条目”,这就没办法去确认PC2的物理网络是否正常了,可能故障原因有:
【跨VLAN场景】 如图,在规模较大的三层网络架构下,若VLAN10的PC1 Ping的是VLAN20网段的PC2不通,表示“要么是VLAN10的PC1没有学到其网关的ARP条目,要么是网关VLAN20接口没有学到PC2的ARP条目”,此时没法确认PC2是否物理网络正常,且也不能判断其是否在VLAN20中,故障可能原因如下:
回显3:PING:传输失败。常见故障。
出现这个报错是指网卡连ARP包都发不出去,百分百就是源电脑的网卡和网线问题!交换机、路由器等不用去排查了!原因如下:
网卡没配置网关就去访问其他网段的IP地址,主机根本不知道把包交给谁; 网卡未启用IPv6协议或者拿不到IPv6地址时去ping IPv6站点。
回显4:来自X.X.X.X的回复: TTL 传输中过期。
有些论坛分析此原因是经过了太多的路由(每经过一台路由TTL减1)导致此问题。我觉得不对,Win10 ICMP包初始TTL=64,经测试即便是我访问美国站点1.1.1.1,TTL也只减了10而已(链路一共经过了10台路由),而要说从A—>B经过≥64台路由我是完全不信的。
而出现这个“TTL传输中过期”的报错呢,大概率是网络中出现了“路由环路”导致,简单来看个图:
单播的三层报文,在网络内来回路由转发,循环往复,就形成了三层路由环路。用tracert命令跟踪表现是这样的: 直到TTL减到0单播环路才停止,基本就是交换网络、路由网络的配置相关问题了,此问题会造成网络中“单播包泛洪”影响路由交换的性能。像上述而常见的“路由环路”问题可以通过三层交换机的“黑洞路由”配置解决,具体方法本期不做详解。
最后总结一下:
|