局域网ping有时通有时不通_ping不通局域网电脑

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

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

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

       文档中有截图:看不清请把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/169360.html原文链接:https://javaforall.cn

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

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

(1)
blank

相关推荐

  • 微信公众平台开发(十) 消息回复总结

    微信公众平台开发(十) 消息回复总结一、简介微信公众平台提供了三种消息回复的格式,即文本回复、音乐回复和图文回复,在这一篇文章中,我们将对这三种消息回复的格式做一下简单讲解,然后封装成函数,以供读者使用。二、思路分析对于每一个POST请

  • css里的clear_css display属性的值及用法

    css里的clear_css display属性的值及用法clear:none|left|right|both.对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。清除浮动方法,1,给父级元素添加class=“clearflex”2,在css中给父级添加属性:overflow:hidden;(我比较喜欢这个)3,伪元素清除法,4,建立空的div,命名为clear,在css中添加clear:both;…

  • shiro框架使用的注解_spring shiro

    shiro框架使用的注解_spring shiro使用shiro框架时出现如下bug:org.apache.shiro.authc.IncorrectCredentialsException:Submittedcredentialsfortoken[org.apache.shiro.authc.UsernamePasswordToken-admin,rememberMe=false]didnotmatchtheexpectedcredentials.可能出现此bug的原因为:1)没有设置加密算法,却进行加密配置2)虽然进

  • LVS+Keepalived实现高可用负载均衡

    LVS+Keepalived实现高可用负载均衡

  • python中class的定义及使用_python中class的定义及使用

    python中class的定义及使用_python中class的定义及使用因为一直不太清楚面向对象的类和方法的编程思想,所以特地补了一下python-class的知识,在这里记录和分享一下。文章目录类和方法的概念和实例1.python类:`class`2.类的构造方法`__init__()`3.类中方法的参数`self`4.继承5.方法重写类的特殊属性与方法类的私有属性类的私有方法类和方法的概念和实例类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类的构造方法__init.

  • es6的map和set的区别_sleep和wait的区别

    es6的map和set的区别_sleep和wait的区别SetSet对象可以存储任何类型的数据。值是唯一的,没有重复的值。特殊值:+0与-0恒等,不重复。undefined与undefined恒等,不重复。NaN与NaN不恒等,但在Set中只能存一个,不重复。应用:数组去重使用Set值是唯一的特点可以对数组进行去重。vararr=[…newSet([1,5,4,4,7,6,6]…

发表回复

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

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