进一步理解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
- 06-15· 2011.03.16中山
- 06-15· [转载]段琪桂不构成“犯罪
- 06-15· 雅思VIP8人班
- 06-15· 广州市地下铁道总公司D
- 06-12· 那些类似口袋的玩意
- 06-12· 伸个懒腰腰
- 06-07· [原创]精明购物挑战千年极
- 06-05· 桂林中旅新增路线“桂林
- 06-05· 怎样能增肥 2011年1月21日芒
- 06-05· [转载]【日本旅游】日本游
- 06-05· 广州至纽约 芝加哥 华盛顿
- 06-05· [热门]记三亚…仅供娱乐
- 06-05· Lucene原理及使用总结 | 用
- 06-04· 国际漫画大赛征稿(修改
- 06-04· 泰國之旅第一日~
- 06-04· 泰之旅day4
- 06-04· 泰國之旅 Farica 篇
- 06-03· 哈 曼丁的故事3
- 06-03· 奥巴马:没有总统相?“
- 05-31· 5-31筹款物资汇总披露(一