開啓Cisco交換機DHCP Snooping功能(1)

 

一、採用DHCP服務的常見問題
    架設DHCP服務器可以爲客戶端自動分配IP地址、掩碼、默認網關、DNS服務器等網絡參數,簡化了
    網絡配置,提高了管理效率。但在DHCP服務的管理上存在一些問題,常見的有:

    ●DHCP Server的冒充
    ●DHCP Server的DOS***,如DHCP耗竭***
    ●某些用戶隨便指定IP地址,造成IP地址衝突
    1、DHCP Server的冒充
    由於DHCP服務器和客戶端之間沒有認證機制,所以如果在網絡上隨意添加一臺DHCP服務器,它就可以爲客戶端分配IP地址以及其他網絡參數。只要讓該DHCP服務器分配錯誤的IP地址和其他網絡參數,那就會對網絡造成非常大的危害。

    2、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請求報文是廣播報文,如果大量發送的話也會耗盡網絡帶寬,形成另一種拒絕服務***。

    3、客戶端隨意指定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編號、租期等信息。如:

show ip dhcp snooping binding

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監聽綁定表爲進一步部署IP源防護(IPSG)和動態ARP檢測(DAI)提供了依據。說明:

 

    I. 非信任端口只允許客戶端的DHCP請求報文通過,這裏只是相對於DHCP報文來說的。其他非DHCP報文還是可以正常轉發的。這就表示客戶端可以以靜態指定IP地址的方式通過非信任端口接入網絡。由於靜態客戶端不會發送DHCP報文,所以DHCP監聽綁定表裏也不會有該靜態客戶端的記錄。信任端口的客戶端信息不會被記錄到DHCP監聽綁定表裏。如果有一客戶端連接到了一個信任端口,即使它是通過正常的DHCP方式獲得IP地址,DHCP監聽綁定表裏也不有該客戶端的記錄。如果要求客戶端只能以動態獲得IP的方式接入網絡,則必須藉助於IPSG和DAI技術。

    II.交換機爲了獲得高速轉發,通常只檢查報文的二層幀頭,獲得目標MAC地址後直接轉發,不會去檢查報文的內容。而DHCP監聽本質上就是開啓交換機對DHCP報文的內容部分的檢查,DHCP報文不再只是被檢查幀頭了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章