(一)Cisco DHCP Snooping原理(转载)

采用DHCP服务的常见问题
架设DHCP服务器能够为客户端自动分配IP地址、掩码、默认网关、DNS服务器等网络参数,简化了网络配置,提升了管理效率。但在DHCP服务的管理上存在一些问题,常见的有:
  ●DHCP Server的冒充
    ●DHCP Server的DOS攻击,如DHCP耗竭攻击
    ●某些用户随便指定IP地址,形成IP地址冲突
  DHCP Server的冒充
  因为DHCP服务器和客户端之间没有认证机制,因此若是在网络上随意添加一台DHCP服务器,它就能够为客户端分配IP地址以及其余网络参数。只要让该DHCP服务器分配错误的IP地址和其余网络参数,那就会对网络形成很是大的危害。
 DHCP Server的拒绝服务攻击
  一般DHCP服务器经过检查客户端发送的DHCP请求报文中的CHADDR(也就是Client MAC address)字段来判断客户端的MAC地址。正常状况下该CHADDR字段和发送请求报文的客户端真实的MAC地址是相同的。攻击者能够利用伪造MAC的方式发送DHCP请求,但这种攻击可使用Cisco 交换机的端口安全特性来防止。端口安全特性(Port Security)能够限制每一个端口只使用惟一的MAC地址。可是若是攻击者不修改DHCP请求报文的源MAC地址,而是修改DHCP报文中的CHADDR字段来实施攻击,那端口安全就不起做用了。因为DHCP服务器认为不一样的CHADDR值表示请求来自不一样的客户端,因此攻击者能够经过大量发送伪造CHADDR的DHCP请求,致使DHCP服务器上的地址池被耗尽,从而没法为其余正经常使用户提供网络地址,这是一种DHCP耗竭攻击。DHCP耗竭攻击能够是纯粹的DOS攻击,也能够与伪造的DHCP服务器配合使用。当正常的DHCP服务器瘫痪时,攻击者就能够创建伪造的DHCP服务器来为局域网中的客户端提供地址,使它们将信息转发给准备截取的恶意计算机。甚至即便DHCP请求报文的源MAC地址和CHADDR字段都是正确的,但因为DHCP请求报文是广播报文,若是大量发送的话也会耗尽网络带宽,造成另外一种拒绝服务攻击。
客户端随意指定IP地址
  客户端并不是必定要使用DHCP服务,它能够经过静态指定的方式来设置IP地址。若是随便指定的话,将会大大提升网络IP地址冲突的可能性。
DHCP Snooping技术介绍
DHCP监听(DHCP Snooping)是一种DHCP安全特性。Cisco交换机支持在每一个VLAN基础上启用DHCP监听特性。经过这种特性,交换机可以拦截第二层VLAN域内的全部DHCP报文。
DHCP监听将交换机端口划分为两类
  ●非信任端口:一般为链接终端设备的端口,如PC,网络打印机等
  ●信任端口:链接合法DHCP服务器的端口或者链接汇聚交换机的上行端口
经过开启DHCP监听特性,交换机限制用户端口(非信任端口)只可以发送DHCP请求,丢弃来自用户端口的全部其它DHCP报文,例如DHCP Offer报文等。并且,并不是全部来自用户端口的DHCP请求都被容许经过,交换机还会比较DHCP 请求报文的(报文头里的)源MAC地址和(报文内容里的)DHCP客户机的硬件地址(即CHADDR字段),只有这二者相同的请求报文才会被转发,不然将被丢弃。这样就防止了DHCP耗竭攻击。
信任端口能够接收全部的DHCP报文。经过只将交换机链接到合法DHCP服务器的端口设置为信任端口,其余端口设置为非信任端口,就能够防止用户伪造DHCP服务器来攻击网络。DHCP监听特性还能够对端口的DHCP报文进行限速。经过在每一个非信任端口下进行限速,将能够阻止合法DHCP请求报文的广播攻击。
DHCP监听还有一个很是重要的做用就是创建一张DHCP监听绑定表(DHCP Snooping Binding)。一旦一个链接在非信任端口的客户端得到一个合法的DHCP Offer,交换机就会自动在DHCP监听绑定表里添加一个绑定条目,内容包括了该非信任端口的客户端IP地址、MAC地址、端口号、VLAN编号、租期等信息。如:html

Switch#show ip dhcp snooping binding
MacAddress        IpAddress      Lease(sec)       Type       VLAN        Interface
------------------ --------------- ---------- ------------- ------------- ------------------  -----------------  -----------------------------
00:0F:1F:C5:10:08   192.168.10.131   682463     dhcp-snooping   10     FastEthernet0/1数据库

这张DHCP监听绑定表为进一步部署IP源防御(IPSG)和动态ARP检测(DAI)提供了依据。说明:

  I. 非信任端口只容许客户端的DHCP请求报文经过,这里只是相对于DHCP报文来讲的。其余非DHCP报文仍是能够正常转发的。这就表示客户端能够以静态指定IP地址的方式经过非信任端口接入网络。因为静态客户端不会发送DHCP报文,因此DHCP监听绑定表里也不会有该静态客户端的记录。

