IP冲突的本质是什么?

参考阅读

抓包详解ARP协议
ARP欺骗攻击
网络安全基础与常见攻击(ARP攻击、ICMP攻击、DDOS攻击、TCP RST攻击)
交换机、路由器的工作方式详解

IP地址冲突的本质

是否了解IP冲突的本质,先问一下自己一下三个问题

1、LAN环境下,若两台PC的IP相同,会怎么样?
2、两台电脑IP与网段均不相同,使用一根网线,如何ping通?
3、LAN环境下,部署了DHCP,Client均使用自动获取IP,却出现IP冲突,为什么,如何解决?


一、LAN环境下,若两台PC的IP相同,会怎么样?

分析:

  • 若两台PC的IP相同,那么在接入交换机的MAC表项(老化时间5min)上就会出现这两台PC的MAC地址与接口的bind关系,这当然不会影响什么
  • 问题出现在三层,(三层可以是L3-SW,Router);三层存在ARP表项(老化时间20min),即IP与MAC地址的bind关系

造成的影响:
由于两台PC的IP相同,当PC与网关通信时,PC就会广播自己的IP-MAC的bind关系,对于三层设备而言,自己的ARP表项不断的更新(刷新间隔短,频率高),三层设备回包时,IP不变,但是目的MAC变化,导致二层交换机的des-mac一会A,一会B;最终导致两台PC的网络卡顿,不稳定!

什么是免费ARP?
设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。

免费ARP有如下作用:

  • IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。

  • 用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。

  • 在VRRP备份组中用来通告主备发生变换:发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换。

设备收到免费ARP报文后,

  • 如果未使能ARP表项严格学习功能,设备会进行ARP学习。
  • 如果使能了ARP表项严格学习功能,则进行如下判断:
    • 如果免费ARP报文中源IP地址和自己的IP地址相同,则周期性的广播发送免费ARP应答报文,告知此IP地址在网络中存在冲突,直到冲突解除。
    • 如果免费ARP报文中源IP地址和自己的IP地址不同,免费ARP报文是在VLANIF接口收到的,并且设备上已经有免费ARP报文中源IP地址对应的动态ARP表项,则进行ARP学习,即根据收到的免费ARP报文更新该ARP表项。其余情况收到免费ARP报文后均不进行ARP学习。

缺省情况下,设备未使能ARP表项严格学习功能。

实验测试
在这里插入图片描述
此时在PC3,4上分别ping网关,即为了使二层交换机学习到mac表项,三层设备学习到ARP表项
在这里插入图片描述
在这里插入图片描述
可见,此时的ARP表项中的MAC地址是PC4的,当PC3此时ping网关后,ARP就会刷新
在这里插入图片描述

在这里插入图片描述
如上所示,当PC4ping完网关后,网关的ARP的MAC就是PC4的,此时再从PC3上ping网关,抓取PC3连接交换机的接口的报文,可见,PC3在广播ARP时发现复用的IP,即IP地址冲突的意思

PC4这边相同,即再PC3ping完后,再PC4上ping,抓包就会发现有复用的IP;有复用这不算啥大事,关键是,有时候PC3,4的网络不稳定,有时候出现网络不通的情况,如下所示
在这里插入图片描述
在这里插入图片描述
分析

电脑接入网络后,会发送免费ARP(Gratuitous ARP),向整个二层网络广播自己的IP地址与MAC地址信息,以便让别的终端学习,当A侦测到有终端广播的IP地址与自己一致时,电脑便会提示IP冲突了
在这里插入图片描述

二、两台电脑IP与网段均不相同,使用一根网线,如何ping通?

当你一看到网段不同,你也许会想到不同子网间通信加个路由器就搞定了,但是现在的场景是一根网线胡同,怎么玩呢?

依照第一个问题中的那个图可知,当请求方PC发现对方与自己不在同一子网,那么在封装数据包时,其中的des-mac是网关的mac

使用手工静态添加的IP-MAC的bind关系,这样PC发现对方与自己不在同一子网后,查找自己的ARP表后,就可以直接转发了!

实验测试
在这里插入图片描述
此时PC5pingPC6肯定是不通的,没有ARP表项,没有三层的路由转发设备

在这里插入图片描述
手工添加APR表项
在这里插入图片描述
在这个eNSP环境中不通是模拟器的原因,于是我又在路由器上做了静态ARP的实验,发现还是不通;感兴趣的可以在真实场景中尝试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
后来一想,路由器当然不通啊 路由器发送报文就做一件事,查表;不管你有没有ARP的静态表项,只要路由表没有表项,那就丢弃!

三、LAN环境下,部署了DHCP,Client均使用自动获取IP,却出现IP冲突,为什么,如何解决?

背景描述:部署了热备的三层设备,再进行主备切换后,一些PC重启或者新开机,则出现IP冲突

原因分析:DHCP协议中Server本身没有IP冲突的检测机制,其实检测机制实在Client,Client收到DHCP-ACK后,发送免费ARP,在全网ping一下这个地址,如果没有得到回应,那么就会认为没有冲突,其实这样的检测一点也不准,因为网络中有些PC处于安全原因是禁PING的!

那么如何解决呢?内网环境,让主机的防火墙允许外部的PING入栈即可

总结

  • 看似简单的IP冲突,却涉及整个网络通信最底层的原理,MAC、IP、ARP、数据包的封装等
  • 具体场景具体分析,大道至简,注重基础
参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页

打赏作者

Eichi_

你的鼓励是我创作最大的动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值