02-ARP配置
本章节下载: 02-ARP配置 (214 KB)
l 不同型号产品的特性功能支持情况略有不同,详细请参见“特性差异化列表”部分的介绍。
l 设备支持的接口类型和编号与设备的实际情况相关,本手册涉及以太网接口的配置举例统一使用Eth口举例说明。实际使用中请根据具体设备的接口类型和编号进行配置。
l 本手册中所述的AP设备可以指代一般意义下的AP设备和无线网桥、无线Mesh设备。
ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。
在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射。APR就是实现这个功能的协议。
本章中除特殊说明,数据链路层地址均以48bit的以太网MAC地址为例。
ARP报文分为ARP请求和ARP应答报文,报文格式如图1-1所示。
图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地址。
假设主机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数据包进行封装后发送出去。
图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表项。
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口down时会删除相应的动态ARP表项。
静态ARP表项通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。
配置静态ARP表项可以增加通信的安全性。静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间的正常通信。
静态ARP表项分为短静态ARP表项和长静态ARP表项。
l 在配置长静态ARP表项时,除了配置IP地址和MAC地址项外,还必须配置该ARP表项所在VLAN和出接口。长静态ARP表项可以直接用于报文转发。
l 在配置短静态ARP表项时,只需要配置IP地址和MAC地址项。如果出接口是三层以太网接口,短静态ARP表项可以直接用于报文转发;如果出接口是VLAN虚接口,短静态ARP表项不能直接用于报文转发,当要发送IP数据包时,先发送ARP请求报文,如果收到的响应报文中的源IP地址和源MAC地址与所配置的IP地址和MAC地址相同,则将接收ARP响应报文的接口加入该静态ARP表项中,之后就可以用于IP数据包的转发。
l 一般情况下,ARP动态执行并自动寻求IP地址到以太网MAC地址的解析,无需管理员的介入。
l 当希望设备和指定用户只能使用某个固定的IP地址和MAC地址通信时,可以配置短静态ARP表项,当进一步希望限定这个用户只在某VLAN内的某个特定接口上连接时就可以配置长静态ARP表项。
静态ARP表项在设备正常工作时间一直有效,当设备的ARP表项所对应的VLAN或VLAN接口被删除时,如果是长静态ARP表项则被删除,如果是已经解析的短静态ARP表项则重新变为未解析状态。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
手工添加长静态ARP表项 |
arp static ip-address mac-address vlan-id interface-type interface-number |
必选 缺省情况下,没有配置任何长静态ARP表项 |
手工添加短静态ARP表项 |
arp static ip-address mac-address |
必选 缺省情况下,没有配置任何短静态ARP表项 |
l 参数vlan-id用于指定ARP表项所对应的VLAN,vlan-id必须是用户已经创建好的VLAN的ID,且vlan-id参数后面指定的以太网接口必须属于这个VLAN。VLAN对应的VLAN接口必须已经创建。
l 指定参数vlan-id和ip-address的情况下,参数vlan-id对应的VLAN接口的IP地址必须和参数ip-address指定的IP地址属于同一网段。
表1-2 配置接口学习动态ARP表项的最大数目
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口允许学习动态ARP表项的最大个数 |
arp max-learning-num number |
可选 |
为适应网络的变化,ARP表需要不断更新。ARP表中的动态ARP表项并非永远有效,每一条记录都有一个生存周期,到达生存周期仍得不到刷新的记录将被从ARP表中删除,这个生存周期被称作老化时间。如果在到达生存周期前纪录被刷新,则重新计算老化时间。用户可以根据网络实际情况调整老化时间。
表1-3 配置动态ARP的老化时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置动态ARP的老化时间 |
arp timer aging aging-time |
可选 缺省情况下,动态ARP的老化时间为20分钟 |
ARP表项检查功能可以控制设备是否学习MAC地址为组播MAC的ARP表项。使能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地址为组播MAC地址的ARP表项 |
学习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表项了。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能支持自然网段的ARP请求 |
naturemask-arp enable |
必选 缺省情况下,不使能支持自然网段的ARP请求 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令清除ARP表中除授权类型外的ARP表项。
表1-6 ARP显示和维护
操作 |
命令 |
显示ARP表项 |
display arp [ [ all | dynamic | static ] | vlan vlan-id | interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression | count ] |
显示指定IP地址的ARP表项 |
display arp ip-address [ | { begin | exclude | include } regular-expression ] |
显示动态ARP表项的老化时间 |
display arp timer aging |
清除ARP表项 |
reset arp { all | dynamic | static | interface interface-type interface-number } |
清除ARP表项,将取消IP地址和MAC地址的映射关系,可能导致无法正常通信。清除前请务必仔细确认。
l 开启设备使能ARP表项的检查功能。
l 设置设备的动态ARP表项的老化时间为10分钟。
l 设置设备使能自然网段范围内的ARP请求。
l 设置接口Vlan-interface10上可以学习动态ARP表项的最大个数为32。
l 增加一个静态ARP表项,IP地址为192.168.1.1/24,对应的MAC地址为00e0-fc01-0000,此条ARP表项对应的出接口为属于VLAN 10的接口Ethernet1/0/1。
<Sysname> system-view
[Sysname] arp check enable
[Sysname] arp timer aging 10
[Sysname] naturemask-arp enable
[Sysname] vlan 10
[Sysname-vlan10] quit
[Sysname] interface ethernet 1/0/1
[Sysname-Ethernet1/0/1] port access vlan 10
[Sysname-Ethernet1/0/1] quit
[Sysname] interface vlan-interface 10
[Sysname-vlan-interface10] arp max-learning-num 32
[Sysname-vlan-interface10] quit
[Sysname] arp static 192.168.1.1 00e0-fc01-0000 10 ethernet 1/0/1
免费ARP报文是一种特殊的ARP报文,该报文中携带的发送端IP地址和目标IP地址都是本机IP地址,报文源MAC地址是本机MAC地址,报文的目的MAC地址是广播地址。
设备通过对外发送免费ARP报文,实现以下功能:
l 确定其它设备的IP地址是否与本机IP地址冲突。
l 设备改变了硬件地址,通过发送免费ARP报文通知其他设备更新ARP表项。
设备通过学习免费ARP报文,实现以下功能:
对于收到的免费ARP报文,如果ARP表中没有与此报文对应的ARP表项,就将免费ARP报文中携带的信息添加到本地动态ARP映射表中。
使能免费ARP报文学习功能后,对于收到的免费ARP报文,如果ARP表中没有与此报文源IP地址对应的ARP表项,就将免费ARP报文中携带的源IP地址、源MAC地址信息添加到动态ARP映射表中;但是,如果ARP表中已经有与此报文源IP地址对应的ARP表项,则无论是否使能免费ARP报文学习功能,都将更新此ARP表项。
表2-1 使能免费ARP报文学习功能
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
使能免费ARP报文学习功能 |
gratuitous-arp-learning enable |
可选 缺省情况下,设备免费ARP报文的学习功能处于开启状态 |
表2-2 使能收到非同一网段ARP请求时发送免费ARP报文功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能收到非同一网段ARP请求时发送免费ARP报文功能 |
gratuitous-arp-sending enable |
必选 缺省情况下,设备收到非同一网段的ARP请求时不发送免费ARP报文 |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!