01-ARP配置
本章节下载 (233.88 KB)
目 录
ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为数据链路层地址的协议。
IP地址只是主机在网络层中的地址,如果要将网络层中传送的数据包交给目的主机,必须知道该主机的MAC地址。因此必须将IP地址解析为MAC地址。每台主机都要维护IP地址到MAC地址的转换表,称为ARP表。ARP表中存放着最近与本主机通信的其他主机的IP地址和MAC地址的映射。

图1-1 ARP报文结构
l 硬件类型:表示硬件地址的类型。它的值为1表示以太网地址;
l 协议类型:表示要映射的协议地址类型。它的值为0x0800即表示IP地址;
l 硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;
l 操作类型(OP):1表示ARP请求,2表示ARP应答;
l 发送端MAC地址:发送方设备的硬件地址;
l 发送端IP地址:发送方设备的IP地址;
l 目标MAC地址:接收方设备的硬件地址;
l 目标IP地址:接收方设备的IP地址。

图1-2 ARP地址解析过程
假设主机A和B在同一个网段,主机A要向主机B发送信息。ARP解析过程如下:
(1) 主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表项中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。
(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求数据包以主机A的IP地址和MAC地址作为发送者IP地址和发送者MAC地址,以主机B的IP地址和全0的MAC地址作为目标IP地址和目标MAC地址。由于ARP请求数据包以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。
(3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:首先把ARP请求数据包中的请求发起者(即主机A)的IP地址和MAC地址存入自己的ARP表项中。然后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。
(4) 主机A收到响应数据包后,将主机B的MAC地址加入到自己的ARP表中,从而完成一次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表项。
(1) 动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当老化时间到、接口down时会删除相应的动态ARP表项。
(2) 静态ARP表项通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。静态ARP表项分为短静态ARP和长静态ARP。
l 在配置长静态ARP时,除了配置IP地址和MAC地址项外,还必须配置该ARP表项所在VLAN和出接口。长静态ARP可以直接用于报文转发。
l 在配置短静态ARP表项时,只需要配置IP地址和MAC地址项。短静态ARP表项不能直接用于报文转发。当要发送IP数据包时,先发送ARP请求报文,如果收到的响应报文中的源IP地址和源MAC地址与所配置的IP地址和MAC地址相同,则将接收ARP响应报文的接口加入该静态ARP表项中,之后就可以用于IP数据包的转发。
& 说明:
一般情况下,ARP动态执行并自动寻求IP地址到以太网MAC地址的解析,无需管理员的介入。
静态ARP表项在以太网交换机正常工作时间一直有效,当交换机ARP表项所对应的VLAN或VLAN接口被删除时,如果是长静态ARP表项则被删除,如果是已经解析的短静态ARP表项则重新变为未解析状态。
表1-1 手工添加静态ARP映射项
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
手工添加长静态ARP表项 |
arp static ip-address mac-address [ vlan-id interface-type interface-number ] [ vpn-instance vpn-instance-name ] |
必选 缺省情况下,没有配置任何长静态ARP表项 |
|
手工添加短静态ARP表项 |
arp static ip-address mac-address [ vpn-instance vpn-instance-name ] |
必选 缺省情况下,没有配置任何短静态ARP表项 |
注意:
参数vlan-id指定ARP表项所对应的VLAN,vlan-id必须是用户已经创建好的VLAN的ID,且vlan-id参数后面指定的以太网接口必须属于这个VLAN。
该命令用来配置VLAN接口允许学习动态ARP表项的最大个数。
表1-2 配置VLAN接口中学习ARP的最大数目
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入VLAN接口视图 |
interface vlan-interface interface-number |
- |
|
配置接口允许学习动态ARP表项的最大个数 |
arp max-learning-num number |
可选 缺省情况下,VLAN接口上允许学习动态ARP表项的最大个数为4096 |
动态ARP表项到达老化时间后,会从ARP表中删除。用户可以根据网络实际情况调整老化时间。
表1-3 配置动态ARP的老化时间
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置动态ARP表项的老化时间 |
arp timer aging aging-time |
可选 缺省情况下,动态ARP表项的老化时间为20分钟 |
该命令用来使能ARP表项的检查功能,即不学习组播MAC地址。使能ARP表项的检查功能后,若设备接收到的ARP报文中的源MAC地址为组播MAC,则不进行动态ARP表项的学习;且设备上不能配置MAC地址为组播MAC的静态ARP表项,否则会有错误提示。
关闭ARP表项的检查功能后,可以对源MAC地址为组播MAC的ARP表项进行学习,且可以配置MAC地址为组播MAC的静态ARP表项。
表1-4 配置ARP表项的检查功能
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能ARP表项的检查功能 |
arp check enable |
可选 缺省情况下,使能ARP表项的检查功能,即不学习组播MAC地址 |
学习ARP表项时,在发现ARP报文的源IP地址和入接口IP地址不在同一网段后,使用自然网段进行判断。
假设Vlan-interface10接口的IP地址为10.10.10.5/24,收到一个源IP地址为10.11.11.1/8的ARP报文,由于两个IP地址不在同一网段,Vlan-interface10接口无法处理这个报文。如果使能支持自然网段的ARP请求功能,则通过自然网段进行判断,由于Vlan-interface10接口的IP地址为A类地址,因此默认掩码应该为8位,于是两个IP地址就在同一个网段,Vlan-interface10接口就可以学习源IP地址为10.11.11.1的ARP表项了。
表1-5 配置支持自然网段的ARP请求
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能支持自然网段的ARP请求 |
naturemask-arp enable |
必选 缺省情况下,不使能自然网段的ARP请求 |
l 关闭交换机ARP表项的检查功能。
l 设置交换机的动态ARP表项的老化时间为10分钟。
l 设置交换机使能自然网段范围内的ARP请求。
l 设置交换机Vlan-interface10接口上可以学习动态ARP的最大个数为1000。
l 增加一个静态ARP表项,IP地址为192.168.1.1/24,对应的MAC地址为000F-E201-0070,此条ARP表项对应的出接口为属于VLAN 10的接口Ethernet1/1/1。
<Sysname> system-view
[Sysname] undo arp check enable
[Sysname] arp timer aging 10
[Sysname] naturemask-arp enable
[Sysname] vlan 10
[Sysname-vlan10] quit
[Sysname] interface ethernet 1/1/1
[Sysname-Ethernet1/1/1] port access vlan 10
[Sysname-Ethernet1/1/1] quit
[Sysname] interface Vlan-interface 10
[Sysname-Vlan-interface10] arp max-learning-num 1000
[Sysname-Vlan-interface10] quit
[Sysname] arp static 192.168.1.1 000f-e201-0070 10 ethernet1/1/1
免费ARP报文是一种特殊的ARP报文,该报文中携带的发送者IP地址和目标IP地址都是本机IP地址,发送者MAC地址是本机MAC地址,目标MAC地址是广播地址。
交换机通过对外发送免费ARP报文来实现以下功能:
l 确定其它设备的IP地址是否与本设备冲突。
l 设备改变了硬件地址,通过发送免费ARP报文通知其他设备更新ARP表项。
交换机通过学习免费ARP报文,实现以下功能:
l 对于收到的免费ARP报文,如果高速缓存中没有与此报文对应的ARP表项,就将免费ARP报文中携带的信息添加到本地动态ARP映射表中。
l 当设备收到免费ARP报文后,如果发现报文中的源IP地址和自己的IP地址冲突,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。
|
命令 |
说明 |
|
|
进入系统视图 |
system-view |
- |
|
使能设备收到非同一网段的ARP请求时发送免费ARP报文功能 |
gratuitous-arp-sending enable |
必选 缺省情况下,设备收到非同一网段的ARP请求时不发送免费ARP报文 |
|
使能免费ARP报文学习功能 |
gratuitous-arp-learning enable |
必选 缺省情况下,设备免费ARP报文的学习功能处于开启状态 |
如果网络中有主机通过向交换机或路由器发送大量目标IP地址不能解析的IP报文来攻击交换机或路由器,则会造成下面的危害:
l 设备会向目的网段产生大量ARP请求报文,加重目的网段的负载。
l 设备会不断解析目标IP地址,增加了CPU的负担。
为避免这种攻击所带来的危害,95系列交换机提供了ARP源抑制功能。开启该功能后,如果网络中某主机向交换机某接口连续发送目标IP地址不能解析的IP报文(当每5秒内的ARP请求报文的超过了设置的阈值),对于由此IP地址发出的IP报文,设备不允许其触发ARP请求,直至5秒后再处理,从而避免了恶意攻击所造成的危害。
表1-7 配置ARP源抑制
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能ARP源抑制功能 |
arp source-suppression enable |
必选 缺省情况下,关闭ARP源抑制功能 |
|
配置ARP源抑制的阈值 |
arp source-suppression limit limit-value |
可选 缺省情况下,ARP源抑制的阈值为10个 |
在进行IP报文转发过程中,设备需要依靠ARP解析下一跳IP地址的MAC地址。如果地址解析成功,报文可以直接通过硬件转发芯片直接转发出去,而不需要再由软件处理;如果地址解析不成功,需要由软件进行解析处理。这样,如果接收到大量下一跳IP地址循环变化并且该IP地址不可达的IP报文,由于下一跳IP地址解析不成功,软件会试图反复地对下一跳IP地址进行探测,导致CPU负荷过重,这样就造成了IP报文对设备的攻击。
用户可以通过配置ARP防IP报文攻击功能来预防这种可能存在的攻击情况。在防IP报文攻击功能启用后,一旦接收到下一跳地址不可达的IP报文(即ARP解析失败的IP报文),设备立即产生一个黑洞路由,使硬件转发芯片在25秒内将去往该地址的报文直接丢弃。等待黑洞路由老化时间过后,如有报文触发则再次发起解析,如果解析成功则由硬件进行转发,否则仍然下发黑洞路由。这种方式能够有效地防止IP报文的攻击,减轻CPU的负担。
启用ARP防IP报文攻击功能对转发报文和本地产生的报文均有效。
表1-8 启用ARP防IP报文攻击功能
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
启用ARP防IP报文攻击功能 |
arp resolving-route enable |
可选 缺省情况下,ARP防IP报文攻击功能开启 |
ARP的主动确认功能主要应用于网关设备上,防止攻击者仿冒用户欺骗网关设备。使能ARP主动确认功能之后,当收到MAC地址不同的ARP报文时,首先判断原ARP表项刷新时间是否超过1分钟,如果没有超过1分钟,则忽略该ARP报文,不作任何处理;否则向原ARP表项对应的源发送一个单播请求,如果在随后的5秒内收到对应的应答报文,则忽略之前收到的ARP攻击报文;如果没有收到应答报文,则向之前收到的ARP报文对应的源发送一个单播请求,如果在随后的5秒内收到了对应的应答报文,则根据该ARP报文更新原ARP表项,否则原ARP表项不会被修改。
表1-9 配置ARP主动确认功能
|
配置步骤 |
命令 |
说明 |
|
进入系统视图 |
system-view |
|
|
启用ARP主动确认功能 |
arp anti-attack active-ack enable |
必选 缺省情况下, ARP主动确认功能关闭 |
某些ARP攻击报文的以太网数据帧首部中的源MAC和ARP协议报文中的源MAC不同。通过使能ARP报文源MAC一致性检查功能,可以过滤掉这一类的ARP攻击报文。
表1-10 配置ARP报文源MAC一致性检查
|
配置步骤 |
命令 |
说明 |
|
进入系统视图 |
system-view |
|
|
开启ARP报文源MAC一致性检查功能 |
arp anti-attack valid-check enable |
必选 缺省情况下,ARP 报文源MAC一致性检查功能关闭 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令清除ARP表项。
表1-11 ARP显示和维护
|
操作 |
命令 |
|
显示ARP表项 |
display arp { { all | static | dynamic } [ slot slot-id ] | vlan vlan-id | interface interface-type interface-number } [ [ verbose ] [ | { begin | include | exclude } regular-expression ] | count ] |
|
显示指定IP地址的ARP表项 |
display arp ip-address [ slot slot-id ] [ verbose ] [ | { begin | include | exclude } regular-expression ] |
|
显示指定VPN实例的ARP表项 |
display arp vpn-instance vpn-instance-name [ | { begin | include | exclude } regular-expression | count ] |
|
显示动态ARP表项的老化时间 |
display arp timer aging |
|
显示ARP源抑制的配置信息 |
display arp source-suppression |
|
清除ARP表项 |
reset arp { all | dynamic | static | slot slot-id | interface interface-type interface-number } |
如果ARP请求是从一个网络的主机发往同一网段却不在同一物理网络上的另一台主机,那么连接它们的具有代理ARP功能的设备就可以回答该请求,这个过程称作代理ARP(Proxy ARP)。它实现了二层隔离接口间的三层互通。
代理ARP分为普通代理ARP和本地代理ARP。
同一网段内连接到设备的不同VLAN接口的主机可以利用设备的普通代理ARP功能,通过三层转发实现互通。
为了实现三层互通,在下面三种情况之一,需要开启本地代理ARP功能。
l 同一个VLAN内二层隔离接口之间的三层互通;
l 使能Super VLAN功能后,属于不同Sub VLAN下的设备要实现三层互通;
l 使能Isolate-user-vlan功能后,属于不同Secondary VLAN下的设备要实现三层互通。
表2-1 开启代理ARP
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入VLAN接口视图 |
interface vlan-interface interface-number |
- |
|
开启代理ARP |
proxy-arp enable |
必选 缺省情况下,关闭代理ARP功能 |
|
开启本地代理ARP功能 |
local-proxy-arp enable |
必选 缺省情况下,关闭代理ARP功能 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后代理ARP的运行情况,查看显示信息验证配置的效果。
表2-2 代理ARP的显示
|
操作 |
命令 |
|
显示代理ARP的状态 |
display proxy-arp [ interface interface-type interface-number ] |
|
显示本地代理ARP的状态 |
display local-proxy-arp [ interface interface-type interface-number ] |
将Host A和Host D配置为同一网段的主机,只是从设备上看属于不同的子网。其中Host A属于VLAN1,Host D属于VLAN2。通过在设备上启用代理ARP功能来实现Host A和Host D的通信。

图2-1 配置代理ARP组网图
# 配置代理ARP,实现Host A和Host D之间的通信。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] vlan 1
[Sysname-vlan1] vlan 2
[Sysname-vlan2] quit
[Sysname] interface vlan-interface 1
[Sysname-Vlan-interface1] ip address 192.168.10.99 255.255.255.0
[Sysname-Vlan-interface1] proxy-arp enable
[Sysname-Vlan-interface1] quit
[Sysname] interface vlan-interface 2
[Sysname-Vlan-interface2] ip address 192.168.20.99 255.255.255.0
[Sysname-Vlan-interface2] proxy-arp enable
[Sysname-Vlan-interface2] quit
本地代理ARP典型配置举例请参见“接入分册”中的“VLAN配置”中的Super VLAN配置举例。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
