局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址本文介绍利用ping命令回显来解决网络故障的方法,分别介绍常见的目标主机不可达和ping出现timeout的可能性和解决方法,案例。分为同网段和跨网段两种情况进行列举。涉及网络知识,wireshark的使用技巧,都是本人在几年维护网络中遇到问题的总结,基本涵盖常见故障。有错误的地方,请大家指正讨论。…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

       文档中有截图:看不清请把web缩放比例调到150%观看。

目录

1、ping命令的作用:     

2、Ping的概念和原理:

      ping的错误回显的内容与icmp的差错消息相关的,根据回显报错的节点ip和内容,我们能知道那个节点出现问题,什么问题?

       我们知道两台设备要进行通信,必须的组网结构是源设备,源目的接入通信链路,节点交换设备(二层,三层),和相应的中继通信链路,目的设备接入链路,目的设备这些基本的网络要素。ping的过程,这些要素都可能影响ping的结果。      

ping的过程和自身路由表,源和目的设备的接入通信链路二层广播通道是否通畅?访问目的ip的途径路径的节点交换设备路由设置,中继链路的状态,目的点的路由设置,对方设备的状态,目的设备防火墙是否阻止ping的请求消息通过相关等等因素相关。所以我们排查问题从这些因素去考虑排查。

  3、 局域网内网中ping不通,有下面几种情况:

3.1、  局域网内网中ping不通,目的ip和源ip是同一网段的情况

3.1.1 ping显示无法访问目的主机的可能原因:

      3.1.3 对应情况1直连路由没有的情况范例:

3.1.4 对应情况2arp请求发出没有响应的范例:

 3.1.5 对应情况4掩码配置错误的范例,见下面这个连接:

3.2 若是同网段,ping后显示time out超时

3.2.1 可能原因:

3.2.2 排除过程:

3.2.3 情况1的走默认路由发出ping的request范例:

3.2.4 情况2目的设备防火墙拦截ping的requst进入高层的范例:也可参见下面跨网段“情况a的范例”

3.2.5 情况3没有回程路由的范例:

3.2.6 情况4目的ip的mac地址变化造成问题范例说明:

3.2.7 情况5掩码配置错误,导致没有回程路由的范例:

3.2.8  情况1直连路由没有生成,走默认路由发出的又一范例:

    4  目的ip和源ip不是同一网段

  4.1  不在同一网段有几种情况:

   4.2  排查流程:

4.3 情况1没有对应路由的范例:

   4.4  情况3目的网关发出arp请求没有得到响应的范例:

4.5  情况4,显示time out,有下面几种可能性:

4.6  排查过程:   

   4.7 情况a目的设备的防火墙拦截icmp消息进入高层的范例:

4.8  符合b没有回程路由的范例:

 4.9   符合情况b回程路由指向另一个ip地址的情况:

  4.10  符合情况c反向路由检测开启,源入口和路由出口不在同一网卡的范例:

   4.10.1  另一种关闭网卡的反向路由检测

  4.10.2  添加主机路由的方法:

5  结论:


1、ping命令的作用:     

        为什么要用ping命令?是为了在局域网内验证两个节点间路由,数据的导通性,能相互ping通就代表前后向路由均可达,但这是充分条件,有的特殊情况下,ping不通,但业务的tcp或者udp消息依然是可达的。当网络出现故障的时候,可以用这个命令来预测故障和确定故障地点

    ping不通这类问题,要根据ping的回显结果来处理,根据打印结果的ip地址和错误原因来确定故障。

    因为ping的结果不外乎三种:1,正常导通回包;2,回显icmp差错;3,超时没有响应,显示time out。

       这三种在windows里都有回显,所以我们根据回显可以判断出问题出在什么地方?

       主要是icmp的错误和time out两种问题,icmp错误,我们可以根据打印消息的发出消息的ip是本机ip还是经过节点ip来确定是本机本机问题还是节点问题?

      time out一般是目的侧问题多一些,也可能节点问题。

