最近研究的问题,先发上来,大家一起讨论一下。下面是我看了cisco的文档,自己总结的,有不足之处还请多提宝贵意见。
配置自动的ARP检测
概述:
  简单的描述一下在Catalyst 6500交换机上如何配置DAI(dynamic Address Resolution Protocol inspection)自动的ARP检测,和有关ARP***的原理。

理解ARP:
  ARP通过在2层的广播提过ip地址向mac地址的转换来提供ip的通信。比如主机a要想和在一个广播域的主机b进行通信,但是没有主机b的mac地址(我们都知道在2层的通信是通过mac进行的)在它的ARP缓存里面。主机a就会向所在的广播域的所有主机发广播,问谁的mac是主机b的ip地址,所有主机都会接受这个请求(ARP request),来核对自己的mac。只有符合的主机也就是主机b才作出应答(ARP responds)。
理解DAI和ARP***:

  DAI提供了信任的ARP包的安全监测机制。DAI可以截获,记录,丢弃一切在网络中不被信任的ip-mac的绑定地址,这样就能有效的防止网络中的ARP***。DAI通过以下机制来确认合法的的ARP请求和回复的更新:

1.  在不信任的接口上检测所有的ARP请求和回复

2.  在更新本地的ARP缓存或者在泛洪到相关的目的地之前,先确认每一个被监测的数据包有一个信任的ip-mac的绑定地址

3.  丢弃所有不信任的ARP数据包

  DIA通过建立一个ip-mac绑定数据库,通常是DHCP检测绑定数据库,来确定ARP数据包的可信任性。这个数据库是通过DHCP检测来建立的,DHCP可以在VLAN和swich上应用。如果ARP数据包是从不被信任的接口进来,交换机将不会做任何处理就直接泛洪,如果是从不被信任的接口进来,交换机只会泛洪被信任的数据包。

  用户还可以通过ALC来控制不想通过DHCP服务来自动获得ip的主机。这些ip往往是用户通过手工指定的ip地址。DAI还可以记录所有被丢弃的ARP数据包,这样就可以方便的发现网络中存在的威胁隐患。用户也可以通过配置DAI来实现丢弃ARP数据包,当这些数据包的ip地址是不被信任的,或者这些数据包的mac地址不能匹配先前指定的mac地址。



理解ARP***:

  简单的说ARP***就是利用了ARP允许即使在ARP请求没有回复的情况下,接受从一个主机发出的答复。从而达到被***者的主机的数据流量同时先通过***者主机然后再流向路由器等设配。比如,a主机想向b通信,双方都有各自的ip和mac的对应表在arp缓存里面,***者c告诉a自己的mac对应的ip是b的ip,同样告诉b自己的mac对应的ip是a的ip。从而a发向b的数据,就会被中间的c所截获。同理如果a和b不是在一个网段上,c也可以通过向a告知自己的mac对对应的ip是网关的ip,向网关通告自己的mac对应的ip是a的ip,从而就能截获a所有向外网的流量。可见ARP***带来的影响是相当大的,在一个复杂的局域网里面可以把在一个广播域里面的所有机器弄得不能上网。



接口的信任状态和网络的安全:

  数据包如果到达一个信任的接口就可以绕过DAI的确认检测,如果到达的接口是不被信任的就会出发DAI确认检测。

在一个典型的网络配置里面,一般用户把和主机相连的交换机接口配置成为不被信任的接口,并且把交换机相连的接口配置为信任接口,这样的配置,就能实现对进入网络的ARP数据包进行安全检测。

注意:在配置接口的信任性时要谨慎,配置为不信任的接口时,可导致网络的连通性能。比如:主机A和主机B在同一个vlan里面,分别通过两台配置了DAI的交换机通信,如果交换机之间的接口被配置成为不信任的状态,从A或者B的ARP包就不会通过交换机交换,A和B 之间的通信就会中断。

配置成为信任接口,往往就是留下一个安全的漏洞。因为配置成为DAI的交换机只能保证通过不被信任接口连接到自己的主机不破坏在一个网段的主机ARP缓存,但是不能保证在网络的另一个部分的主机来破坏运行DAI的交换机相连的主机的ARP缓存。(通常用ARP+ACL来控制)

乍一看,是有点儿复杂。通过在接口上配置DAI是十分少见的,主要是因为现代网络越来越复杂,用户不可能在复杂的网络中确定哪个接口是可信任的哪个是不可信任的,哪个交换机要起DAI哪个不需要起。所以现在重要的是在vlan接口上应用DAI+DHCP+ARP ACL来实现对ip-mac的绑定。



对于ARP数据包的频率限制:

交换机能够实现对ARP数据包的频率限制来防止DOS(denial-of-service)***。默认的在不被信任的接口上是每秒15个数据包,信任接口没有频率限制。

当进入不被信任的接口的ARP数据包超过限制的范围的时候,接口会自己处于错误状态(error-disabled),知道用户对其进行另行的配置





ARP ACLs和DHCP检测得优先级问题:

交换机首先和用户配置的ACL进行比较,如果ARP ACL阻止了数据包,交换机也会阻止这个数据包,即使交换机配置的DHCP检测中的合法绑定数据库允许该数据包通过。

通告丢弃的数据包:

当交换机丢弃一个数据包,就会出发系统日志来记录有关信息,以便用户进行分析。当日志信息满的时候,交换机会清理相关的日志信息。每个日志信息包括以下信息,进入的vlan,接口号码,源地址和目标地址(ip和mac)。



DAI 配置指南和限制:

1.       DAI是一个安全方案,不会额外的提供其他的检测功能

2.       DAI不会对没有配置或者不支持DAI的交换机相连的主机起到作用。应为ARP***仅仅是限于2层的广播域中,不同的广播域要单独配置DAI,不然是起不到DAI的作用的。总之,DAI是对一个广播域中的ARP进行自动检测的。

3.       DAI是基于DHCP检测绑定数据库来确定合法的ip-mac地址的转换,在ARP请求和答复的过程中,所以要确定DHCP检测的正常工作。

4.       用户不想通过DHCP服务获得的ip地址可以用ARP ACL来控制。

5.       DAI可以应用到普通接口,trunk口,EtherChannel口,和vlan。

6.       在配置EtherChannel时候要注意物理接口的信任模式。把物理接口加入EtherChannel时候,要把物理接口的信任模式配置成为EtherChannel的模式,才能配置成功。再有,在把端口绑定成为EtherChannel时候,EtherChannel的模式会和第一个加入的物理接口的信任模式一样。所以EtherChannel会续承第一个物理接口的信任模式。把第一个接口的信任模式改变,就可以改变EtherChannel的模式。

7.       配置EtherChannel的ARP接受频率是属于EtherChannel的物理接口实际接受ARP包的总和。当EtherChannel接收的ARP包超过设置的数值时候,整个EtherChannel会处于错误状态。

8.       确定ARP通过trunk接口的上限值。配置vlan间的trunk的通过ARP包一个高的上限,可以引起vlan间的dos的***。



参考资料: [url]http://www.cisco.com/en/US/produ[/url] ... 186a00804357b1.html