如何利用交換機和端口設置來管理DHCP
在網絡管理中,總是有些人讓管理員頭疼。下面我們就將介紹一下一個網管員利用交換機以及端口設置等來進行DHCP的管理。網絡管理員:現在用戶真是不省心,自己改個IP地址;私接AP、忘關DHCP,還有的下個小黑客程序,就想在你內網里試試。單靠交換機能管嗎?測試工程師:能!很多交換機上的小功能都可幫大忙。
一、測試實況
IP與MAC綁定
思科的Catalyst 3560交換機支持DHCP Snooping功能,交換機會監聽DHCP的過程,交換機會生成一個IP和MAC地址對應表。思科的交換機更進一步的支持IP source guard和Dynamic ARP Inspection功能,這兩個功能任啟一個都可以自動的根據DHCP Snooping監聽獲得的IP和MAC地址對應表,進行綁定,防止私自更改地址。
Dynamic ARP Inspection功能還有一個好處是可以防范在2層網絡的中間人攻擊(見圖4)。
思科在DHCP Snooping上還做了一些非常有益的擴展功能,比如Catalyst 3560交換機可以限制端口通過的DHCP數據包的速率,粒度是pps,這樣可以防止對DHCP服務器的進行地址請求的DoS攻擊。另外Catalyst 3560交換機還支持DHCP Tracker,在DHCP請求中插入交換機端口的ID,從而限制每個端口申請的IP地址數目,防止黑客程序對DHCP服務器進行目的為耗盡IP地址池的攻擊。華碩雖然不能調整速率,但是也會限制DHCP請求的數量。
DHCP(動態主機配置協議)是一種簡化主機IP地址配置管理的TCP/IP標準。該標準為DHCP服務器的使用提供了一種有效的方法:即管理網絡中客戶機IP地址的動態分配以及啟用網絡上DHCP客戶機的其它相關配置信息。
在基于TCP/IP協議的網絡中,每臺計算機都必須有唯一的IP地址才能訪問網絡上的資源,網絡中計算機之間的通信是通過IP地址來實現的,并且通過IP地址和子網掩碼來標識主計算機及其所連接的子網。在局域網中如果計算機的數量比較少,當然可以手動設置其IP地址,但是如果在計算機的數量較多并且劃分了多個子網的情況下,為計算機配置IP地址所涉及的管理員工作量和復雜性就會相當繁重,而且容易出錯,如在實際使用過程中,我們經常會遇到因IP地址沖突、網關或DNS服務器地址的設置錯誤導致無法訪問網絡、機器經常變動位置而不得不頻繁地更換IP地址等問題。
DHCP則很好地解決了上述的問題,通過在網絡上安裝和配置DHCP服務器,啟用了DHCP的客戶機可在每次啟動并加入網絡時自動地獲得其上網所需的IP地址和相關的配置參數。從而減少了配置管理,提供了安全而可靠的配置。
配置DHCP服務的服務器可以為每一個網絡客戶提供一個IP地址、子網掩碼、缺省網關,以及DNS服務器的地址。DHCP避免了因手工設置IP地址及子網掩碼所產生的錯誤,也避免了把一個IP地址分配給多臺主機所造成的地址沖突。降低了IP地址管理員的設置負擔,使用DHCP服務器可以大大地縮短配置網絡中主機所花費的時間。
但是,隨著DHCP服務的廣泛應用,也產生了一些問題。首先,DHCP服務允許在一個子網內存在多臺DHCP服務器,這就意味著管理員無法保證客戶端只能從管理員所設置的DHCP服務器中獲取合法的IP地址,而不從一些用戶自建的非法DHCP服務器中取得IP地址;其次,在部署DHCP服務的子網中,指定了合法的IP地址、掩碼和網關的主機也可以正常地訪問網絡,而DHCP服務器卻仍然會有可能將該地址分配給其他主機,這樣就會造成地址沖突,影響IP地址的正常分配。
針對上述問題,本文給出了一個解決方案,即通過使用Cisco提供的DHCP Snooping技術和Dynamic ARP Inspection技術,可以有效地防止以上問題的發生。
這里首先對兩種技術做一個簡要的介紹,然后將給出一個應用實例加以說明。#p#
二、DHCP Snooping技術
DHCP Snooping是一種通過建立DHCP Snooping Binding數據庫,過濾非信任的DHCP消息,從而保證網絡安全的特性。DHCP Snooping就像是非信任的主機和DHCP服務器之間的防火墻。通過DHCP Snooping來區分連接到末端客戶的非信任接口和連接到DHCP服務器或者其他交換機的受信任接口。
DHCP Snooping Binding數據庫包括如下信息:MAC地址、IP地址、租約時間、binding類型、VLAN ID以及來自本地非信任端口的接口信息,但不包含通過受信任端口互相連接的接口信息。在啟用了DHCP Snooping的VLAN中,如果交換機收到來自非信任端口的DHCP包,交換機將對目的MAC地址和DHCP客戶端的地址進行對比,如果符合則該包可以通過,否則將被丟棄掉。
在下述情況中,DHCP包將同樣被丟棄:
l 來自外網或者防火墻的DHCP服務器,包括DHCPOFFER、DHCPACK、DHCPNAK、DHCPLEASEQUERY。
l 來自非信任端口,且目的MAC地址和DHCP客戶端的硬件地址不匹配。
l 交換機收到DHCPRELEASE或者DHCPDECLINE的廣播信息,其MAC地址包含在DHCP snooping binding 數據庫中,但與數據庫中的接口信息不匹配
l 通過DHCP中繼代理轉發的包不包括在內#p#
三、Dynamic ARP Inspection技術
Dynamic ARP inspection是一種驗證網絡中ARP包的安全特性,可以阻止、記錄并丟棄非法IP和MAC地址綁定的ARP包。
Dynamic ARP inspection保證只有合法的ARP請求和響應可以傳播。交換機會完成如下工作,截取所有來自非信任端口ARP請求和響應,在更新ARP緩存或傳播數據包之前驗證所截取的數據包IP-MAC地址綁定是否合法,丟棄非法的ARP包。
前面提到,DHCP Snooping會建立一個包含合法IP-MAC地址綁定信息的數據庫,Dynamic ARP inspection基于該數據庫檢驗所截取ARP包的合法性。如果ARP包來自非信任接口,那么只有合法的可以通過。如果來自受信任端口,將可以直接通過。#p#
四、應用實例
我校1#學生公寓,PC擁有數量大約1000臺。采用DHCP分配IP地址,擁有4個C類地址,實際可用地址數約1000個。由于樓內經常存在私開的DHCP服務器,導致大量主機無法分配到合法IP地址;另外,由于有相當數量的主機指定IP地址,因此造成了與DHCP分配的IP地址沖突。以上兩方面,均造成了該公寓樓大量主機無法正常訪問網絡。
經過一段時間的分析、實驗,我們決定對該公寓樓部署DHCP Snooping和Dynamic ARP Inspection兩項技術,以保證網絡的正常運行。
該公寓網絡設備使用情況如下,接入層為××臺Cisco 2950交換機上聯至堆疊的4臺Cisco 3750,再通過光纖上聯至匯聚層的Cisco 3750交換機。同時匯聚層的Cisco 3750交換機還兼做DHCP服務器。
部署過程
首先按如下過程配置DHCP Snooping
- configure terminal
- ip dhcp snooping 在全局模式下啟用DHCP Snooping
- ip dhcp snooping vlan 103 在VLAN 103中啟用DHCP Snooping
- ip dhcp snooping information option Enable the switch to insert and remove DHCP relay information(option-82 field) in forwarded DHCP request messages to the DHCP server. The default is enabled.
- interface GigabitEthernet1/0/28,進入交換機的第28口
- ip dhcp snooping trust 將第28口設置為受信任端口
- ip dhcp snooping limit rate 500 設置每秒鐘處理DHCP數據包上限
- end 退出
完成配置后,可用如下命令觀察DHCP Snooping運行狀況:
- show ip dhcp snooping
得到如下信息:
- Switch DHCP snooping is enabled
- DHCP snooping is configured on following VLANs:
- 103
- Insertion of option 82 is enabled
- Verification of hwaddr field is enabled
- Interface Trusted Rate limit (pps)
- ------------------------ ------- ----------------
- GigabitEthernet1/0/22 yes unlimited
- GigabitEthernet1/0/24 yes unlimited
- GigabitEthernet1/0/27 yes unlimited
- GigabitEthernet1/0/28 no 500
- show ip dhcp snooping binding,得到如下信息:
- MacAddress IpAddress Lease(sec) Type VLAN Interface
- ------------------ --------------- ---------- -----------
- 00:11:09:11:51:16 210.77.5.201 3209 dhcp-snooping 103 GigabitEth ernet1/0/28
- 00:50:8D:63:5A:05 210.77.6.134 2466 dhcp-snooping 103 GigabitEthernet1/0/28
- 00:E0:4C:A17:80 210.77.4.26 3070 dhcp-snooping 103 GigabitEthernet1/0/28
- 00:0F:EA:A8:BC:22 210.77.5.198 1887 dhcp-snooping 103 GigabitEthernet1/0/28
- 10:E0:8C:50:805 210.77.5.95 3034 dhcp-snooping 103 GigabitEthernet1/0/28
- 00:03:0D:0E:9A:A5 210.77.6.230 3144 dhcp-snooping 103 GigabitEthernet1/0/28
- 00:50:8D:6C:08:9F 210.77.4.17 3012 dhcp-snooping 103 GigabitEthernet1/0/28
- 00:E0:50:00:0B:54 210.77.6.18 3109 dhcp-snooping 103 GigabitEthernet1/0/28
- 00:0F:EA:13:40:54 210.77.7.7 2631 dhcp-snooping 103 GigabitEthernet1/0/28
- 00:E0:4C:45:21:E9 210.77.7.77 2687 dhcp-snooping 103 GigabitEthernet1/0/28
- --More--
接下來配置Dynamic ARP Inspection
- show cdp neighbors 檢查交換機之間的連接情況
- Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
- S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
- Device ID Local Intrfce Holdtme Capability Platform Port ID
- ap Gig 1/0/23 149 T AIR-AP1230Fas 0
- hall-3750 Gig 1/0/27 135 S I WS-C3750-2Gig 1/0/1
- #west-3750 Gig 1/0/28 173 S I WS-C3750G-Gig 1/0/25
- configure terminal 進入全局配置模式
- ip arp inspection vlan 103 在VLAN 103上啟用Dynamic ARP Inspection
- interface GigabitEthernet1/0/28 進入第28端口
- ip arp inspection trust 將端口設置為受信任端口
- The switch does not check ARP packets that it receives from the other switch on the trusted interface. It simply forwards the packets.
- end
配置完成后可以用如下命令觀察Dynamic ARP Inspection的運行情況
- show arp access-list [acl-name] Displays detailed information about ARP ACLs.
- show ip arp inspection interfaces [interface-id] Displays the trust state and the rate limit of ARP packets for the specified interface or all interfaces.
- Interface Trust State Rate (pps) Burst Interval
- --------------- ----------- ---------- --------------
- Gi1/0/21 Untrusted 15 1
- Gi1/0/22 Trusted None N/A
- Gi1/0/23 Untrusted 15 1
- Gi1/0/24 Trusted None N/A
- Gi1/0/25 Untrusted 15 1
- Gi1/0/26 Untrusted 15 1
- Gi1/0/27 Trusted None N/A
- Gi1/0/28 Untrusted None N/A
- show ip arp inspection vlan vlan-range, Displays the configuration and the operating state of dynamic ARP inspection for all VLANs configured on the switch, for a specified VLAN, or for a range of VLANs.
- yql-2#-3750#sh ip arp inspection vlan 103
- Source Mac Validation : Disabled
- Destination Mac Validation : Disabled
- IP Address Validation : Disabled
- Vlan Configuration Operation ACL Match Static ACL
- ---- ------------- --------- --------- ----------
- 103 Enabled Active
- Vlan ACL Logging DHCP Logging
- ---- ----------- ------------
- 103 Deny Deny
注意事項:
- DHCP Snooping
l 在配置DHCP Snooping以前,必須確認該設備作為DHCP服務器。
l 建議對非信任端口的上限不要超過100。對于被設置為受信任的trunk端口,需要適當增加
- Dynamic ARP Inspection
必須限制trunk端口處理ARP包的數量#p#
五、一些問題的討論
在實際使用過程中我們發現,在配置完上述命令后,Cisco 3750交換機會在運行一段時間以后變得緩慢,CPU利用率達到100%,性能嚴重下降。經過分析我們發現,在開始應用Dynamic ARP Inspection時,交換機會記錄大量的數據包,當端口通過的數據包過多時,交換機會認為遭受DoS攻擊,從而將端口自動errdisable,造成通信中斷。為了解決這個問題,我們需要加入命令errdisable recovery cause arp-inspection。
由于Cisco 3750交換機能力有限,因此我們建議在使用Cisco 3750交換機配置上述命令時應逐級增大port limit rate。#p#
六、小結
DHCP服務在網絡中的廣泛應用,極大地減輕了網絡管理員的負擔,方便了用戶使用網絡。但是由于有些用戶私自指定IP地址,造成了IP地址自動分配時引起的IP地址沖突,進而影響其他用戶的使用。我們經過實際測試,給出了上述解決方案,本方法不僅適合于Cisco的3750交換機,也適用于Cisco的65系列交換機。
DHCP防指定IP地址的方法在我校已經得到了成功的應用,經過實踐檢驗,我們認為這是一個非常實用的功能。在系統設置好以后,網絡中的用戶只有設置為自動獲取IP地址才能上網,否則將無法上網。從而解決了在使用DHCP的網絡中,用戶私自指定IP地址而帶來的IP地址沖突問題。
如果公司內網由于用戶自行安裝了Windows Server版本的操作系統而小心啟用了DHCP服務,或其他因素在內網中出現了非授權的DHCP服務器,會給網絡造成什么樣的影響呢?
DHCP server可以自動為用戶設置網絡IP地址、掩碼、網關、DNS、WINS 等網絡參數,簡化了用戶網絡設置,提高了管理效率。但是,此時如果服務器和客戶端沒有認證機制,網絡上存在的非法的DHCP服務器將會給部分主機的地址分配、網關及DNS參數照成混亂,導致主機無法連接到外部網絡。出現這種情況,如何解決這些問題呢?
作為客戶端計算機來說,可以嘗試使用ipconfig /release釋放獲得的網絡參數后,然后用ipconfig /renew重新嘗試獲取正確的DHCP服務器配置服務,但這種方法很被動,往往要十幾次甚至幾十次才偶爾有可能成功一次,不能從根本解決問題。
另外一個解決辦法,在windows系統組建的網絡中,如果非法DHCP服務器也是用Windows系統建立的話我們可以通過“域”的方式對非法DHCP服務器進行過濾。將合法的DHCP服務器添加到活動目錄(Active Directory)中,通過這種認證方式就可以有效的制止非法DHCP服務器了。原理就是沒有加入域中的DHCP Server在相應請求前,會向網絡中的其他DHCP Server發送DHCPINFORM查詢包,如果其他DHCP Server有響應,那么這個DHCP Server就不能對客戶的要求作相應,也就是說網絡中加入域的DHCP服務器的優先級比沒有加入域的DHCP服務器要高。這樣當合法DHCP存在時非法的就不起任何作用了。
授權合法DHCP的過程如下:
第一步:開始->程序->管理工具->DHCP
第二步:選擇DHCP root, 用鼠標右鍵單擊,然后瀏覽選擇需要認證的服務器。
第三步:點“添加”按鈕, 輸入要認證的DHCP服務器IP地址, 完成授權操作。
但是該方法只適用于非法DHCP服務器是windows系統,需要用到域和活動目錄,配置較復雜,另外對于非Windows的操作系統,就顯得力不從心了。
還有更好的方法,就是利用交換機的DHCP監聽,通過建立和維護DHCP Snooping綁定表過濾不可信任的DHCP信息,也就是過濾掉非法DHCP服務器向網絡上發送的數據包。首先定義交換機上的信任端口和不信任端口,將DHCP服務器所連接的端口定義為信任端口,其它連接到普通客戶端的端口全部定義為不信任端口,對于不信任端口的DHCP報文進行截獲和嗅探,drop掉來自這些端口的非正常 DHCP 報文,從而達到過濾非法DHCP服務器的目的。
基本配置示例:
- switch(config)#ip dhcp snooping vlan 100,200
- /* 定義哪些 VLAN 啟用 DHCP嗅探
- switch(config)#ip dhcp snooping
- switch(config)#int fa4/10 /* dhcp服務器所在端口
- switch(config-if)#ip dhcp snooping trust
- switch(config)#int range fa3/1 - 48 /* 其它端口
- switch(config-if)#no ip dhcp snooping trust (Default)
- switch(config-if)#ip dhcp snooping limit rate 10 (pps)
- /* 一定程度上防止 DHCP 拒絕服 /* 務攻擊