2、Ping的概念和原理:

       ping命令使用的是检测源和目的ip间导通性测试的icmp协议,属于三层网络ip层协议。源主机ping发出含一串数据的包(如123456789abcde之类)request消息,封装在二层上,对方收到后,把这串包原路反射送回来,源pc收到后,认为是对方可达。所以它涉及二层的mac地址和ip层的交互。当对方存在问题时(ip地址不存在,没有路由等),对方的ip或者经过的网络节点会返回icmp的差错消息给终端源ip。使用的端口和ip要根据节点的路由表进行确定,发起方根据返回结果来产生回显,若在ping的request消息发出,等待一段时间,win默认是5s,没有收到回复,发起方显示超时time out(linux环境默认定时器是1秒,这种情况没有任何显示)。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

      ping的过程,无论是源主机发出request请求还是目的主机回reply的过程,都是首先根据目的ip查找本地路由表,确定下一跳的出口,然后根据下一跳的ip在arp缓存里确定是否有下一跳ip的mac地址,没有就发出arp请求去查找。有的话,二层和ip层组包发出。

       具体过程是,输完命令后,根据目的ip,先查路由表,看目的主机ip是否走直连路由,是就去检查mac地址缓存表,看是否有该地址的mac地址缓存,没有的话,是用直连路由的一个本机接口去发出请求目的ip的mac地址的arp请求request消息,收到arp响应后,用这个mac地址封装二层数据,发出icmp协议的ping请求消息。mac地址缓存里有,直接封装ping的request消息。没有得到mac地址,不发出ping的request消息,回显目的主机不可达。而没有错误时,组包发出,目的主机收到后,同样的过程根据收到包的源ip进行查路由表,查mac地址缓存,发包的的过程。

源主机处理ping过程的流程图:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

节点处理ping的request的过程:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 目的设备处理ping的request的流程:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 如下图:

192.168.205.201/24去ping同网段ip192.168.205.28的wireshark流程,无需三层节点设备的参与

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

      查路由表发现不是直连路由和静态路由的话,走默认路由的话,就去查是否有默认网关的mac地址,没有去请求网关的mac地址,有就直接封装ping的request消息。若目的主机收到后,由于回程路由缺失原因,防火墙原因在网络层拦截icmp探查消息,入口或者出口不一致等,没有按原路返回,或没有回复,主机在等reply超时后,会有相应的超时显示。若目的网关未找到目的主机,或者经过的节点设备发现有错误,无法到达目的主机,会选择正常时的回复接口ip给源主机发出一个icmp错误消息,提示源主机。源主机会回显错误提示。网关发给转发给目的主机,目的主机收到后,同样走查本地路由表,查下一跳ip的mac地址,二三层组包发出的过程。

 如下图:192.168.205.201/24,gw192.168.205.1去ping192.168.211.2的过程,需要三层交换节点设备的参与

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

   

      ping的错误回显的内容与icmp的差错消息相关的,根据回显报错的节点ip和内容,我们能知道那个节点出现问题,什么问题?

     ping时常见的icmp错误主要有下面几种:

     目的主机不可达  destnation host  unreachable          目的网络中找不到目的主机

     目的网络不可达  destnation network  unreachable    经过节点没有路由可达,或者经过节点设备存在acl拦截

     传输失败,一般错误  transmit failed. General failure  源设备中没有默认路由

     ttl传输中过期    ttl exceeded           目标ip网段在环境中存在路由环路

     路由重定向   icmp redirect              路由错误,比如目的ip应该走直连路由却送到网关上去了

       我们知道两台设备要进行通信,必须的组网结构是源设备,源目的接入通信链路,节点交换设备(二层,三层),和相应的中继通信链路,目的设备接入链路,目的设备这些基本的网络要素。ping的过程,这些要素都可能影响ping的结果。      

