01-ARP配置
本章节下载: 01-ARP配置 (240.9 KB)
目 录
ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。
在网络中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址是不够的,因为IP数据报必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射。ARP就是实现这个功能的协议。
ARP报文分为ARP请求和ARP应答报文,报文格式如图1-1所示。
图1-1 ARP报文结构
· 硬件类型:表示硬件地址的类型。它的值为1表示以太网地址;
· 协议类型:表示要映射的协议地址类型。它的值为0x0800即表示IP地址;
· 硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;
· 操作类型(OP):1表示ARP请求,2表示ARP应答;
· 发送端MAC地址:发送方设备的硬件地址;
· 发送端IP地址:发送方设备的IP地址;
· 目标MAC地址:接收方设备的硬件地址。
· 目标IP地址:接收方设备的IP地址。
假设主机A和B在同一个网段,主机A要向主机B发送信息。如图1-2所示,具体的地址解析过程如下:
(1) 主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据报进行帧封装,并将IP数据报发送给主机B。
(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该IP数据报,然后以广播方式发送一个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数据报进行封装后发送出去。
图1-2 ARP地址解析过程
当主机A和主机B不在同一网段时,主机A就会先向网关发出ARP请求,ARP请求报文中的目标IP地址为网关的IP地址。当主机A从收到的响应报文中获得网关的MAC地址后,将报文封装并发给网关。如果网关没有主机B的ARP表项,网关会广播ARP请求,目标IP地址为主机B的IP地址,当网关从收到的响应报文中获得主机B的MAC地址后,就可以将报文发给主机B;如果网关已经有主机B的ARP表项,网关直接把报文发给主机B。
设备通过ARP解析到目的MAC地址后,将会在自己的ARP表中增加IP地址和MAC地址映射关系的表项,以用于后续到同一目的地报文的转发。
ARP表项分为动态ARP表项、静态ARP表项和OpenFlow ARP表项。
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口down时,系统会删除相应的动态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表项中,此时,该短静态ARP表项由未解析状态变为解析状态,之后就可以用于报文转发。
静态ARP表项在设备正常工作时间一直有效,当设备的ARP表项所对应的VLAN或VLAN接口被删除时,如果是长静态ARP表项则被删除,如果是已经解析的短静态ARP表项则重新变为未解析状态。
对于已经解析的短静态ARP表项,也会由于外部事件,比如解析到的出接口down等原因,恢复到未解析状态。
对于长静态ARP表项,根据设备的当前状态可能处于有效或无效两种状态。处于无效状态的原因可能是该ARP表项中的IP地址与本地IP地址冲突,或者设备上没有与该ARP表项中的IP地址在同一网段的接口地址。处于无效状态的长静态ARP表项不能指导报文转发。
arp static ip-address mac-address [ vpn-instance vpn-instance-name ] |
· 参数vlan-id用于指定ARP表项所对应的VLAN,vlan-id必须是用户已经创建好的VLAN的ID,且vlan-id参数后面指定的以太网接口必须属于这个VLAN。VLAN对应的VLAN接口必须已经创建。
· 指定参数vlan-id和ip-address的情况下,参数vlan-id对应的VLAN接口的IP地址必须和参数ip-address指定的IP地址属于同一网段。
设备可以通过ARP协议自动生成动态ARP表项。为了防止用户占用过多的ARP资源,可以通过设置设备学习动态ARP表项的最大个数来进行限制。当设备学习动态ARP表项的个数达到所设置的值时,该设备上将不再学习动态ARP表项。
表1-2 配置设备学习动态ARP表项的最大个数
配置设备允许学习动态ARP表项的最大个数 |
缺省情况下,设备允许学习动态ARP表项的最大个数为16384 当配置设备允许学习动态ARP表项的最大个数为0时,表示禁止本设备学习动态ARP表项 |
当本命令配置的动态ARP表项的最大个数小于设备当前已经学到的动态ARP表项个数,那么已学到的动态ARP表项个数不会被删除。
设备可以通过ARP协议自动生成动态ARP表项。为了防止部分接口下的用户占用过多的ARP资源,可以通过设置接口学习动态ARP表项的最大个数来进行限制。当接口学习动态ARP表项的个数达到所设置的值时,该接口将不再学习动态ARP表项。
如果二层接口及其所属的VLAN接口都配置了允许学习动态ARP表项的最大个数,则只有二层接口及VLAN接口上的动态ARP表项个数都没有超过各自配置的最大值时,才会学习ARP表项。
表1-3 配置接口学习动态ARP表项的最大数目
配置接口允许学习动态ARP表项的最大个数 |
缺省情况下,接口允许学习动态ARP表项的最大个数为16384 当配置接口允许学习动态ARP表项的最大个数为0时,表示禁止接口学习动态ARP表项 |
为适应网络的变化,ARP表需要不断更新。ARP表中的动态ARP表项并非永远有效,每一条记录都有一个生存周期,到达生存周期仍得不到刷新的记录将从ARP表中删除,这个生存周期被称作老化时间。如果在到达老化时间前纪录被刷新,则重新计算老化时间。
表1-4 配置动态ARP表项的老化时间
配置动态ARP表项的老化时间 |
缺省情况下,动态ARP表项的老化时间为20分钟 |
在ARP特性的运行过程中会产生各种ARP相关的日志信息,此功能可以控制当前设备是否输出ARP日志信息。
表1-5 启用输出ARP日志信息功能
启用输出ARP日志信息功能 |
缺省情况下,ARP日志信息输出功能处于关闭状态 |
清除ARP表项,将取消IP地址和MAC地址的映射关系,可能导致无法正常通信。清除前请务必仔细确认。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令清除ARP表项。
表1-6 ARP显示和维护
显示ARP表项 |
|
显示指定IP地址的ARP表项 |
|
显示指定VPN实例的ARP表项 |
|
显示动态ARP表项的老化时间 |
|
清除ARP表项 |
reset arp { all | dynamic | interface interface-type interface-number | slot slot-number | static } |
· Switch连接主机,通过接口FortyGigE1/0/1连接Router。接口FortyGigE1/0/1属于VLAN 10。
· Router的IP地址为192.168.1.1/24,MAC地址为00e0-fc01-0000。
为了增加Switch和Router通信的安全性,可以在Switch上为Router配置一条静态ARP表项,从而防止攻击报文修改此表项的IP地址和MAC地址的映射关系。
图1-3 配置静态ARP表项组网图
在Switch上进行下列配置。
# 创建VLAN 10。
[Switch] vlan 10
[Switch-vlan10] quit
# 将接口FortyGigE1/0/1加入到VLAN 10中。
[Switch] interface FortyGigE 1/0/1
[Switch-FortyGigE1/0/1] port access vlan 10
[Switch-FortyGigE1/0/1] quit
# 创建接口Vlan-interface10,并配置IP地址。
[Switch] interface vlan-interface 10
[Switch-vlan-interface10] ip address 192.168.1.2 8
[Switch-vlan-interface10] quit
# 配置一条静态ARP表项,IP地址为192.168.1.1,对应的MAC地址为00e0-fc01-0000,此条ARP表项对应的出接口为属于VLAN 10的接口FortyGigE1/0/1。
[Switch] arp static 192.168.1.1 00e0-fc01-0000 10 FortyGigE 1/0/1
# 查看静态ARP表项信息。
Type: S-Static D-Dynamic O-Openflow M-Multiport I-Invalid
IP address MAC address VLAN Interface Aging Type
192.168.1.1 00e0-fc01-0000 10 FGE1/0/1 N/A S
免费ARP报文是一种特殊的ARP报文,该报文中携带的发送端IP地址和目标IP地址都是本机IP地址。
设备通过对外发送免费ARP报文来实现以下功能:
· 确定其它设备的IP地址是否与本机的IP地址冲突。当其它设备收到免费ARP报文后,如果发现报文中的IP地址和自己的IP地址相同,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。
· 设备改变了硬件地址,通过发送免费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表项或者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地址表,从而确保网络中不会存在IP地址与Master路由器VRRP虚拟IP地址相同的设备。关于VRRP的详细介绍,请参见“可靠性配置指导”中的“VRRP”。
由于用户可以设定VRRP虚拟IP地址和MAC地址对应关系,因此有以下两种情况:
· 如果当前VRRP虚拟IP地址和虚拟MAC地址对应,则免费ARP报文中的发送端MAC地址为VRRP虚拟路由器对应的虚拟MAC地址。
· 如果当前VRRP虚拟IP地址和实际MAC地址对应,则免费ARP报文中的发送端MAC地址为VRRP备份组中Master路由器接口的MAC地址。
配置免费ARP时,需要注意:
· 设备最多允许同时在1024个接口上启用定时发送免费ARP功能。
· 配置定时发送免费ARP功能后,只有当接口链路up并且配置IP地址后,此功能才真正生效。
· 如果修改了免费ARP报文的发送周期,则在下一个发送周期才能生效。
· 如果同时在很多接口下启用定时发送免费ARP功能,或者每个接口有大量的从IP地址,或者两种情况共存的同时又配置很小的发送时间间隔,那么免费ARP报文的发送频率可能会远远低于用户设定的时间间隔。
开启免费ARP报文学习功能 |
缺省情况下,免费ARP报文的学习功能处于开启状态 |
|
开启设备收到非同一网段ARP请求时发送免费ARP报文功能 |
缺省情况下,设备收到非同一网段的ARP请求时不发送免费ARP报文 |
|
启用定时发送免费ARP功能,并设置发送免费ARP报文的周期 |
缺省情况下,定时发送免费ARP功能处于关闭状态 |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!