09ARP配置.docx
《09ARP配置.docx》由会员分享,可在线阅读,更多相关《09ARP配置.docx(9页珍藏版)》请在冰豆网上搜索。
09ARP配置
ARP配置
第1章
ARP配置
1.1ARP简介
1.1.1ARP的作用
ARP(AddressResolutionProtocol,地址解析协议)是TCP/IP协议族中最重要的协议之一,主要用于IP地址到以太网MAC地址的解析。
当两台主机开始通信并只知道对方的IP地址时(IP地址只是主机在网络层中的地址),如果要将网络层中数据包传送给目的主机,必须知道目的主机的硬件地址(比如以太网络MAC地址),因此需要将IP地址解析为数据链路层地址。
在本文档中,如无特殊说明,主机硬件地址均指的是48bits的以太网MAC地址。
1.1.2ARP的工作过程
我们以FTP通信为例,描述一下ARP的工作过程。
1.如图1-1,主机A希望能够访问到网络里IP地址为192.168.1.4的主机。
图1-1.组网图
2.假定这是一个以太网,并且每一台主机都不知道局域网中有其他的主机。
那么主机A需要知道192.168.1.4主机的MAC地址,才能建立通信。
3.根据ARP协议,主机A会发送一个ARP请求(ARPRequest),内容为请求192.168.1.4主机的MAC地址。
该请求是一个广播报文,局域网内的所有主机都将收到主机A发出的这个请求。
如图1-2所示。
图1-2.发送ARP请求
4.按照协议,只有主机D才会响应主机A的请求。
这时,这个回应报文(ARPReply)是一个单播报文。
图1-3.发送ARP响应
5.主机A收到主机D的应答后,会将主机D的IP地址和MAC地址记录在ARP缓存中。
下次通信时,就不需要再发送ARP来请求目的主机的MAC地址了,除非该表项被老化。
1.1.3ARP的报文结构
图1-4.ARP报文结构图
●硬件类型:
表示硬件地址的类型。
它的值为1表示以太网地址;
●协议类型:
表示要映射的协议地址类型。
它的值为0x0800即表示IP地址;
●硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。
对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;
●操作类型(OP):
1表示ARP请求,2表示ARP应答;
●源MAC地址:
发送方设备的硬件地址;
●源IP地址:
发送方设备的IP地址;
●目的MAC地址:
接收方设备的硬件地址。
●目的IP地址:
接收方设备的IP地址。
1.1.4ARP表
设备通过ARP解析到目的MAC地址后,将会向自己的ARP表中增加包含IP地址、MAC地址、端口等的映射表项,以作为后续报文转发的依据。
ARP表项分为动态ARP表项和静态ARP表项。
(1)动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。
当到达老化时间、端口down时会删除相应的动态ARP表项。
(2)静态ARP表项主要通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。
静态ARP表项分为短静态ARP表项和长静态ARP表项。
●在配置长静态ARP表项时,除了配置IP地址和MAC地址项外,还必须配置该ARP表项所在VLAN和出端口。
长静态ARP表项可以直接用于报文转发。
●在配置短静态ARP表项时,只需要配置IP地址和MAC地址项。
短静态ARP表项不能直接用于报文转发。
当需要用到短静态ARP表项时,先发送ARP请求报文,如果收到的响应报文中的源IP地址和源MAC地址与所配置的IP地址和MAC地址相同,则将该ARP表项补充完整,之后就可以用于IP数据包的转发。
注意:
在手工配置长静态ARP表项时,该表项里的IP地址需和出端口所在的VLAN接口的IP在同一网段,否则就会添加不成功。
1.2配置防止ARP欺骗
1.2.1ARP欺骗简介
从前面的介绍我们可以知道,网络中两台主机需要通信时,需要知道双方的MAC地址。
ARP协议使得这个过程对用户是透明的。
但因为ARP协议里没有对报文的认证说明,也就是说无条件的相信,就导致了攻击者有机可乘。
还是以上面的例子来说明。
由于局域网内所有的设备都能接收到主机A的ARP请求,如果主机C是一个恶意的攻击者,它冒充主机B发送了ARP回应给主机A,说:
我的地址是00:
00:
00:
00:
00:
03。
主机A会无条件的相信这个回应报文并且增加或者覆盖掉原有的ARP表项,这个表项的IP是192.168.1.4,但对应的MAC却是00:
00:
00:
00:
00:
03。
这样,主机C就截获了本来应该发给主机B的信息。
由于主机A被虚假的ARP欺骗,这也叫ARP欺骗攻击。
1.2.2arpanti-spoofing防护机制
要防护ARP欺骗的攻击,关键是要识别和禁止转发伪装的ARP报文。
从ARP欺骗的原理我们可以看到,要防止ARP欺骗的攻击需要从两方面入手,首先防止病毒主机伪装成网关,这样会造成整个网段的用户不能上网;其次是防止病毒主机伪装成其他主机,窃听数据或导致同一网段内个别主机之间不能通信。
交换机提供了主动防御ARP欺骗的功能,在实际应用中,网络中的主机第一次通信,交换机便会记录其ARP表项,表项中有报文中的senderIP、MAC、VID和port的对应关系。
在开启防ARP欺骗功能后,可以实现下面几种操作:
(1)自动绑定动态ARP表项。
防ARP欺骗的一个有效手段就是添加静态ARP表项,但在实际网络中,管理员不可能一条一条的去添加ARP表项,并且这样的方法也容易出错。
而现在,管理员只需要确认动态ARP表项里的信息正确,就可以只执行一条命令,交换机就会自动将动态ARP表项转换为静态表项。
(2)防ARP欺骗功能开启后,交换机对收到的每一个ARP报文与静态ARP表项进行比较,如果该ARP报文包含的信息,比如VID、port和MAC与表项的信息完全相同,则转发报文;如果有所不同,则丢弃此报文。
如果在静态ARP表项里没有找到与这个报文相关的信息,则可以根据用户的配置来丢弃或者是泛洪该报文。
(3)某些ARP攻击报文的以太网数据帧首部中的源MAC和ARP协议报文中的源MAC不同。
通过使能ARP报文源MAC一致性检查功能,可以过滤掉这一类的ARP攻击报文。
(4)防止网关伪装者。
在交换机作为网络里某些主机的网关的情况下,如果交换机检测到网络里有主机冒充为网关,则直接将该主机拖入黑名单,并主动发出免费ARP,以便网络里的主机知道正确的网关所在。
1.2.3配置anti-spoofing
表1-1配置anti-spoofing
步骤
命令
操作
步骤1
configureterminal
进入全局模式
步骤2
arpanti-spoofing
开启防止ARP欺骗功能。
步骤3
arpanti-spoofingunknown{diacard|flood}
配置对于在静态ARP表里没有对应信息的ARP报文的处理办法。
步骤4
end
返回特权模式
步骤5
copyrunning-configstartup-config
保存修改的配置
1.2.4配置防网关欺骗功能
当交换机作为某些局域网内设备的网关时,如果局域网内有攻击者想冒充交换机而使得网内其他设备认为其是网关的话,交换机会将这个攻击者列入黑名单,并同时发送免费ARP告知网内设备说“我才是正确的网关”。
缺省配置下,该功能处于关闭状态。
表1-1配置防网关欺骗
步骤
命令
操作
步骤1
configureterminal
进入全局模式
步骤2
arpanti-spoofingdenydisguiser{ipadressmac}
开启防网关欺骗功能
步骤3
showarpanti-spoofing
验证操作
步骤4
end
返回特权模式
步骤5
copyrunning-configstartup-config
保存修改的配置
1.2.5配置ARP报文源MAC一致性检查
对于某些ARP攻击报文,它的以太网数据帧首部中的源MAC和ARP协议报文中的源MAC不同。
使能ARP报文源MAC一致性检查功能后,交换机将会检查送到CPU的ARP报文的以太网源地址MAC是否和ARP协议报文中的源MAC相同,不一致则丢弃该报文。
缺省配置下,该功能处于关闭状态
表1-2配置ARP报文源MAC一致性检查
步骤
命令
操作
步骤1
configureterminal
进入全局模式
步骤2
arpanti-spoofingvalid-check
开启ARP报文源MAC一致性检查
步骤3
showarpanti-spoofing
验证操作
步骤4
end
返回特权模式
步骤5
copyrunning-configstartup-config
保存修改的配置
1.2.6Anti-spoofing功能的默认配置
表1-3Anti-spoofing的默认配置
功能
默认配置
arpanti-spoofing
disable
ARP报文源MAC地址一致性检测
disable
防网关欺骗功能
disable
arpanti-spoofingunknown{diacard|flood}
discard
1.2.7anti-spoofing功能的显示和维护
表1-4anti-spoofing功能的显示和维护
命令行
操作
showarpanti-spoofing
查看anti-spoofing功能的当前状态
showmac-address-tableblackhole
查看是否有用户被添加到黑名单
1.3配置防止ARP泛洪攻击
1.3.1ARPflood攻击
flood攻击的原理一般都是以大量的报文流量攻击网络中的设备,如路由器、交换机和服务器等,导致网络设备的CPU资源耗尽而使网络瘫痪。
面对此类flood攻击,最重要的是要保证网络设备的正常运行,防止大面积的网络瘫痪。
网络中flood攻击的方式多种多样,对设备危害最大的就是ARP类的攻击,根据前面讲到的ARP机制,网络中所有的设备收到ARP请求报文时都会送到CPU去处理,这样才能判断是不是其他设备在请求自己的MAC地址。
ARPflood攻击就是利用ARP机制的这种缺陷在局域网中随机发送大量的ARP请求报文来对网络设备进行攻击。
1.3.2arpanti-flood防护机制
ARPflood攻击的主要目的就是冲击网络设备的CPU,导致核心设备的CPU资源耗尽。
要防御该类型的攻击,交换机必须要提前判断并禁止flood报文的转发。
arpanti-flood功能可以识别每一条ARP流,根据设置的安全ARP速率阈值,判断是否为ARPflood攻击,当一台主机的ARP流量超过设置的阈值,交换机便会认为是flood攻击,立即将该病毒主机拉入黑名单,禁止来自该主机的所有报文的转发。
为了方便网络管理员的管理维护,在自动防护的同时还会在系统日志中保存相关的告警信息。
对于被禁止的用户,管理员可以设置手动恢复或者自动恢复。
在交换机上的整个处理流程如下:
1)启用arpanti-flood功能,将广播的ARP报文收上CPU,根据ARP报文中的源MAC地址来识别不同的流。
2)设置安全的ARP速率,如果速率超过该阀值则交换机认为是ARP攻击。
3)上面命令如果选择了deny-all,当一个ARP流量超过设置的阀值,交换机会根据源MAC地址判断,将该MAC地址加到黑洞地址列表中,禁止这个地址后续所有报文的转发。
4)上面命令如果选择了deny-arp,当一个ARP流量超过设置的阀值,交换机会根据源MAC地址来判断,禁止处理这个地址后续的所有ARP报文。
5)对于恢复被禁止掉的用户的转发,管理员可以设置自动恢复时间或者手动恢复两种方式。
1.3.3配置arpanti-flood
表1-5配置anti-flood
操作
命令
说明
进入全局模式
configureterminal
-
开启防止ARP泛洪功能。
arpanti-flood
必选
配置安全触发阈值
arpanti-floodthresholdthreshold
可选
缺省配置下,安全触发阈值为16PPS
配置对于攻击者的处理方式
arpanti-floodaction{deny-arp|deny-all}thresholdthreshold
可选
缺省配置下,对于攻击者的处理方式为denyarp
配置被禁止的用户的自动恢复时间
arpanti-floodrecover-timetime
可选
可配置的时间范围为<0-1440>分钟,配置为0时表示需手工恢复。
缺省配置下,被禁止用户的自动恢复时间为10分钟。
手工恢复被禁止用户的转发。
arpanti-floodrecover{H:
H:
H:
H:
H:
H|all}
可选
1.3.4ARPAnti-flood功能的显示和维护
操作
命令行
备注
查看arpanti-flood功能所有相关配置及攻击者列表
showarpanti-flood
任何模式下可执行
1.4配置举例
组网需求
如图所示,SwitchA的端口Eth0/0/1连接DHCP服务器,端口Eth0/0/2和Eth0/0/3分别连接ClientA和ClientB。
且三个端口都属于VLAN1.
开启交换机DHCPSnooping功能,设置端口Eth0/0/1为DHCPSnooping的信任端口,开启ARP防欺骗功能配置ARP报文源MAC一致性检查.
组网图
配置步骤
开启DHCPSnooping功能
TiNet(config)#dhcp-snooping
设置端口ethernet0/1为DHCPSnooping信任端口,ARP信任端口
TiNet(config-if-ethernet-0/1)#dhcp-snoopingtrust
ConfigDHCPSnoopingmodeofportsuccessfully.
TiNet(config-if-ethernet-0/1)#arpantitrust
Configarpanti-attackmodeofportsuccessfully.
开启防止ARP欺骗功能,配置anti-spoofing
TiNet(config)#arpanti-spoofing
TiNet(config)#arpanti-spoofingunknowndiscard
配置防网关欺骗功能
TiNet(config)#arpanti-spoofingdeny-disguiser1.1.1.100:
01:
1a:
09:
00:
00
配置ARP报文源MAC一致性检查
TiNet(config)#arpanti-spoofingvalid-check