信任端口的客户端信息不会被记录到DHCP监听绑定表里。若是有一客户端链接到了一个信任端口,即便它是经过正常的DHCP方式得到IP地址,DHCP监听绑定表里也不有该客户端的记录。若是要求客户端只能以动态得到IP的方式接入网络,则必须借助于IPSG和DAI技术。

  II.交换机为了得到高速转发,一般只检查报文的二层帧头,得到目标MAC地址后直接转发,不会去检查报文的内容。而DHCP监听本质上就是开启交换机对DHCP报文的内容部分的检查,DHCP报文再也不只是被检查帧头了。
  III. DHCP监听绑定表不只用于防护DHCP攻击,还为后续的IPSG和DAI技术提供动态数据库支持。

  IV. DHCP监听绑定表里的Lease列就是每一个客户端对应的DHCP租约时间。当客户端离开网络后,该条目并不会当即消失。当客户端再次接入网络,从新发起DHCP请求之后,相应的条目内容就会被更新。如上面的00F.1FC5.1008这个客户端本来插在Fa0/1端口,如今插在Fa0/3端口,相应的记录在它再次发送DHCP请求并得到地址后会更新为:安全

Switch#show ip dhcp snooping binding
or
Switch#show ip source binding
MacAddress      IpAddress     Lease(sec)       Type       VLAN    Interface
------------------------------------------------------------------------------------------------------------------------------------------
00:0F:1F:C5:10:08   192.168.10.131     691023     dhcp-snooping     10    FastEthernet0/3服务器

  V.当交换机收到一个DHCPDECLINE或DHCPRELEASE广播报文,而且报文头的源MAC地址存在于DHCP监听绑定表的一个条目中。可是报文的实际接收端口与绑定表条目中的端口字段不一致时,该报文将被丢弃。

    ●DHCPRELEASE报文:此报文是客户端主动释放IP 地址(如Windows 客户端使用ipconfig/release),当DHCP服务器收到此报文后就能够收回IP地址,分配给其余的客户端了
    ●DHCPDECLINE报文:当客户端发现DHCP服务器分配给它的IP地址没法使用(如IP地址发生冲突)时,将发出此报文让DHCP服务器禁止使用此次分配的IP地址。

    VI. DHCP监听绑定表中的条目能够手工添加。
    VII. DHCP监听绑定表在设备重启后会丢失,须要从新绑定,但能够经过设置将绑定表保存在flash或者tftp/ftp服务器上,待设备重启后直接读取,而不须要客户端再次进行绑定
    VIII. 当前主流的Cisco交换机基本都支持DHCP Snooping功能。

DHCP Option 82
当DHCP服务器和客户端不在同一个子网内时,客户端要想从DHCP服务器上分配到IP地址,就必须由DHCP中继代理(DHCP Relay Agent)来转发DHCP请求包。DHCP中继代理将客户端的DHCP报文转发到DHCP服务器以前,能够插入一些选项信息,以便DHCP服务器能更精确的得知客户端的信息,从而能更灵活的按相应的策略分配IP地址和其余参数。这个选项被称为:DHCP relay agent information option(中继代理信息选项),选项号为82,故又称为option 82,相关标准文档为RFC3046。
Option 82是对DHCP选项的扩展应用。选项82只是一种应用扩展,是否携带选项82并不会影响DHCP原有的应用。另外还要看DHCP服务器是否支持选项82。不支持选项82的DHCP服务器接收到插入了选项82的报文,或者支持选项82的DHCP服务器接收到了没有插入选项82的报文,这两种状况都不会对原有的基本的DHCP服务形成影响。要想支持选项82带来的扩展应用,则DHCP服务器自己必须支持选项82以及收到的DHCP报文必须被插入选项82信息。
从非信任端口收到DHCP请求报文,无论DHCP服务器和客户端是否处于同一子网,开启了DHCP监听功能的Cisco交换机均可以选择是否对其插入选项82信息。默认状况下,交换机将对从非信任端口接收到的DHCP请求报文插入选项82信息
当一台开启DHCP监听的汇聚交换机和一台插入了选项82信息的边界交换机(接入交换机)相连时:
  ●若是边界交换机是链接到汇聚交换机的信任端口,那么汇聚交换机会接收从信任端口收到的插入选项82的DHCP报文信息,可是汇聚交换机不会为这些信息创建DHCP监听绑定表条目。
  ●若是边界交换机是链接到汇聚交换机的非信任端口,那么汇聚交换机会丢弃从该非信任端口收到的插入了选项82的DHCP报文信息。但在IOS 12.2(25)SE版本以后,汇聚交换机能够经过在全局模式下配置一条ip dhcp snooping information allow-untrusted命令。这样汇聚交换机就会接收从边界交换机发来的插入选项82的DHCP报文信息,而且也为这些信息创建DHCP监听绑定表条目。
    在配置汇聚交换机下联口时,将根据从边界交换机发送过来的数据可否被信任而设置为信任或者非信任端口。网络

相关文章
相关标签/搜索