22-ARP操作
本章节下载 (241.54 KB)
目 录
ARP(Address Resolution Protocol,地址解析协议)用于将网络层的IP地址解析为数据链路层的物理地址。
IP地址只是主机在网络层中的地址,如果要将网络层中数据包传送给目的主机,必须知道目的主机的数据链路层地址(比如以太网络MAC地址)。因此必须将IP地址解析为数据链路层地址。
本章中除特殊说明,数据链路层地址均以48bit的以太网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表项。S5100-SI/EI系列以太网交换机支持使用display arp命令查看ARP表项信息。
S5100-SI/EI系列以太网交换机的ARP表项分为:静态表项和动态表项,如表1-3所示。
表1-3 ARP表项
分类 |
生成方式 |
维护方式 |
静态ARP表项 |
用户手工配置的IP地址到MAC地址的映射 |
手工维护 |
动态ARP表项 |
交换机动态生成的IP地址到MAC地址的映射 |
动态生成的ARP表项,通过动态ARP老化定时器设定的时间进行老化 |
图1-2 ARP地址解析过程
假设主机A和B在同一个网段,主机A要向主机B发送信息。地址解析过程如下:
(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数据包进行封装后发送出去。
一般情况下,ARP动态执行并自动寻求IP地址到以太网MAC地址的解析,无需管理员的介入。
按照ARP协议的设计,一个主机即使收到的ARP应答并非自身请求得到的,也会将其IP地址和MAC地址的对应关系添加到自身的ARP映射表中。这样可以减少网络上过多的ARP数据通信,但也为“ARP 欺骗”创造了条件。
如图1-3所示,Host A和Host C通过Switch进行通信。此时,如果有黑客(Host B)想探听Host A和Host C之间的通信,它可以分别给这两台主机发送伪造的ARP应答报文,使Host A和Host C用MAC_B更新自身ARP映射表中与对方IP地址相应的表项。此后,Host A 和Host C之间看似“直接”的通信,实际上都是通过黑客所在的主机间接进行的,即Host B担当了“中间人”的角色,可以对信息进行了窃取和篡改。这种攻击方式就称作“中间人(Man-In-The-Middle)攻击”。
图1-3 ARP“中间人”攻击示意图
为了防止黑客或攻击者通过ARP报文实施“中间人”攻击,S5100-SI/EI系列以太网交换机支持ARP入侵检测功能,即:将经过交换机的所有ARP(请求与回应)报文重定向到CPU,利用DHCP Snooping表或手工配置的IP静态绑定表,对ARP报文进行合法性检测。DHCP Snooping表和手工配置的IP静态绑定表的具体介绍请参见“DHCP”中的DHCP Snooping部分。
开启ARP入侵检测功能后,如果ARP报文中的源MAC地址、源IP地址、接收ARP报文的端口编号以及端口所在VLAN与DHCP Snooping表或手工配置的IP静态绑定表表项一致,则认为该报文是合法的ARP报文,进行转发;否则认为是非法ARP报文,直接丢弃。
l 用户可以通过配置信任端口,灵活控制ARP报文检测。对于来自信任端口的所有ARP报文不进行检测,对其它端口的ARP报文通过查看DHCP Snooping表或手工配置的IP静态绑定表进行检测;
l 用户可以通过配置ARP严格转发功能,使从非信任端口接收到的ARP请求报文仅通过信任端口进行转发;对于从非信任端口接收到的ARP应答报文,首先按照报文中的目的MAC地址进行转发,若目的MAC地址不在MAC地址表中,则将此ARP应答报文通过信任端口进行转发。
免费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映射表中。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
手工添加静态ARP表项 |
arp static ip-address mac-address [ vlan-id interface-type interface-number ] |
可选 缺省情况下,系统ARP映射表为空,地址映射由ARP协议动态获取 |
配置动态ARP表项的老化时间 |
arp timer aging aging-time |
可选 缺省情况下,动态ARP表项的老化时间为20分钟 |
开启ARP表项的检查功能(即不学习源MAC地址为组播MAC的ARP表项) |
arp check enable |
可选 缺省情况下,ARP表项的检查功能处于开启状态 |
l 静态ARP表项在以太网交换机正常工作时间一直有效,但如果执行删除VLAN或把端口从VLAN中删除等使ARP表项不再合法的操作,则相应的静态ARP表项将被自动删除。
l 参数vlan-id必须是已经存在的VLAN ID,且vlan-id参数后面指定的以太网端口必须属于这个VLAN。
l 目前,不支持在汇聚组中的端口上配置静态ARP表项。
表1-5 配置ARP入侵检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置IP静态绑定表项 |
ip source static binding ip-address ip-address [ mac-address mac-address ] |
二者至少选其一 缺省情况下,没有配置IP静态绑定表项,且交换机的DHCP Snooping功能处于关闭状态 |
开启DHCP Snooping功能 |
dhcp-snooping |
|
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置DHCP Snooping信任端口 |
dhcp-snooping trust |
可选 如果开启了交换机的DHCP Snooping功能,则需要配置其上行连接DHCP服务器的端口为信任端口 |
配置ARP信任端口 |
arp detection trust |
可选 缺省情况下,交换机所有端口为ARP非信任端口 一般情况下,需要配置交换机的上行端口作为ARP信任端口 |
退出至系统视图 |
quit |
- |
进入VLAN视图 |
vlan vlan-id |
- |
开启ARP入侵检测功能 |
arp detection enable |
必选 缺省情况下,指定VLAN内所有端口的ARP入侵检测功能处于关闭状态 |
开启ARP严格转发功能 |
arp restricted-forwarding enable |
可选 缺省情况下,ARP严格转发功能处于关闭状态 |
l 在接入用户多数为DHCP动态获取IP地址,部分为手工配置IP地址的组网环境中,建议同时开启DHCP Snooping功能和配置IP静态绑定表项,配合ARP入侵检测功能完成ARP报文的合法性检查。具体介绍可参见本手册“DHCP”中DHCP Snooping部分的介绍。
l 一般情况下,需要配置交换机的上行端口作为ARP信任端口。
l 在开启ARP严格转发功能之前,需要先在交换机上开启ARP入侵检测功能,并配置ARP信任端口。
l 建议用户不要在汇聚组中的端口上配置ARP入侵检测功能。
l 目前,S5100-SI/EI系列以太网交换机在端口上配置的IP静态绑定表项,其所属VLAN为端口的缺省VLAN ID。因此,如果ARP报文的VLAN TAG与端口的缺省VLAN ID值不同,报文将无法通过根据IP静态绑定表项进行的ARP入侵检测。
表1-6 配置免费ARP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启免费ARP报文学习功能 |
gratuitous-arp-learning enable |
可选 缺省情况下,交换机的免费ARP报文学习功能处于开启状态 |
S5100-SI/EI系列以太网交换机在VLAN接口变为开启状态(包括链路开启或为VLAN接口配置IP地址),或VLAN接口的IP地址发生变化时,会对外发送免费ARP报文,这个操作不需命令行进行控制。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP的运行情况,通过查看显示信息验证配置的效果。在用户视图下执行reset命令清除ARP表项。
表1-7 ARP的显示和维护
操作 |
命令 |
说明 |
查看ARP映射表 |
display arp [ static | dynamic | ip-address ] |
display命令可以在任意视图执行 |
查看包含指定内容的ARP映射表 |
display arp [ dynamic | static ] | { begin | include | exclude } regular-expression |
|
查看指定类型的ARP表项的数目 |
display arp count [ [ dynamic | static ] [ | { begin | include | exclude } regular-expression ] | ip-address ] |
|
查看指定端口被丢弃掉的不可信任的ARP报文的数量 |
display arp detection statistics interface interface-type interface-number |
|
查看动态ARP老化定时器的时间 |
display arp timer aging |
|
清除ARP表项 |
reset arp [ dynamic | static | interface interface-type interface-number ] |
reset命令在用户视图下执行 |
l 关闭ARP表项检查功能。
l 设置交换机上动态ARP表项的老化时间为10分钟。
l 增加一个静态ARP表项,IP地址为192.168.1.1,对应的MAC地址为000f-e201-0000,对应的出端口为属于VLAN 1的端口GigabitEthernet1/0/10。
<Sysname> system-view
[Sysname] undo arp check enable
[Sysname] arp timer aging 10
[Sysname] arp static 192.168.1.1 000f-e201-0000 1 GigabitEthernet1/0/10
如图1-4所示,Switch A的端口GigabitEthernet1/0/1连接DHCP服务器,端口GigabitEthernet1/0/2和GigabitEthernet1/0/3分别连接Client A和Client B,且三个端口都属于VLAN 1。
l 开启交换机的DHCP Snooping功能,并设置端口GigabitEthernet1/0/1为DHCP Snooping信任端口。
l 为防止ARP中间人攻击,配置VLAN 1的ARP入侵检测功能,设置Switch的端口GigabitEthernet1/0/1为ARP信任端口;
图1-4 配置ARP入侵检测组网图
# 开启交换机DHCP Snooping功能。
<SwitchA> system-view
[SwitchA] dhcp-snooping
# 设置端口GigabitEthernet1/0/1为DHCP Snooping信任端口,ARP信任端口。
[SwitchA] interface GigabitEthernet1/0/1
[SwitchA-GigabitEthernet1/0/1] dhcp-snooping trust
[SwitchA-GigabitEthernet1/0/1] arp detection trust
[SwitchA-GigabitEthernet1/0/1] quit
# 开启VLAN 1内所有端口的ARP入侵检测功能。
[SwitchA] vlan 1
[SwitchA-vlan1] arp detection enable
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!