您好,欢迎访问三七文档
ARPARP作用ARP(AddressResolutionProtocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射。APR就是实现这个功能的协议。ARP报文结构ARP报文分为ARP请求和ARP应答报文,报文格式如图1-1所示。图1ARP报文结构硬件类型:表示硬件地址的类型。它的值为1表示以太网地址;协议类型:表示要映射的协议地址类型。它的值为0x0800即表示IP地址;硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;操作类型(OP):1表示ARP请求,2表示ARP应答;发送端MAC地址:发送方设备的硬件地址;发送端IP地址:发送方设备的IP地址;目标MAC地址:接收方设备的硬件地址。目标IP地址:接收方设备的IP地址。ARP地址解析过程假设主机A和B在同一个网段,主机A要向主机B发送信息。如图1-2所示,具体的地址解析过程如下:(1)主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。(2)如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。(3)主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。(4)主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。图2ARP地址解析过程当主机A和主机B不在同一网段时,主机A就会先向网关发出ARP请求,ARP请求报文中的目标IP地址为网关的IP地址。当主机A从收到的响应报文中获得网关的MAC地址后,将报文封装并发给网关。如果网关没有主机B的ARP表项,网关会广播ARP请求,目标IP地址为主机B的IP地址,当网关从收到的响应报文中获得主机B的MAC地址后,就可以将报文发给主机B;如果网关已经有主机B的ARP表项,网关直接把报文发给主机B。ARP表设备通过ARP解析到目的MAC地址后,将会在自己的ARP表中增加IP地址到MAC地址的映射表项,以用于后续到同一目的地报文的转发。ARP表项分为动态ARP表项和静态ARP表项。动态ARP表项动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口down时会删除相应的动态ARP表项。静态ARP表项静态ARP表项通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。配置静态ARP表项可以增加通信的安全性。静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间的正常通信。静态ARP表项分为短静态ARP表项和长静态ARP表项。在配置长静态ARP表项时,除了配置IP地址和MAC地址项外,还必须配置该ARP表项所在VLAN和出接口。长静态ARP表项可以直接用于报文转发。在配置短静态ARP表项时,只需要配置IP地址和MAC地址项。如果出接口是三层以太网接口,短静态ARP表项可以直接用于报文转发;如果出接口是VLAN虚接口,短静态ARP表项不能直接用于报文转发,当要发送IP数据包时,先发送ARP请求报文,如果收到的响应报文中的源IP地址和源MAC地址与所配置的IP地址和MAC地址相同,则将接收ARP响应报文的接口加入该静态ARP表项中,之后就可以用于IP数据包的转发。一般情况下,ARP动态执行并自动寻求IP地址到以太网MAC地址的解析,无需管理员的介入。当希望设备和指定用户只能使用某个固定的IP地址和MAC地址通信时,可以配置短静态ARP表项,当进一步希望限定这个用户只在某VLAN内的某个特定接口上连接时就可以配置长静态ARP表项。免费ARP免费ARP报文是一种特殊的ARP报文,该报文中携带的发送端IP地址和目标IP地址都是本机IP地址,报文源MAC地址是本机MAC地址,报文的目的MAC地址是广播地址。设备通过对外发送免费ARP报文来实现以下功能:确定其它设备的IP地址是否与本机的IP地址冲突。当其它设备收到免费ARP报文后,如果发现报文中的IP地址和自己的IP地址相同,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。设备改变了硬件地址,通过发送免费ARP报文通知其它设备更新ARP表项。免费ARP报文学习功能的作用使能了免费ARP报文学习功能后,设备会根据收到的免费ARP报文中携带的信息(源IP地址、源MAC地址)对自身维护的ARP表进行修改。设备先判断ARP表中是否存在与此免费ARP报文源IP地址对应的ARP表项:如果没有对应的ARP表项,设备会根据该免费ARP报文中携带的信息新建ARP表项;如果存在对应的ARP表项,设备会根据该免费ARP报文中携带的信息更新对应的ARP表项。关闭免费ARP报文学习功能后,设备不会根据收到的免费ARP报文来新建ARP表项,但是会更新已存在的对应ARP表项。如果用户不希望通过免费ARP报文来新建ARP表项,可以关闭免费ARP报文学习功能,以节省ARP表项资源。定时发送免费ARP功能的作用定时发送免费ARP功能可以及时通知下行设备更新ARP表项或者MAC地址表项,主要应用场景如下:(1)防止仿冒网关的ARP攻击如果攻击者仿冒网关发送免费ARP报文,就可以欺骗同网段内的其它主机,使得被欺骗的主机访问网关的流量,被重定向到一个错误的MAC地址,导致其它主机用户无法正常访问网络。为了尽量避免这种仿冒网关的ARP攻击,可以在网关的接口上使能定时发送免费ARP功能。使能该功能后,网关接口上将按照配置的时间间隔周期性发送接口主IP地址和手工配置的从IP地址的免费ARP报文。这样,每台主机都可以学习到正确的网关,从而正常访问网络。(2)防止主机ARP表项老化在实际环境中,当网络负载较大或接收端主机的CPU占用率较高时,可能存在ARP报文被丢弃或主机无法及时处理接收到的ARP报文等现象。这种情况下,接收端主机的动态ARP表项会因超时而被老化,在其重新学习到发送设备的ARP表项之前,二者之间的流量就会发生中断。为了解决上述问题,可以在网关的接口上使能定时发送免费ARP功能。使能该功能后,网关接口上将按照配置的时间间隔周期性发送接口主IP地址和手工配置的从IP地址的免费ARP报文。这样,接收端主机可以及时更新ARP映射表,从而防止了上述流量中断现象。(3)防止VRRP虚拟IP地址冲突当网络中存在VRRP备份组时,需要由VRRP备份组的Master路由器周期性的向网络内的主机发送免费ARP报文,使主机更新本地ARP地址表,确保网络中不会存在与VRRP虚拟IP地址相同的设备。由于用户可以设定VRRP虚拟IP地址和MAC地址对应关系,因此有以下两种情况:如果当前VRRP虚拟IP地址和虚拟MAC地址对应,则免费ARP报文中的源MAC地址为VRRP虚拟路由器对应的虚拟MAC地址。如果当前VRRP虚拟IP地址和实际MAC地址对应,则免费ARP报文中的源MAC地址为VRRP备份组中Master路由器接口的MAC地址。(4)及时更新模糊终结VLAN内设备的MAC地址表三层以太网子接口上同时配置了模糊终结多个VLAN和VRRP备份组时,为了避免发送过多的VRRP通告报文,需要关闭VLAN终结支持广播/组播功能,并配置VRRP控制VLAN。此时,为了及时更新各个模糊终结VLAN内设备的MAC地址表项,可以在三层以太网子接口上使能定时发送免费ARP功能。使能该功能后,三层以太网子接口将按照配置的时间间隔周期性发送VRRP虚拟IP地址、接口主IP地址和手工配置的从IP地址的免费ARP报文。这样,当VRRP主备状态切换时,各个模糊终结VLAN内设备上可以及时更新为正确的MAC地址表项。代理ARP如果ARP请求是从一个网络的主机发往同一网段却不在同一物理网络上的另一台主机,那么连接它们的具有代理ARP功能的设备就可以回答该请求,这个过程称作代理ARP(ProxyARP)。代理ARP功能屏蔽了分离的物理网络这一事实,使用户使用起来,好像在同一个物理网络上。代理ARP分为普通代理ARP和本地代理ARP,二者的应用场景有所区别:普通代理ARP的应用环境为:想要互通的主机分别连接到设备的不同三层接口上,且这些主机不在同一个广播域中。本地代理ARP的应用环境为:想要互通的主机连接到设备的同一个三层接口上,且这些主机不在同一个广播域中。普通代理ARP处于同一网段内的主机,当连接到设备的不同三层接口时,可以利用设备的代理ARP功能,通过三层转发实现互通。代理ARP的典型应用环境如图3-1所示。设备Router通过两个三层接口Ethernet1/1和Ethernet1/2连接两个网络,两个三层接口的IP地址不在同一个网段,接口地址分别为192.168.10.99/24、192.168.20.99/24。但是两个网络内的主机HostA和HostB的地址通过掩码的控制,既与相连设备的接口地址在同一网段,同时二者也处于同一个网段。图3普通代理ARP的应用环境在这种组网情况下,当HostA需要与HostB通信时,由于目的IP地址与本机的IP地址为同一网段,因此HostA会直接发出请求HostB硬件地址的ARP请求。但是,此时的两台主机处于不同的广播域中,HostB无法收到HostA的ARP请求报文,当然也就无法应答。通过在Router上启用代理ARP功能,可以解决此问题。启用代理ARP后,Router可以应答HostA的ARP请求。同时,Router相当于HostB的代理,把从其他主机发送过来的报文转发给它。代理ARP的优点是,它可以只被应用在一个设备上(此时该设备的作用相当于网关),不会影响到网络中其他设备的路由表。代理ARP功能可以在IP主机没有配置缺省网关或者IP主机没有任何路由能力的情况下使用。本地代理ARP本地代理ARP的应用场景如图3-2所示。HostA和HostB属于同一个VLAN2,但它们分别连接到被二层隔离的端口Ethernet1/3和Ethernet1/1上,通过在Router上启用本地代理ARP功能,可以实现HostA和HostB的三层互通。图4本地代理ARP的应用环境本地代理ARP可以在下列三种情况下实现主机之间的三层互通:想要互通的主机分别连接到同一个VLAN中的不同二层隔离端口下;使能SuperVLAN功能后,想要互通的主机属于不同的SubVLAN;使能Isolate-user-vlan功能后,想要互通的主机属于不同的SecondaryVLAN。ARPSnoopingARPSnooping作用ARPSnooping功能是一个用于二层交换网络环境的特性,通过侦听ARP报文建立ARPSnooping表项,从而提供给ARP快速应答和MFF手动方式等使用。ARPSnooping工作机制设备上的一个VLAN使能ARPSnoo
本文标题:ARP详解
链接地址:https://www.777doc.com/doc-3348701 .html