22-ARP操作
本章节下载 (244.67 KB)
目 录
ARP(Address Resolution Protocol,地址解析协议)用于将网络层的IP地址解析为数据链路层的物理地址(MAC地址)。
网络设备进行网络寻址时只能识别数据链路层的MAC地址,不能直接识别来自网络层的IP地址。如果要将网络层中传送的数据报交给目的主机,必须知道该主机的MAC地址。因此网络设备在发送报文之前必须将目的主机的IP地址解析为它可以识别的MAC地址。
ARP报文分为ARP请求和ARP应答报文,ARP请求和应答报文的格式如图1-1所示。
l 当一个ARP请求发出时,除了接收端硬件地址(正是请求方想要获取的地址)字段为空外,其他所有的字段都被使用。
l ARP应答报文使用了所有的字段。
图1-1 ARP请求和应答报文格式
ARP报文各字段的含义如表1-1所示。
表1-1 ARP报文字段解释
报文字段 |
字段含义 |
硬件类型 |
识别硬件接口的类型,合法取值请参见表1-2 |
协议类型 |
表示要映射的协议地址类型,它的值为0x0800即表示IP地址 |
硬件地址长度 |
数据报文中硬件地址以字节为单位的长度 |
协议地址长度 |
数据报文中协议地址以字节为单位的长度 |
操作码 |
指明数据报是ARP请求报文还是ARP应答报文 取值为1——数据报是ARP请求报文 取值为2——数据报是ARP应答报文 取值为3——数据报是RARP请求报文 取值为4——数据报是RARP应答报文 |
发送方硬件地址 |
发送方设备的硬件地址 |
发送方IP地址 |
发送方设备的IP地址 |
接收方硬件地址 |
接收方设备的硬件地址 ARP请求报文中——这个字段为空 ARP应答报文中——这个字段为应答报文返回的接收方硬件地址 |
接收方IP地址 |
接收方设备的IP地址 |
类型 |
描述 |
1 |
以太网 |
2 |
实验以太网 |
3 |
X.25 |
4 |
Proteon ProNET(令牌环) |
5 |
混沌网(chaos) |
6 |
IEEE802.X |
7 |
ARC网络 |
以太网上的两台主机需要通信时,双方必须知道对方的MAC地址。每台主机都要维护IP地址到MAC地址的转换表,称为ARP映射表。ARP映射表中存放着最近用到的一系列与本主机通信的其他主机的IP地址和MAC地址的映射关系。需要注意的是,这里仅仅对ARP映射表的基本实现进行介绍。不同公司的产品可能会在此基础上提供更多的信息。S7500系列以太网交换机使用display arp命令查看到的ARP映射项信息请参见ARP命令手册。
ARP表中表项各字段含义如表1-3所示。
表1-3 ARP中表项各字段含义
表项字段 |
描述 |
IF索引 |
记录拥有表项中物理地址和IP地址的设备的物理接口或端口 |
物理地址 |
设备的物理地址,即MAC地址 |
IP地址 |
设备的IP地址 |
类型 |
该表项的类型,类型有四种可能的值 取值为1——不是以下任何一种情况 取值为2——该表项是无效表项 取值为3——该表项是动态表项 取值为4——该表项是静态表项 |
在主机启动时,主机上的ARP映射表为空;当一条动态ARP映射表项在规定时间没有使用时,主机将其从ARP映射表中删除掉,以便节省内存空间和ARP映射表的查找时间。具体过程如下。
l 假设主机A和主机B在同一个网段,主机A的IP地址为IP_A,B的IP地址为IP_B,主机A要向主机B发送信息。主机A首先查看自己的ARP映射表,确定其中是否包含有IP_B对应的ARP映射表项。如果找到了对应的MAC地址,则主机A直接利用ARP映射表中的MAC地址,对IP数据包进行帧封装,并将数据发送给主机B;
l 如果在ARP映射表中找不到对应的MAC地址,则主机A将该数据包放入发送等待队列,然后创建一个ARP request,并以广播方式在以太网上发送。ARP request数据包中包含有主机B的IP地址,以及主机A的IP地址和MAC地址。由于ARP request数据包以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。
l 主机B首先把ARP request数据包中的请求发起者(即主机A)的IP地址和MAC地址存入自己的ARP映射表中。然后主机B创建ARP响应数据包,在数据包中填入主机B的MAC地址,发送给主机A。这个响应不再以广播形式发送,而是以单播形式直接发送给主机A。
l 主机A收到响应数据包后,提取出主机B的IP地址及其对应的MAC地址,加入到自己的ARP映射表中,并把放在发送等待队列中的发往主机B的所有数据包都发送出去。
一般情况下,设备在IP寻址的过程中会自动触发ARP计算,完成IP地址到以太网MAC地址的解析。此过程是自动执行的,不需要网络管理员介入。
免费ARP报文的特点:
l 报文中携带的源IP和目的IP地址都是本机地址,报文源MAC地址是本机MAC地址。
l 当设备收到免费ARP报文后,如果发现报文中的IP地址和自己的IP地址冲突,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。
设备通过对外发送免费ARP报文来实现以下功能:
l 确定其它设备的IP地址是否与本机的IP地址冲突。
l 使其它设备及时更新高速缓存中旧的该设备硬件地址。
设备通过学习免费ARP报文来实现以下功能:
在使能了免费ARP报文学习功能后,一个设备收到免费ARP报文后,如果高速缓存中已存在与此报文对应的ARP表项,那么此设备就用免费ARP报文中携带的发送端硬件地址更新ARP表项中相应的内容。设备接收到任何免费ARP报文都要完成这个操作。
网络中的一些主机,当ARP老化时间到时,会直接删除动态学习到的ARP表项,没有主动更新ARP表项的功能。主机只能等待新的IP报文发送来触发新的ARP请求报文,请求网关地址。由于主机只能缓存一个报文,长报文ping时则多个分片被丢弃,导致ping中断。
网络负载较大或接收端主机的CPU占用率较高时,可能存在ARP报文被丢弃或主机无法及时处理接收到的ARP报文等现象。这种情况下,如果主机的动态ARP表项会因超时而被老化,在其重新学习到发送设备的ARP表项之前,二者之间的流量就会发生中断。
为了解决上述问题,S7500系列以太网交换机支持配置免费ARP周期发送功能。通过周期性的对外发送免费ARP报文,使接收端主机及时更新其ARP映射表中,网关的ARP表项。这样主机在老化掉网关的ARP表项之前,该表项已经被更新,不会被删除,从而防止了上述流量中断现象。
交换机每隔一段时间发送所有三层接口上的包括VLAN接口主IP地址、从IP地址及所有VRRP虚拟路由器IP地址的免费ARP报文,以更新与交换机相连的不具有主动更新ARP功能设备的ARP。
当用户配置了很少的VLAN接口及VRRP备份组时,设备遍历所有VLAN接口及其IP的周期很短,如果不加以限制,持续循环,则同一IP地址的免费ARP的发送周期太短,会增加交换机的工作量及网络流量。因此设备支持设置免费ARP发送周期的配置。
如果网络攻击者发送伪造源IP地址的ARP报文给网关设备,网关设备的ARP表中就会记录错误的IP地址与MAC地址的映射关系。当某个攻击者发送同网段内所有IP地址的伪造ARP报文给网关时,会导致造成大量设备不能正常上网。
为了防止这种网络攻击,S7500系列以太网交换机支持ARP防攻击特性,该特性可以对ARP表中同一VLAN内与同一个MAC地址进行绑定的IP地址的个数进行限制。当MAC地址对应的IP地址超过此个数限制时,设备认为该MAC地址为攻击MAC。此后收到的源MAC地址为攻击MAC的ARP报文,除非是本设备发出的ARP请求的应答报文,否则全部丢弃。
ARP代理指的是,一个网络上的主机发往同一个网络中被隔离的端口或另一个网络上的主机的ARP请求,被具有ARP代理功能的设备做转发处理,从而实现了二层隔离端口间的三层互通。
当存在下列情况之一,为了实现端口间的三层互通,需要开启ARP代理(Proxy ARP)功能:
l S7500交换机上使能Super VLAN功能后
l S7500下挂的二层交换机使能了isolate-user-vlan功能
& 说明:
l 开启ARP代理后,在缺省情况下,认为同一VLAN内二层互通,ARP代理不代理同一VLAN内部的ARP请求,只代理不同VLAN之间的ARP请求。
l 当S7500下挂的二层交换机使能了isolate-user-vlan功能,此时同一VLAN内部二层不互通。如要实现同一VLAN内二层隔离端口间的三层互通,需在S7500交换机上启动入VLAN ARP代理功能,使ARP代理对同一VLAN内的ARP请求也做代理。
ARP源抑制功能是指:交换机接收到ARP报文后先进行分类,然后对单位时间内不同类别ARP报文发送给CPU的最大个数进行限制,以防止网络中主机对全网进行ARP扫描时产生的大量非法ARP报文对设备的CPU产生冲击。
S7500系列交换机将收到的ARP报文分为以下几类:
l 任意ARP报文(不区分ARP报文携带的源IP地址、目的IP地址)
l 携带有相同源IP地址的ARP过路报文(ARP报文的目的地址不是当前交换机的IP地址)
l 携带有相同源IP地址并且目的IP地址为当前交换机IP地址的ARP报文
根据以上分类,可以在交换机上对单位时间内不同类别的ARP报文发送到CPU的最大个数进行设置。当交换机单位时间内接收到的ARP报文数目超过了相应的设置,交换机就会认为超过部分的ARP报文为非法报文,对非法部分报文进行丢弃。
S7500系列以太网交换机的ARP表项分为:静态表项和动态表项,如表1-4所示。
表1-4 ARP表项
分类 |
生成方式 |
维护方式 |
静态ARP表项 |
用户手工配置的IP地址到MAC地址的映射 |
手工维护 |
动态ARP表项 |
交换机动态生成的IP地址到MAC地址的映射 |
动态生成的ARP表项,通过动态ARP老化定时器设定的时间进行老化 |
表1-5 ARP配置任务简介
配置任务 |
说明 |
详细配置 |
手工添加静态ARP映射项 |
可选 |
|
配置ARP学习数量限制 |
可选 |
|
配置动态ARP老化定时器的时间 |
可选 |
|
使能ARP表项的检查功能 |
可选 |
|
免费ARP周期发送功能配置 |
可选 |
|
免费ARP报文学习功能配置 |
可选 |
|
ARP防攻击配置 |
可选 |
|
ARP代理配置 |
可选 |
|
ARP源抑制配置 |
可选 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
手工添加静态ARP映射项 |
arp static ip-address mac-address [ vlan-id interface-type interface-number ] |
必选 缺省情况下,系统ARP映射表为空,地址映射由动态ARP协议获取 |
注意:
l 静态ARP映射项在以太网交换机正常工作时间一直有效,但如果更改或者删除VLAN接口,或者执行删除VLAN或把端口从VLAN中删除等使ARP表项不再合法的操作,则ARP表项都将被自动删除。
l 参数vlan-id必须是已经存在的VLAN ID,且vlan-id参数后面指定的以太网端口必须属于这个VLAN。
该命令用来配置允许学习ARP的数量。
表1-7 配置ARP学习数量限制
配置项 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置ARP总数量限制 |
arp max-entry number |
可选 缺省值为8192 |
进入相应的接口视图 |
interface interface-type interface-number |
- |
配置端口学习动态ARP的数量限制 |
arp max-dynamic-entry number |
可选 缺省值为2048 |
交换机学习到一个动态ARP表项时,它的老化时间以当前配置的老化时间计算。
表1-8 配置动态ARP老化定时器的时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置动态ARP老化定时器的时间 |
arp timer aging aging-time |
可选 缺省情况下,动态ARP老化定时器为20分钟 |
当多台主机共用一个组播MAC地址时,可以使用命令控制设备是否学习源MAC地址为组播MAC的ARP表项。
表1-9 使能ARP表项的检查功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能ARP表项的检查功能(即不学习源MAC地址为组播MAC的ARP表项) |
arp check enable |
可选 缺省情况下,使能ARP表项的检查功能,即不学习源MAC地址为组播MAC的ARP表项 |
表1-10 免费ARP周期发送功能配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启免费ARP周期发送功能 |
arp gratuitous-updating enable |
必选 缺省情况下,交换机的免费ARP周期发送功能处于关闭状态 |
设置免费ARP发送周期 |
arp timer gratuitous-updating updating-interval |
可选 缺省情况下,开启免费ARP周期发送功能后,发送周期为5分钟 |
& 说明:
当VLAN接口上启用了VRRP功能,且VLAN接口所在交换机为Master交换机时,设备会发送VRRP虚拟路由器IP地址的免费ARP;否则,发送VLAN接口上主IP地址及所有从IP地址的免费ARP。
免费ARP报文学习功能的配置过程如下:
表1-11 免费ARP报文学习功能配置过程
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
开启免费ARP报文学习功能 |
gratuitous-arp-learning enable |
必选 缺省情况下,交换机的免费ARP报文学习功能处于关闭状态 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置ARP表中同一VLAN内对应同一MAC地址的IP地址的最大个数 |
arp mac-arp-map limit number |
必选 缺省情况下,交换机ARP表中,同一VLAN内对应同一MAC地址的IP地址最大个数为2 |
& 说明:
如果设备的VLAN接口下配置了从IP地址,则ARP表中对应同一MAC地址的IP地址的最大个数不能少于VLAN接口下主、从IP地址的总个数。
表1-13 ARP代理配置过程
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN接口视图 |
interface Vlan-interface vlan-id |
- |
开启ARP代理 |
arp proxy enable |
必选 |
开启入VLAN ARP代理 |
arp proxy source-vlan enable |
可选 缺省情况下,ARP代理只对不同VLAN之间的ARP请求进行代理,入VLAN ARP代理功能关闭 |
通过配置单位时间内不同类型的ARP报文发送到CPU的最大个数,来防止非法报文对设备CPU产生的攻击。
表1-14 ARP源抑制配置过程
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置单位时间内ARP报文发送到CPU的最大个数 |
arp source-suppression limit { total | local | through } limit-value |
可选 缺省情况下的取值与ARP报文类型有关: l 选择total参数时,缺省值为100 l 选择local参数时,缺省值为3 l 选择through参数时,缺省值为3 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP的运行情况,通过查看显示信息验证配置的效果。在用户视图下执行reset命令可以reset命令清除ARP映射项。
表1-15 ARP的显示和维护
操作 |
命令 |
说明 |
显示ARP攻击信息 |
display arp attack-list |
display命令可以在任意视图下执行 |
查看ARP映射表 |
display arp [ static | dynamic | ip-address ] |
|
查看包含指定内容的ARP映射表 |
display arp | { begin | include | exclude } text |
|
显示ARP的数量限制 |
display arp entry-limit [ interface-type interface-number ] |
|
查看指定槽号上所有端口的ARP表 |
display arp slot slot-id |
|
查看指定vlan上所有端口的ARP表 |
display arp vlan vlan-id |
|
查看指定端口的ARP表 |
display arp interface interface-type interface-number |
|
查看动态ARP老化定时器的时间 |
display arp timer aging |
|
显示ARP代理的状态 |
display arp proxy [ interface interface-type interface-number ] |
|
显示ARP源抑制的配置信息 |
display arp source-suppression |
|
清除ARP映射项 |
reset arp [ dynamic | static | interface interface-type interface-number ] |
reset命令可以在用户视图下执行 |
清除ARP攻击信息 |
reset arp attack-list |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!