zoukankan      html  css  js  c++  java
  • 代理arp的深入学习和实践实验

    Gratuitous ARP

    定义

    代理arp为arp的一种特定,为了解决局域网IP地址冲突问题而产生。

    组成

    ARP request、ARP reply

    报文内容

    ARP request

     

    源IP、MAC是自己;目的IP是检测的IP(自己)、MAC是全0

    ARP reply

     

    源IP、MAC是自己,目的IP、MAC是发送request方

    作用

    1. 更新伙伴arp:当设备的硬件地址发生变化时,可以发送arp request来更新同一广播域下所有设备变化设备的arp表项;
    2. 检测冲突:当arp request发出后,没有reply,证明局域网内没有其他使用该IP;如果收到reply后,说明局域网内有设备在使用该IP;

    当主机收到reply包后,系统会提醒用户IP地址冲突,并会周期性的发送arp reply报文,直到冲突接触。

    优点:通过周期广播代理arp来检测IP是否冲突;

    缺点:广播泛滥会导致局域网不稳定;

    Address Conflict Detect

    定义

    Address Conflict Detection,地址冲突检测,简称ACD。鉴于代理ARP的缺陷,RFC 5227提出ACD机制。其中ACD将arp request分为ARP probe和ARP announcement两种;

    报文

    ARP probe:用于检测IP地址冲突,发送端IP填充为0,填充为0是为了避免对其他设备的ARP cache造成污染(ARP probe报文不会使局域网中的其他设备刷新ARP映射关系,若已经有设备正在使用目标IP地址了,其通信不会受影响)

    源IP是全0,MAC是自己;目的IP是检测的IP(自己)、MAC是全0

    ARP announcement:用于“昭示天下”(LAN/VLAN)本设备要使用某个IP地址了,它其实就是一个免费ARP request,即发送端IP地址和目标IP地址都是本设备IP地址的ARP request报文,

    源IP、MAC是自己;目的IP是检测的IP(自己)、MAC是全0

    工作原理

    1. 网卡启动或从睡眠状态醒来时,会发送一个ARP probe;
    2. 发送设备收到其他主机发送的arp probe时或者ARP reply。当收到ARP reply时,证明IP有其他主机在使用了。当收到arp probe时,证明有其他主机想要这个ip。 无论是收到arp reply或者prboe,两段将提示用户地址冲突,并激发地址冲突处理机制。
    3. 如果上面两种包都没有收到,说明IP地址可用。设备将发送arp announcement,告诉大家这个IP已经被我在使用了,并且让其他设备更新arp表项。

    地址冲突处理机制

    当检测到IP地址冲突后,RFC5527提供了三种可选的解决机制:

    1. 直接放弃使用该IP地址;
    2. 发送一个ARP announcement来进行IP地址“守卫”,如果冲突仍然继续存在,放弃使用这个IP;
    3. 无视冲突,继续使用这个IP。

    Windows系统主机的地址冲突检测实现情况

    参考本文最后参考文献

    华三交换机路由器防火墙 处理IP地址冲突处理机制

    通过以下的实验进行分析:

    一、设备“不开启源IP地址冲突提示功能”(默认情况)

    如下拓扑所示,将SW与测试仪器互联的地址配置为100.1.1.1/24,然后用测试仪器向SW分别持续打入3种报文。

    1、 打入ARP probe

    可以观察到当SW持续收到地址100.1.1.1的ARP probe报文后,会不断以地址100.1.1.1的免费ARP进行回应,但不会产生地址冲突的告警日志。

    2、 打入ARP announcement(免费ARP request)

    可以观察到当SW持续收到地址100.1.1.1的免费ARP request报文后,会不断以地址100.1.1.1的免费ARP进行回应,但不会产生地址冲突的告警日志。

    3、打入ARP reply(发送者IP与标记IP均为100.1.1.1)

    可以观察到当SW持续收到地址100.1.1.1的免费ARP reply报文后,每隔6s会回应一个免费ARP request报文,检测冲突是否消除,而且会生成地址冲突的告警日志。

    二、设备“开启源IP地址冲突提示功能”

    重复上述三个打流过程,此时设备收到地址100.1.1.1的三种免费ARP报文后,每隔6s都会回应一个免费ARP request报文,检测冲突是否消除,而且会生成地址的冲突的告警日志。

    1、PC/服务器等终端设备通常采用RFC 5227中新的ACD检测流程,当检测到地址冲突后,其处理方式与RFC 5227中提供的“机制一”一致,即直接放弃对冲突地址的使用。在修改终端地址、新终端接入局域网等应用场景下,如果产生地址冲突,该方式最有利于网络的稳定性。

    2、H3C网络设备直接采用免费ARP实现地址冲突检测,而非RFC 5227中新的ACD检测流程。当检测到地址冲突时,其处理方式与RFC 5227中提供的“机制三”一致,即继续占用冲突地址。在修改终端地址、新终端接入局域网等应用场景下,如果产生地址冲突,网络设备比终端设备更“强势”,终端设备更容易放弃对冲突地址的使用,这样有利于网络的整体稳定性。但在网络设备间地址冲突的情况下,该机制对整网稳定性会造成持续影响。

    3、当H3C网络设备关闭源IP地址冲突提示功能时(默认情况),仅在收到免费ARP reply后,每隔6s会回应一个免费ARP request报文,检测冲突是否消除,而且会生成地址冲突的告警日志;当开启源IP地址冲突提示功能时,只要收到ARP报文的目标IP与本地地址一致,每隔6s会回应一个免费ARP request报文,检测冲突是否消除,而且会生成地址冲突的告警日志

    本文参考文献:

    https://zhiliao.h3c.com/Theme/details/27896 免费ARP实现IPv4地址冲突检测原理分析(知了社区)

  • 相关阅读:
    使用Visual Studio自带工具dumpbin解析PE文件
    Python内置函数—bytearray
    .gitignore
    Git本地仓库基本操作
    推荐一款编辑神器UltraEdit
    APK文件结构
    在QQ浏览器中使用微信读书辅助工具“小悦记”插件
    Vue动画
    自定义指令的学习
    Vue过滤器的基本使用
  • 原文地址:https://www.cnblogs.com/key-network/p/14330389.html
Copyright © 2011-2022 走看看