ping的过程和自身路由表,源和目的设备的接入通信链路二层广播通道是否通畅?访问目的ip的途径路径的节点交换设备路由设置,中继链路的状态,目的点的路由设置,对方设备的状态,目的设备防火墙是否阻止ping的请求消息通过相关等等因素相关。所以我们排查问题从这些因素去考虑排查。

     

  3、 局域网内网中ping不通,有下面几种情况:

    不通就是有icmp差错报告或者time out超时,最常见的icmp差错是目的主机不可达,所以本文我们主要研究目的主机不可达和time out这两种情况。

    

3.1、  局域网内网中ping通,目的ip和源ip是同一网段的情况

   同网段ping就两种情况,一种是ping的request没发出去,另一种是ping的request消息发出去,但没有收到回包响应,超时time out。

  • 一种情况是目的ip和源ip是同一网段的,ping的结果是“无法访问目标主机” ,属于ping的request没有发出,arp查询目的ip的mac地址失败。
  • 是否是同一网段的判断是目的ip与所有直连路由项的掩码去与运算,结果和所有直连路由的网络地址去比对,一致就是同一网段。
  • 3.1.1 ping显示无法访问目的主机的可能原因:

1 、网卡的物理链路状态down了,没有生成任何直连路由,导致没法arp请求包,用原来本机配置的ip回显目标主机不可达。

2、对方是否开机?ip是否存在?开机的话,目的主机是否接入正确的对应广播域里?对应交换机有vlan划分的话,检查硬件接口是否在同一vlanid里,是否在同一广播域里?

3、有跨交换机组网相同的vlan的话,检查经过节点设备对应的中间trunk链路是否允许对应vlanid通过?接口是否划入同一vlanid里?

4、源主机是否掩码错误?走直连路由是否正确?是否应该走默认路由,而走了直连路由。

        3.1.2  ping具体排查过程:

首先应该用ifconfig/all查看对应网络连接的物理状态,当没有媒体已断开的显示时,这时用arp  -a | findstr  ip地址,看是否获取到对应的ip地址的mac,没有的话,应该是ping命令执行时,发出的请求对方的mac地址的arp消息没有得到应答,此时根本没有发出ping的request消息。这时,要检查对方是否开机?ip是否存在?有跨交换机vlan的话,检查对应的中间trunk链路是否导通?arp消息是否能到达目的ip侧?对方是否收到arp请求消息?走直连路由是否正确?(应该走默认路由,而走了直连路由,不正确的话,检查路由表是否存在掩码之类错误)最好能在对方pc上抓包,看arp请求消息是否到达目的地址的主机,再逐级排查。

      3.1.3 对应情况1直连路由没有的情况范例:

一种特殊情况是,pc双网卡,一个网卡配置静态ip,有网关,另一个网卡无网关配置,当此有网关的网卡链路状态是down的,查看路由无对应任何直连路由生成,这时ping就会出现目标主机不可达的现象。也查不到对应ip的mac地址,抓包所有的网卡,无任何激活的网卡,无任何arp发包出去。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

3.1.4 对应情况2arp请求发出没有响应的范例:

         ping的过程,同网段的查询路由表,发现是直连路由,查询arp缓冲没有发现目的ip的mac地址,就用直连接口的ip作为源ip去查询目的ip的mac地址,如果得到响应,会用此mac地址作为目的mac组成icmp请求包发出。没有响应,arp请求消息会发出多次在ping的过程中。

如下图:我们用windump抓包,去ping一个不存在的地址。

cmd下用ipconfig/all去查看网卡的信息如下:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

  去ping一个ip为192.168.1.105去看看结果如何?同时用windump进行抓包观察:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

arp请求消息多次发出,ping的回显是自身ip的回复:无法访问目标主机。

 正常的ping消息有响应的抓包如下:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

     

 3.1.5 对应情况4掩码配置错误的范例,见下面这个连接:

