ping一个ip打印无法访问目的主机一次,然后打印请求超时问题定位过程

环境:win11,双网卡,主板网卡和usb网卡,主板网卡配置192.168.186.118/24,网关192.168.186.1,上internet。usb网卡配置内网172.16.81.100/22,无网关。

问题:现需要配置一个内网测试环境,需要一个ip地址,去尝试ping172.16.81.46,发现出现打印一次无法访问目的主机,然后打印三次请求超时。

疑问:无法访问目的主机,意味着主机发出arp请求请求,在指定时间内没有得到reply响应(windows是3s,arp发出4次,间隔1s,4s后没有响应,打印无法访问目的主机),pc打印这个意味着广播域里没有这个ip地址。

但请求超时意味着pc已经获得母的ip的mac地址,并用这个mac地址单播组包,ping的request消息已经发出,但指定时间内没有得到ping的reply响应(windows默认是5s),然后pc打印这个消息,这两者矛盾?

排查过程:

 广播域里有一个ap,有串口,在串口下抓一下arp消息,看看是否广播域里arp?

发现打印四次arp请求消息后,再没有了,说明单播ping的request已经发出,发给谁了,在pc上抓包看看,抓两个网口的包,观察发给谁了?

过滤arp  contains   ac10-512e   or  icmp   arp含172.16.81.46就是ac10-512e

如上图arp查询源mac是 00:0f:c9:24:10:b1,ping的request的源mac是Source: cc:96:e5:23:39:3c,目的mac是Destination: 64:a3:41:80:13:91,查一下这个两个源mac是那个网口的,目的mac是那个的?

cmd下getmac  /v查看网卡的mac地址

C:\Windows\System32>getmac  /v

连接名          网络适配器      物理地址            传输名称
=============== =============== =================== ==========================================================
以太网          Realtek PCIe Gb CC-96-E5-23-39-3C   \Device\Tcpip_{E23FF6BD-F5DA-4E0C-B23F-FB03429AAAB6}
WLAN            Realtek 8821CE  74-97-79-A9-A6-13   媒体已断开连接
VMware Network  VMware Virtual  暂缺                没有硬件
VMware Network  VMware Virtual  暂缺                没有硬件
以太网 2        TAP-Win32 Adapt 暂缺                没有硬件
以太网 4        Realtek USB GbE 00-0F-C9-24-10-B1   \Device\Tcpip_{BAD890BC-283C-4C22-845B-A085D6B91131}

发现00-0F-C9-24-10-B1是usb网口的mac地址,CC-96-E5-23-39-3C是主板网卡的mac地址,确定arp请求是从usb网口发出,而ping的request是从主板网口发出的,查一下发给了谁?

arp -a | findstr  -i 91   查arp表包含91的项

C:\Windows\System32>arp  -a  |  findstr  -i  91
  192.168.186.1         64-a3-41-80-13-91     动态  判断发给192.168.186.1

查路由表确定一下,route  print  -4   |  findstr  186.1

C:\Windows\System32>route print  -4 | findstr  186.1  发现符合就是0.0.0.0的默认路由
          0.0.0.0          0.0.0.0    192.168.186.1   172.16.100.100    281
      192.168.1.2  255.255.255.255    192.168.186.1   172.16.100.100     26
    192.168.1.210  255.255.255.255    192.168.186.1   172.16.100.100     26
    192.168.1.240  255.255.255.255    192.168.186.1   172.16.100.100     26
  192.168.186.118  255.255.255.255            在链路上    172.16.100.100    281
        

结论:win11下双网卡情况下,ping内网ip不存在的地址,arp消息会从内网发出,若没有响应,系统会从默认路由发出ping的request消息,发给网关。

验证一下:指定内网ip发出ping消息ping  172.16.81.46  -t  -S  172.16.81.100看看打印

广播域里达ap上tcpdump打印:

很有规律的一秒一个ping的request消息发出。

要点:

1、ping过程是路由查询,判断目的ip是否直连路由,是直连路由,检查mac地址缓存是否有对应mac地址和ip的对应项,有直接发出ping的request给目的mac,没有的话发出arp查询,超时没有响应打印无法访问目的主机或destnation host unreachable。若有响应,更新创建mac和ip对应表项,发出单播ping的request消息。

2、路由查询发现符合默认路由,就检查mac缓存表里是否有网关的mac,有直接组包发出,没有的话,用本地与网关同网段ip和mac发出arp查询。

3、win11下是双网卡下若直连没有arp响应,系统认为这个路由不可达,就用默认路由发出ping的request消息。

4、getmac命令列出本机mac地址列表,findstr查询命令输出或文件里符合的字符串的行,wireshark里contains查询包含的字符串或16进制数,每两个字节一段,超过的用-或:分开。

5、ping的选项中-S后面跟的ip就是用这个ip发出ping消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值