23-ARP操作
本章节下载 (291.87 KB)
目 录
ARP(Address Resolution Protocol,地址解析协议)用于将网络层的IP地址解析为数据链路层的物理地址(MAC地址)。
网络设备进行网络寻址时只能识别数据链路层的MAC地址,不能直接识别来自网络层的IP地址。如果要将网络层中传送的数据报交给目的主机,必须知道该主机的MAC地址。因此网络设备在发送报文之前必须将目的主机的IP地址解析为它可以识别的MAC地址。
ARP报文分为ARP请求和ARP应答报文,ARP请求和应答报文的格式如图1-1所示。
l 当一个ARP请求发出时,除了接收端硬件地址(正是请求方想要获取的地址)字段为空外,其他所有的字段都被使用。
l ARP应答报文使用了所有的字段。
ARP报文各字段的含义如表1-1所示。
报文字段 |
字段含义 |
硬件类型 |
识别硬件接口的类型,合法取值请参见表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表的形式如图1-2所示。ARP映射表中存放着最近用到的一系列与本主机通信的其他主机的IP地址和MAC地址的映射关系。需要注意的是,这里仅仅对ARP映射表的基本实现进行介绍。不同公司的产品可能会在此基础上提供更多的信息。S3600系列以太网交换机可以使用display arp命令查看ARP映射项信息。
ARP表中表项各字段含义如表1-3所示。
表项字段 |
描述 |
IF索引 |
记录拥有表项中物理地址和IP地址的设备的物理接口或端口 |
物理地址 |
设备的物理地址,即MAC地址 |
IP地址 |
设备的IP地址 |
类型 |
该表项的类型,类型有四种可能的值 取值为1——不是以下任何一种情况 取值为2——该表项是无效表项 取值为3——该表项是动态表项 取值为4——该表项是静态表项 |
在主机启动时,主机上的ARP映射表为空;当一条动态ARP映射表项在规定时间没有使用时,主机将其从ARP映射表中删除掉,以便节省内存空间和ARP映射表的查找时间。具体过程可以参考图1-3。
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报文都要完成这个操作。
S3600系列以太网交换机的ARP表项分为:静态表项和动态表项,如表1-4所示。
分类 |
生成方式 |
维护方式 |
静态ARP表项 |
用户手工配置的IP地址到MAC地址的映射 |
手工维护 |
动态ARP表项 |
交换机动态生成的IP地址到MAC地址的映射 |
动态生成的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。
l 目前,不支持在聚合端口上配置静态ARP映射项。
交换机学习到一个动态ARP表项时,它的老化时间以当前配置的老化时间计算。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置动态ARP老化定时器的时间 |
arp timer aging aging-time |
可选 缺省情况下,动态ARP老化定时器为20分钟 |
当多台主机共用一个组播MAC地址时,可以使用命令控制设备是否学习MAC地址为组播MAC的ARP表项。
配置项 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能ARP表项的检查功能(即不学习MAC地址为组播MAC的ARP表项) |
arp check enable |
可选 缺省情况下,使能ARP表项的检查功能,即不学习MAC地址为组播MAC的ARP表项 |
S3600系列交换机的免费ARP报文发送功能始终开启,不需命令行进行控制。
免费ARP报文学习功能的配置过程如下:
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
开启免费ARP报文学习功能 |
gratuitous-arp-learning enable |
必选 缺省情况下,交换机的免费ARP报文学习功能处于开启状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP的运行情况,通过查看显示信息验证配置的效果。在用户视图下执行reset命令清除ARP映射项。
配置项 |
命令 |
说明 |
查看ARP映射表 |
display arp [ static | dynamic | ip-address ] |
display命令可以在任意视图执行 |
查看包含指定内容的ARP映射表 |
display arp [ dynamic | static ] | { begin | include | exclude } text |
|
查看指定类型的ARP映射项的数目 |
display arp count [ [ dynamic | static ] [ | { begin | include | exclude } text ] | ip-address ] |
|
查看动态ARP老化定时器的时间 |
display arp timer aging |
|
清除ARP映射项 |
reset arp [ dynamic | static | interface interface-type interface-number ] |
reset命令可以在用户视图下执行 |
在IRF(Intelligent Resilient Framework,智能弹性网络)组网应用中,为了支持弹性组网要求,通常在fabric和其它设备之间连接冗余链路。但是如果fabric内部连接中断,原fabric分裂,这种冗余链路就可能导致同一网络上连接了两台或多台配置完全相同的三层设备,这几台设备都运行相同的路由功能。为了避免这种情况的发生,可以采用Resilient ARP机制。Resilient ARP可以及时发现网络中是否出现了相同的三层设备,如出现则只保留一台作为三层设备,将其它设备都变为二层设备。
Resilient ARP的状态机有六种状态,分别是Initialize、LisentForL3Master、L3Master、L3Slave、L2Master和L2Slave。其中L3Master状态会定时发送Resilient ARP报文,以通知其它fabric本fabric处于三层设备状态。
Resilient ARP通过定时发送/接收Resilient ARP报文来实现系统状态切换,从而决定设备是作为三层设备还是二层设备。
Resilient ARP配置包括:
l 开启/关闭Resilient ARP功能
开启Resilient ARP功能后,系统可以根据当前的状态进行不同的处理,当fabric内部连接中断后,可以通过冗余链路所在的VLAN接口定时发送Resilient ARP报文,从而决定设备是作为三层设备还是二层设备。
l 配置可发送Resilient ARP报文的VLAN接口
可以使用下面的命令配置Resilient ARP报文从哪个VLAN接口发送,当不指定发送VLAN接口时,Resilient ARP报文将通过缺省VLAN接口发送。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启Resilient ARP功能 |
resilient-arp enable |
必选 缺省情况下,Resilient ARP处于开启状态 |
配置可发送Resilient ARP报文的VLAN接口 |
resilient-arp interface vlan-interface vlan-id |
可选 缺省情况下,从VLAN 1接口发送Resilient ARP报文 |
需要注意的是,该配置任务只是指明通过哪个VLAN接口发送Resilient ARP报文,而所有的VLAN接口都能接收Resilient ARP报文。
在完成上述配置后,在任意视图下执行display命令可以显示配置后Resilient ARP的运行情况,通过查看显示信息验证配置的效果。
操作 |
命令 |
说明 |
显示Resilient ARP状态信息 |
display resilient-arp [ unit unit-id ] |
display命令可以在任意视图执行 |
在IRF组网中,有四个Unit:Unit1~Unit4。Unit1和Unit3通过端口汇聚连接到另一台交换机Switch。为防止因Unit1和Unit3、Unit2和Unit4之间的链路中断而使网络中存在两台配置完全相同的三层设备,进而导致Switch与fabric的报文转发出现问题,可以在fabric中运行Resilient ARP。考虑到安全性,需要启动MD5认证功能。Unit1和Unit3上连接到Switch的端口都属于VLAN2。
# 开启Resilient ARP功能。
<H3C> system-view
[H3C] resilient-arp enable
# 配置可发送Resilient ARP报文的VLAN接口为VLAN接口2。
[H3C] resilient-arp interface Vlan-interface 2
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!