ping回显无法访问目的主机,资源无法访问问题解决过程_wj31932的博客-CSDN博客_ping无法访问目标主机怎么解决局域网ping传输失败常见故障_局域网ping不通对方电脑的地址https://blog.csdn.net/wj31932/article/details/108999891

     

1、网卡物理状态出错,源设备是否双网络,仅一个网卡有网关,没有网关的设备物理状态down导致发给默认路由。默认路由转发包到路由器wan口发出,没有回包,导致time out。

2、检查目的设备防火墙,是否防火墙拦截了ping的requst消息进入设备高层。

3、目的设备子网掩码的设置错误,导致没有回程路由。

4、环境中存在多网卡设备接在同一交换机下,用错误的mac地址回答请求本机其他网卡ip地址的arp请求消息,或者广播域存在ip冲突,回答arp请求,导致源设备的request消息发给了错误mac地址,而没有回包导致time out。

5、目的设备的掩码和默认路由设置有问题,导致认为回包走默认路由,发给了另一个mac地址。

若是同网段,ping后显示time out超时,检查arp -a有对应的目的ip的mac地址,证明网络层的ping的request消息已经发出,

3.2.2 排除过程:

       ping显示time out,说明二层 arp消息已经到达目的主机的网络,而且源设备arp -a能查到对应ip的mac地址,证明arp请求响应是成功的。ping的request消息已经发出,要么目的设备没回ping的reply消息,要么回到其他地方去了?多网卡时,首先ipconfig/all检查各本地连接的状态?然后检查对应主机的防火墙是否设置,禁止了对ping的request进行响应?放开防火墙的ping request设置,或者关闭防火墙。要是防火墙没有问题,就检查路由表,看回程路由是否生成?是否正确?是否因为掩码问题,判断不是同一网段所以没有回复,或者看掩码不同,配置有网关,由路由表中发给其他地址是否发给其他mac地址?

3.2.3 情况1的走默认路由发出ping的request范例:

  一种情况特殊情况是双网卡,一个网卡配置ip地址,但无网关,一个网卡配置有静态ip,有网关。当链路状态down,媒体状态依旧断开时,这是ping显示time out,是走有网关的网卡发出,发给默认网关,网关找不到对应网段,发给上级设备的wan口走广域网出去,广域网没有回应,导致显示time out。

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

当链路状态正常是,ping 172.31.234.1时,显示可达

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

当端口网线拔掉,媒体状态已经断开

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

3.2.4 情况2目的设备防火墙拦截ping的requst进入高层的范例:也可参见下面跨网段“情况a的范例”

这时的处理方法,arp  -a里会显示有对方mac地址,抓包会有request发出,若在目的主机上抓包,能看到收到ping的request消息,检查路由这些都没有问题,这时需要检查防火墙设置,若存在防火墙,就在目的设备上防火墙放开ping消息的拦截通过或者关闭防火墙。

下图关闭防火墙的方法:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

