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地址冲突检测原理分析(知了社区)

  • 相关阅读:
    Oracle 推出 ODAC for Entity Framework 和 LINQ to Entities Beta版
    Entity Framework Feature CTP 5系列文章
    MonoDroid相关资源
    MSDN杂志上的Windows Phone相关文章
    微软学Android Market推出 Web Windows Phone Marketplace
    使用 Visual Studio Agent 2010 进行负载压力测试的安装指南
    MonoMac 1.0正式发布
    Shawn Wildermuth的《Architecting WP7 》系列文章
    使用.NET Mobile API即51Degrees.mobi检测UserAgent
    MongoDB 客户端 MongoVue
  • 原文地址:https://www.cnblogs.com/key-network/p/14330389.html
Copyright © 2011-2022 走看看