您的位置:首页 > 运动休闲 > 旅游用品 > 进一步理解ARP

进一步理解ARP

luyued 发布于 2011-02-26 18:34   浏览 N 次  

目 录

1.1 背景 4

1.2 ARP报文结构 4

1.3 ARP地址解析过程 5

2 ARP的几个特性 5

2.1 自然网段ARP 5

2.2 ARP表项检查功能 6

2.3 免费ARP 7

2.4 代理ARP 8

2.4.1 普通代理ARP 9

2.4.2 本地代理ARP 10

2.5 ARP源抑制 11

2.6 源MAC地址固定的ARP攻击检测 13

2.7 ARP报文源MAC一致性检查 14

1 前言

1.1 背景

入职时最初接触的就是ARP,当时还输出了一篇ARP理解报告,但随着学习和测试工作的深入,越来越为自己当初理解的肤浅而汗颜,最近在测试MSR5006的ARP功能模块时就感觉有些力不从心,没有测出什么问题来,也可能是这个模块已经比较稳定了,但自己对这个模块的理解真是很模糊。翻阅了一些资料,结合自己的实际测试,输出了这篇文档,希望得到各位同事的批评指正。

1.2 ARP报文结构

ARP报文分为ARP请求和ARP应答报文,报文格式如图1所示。

图1 ARP报文结构

通过测试仪抓包,我们可以清楚的看到各个字段在报文中的位置,如图2所示:

图2 ARP报文结构详解

1.3 ARP地址解析过程

假设主机A和B在同一个网段,主机A要向主机B发送信息。如图3所示,具体的地址解析过程如下:

图3 ARP地址解析过程

(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)收到ARP请求的主机比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时(如主机B)进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

(4)主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

2 ARP的几个特性

2.1 自然网段ARP

使能自然网段ARP的命令是在系统视图下执行naturemask-arp enable(默认是不使能的);在学习ARP表项时,若发现ARP报文的源IP地址和入接口IP地址不在同一网段后,则使用自然网段进行判断。

下面举例说明一下:

简单组网: |SMB|-----------------|RouterA|

假设RouterA与SMB直连的接口(GigabitEthernet0/0)IP地址为1.1.1.1/24,收到一个源IP地址为1.2.1.1的ARP报文(SMB发出的),由于两个IP地址不在同一网段,GigabitEthernet0/0接口无法处理这个报文。如果使能支持自然网段的ARP请求功能,则通过自然网段进行判断,由于GigabitEthernet0/0接口的IP地址为A类地址,因此默认掩码应该为8位,于是两个IP地址就在同一个网段,GigabitEthernet0/0接口就可以学习源IP地址为1.2.1.1的ARP表项了。

[H3C]naturemask-arp enable

[H3C]display current-configuration interface GigabitEthernet0/0

#

interface GigabitEthernet0/0

port link-mode route

ip address 1.1.1.1 255.255.255.0

#

return

[H3C]dis arp

Type: S-Static D-Dynamic A-Authorized

IP Address MAC Address VLAN ID Interface Aging Type

1.2.1.1 0000-0000-0023 N/A GE0/0 20 D

2.2 ARP表项检查功能

使能ARP表项检查功能是在系统视图下执行arp check enable(默认是使能的);该功能可以控制设备是否学习MAC地址为组播MAC的ARP表项。使能ARP表项的检查功能后,若设备接收到的ARP报文中的源MAC地址为组播MAC,则不进行动态ARP表项的学习;且设备上不能配置MAC地址为组播MAC的静态ARP表项,否则会有错误提示。关闭ARP表项的检查功能后,可以对源MAC地址为组播MAC的ARP表项进行学习,且可以配置MAC地址为组播MAC的静态ARP表项。

下面举例说明:

[H3C]arp check enable

[H3C]arp static 10.1.1.1 0100-0000-0001

Error: Invalid MAC address.

[H3C]undo arp check enable

[H3C]arp static 10.1.1.1 0100-0000-0001

[H3C]dis arp

Type: S-Static D-Dynamic A-Authorized

IP Address MAC Address VLAN ID Interface Aging Type

图文资讯
广告赞助商