无法上网故障排查过程及复现过程系ip冲突造成

本文详细记录了一次网络故障排查过程,从同事的PC无法上网开始,通过分析网络连接、ARP请求、交换机MAC地址表和Wireshark抓包,最终确定问题在于IP冲突导致的169.254.0.0地址使用。解决方案包括检查和避免IP冲突,确保DHCP正确工作,以及理解PC如何通过ARP获取网关MAC地址。
摘要由CSDN通过智能技术生成

        有刚出差50天同事找来说他第一天上班,pc无法上网,让给看看哪的问题?问他网络物理状态,说没问题,就是网卡标志那里有黄色的感叹号。

 无法上网可能的原因:

            1、网卡连接存在物理故障

             2、无法获得网关mac地址,arp -a查询不到网关mac地址,上网包无法发出。可能是dhcp获取ip失败,或者存在ip冲突,或者网卡的广播域不对,和网关不在同一广播域里。

             3、dns失败,无法解析目的域名。

      说他是设置的固定ip,让arp  -a查一下网关192.168.209.1的mac地址,反馈没有查到,怀疑核心交换机没有响应pc的arp请求,公司交换机出过这样的问题,询问pc的mac地址,回答是下图:

 决定去交换机上查一下mac地址和arp表。已知组网如下:

  组网中209交换机是当二层接入交换机用,起vlan209,核心光交换机3048上起vlan209的svi子接口地址192.168.209.1作为209交换机下设备的网关。

发现在交换机的22口有这个mac地址,清一下mac地址,然后在核心网交换机去查找对应mac地址。

   发现核心交换机的10G口上有这个mac地址,证明二层广播通道是正常的,排除pc的网线和网关不在同一广播域里的可能性。但却在arp缓存里找不到这个mac地址,如下图:

   确定交换机的6口是209交换机的对接接口,为了确定问题,镜像一下1/1/6口的消息看看:

wireshark做预过滤,过滤ether  hw    D8CB.8A29.26FC。

 

发现这个mac地址用169.254.163.76的ip地址发出获取网关192.168.205.1的mac地址的arp消息,但没有应答消息。明显这属于网关mac地址获取失败导致的故障。

169.254.0.0/16是链路本地地址是互联网协议地址仅用于本地网络(链接)或主机连接到的点对点连接的段内的通信。路由器不转发与链路本地地址的数据包。链路本地地址可以由管理员手动或由操作系统程序来分配。它们大多使用无状态地址自动分配。在IPv4中,它们通常仅出现在当地址配置的没有外部,状态机制存在,如动态主机配置协议(DHCP失败),或者当另一个初级配置方法未能实现(ip冲突)。

   网卡ip变成169.254.x.x,一种情况是是pc的网卡启动或者dhcp续租成功时,检测到环境中存在ip冲突,操作系统为保护起见分配的保留ip地址。此地址不是合法的地址,因此无法获取的网关的mac地址,无法实现上网等操作。路由器不响应这类消息的arp请求,这个地址无法通过路由器。

  用169.254.xxx.xxx的地址发起的arp请求,网关是不处理的,所以pc无法获取网关192.168.209.1的mac地址,网关的arp表里也没有对应mac地址的arp缓存出现。他设置的是固定ip才这样的,应该是ip冲突所致,让他改成自动获取试试?

 看抓包如下:

   发现,dhcp过程正常通过,获得ip是192.168.209.97,核心交换机响应arp请求:

  问题解决。

pc设置固定ip或者dhcp时,网卡激活i,或者dhcp获得ip后,会发三次arp探查消息,看广播域里是否有同样的ip,来检测ip冲突。特征是arp的源ip和目的mac为0。没有应答情况下,发出免费的arp消息,在这个抓包里查找一下,如下图:

免费arp的特征如下图:

 免费arp的特征是源和目的ip是一样的,目的mac地址为0。

 用自己的pc192.168.205.201的固定ip验证一下:

查看系统中有192.168.205.5,mac地址是 0030.18CC.7B40的ip在线,设置成这个ip抓包看一下。

设置后发现,系统托盘的网卡标志变成:

查看网络状态:

抓包里的查看过滤自身mac地址 eth.addr== 44:37:e6:8d:95:27  && arp

发现第一次进行arp探查时,就有 0030.18CC.7B40的设备发出响应。确定冲突了,此ip不能用,系统分配了169.254.57.43的ip地址,用这个ip发出同样的arp探查消息。

   现在想来,一开始同事的截图里就有169.254.163.76的ip地址,而且他说的配置的固定ip192.168.209.78在核心交换机查询是其他mac地址,这样就能直接判断出是ip冲突问题,抓包走了弯路。

     模拟网卡设置为自动获取的处理方式

        已知,本机mac地址 44-37-E6-8D-95-27自动获取的ip地址是192.168.205.57,就把广播域里另一台笔记本设置此ip地址,本机改成自动获取后抓包如下:

  dhcp后获得192.168.205.27,arp探查后,发现环境中有冲突,这是临时使用169.254.57.45的本地链路地址,pc发出dhcp的decline消息,告诉服务器此ip不可用,然后重新发起dhcp,获得192.168.205.55的ip地址。同样,三次探查没有发现冲突,使用此地址。

总结:1、无法获取网关的arp,可能是pc采用本地链路地址169.254.xx.xx,可能环境中存在ip冲突或者dhcp获得到的地址环境中有冲突。

 2、对dhcp服务器,有的在offer前,会向广播域里发出arp查找消息,看是否有冲突,不冲突才给出,有的直接在ip池里找一个没使用的发出offer。pc收到这个ip,发起检查发现冲突了,客户端会发decline消息拒绝此ip,然后重新发起dhcp流程,直到获得可用ip地址。

3、pc获得网卡上电,会用自己的ip地址发出三次arp探查消息,没有冲突发出免费arp消息。有冲突,使用本地链路地址169.254.xx.xx,继续同样的流程。

4、网关不处理169.254.xx.xx的ip地址的arp消息。

5、若网卡本地连接详细信息出现两个自动配置ipv4地址,而且其中一项是169.254打头,说明ip冲突了。

6、若设备发起dhcp消息,而环境中无应答,dhcp超时失败,系统也会分配一个169.254打头的ip地址,同样发起最多三次冲突检测,但无法获取到网关mac地址。

7、dhcp服务器分配一个ip地址给一个mac地址后,会建立一个ip和mac地址的自动绑定关系,在租期内用户关机或者掉线后,没有超过租期再次接入网络,服务器会若检查到此ip没有被占用,会再次分配这个ip给这个mac地址设备使用。这个对应关系在服务器重启或服务终止后失效。当服务器收到该mac发出release消息或者再次discover消息后,绑定关系取消。超过租期没有续租的,绑定关系取消。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值