网络基础---ARP原理与eNSP实验

时间:2024-02-26 09:58:50

一.地址解析协议(Address Resolution Protocol)的作用

  ARP协议为IP地址到对应MAC地址提供动态映射。

  简而言之,就是根据目的IP地址找到MAC地址(数据帧在数据链路层传输过程中,需要目的MAC地址、ip)

二.ARP分组格式(这里指局域网电脑间的状态,利于理解)

  

  

  以太网首部 从左到右分别为:    

    以太网目的地址,这里指接受端电脑的MAC地址(全1时代表广播地址)

    以太网源地址地址,这里指发送端电脑的MAC地址

    以太网帧类型,表示数据类型,这里指ARP协议 ,值为0x0806

  ARP请求/应答 从左到右分别为:

    硬件类型,这里指以太网地址,值为1

    协议类型,这里指IP协议,值为0x0800

    硬件地址长度,这里指MAC地址,值为6

    协议地址长度,这里指IP地址,值为4

    操作类型,ARP请求,值为1;ARP应答,值为2;RARP请求,值为3;RARP请求,值为4;

    发送端以太网地址,这里指发送端电脑的MAC地址

    发送端IP地址

    目的以太网地址(在ARP Request报文中,不知道目的以太网地址,该字段填充值为0)

    目的IP地址

    扩展

    电脑A向电脑B发送ARP请求时,电脑B收到后,操作类型加1变成2,发送ARP应答

    因为ARP请求/应答格式相同,通过OpCode字段确定操作类型

  实验验证ARP分组格式

  工具:

    eNSP V1.2.00.510

    Oracle VM VirtualBox 5.2.22

    Wireshark 1.4.3

    WinPcap 4.1.3

  如下图所示:

  

  1.在主机A命令行输入: arp -a

  可以看到主机A中没有ARP缓存(IP地址和物理地址映射关系),就需要通过ARP协议寻址

  

  2.抓取主机B端口的以太网数据帧,在主机A命令行输入:ping 10.1.1.2

  

   抓取到ARP请求/应答数据帧

     

  ARP请求数据帧(主机A发送),对照RAP分组格式食用,其中操作类型为1,目的地址全为1(广播)

  

  ARP应答报文(主机B发送),对照RAP分组格式食用,其中操作类型收到后+1

   

 

  主机A命令行中:输入arp -a

  可以看到arp缓存中,有主机B的IP地址与MAC地址的映射

  

 

   

3.ARP高速缓存

定义:

  ARP缓存是一个缓冲区,用来储存IP地址和MAC地址,本质就是<IP地址,MAC地址>的对应表。表中一个条目记录了网络上一个主机的IP地址和其对应的MAC地址。

  每一个以太网或令牌环网络适配器都有自己单独的表。

  当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。

ARP缓存表项的生存时间TTL

  ARP缓存包含动态和静态项目:

  动态项目随时间推移自动添加和删除,每个动态ARP缓存项都有都设置了TTL(生存时间),TTL为0时此项目就从表中删除,Windows下TTL一般不超过10分钟。

  静态 ARP 缓存条目是永久性的,可以使用 TCP/IP 工具手动添加和删除。静态 ARP 缓存条目用来禁止节点发送对常用的本地IPv4地址(例如路由器和服务器的 IPv4 地址)的ARP请求。

ARP高速缓存的使用

  当主机发送一个ARP请求时,先查看ARP高速缓存表,如果存在对应条目,则直接返回MAC地址,否则向局域网发送ARP请求广播。

ARP高速缓存的优缺点

  优点:从ARP高速缓存的使用中可以看到,ARP高速缓存可以减小广播量,进而减小网络通信量,提高计算机之间的通信效率。

  缺点:造成安全隐患(参考下面免费ARP的作用)。

4.免费ARP

定义

  免费ARP指主机发送ARP查找自己的IP地址,通常发生在系统引导期间进行接口配置时。

  与标准ARP的区别就是免费ARP分组的目的IP地址字段封装的是自己的IP地址,即向所在网络请求自己的MAC地址。

作用 

  免费ARP的作用有:
  1) 一个主机可以通过它来确定另一个主机是否设置了相同的 IP地址。

   正常情况下发送免费ARP请求不会收到ARP应答,如果收到了一个ARP应答,则说明网络中存在与本机相同的IP地址的主机,发生了地址冲突。


  2)更新其他主机高速缓存中旧的硬件地址进行。

   如果发送免费ARP的主机正好改变了硬件地址,如更换了接口卡。

   其他主机接收到这个ARP请求的时候,发现自己的ARP高速缓存表中存在对应的IP地址,但是MAC地址不匹配,那么就需要利用接收的ARP请求来更新本地的ARP高速缓存表表项。

  3)网关利用免费ARP防止ARP攻击

  有些网关设备在一定的时间间隔内向网络主动发送免费ARP报文,让网络内的其他主机更新ARP表项中的网关MAC地址信息,以达到防止或缓解ARP攻击的效果。

  4)利用免费ARP进行ARP攻击

  ARP协议并不只在发送了ARP请求才接收ARP应答,计算机只要接收到ARP应答数据包,就会使用应答中的IP和MAC地址对本地的ARP缓存进行更新。

  主机可以构造虚假的免费ARP应答,将ARP的源MAC地址设为错误的MAC地址,并把这个虚假的免费ARP应答发送到网络中,那么所有接收到这个免费ARP应答的主机都会更新本地ARP表项中相应IP地址对应的MAC地址。更新成功后,这些主机的数据报文就会被转发到错误的MAC地址,从而实现了ARP欺骗的攻击。

 

5.代理ARP

定义

  代理ARP就是通过使用一个主机(通常为router),来作为指定的设备使用自己的 MAC 地址来对另一设备的ARP请求作出应答。

为什么需要代理ARP?

  先要了解,路由器的重要功能之一就是把局域网的广播包限制在该网内,阻止其扩散,否则会造成网络风暴。

  ARP请求是个广播包,它询问的对象如果在同一个局域网内,就会收到应答。但是如果询问的对象不在同一个局域网该如何处理?路由器就提供的代理ARP为这个问题提供了解决方案。

工作过程

  两台主机A和B处于同一网段但不同的广播段时,主机A发送ARP请求主机B的MAC地址时,因为路由器不转发广播包的原因,ARP请求只能到达路由器。如果路由器启用了代理ARP功能,并知道主机B属于它连接的网络,那么路由器就用自己接口的MAC地址代替主机B的MAC地址来对主机A进行ARP应答。主机A接收ARP应答,但并不知道代理ARP的存在。

代理ARP的优缺点

  优点:代理ARP能在不影响路由表的情况下添加一个新的Router,使子网对该主机变得透明化。一般代理ARP应该使用在主机没有配置默认网关或没有任何路由策略的网络上。

  缺点:从工作工程可以看到,这其实是一种ARP欺骗。而且,通过两个物理网络之间的路由器的代理ARP功能其实互相隐藏了物理网络,这导致无法对网络拓扑进行网络概括。此外,代理ARP增加了使用它的那段网络的ARP流量,主机需要更大的ARP缓存空间,也不会为不使用ARP进行地址解析的网络工作。

 

转载于博主:非书非云

原文链接:https://www.cnblogs.com/songwenlong/p/6103406.html