或者在防火墙设置里放开对ping的request消息通过

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

  • 3.2.5 情况3没有回程路由的范例:

  1.  对方掩码设置255.255.255.252造成ping不通time out(回程选路认为不是同一网段,没有找到回程路由

公司一个设备有问题要进行复现,拿到后不知道ip地址,通过串口看配置文件后看到管理ip是management-port ip address 172.26.0.214 255.255.255.252,看到这里pc配置一个b类地址,172.16.0.145/16的ip后去ping。发现不通,显示time out。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

奇怪,查看arp发现对方的设备已经给回arp请求了,用windump抓包看看。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

发现对方arp响应已经发出,pc的ping的request消息已经发出,但icmp的reply消息没有,

问题在设备侧,为啥没回ping的reply消息?串口登录设备,查看设备的路由:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

发现直连的outband的路由是172.26.0.212/30,就是掩码是255.255.255.252,就是掩码是在第四段变化,ip与掩码得出网络地址。网络地址算法如下:

172       26   0    214           第四段 1101 0110                                                           

255       255  255  252           掩码   1111 1100

172       26   0    212           结果   1101 0100         网络地址是172.26.0.212,就是路由表里的显示

     设备收到172.26.0.145发来的ping的request包后,把172.16.0.145与路由表里掩码255.255.255.252与的结果是172.16.0.144,显然不上同一网段的地址,所以设备snmp口没有响应。

172     26      0       145    第四段是   1001  0001

255   255   255      252    掩码是      1111  1100

172     26      0        144     结果        1001  0000       结果是172.26.0.144,显然路由表里没有符合的路由

设备的掩码是30位,主机位是2位,所以网络地址172.26.0.212,广播地址是172.16.0.215,可用ip访问是172.26.0.213和172.26.0.214,设备用了214这个地址,所以pc应该配213这个地址。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

重新去ping,结果如下:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

抓包显示如下:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

可以看到arp消息均正常,ping的包正常,ping的序号请求,应答序号正常。

问题解决。

3.2.6 情况4目的ip的mac地址变化造成问题范例说明:

      这种有的情况是有的多网卡设备配置不同网段的ip地址,但被接在同一交换机下,多网卡的linux系统里有关于arp的设置,有的会用自己的mac回答本查找设备其他网卡ip的arp请求,导致ping发给错误的网卡,而的ip不是ping的request的目的ip,所以就不处理,导致time out。但过一会,当新的arp缓存老化后,可能源设备获得正确的mac地址,这时又能ping通,反馈到实际的业务就会出现,时通时断。这种情况很少见,在个别嵌入式设备里存在。

    ip冲突也是类似,当源设备获得错误mac地址,也会出现这种time out现象,长ping会出现时通时断。

3.2.7 情况5掩码配置错误,导致没有回程路由的范例:

    Pc1的配置192.168.205.201/24gw192.168.205.1,pc2的ip192.168.205.99。发现ping不通,显示time out。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

查arp缓存

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

Windump的抓包:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

在192.168.205.99上的查询ip和掩码

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

发现ip是192.168.205.99/25,gw是192.168.205.22

查询路由:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

Windump抓包:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

发现有reply的回包,但是另一个ip地址。

Arp查询发现:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址 发现192.168.205.201来的ping包被发给了192.168.205.22它的网关。

为什么会这样?

  因为掩码是25位,就是第四段是128,201&&128=128, 99这台pc认为的同网段的ip192.168.205.1~192.168.205.126所以pc收到pc1的包后,pc1的ip与自己直连路由表的掩码255.255.255.128与的结果是192.168.205.128与直连路由192.168.205.0不一致,所以不走直连路由,而符合默认网关0.0.0.0/0.0.0.0的路由,所以发给192.168.205.22的mac地址,导致不通。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

抓包看是如上图。

3.2.8  情况1直连路由没有生成,走默认路由发出的又一范例:

     pc双网卡,一个集成网卡配置有网关是192.168.205.201/24,gw192.168.205.1,一个usb网卡配置有172.31.232.145/24,无网关。现在去ping172.31.232.100,发现time out。

去pc的arp缓存查询如下:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址cmd下ipconfig/all 查询集成网卡的mac地址和ip地址如下:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

而应该从usb网卡上发出

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 查看路由关系

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 查看发现172.31.232.0/24的直连路由没有生成,如下:

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

  检查usb的状态发现网线掉了:

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

插上后

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

     

    4  目的ip和源ip不是同一网段

  4.1  不在同一网段有几种情况:

  1、ping的request消息没有发出(没有配置网关,没有生成默认出口路由)

  2、用本机ip回无法访问目的主机,源设备的掩码配置错误,应该是走默认路由走了直连路由。

 3、ping的request消息发给网关,但网关回了icmp错误消息,可能是访问目的主机失败,这有可能是对方未开机。或者对方开机未接在对应网络上,网关arp广播消息没收到,或者其他网络故障错误。

  4、ping的request消息发给网关,但定时器超时后,没有收到响应包。这可能是对方防火墙,对方回程路由,路径上有问题。

   4.2  排查流程:

  ping命令发出后,提示是其他ip回复的(如网关或者一个节点ip)“无法访问目标主机”,跨网段ping消息,没有直连路由的话,会首先检查是否有配置默认网关,有的话,检查arp缓存是否有网关的mac地址,没有的话,会发出arp查询网关的mac地址,有的并且响应后,直接组包发给网关的mac。出问题时:应该去检查路由表是否有缺省的路由?检查arp表是否有网关的mac地址?没有获得网关mac,检查到网关通道是否通畅?还有一种情况目的ip是不存在的ip,经过目的ip网关给回了主机不可达的icmp消息,过程是这边ping的request消息发到目的ip的网关,目的ip的网关没有对应的ip的mac地址,就会用自己的ip和mac发起arp查询,没有得到响应的话,就会向源ip地址发出host unreachable的icmp消息。源ip就显示无法访问目的主机。

4.3 情况1没有对应路由的范例:

   局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

检查路由表若没有默认路由,就得添加对应的网关地址,系统自动生成默认路由。这时,直连路由是有的,网卡全部是down状态,直连路由也没有生产,ping就会显示目标主机不可达。

   4.4  情况3目的网关发出arp请求没有得到响应的范例:

   这个情况类似同网段的情况,检查是否ip不存在,未开机,未接入对应vlan广播域?或者存在arp代答错误或者ip冲突?

   模拟过程:用pc192.168.205.201(网关是205.1)去ping局域网内另一主机192.168.206.10(网关206.1,192.168.206.10此主机不存在)的情况

    发现不是自身ip192.168.205.201回复的“无法访问目的主机”,而是一个网关的ip192.168.205.1回复的。这说明走了默认路由。

    局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

用wireshark抓包发现,205网段的网关192.168.205.1发给192.168.205.201一个主机不可达消息。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

发现网关给回了主机不可达,交换机上查询主机地址,发现没有此主机。

在206网段的其他pc上抓包,过滤对应c0-a8-ce-0a的arp广播消息,能发现网关每隔一秒发出一次arp的广播查询消息,因为没有响应,所以会发出多次。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

Arp查询没有成功,所以交换机给源主机回主机不可达的icmp消息。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

4.5  情况4,显示time out,有下面几种可能性:

a、检查下防火墙,是否拦截了ping的请求消息。

b、检查经过节点的路由是否正确,或者是否有回程路由。

c、反向路由检测,回程路由的硬件网卡出口和ping的request的入口网卡不是同一个?

d、交换机vlan对应的接口全部down了,导致vlan状态down,vlan的对应路由没有生成。导致节点从路由器wan口发包到公网上去,而没有回包导致time out?

 e、还有极端情况就是跨网段,环境中有突发性大包,超出某一个节点的传输最大速率,造成转发端口丢弃大量的包。现象会出现时通时断,某一段时间ping显示time out。这种情况可以查看交换机的收发情况,是否有大量丢弃的包。如有查找源头处理。见:ping时通时断,显示有time out问题跟踪过程_wj31932的博客-CSDN博客

4.6  排查过程:   

若显示time out,表示ping的request消息已经发出,目的ip的网关已经获取到目的ip的mac地址,但ping的reply消息,源主机没有收到。这时应该在被叫侧检查ping的request是否到达,若是windows系统,可以使用wireshark进行抓包,过滤对应源ip或者icmp消息,看是否到达,若到达,看是否有回报发出,有的话,检查回程路由,看回包的mac地址是否和ping的request来包是否一致,不一致,检查回程路由和节点回程路由。没有回包,检查防火墙和回程路由。防火墙针对进入系统的包,拦截了ping的request消息,导致上层收不到request而没有回包。

   4.7 情况a目的设备的防火墙拦截icmp消息进入高层的范例:

pc192.168.205.201/24,gw192.168.205.1去ping一台内网的pc192.168.206.110的情况:

   局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

若没有到达目的ip地址,就检查经过节点的路由是否正确,能通道是否导通?

    在目的主机上抓包看到,包已经到目的主机,但目的主机没有回。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址  检查网关的mac地址和路由表里都正常,检查防火墙发现防火墙开启,关闭后正常。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

或者在防火墙-高级设置-入站规则-文件和打印机共享(回显请求icmpv4-in)允许就行,允许ping的request探查消息通过。局域网ping传输失败常见故障_局域网ping不通对方电脑的地址 

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

关闭防火墙后正常。

为啥能抓到包?是因为抓包是利用驱动在mac层完成,而防火墙是在ip层工作,所以抓包看到ping的请求消息,而ip层以上没有收到,自然不回响应。

4.8  符合b没有回程路由的范例:

如图,ping 172.103.201.105一台内网centos7.0的服务器。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

在目的主机侧执行tcpdump的结果tcpdump  -i em1  -nne icmp:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

Ping的request已经收到,为啥没有回?检查防火墙是否开启和回程路由是否存在?

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

防火墙未打开,检查回程路由是否存在?

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

发现没有对应的回程路由,192.168.205.0。添加后观察:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

添加路由后,ping观察。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 4.9   符合情况b回程路由指向另一个ip地址的情况:

    是源设备的路由指向错误,指向了错误的网关,导致ping发包发的错误的地方,而没有回包。

ping大量丢包问题解决过程_wj31932的博客-CSDN博客_ping 丢包

  4.10  符合情况c反向路由检测开启,源入口和路由出口不在同一网卡的范例:

     有人反馈,用192.168.205.201/24去访问sip服务器172.102.201.100,sip消息没有响应包,去ping显示time out,让给解决问题。

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

      已知sip服务器是多网卡设备,centos7.0,eth0配置有ip192.168.205.18,eth2配置ip172.102.201.100/24,gw172.102.201.1。用eth0的ip登录服务器查看:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

    看到192.168.205.0/24的回程路由是走eth0,而172.102.201.0/24的回程路由是eth2,抓包看一下访问172.102.201.100从那个网卡进来,先tcpdump跟踪一下eth2:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

发现ping的request包是从17.102.201.1发来,发给eth2的mac地址 20:04:0f:ef:89:d6。

  显然,入包是eth2,而回包走eth0,linux下开启反向路由检测,禁止这样转发。

   一种做法,添加详细的32位主机路由,让192.168.205.201/32指向172.102.201.1,从eth2回去。

   4.10.1  另一种关闭网卡的反向路由检测

 执行下面的命令:

[root@vnf ~]# echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter  关闭所有的网卡的反向路由检测
[root@vnf ~]#  echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter   关闭eth0的检测
[root@vnf ~]#  echo 0 > /proc/sys/net/ipv4/conf/eth2/rp_filter   关闭eth2的检测

ping的结果如下:

 发现回包的ttl是64,没有经过路由,ttl没有-1的动作,说明发出源是直连路由,显然是走服务器的eth0口出去的。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

在服务器上分别抓eth2和eth0的包如下:

eth2进,eth0出。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

  4.10.2  添加主机路由的方法:

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

如图:添加一个主机路由,指向172.102.201.1,让从eth2回去。

局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 发现ttl值有变化,tcpdump确定是eth2上收到发出。局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

 局域网ping传输失败常见故障_局域网ping不通对方电脑的地址

问题解决。

5  结论:

Ping出现故障时,首先检查ping的request消息是否发出,发出的mac地址是否是确的mac地址出现time out时,要检查目的主机是否收到request消息,收到是否回了,回的mac地址是否正确

Ping出现无法访问目标主机时,一般是本机或者网关没有获得对方主机的mac地址,要么ip不存在或者没有开机或者arp消息对方没有收到。Ping出现time out时,是对方没有应答,一般检查防火墙是否打开,或者回程路由是否存在,或者回程路由有误,回包发向了错误的地方。还有的情况是对方是另一个vlan下的ip,当整个vlan接口状态是down的情况下,会受到网关发来的ttl  exceed的回显。没有路由的情况下,也会出现类似的回显。

当在linux环境中执行ping命令时,等待十几秒没有任何回显,一般是time out了,这是检查目的ip是否同网段,是的话,arp  -n看是否有目的ip的mac地址,有就确定了。不是同网段确定是time out,按time  out处理方法进行。

总之:ping不通,要根据回显的发出的ip地址和错误类型判断可能的情况来确定问题,并进行相应的处理。本机ip报告的错误,应该是直连路由,其他网关节点ip报告的错误,应该是跨网段的访问出错了。

   

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/180254.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(2)
blank

相关推荐

  • AppSettings和ConnectionStrings的区别

    AppSettings和ConnectionStrings的区别AppSettings是ASP.NET1.1时期用的,在.NETFramework2.0中,新增了ConnectionStrings. 1.  providerName=”System.Data.SqlClient”/>  或是  providerName=”System.Data.SqlClient”/>  在里,在页面还可以这样引用.

  • cuda编程基础(编程软件有哪些)

    CUDA(ComputeUnifiedDeviceArchitecture),是显卡厂商NVIDIA推出的运算平台。CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

  • python 多分类情感词典_基于情感词典的python情感分析[通俗易懂]

    python 多分类情感词典_基于情感词典的python情感分析[通俗易懂]PythonPython开发Python语言基于情感词典的python情感分析近期老师给我们安排了一个大作业,要求根据情感词典对微博语料进行情感分析。于是在网上狂找资料,看相关书籍,终于搞出了这个任务。现在做做笔记,总结一下本次的任务,同时也给遇到有同样需求的人,提供一点帮助。1、情感分析含义情感分析指的是对新闻报道、商品评论、电影影评等文本信息进行观点提取、主题分析、情感…

  • 数据库中select 查询详解[通俗易懂]

    数据库中select 查询详解[通俗易懂]数据查询操作介绍在数据库操作中,使用频率最多的是查询操作。查询数据时,根据不同的需求,条件对数据库中的数据进行查询,并返回结果单表查询数据查询数据库使用 select 命令。这个命令相对比较复杂。可变化样式较多,这里分功能依次讲解。 查询数据表中所有数据语法:select*from表名 select*fromt_student; …

  • telnet不是内部或外部命令怎么办[通俗易懂]

    telnet不是内部或外部命令怎么办[通俗易懂]telnet不是内部或外部命令怎么办命令提示符下执行telnet,提示:’telnet’不是内部或外部命令,也不是可运行的程序或批处理文件。Win7,Win10系统环境下,Telnet客户端默认是关闭状态。下面我们来看看如何打开Telnet客户端?打开【控制面板】。单击“程序”;单击“打开或关闭Windows功能”;勾选“Telnet客户端”,单击“确定”。打开Telnet客户端;无需重启,再次运行Telnet,成功进入MicrosoftTelnet

  • Qt 之等待提示框(QMovie)

    Qt 之等待提示框(QMovie)简述关于gif的使用在实际项目中我用的并不多,因为我感觉瑕疵挺多的,很多时候锯齿比较严重,当然与图存在很大的关系。关于生成gif的方法可以提供一个网站preloaders,基本是可以满足需求的。简述效果源码更多参考效果由于录制程序的原因,引起gif效果不清晰,可忽略。源码通过使用QMovie来设置动画、可以调用setSpeed()设置动画速度、start()启动动画、stop()停止动画等。Q

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号