如何利用交換機和端口設置來管理DHCP
在網(wǎng)絡管理中,總是有些人讓管理員頭疼。下面我們就將介紹一下一個網(wǎng)管員利用交換機以及端口設置等來進行DHCP的管理。網(wǎng)絡管理員:現(xiàn)在用戶真是不省心,自己改個IP地址;私接AP、忘關(guān)DHCP,還有的下個小黑客程序,就想在你內(nèi)網(wǎng)里試試。單靠交換機能管嗎?測試工程師:能!很多交換機上的小功能都可幫大忙。
一、測試實況
IP與MAC綁定
思科的Catalyst 3560交換機支持DHCP Snooping功能,交換機會監(jiān)聽DHCP的過程,交換機會生成一個IP和MAC地址對應表。思科的交換機更進一步的支持IP source guard和Dynamic ARP Inspection功能,這兩個功能任啟一個都可以自動的根據(jù)DHCP Snooping監(jiān)聽獲得的IP和MAC地址對應表,進行綁定,防止私自更改地址。
Dynamic ARP Inspection功能還有一個好處是可以防范在2層網(wǎng)絡的中間人攻擊(見圖4)。
思科在DHCP Snooping上還做了一些非常有益的擴展功能,比如Catalyst 3560交換機可以限制端口通過的DHCP數(shù)據(jù)包的速率,粒度是pps,這樣可以防止對DHCP服務器的進行地址請求的DoS攻擊。另外Catalyst 3560交換機還支持DHCP Tracker,在DHCP請求中插入交換機端口的ID,從而限制每個端口申請的IP地址數(shù)目,防止黑客程序?qū)HCP服務器進行目的為耗盡IP地址池的攻擊。華碩雖然不能調(diào)整速率,但是也會限制DHCP請求的數(shù)量。
DHCP(動態(tài)主機配置協(xié)議)是一種簡化主機IP地址配置管理的TCP/IP標準。該標準為DHCP服務器的使用提供了一種有效的方法:即管理網(wǎng)絡中客戶機IP地址的動態(tài)分配以及啟用網(wǎng)絡上DHCP客戶機的其它相關(guān)配置信息。
在基于TCP/IP協(xié)議的網(wǎng)絡中,每臺計算機都必須有唯一的IP地址才能訪問網(wǎng)絡上的資源,網(wǎng)絡中計算機之間的通信是通過IP地址來實現(xiàn)的,并且通過IP地址和子網(wǎng)掩碼來標識主計算機及其所連接的子網(wǎng)。在局域網(wǎng)中如果計算機的數(shù)量比較少,當然可以手動設置其IP地址,但是如果在計算機的數(shù)量較多并且劃分了多個子網(wǎng)的情況下,為計算機配置IP地址所涉及的管理員工作量和復雜性就會相當繁重,而且容易出錯,如在實際使用過程中,我們經(jīng)常會遇到因IP地址沖突、網(wǎng)關(guān)或DNS服務器地址的設置錯誤導致無法訪問網(wǎng)絡、機器經(jīng)常變動位置而不得不頻繁地更換IP地址等問題。
DHCP則很好地解決了上述的問題,通過在網(wǎng)絡上安裝和配置DHCP服務器,啟用了DHCP的客戶機可在每次啟動并加入網(wǎng)絡時自動地獲得其上網(wǎng)所需的IP地址和相關(guān)的配置參數(shù)。從而減少了配置管理,提供了安全而可靠的配置。
配置DHCP服務的服務器可以為每一個網(wǎng)絡客戶提供一個IP地址、子網(wǎng)掩碼、缺省網(wǎng)關(guān),以及DNS服務器的地址。DHCP避免了因手工設置IP地址及子網(wǎng)掩碼所產(chǎn)生的錯誤,也避免了把一個IP地址分配給多臺主機所造成的地址沖突。降低了IP地址管理員的設置負擔,使用DHCP服務器可以大大地縮短配置網(wǎng)絡中主機所花費的時間。
但是,隨著DHCP服務的廣泛應用,也產(chǎn)生了一些問題。首先,DHCP服務允許在一個子網(wǎng)內(nèi)存在多臺DHCP服務器,這就意味著管理員無法保證客戶端只能從管理員所設置的DHCP服務器中獲取合法的IP地址,而不從一些用戶自建的非法DHCP服務器中取得IP地址;其次,在部署DHCP服務的子網(wǎng)中,指定了合法的IP地址、掩碼和網(wǎng)關(guān)的主機也可以正常地訪問網(wǎng)絡,而DHCP服務器卻仍然會有可能將該地址分配給其他主機,這樣就會造成地址沖突,影響IP地址的正常分配。
針對上述問題,本文給出了一個解決方案,即通過使用Cisco提供的DHCP Snooping技術(shù)和Dynamic ARP Inspection技術(shù),可以有效地防止以上問題的發(fā)生。
這里首先對兩種技術(shù)做一個簡要的介紹,然后將給出一個應用實例加以說明。#p#
二、DHCP Snooping技術(shù)
DHCP Snooping是一種通過建立DHCP Snooping Binding數(shù)據(jù)庫,過濾非信任的DHCP消息,從而保證網(wǎng)絡安全的特性。DHCP Snooping就像是非信任的主機和DHCP服務器之間的防火墻。通過DHCP Snooping來區(qū)分連接到末端客戶的非信任接口和連接到DHCP服務器或者其他交換機的受信任接口。
DHCP Snooping Binding數(shù)據(jù)庫包括如下信息:MAC地址、IP地址、租約時間、binding類型、VLAN ID以及來自本地非信任端口的接口信息,但不包含通過受信任端口互相連接的接口信息。在啟用了DHCP Snooping的VLAN中,如果交換機收到來自非信任端口的DHCP包,交換機將對目的MAC地址和DHCP客戶端的地址進行對比,如果符合則該包可以通過,否則將被丟棄掉。
在下述情況中,DHCP包將同樣被丟棄:
l 來自外網(wǎng)或者防火墻的DHCP服務器,包括DHCPOFFER、DHCPACK、DHCPNAK、DHCPLEASEQUERY。
l 來自非信任端口,且目的MAC地址和DHCP客戶端的硬件地址不匹配。
l 交換機收到DHCPRELEASE或者DHCPDECLINE的廣播信息,其MAC地址包含在DHCP snooping binding 數(shù)據(jù)庫中,但與數(shù)據(jù)庫中的接口信息不匹配
l 通過DHCP中繼代理轉(zhuǎn)發(fā)的包不包括在內(nèi)#p#
三、Dynamic ARP Inspection技術(shù)
Dynamic ARP inspection是一種驗證網(wǎng)絡中ARP包的安全特性,可以阻止、記錄并丟棄非法IP和MAC地址綁定的ARP包。
Dynamic ARP inspection保證只有合法的ARP請求和響應可以傳播。交換機會完成如下工作,截取所有來自非信任端口ARP請求和響應,在更新ARP緩存或傳播數(shù)據(jù)包之前驗證所截取的數(shù)據(jù)包IP-MAC地址綁定是否合法,丟棄非法的ARP包。
前面提到,DHCP Snooping會建立一個包含合法IP-MAC地址綁定信息的數(shù)據(jù)庫,Dynamic ARP inspection基于該數(shù)據(jù)庫檢驗所截取ARP包的合法性。如果ARP包來自非信任接口,那么只有合法的可以通過。如果來自受信任端口,將可以直接通過。#p#
四、應用實例
我校1#學生公寓,PC擁有數(shù)量大約1000臺。采用DHCP分配IP地址,擁有4個C類地址,實際可用地址數(shù)約1000個。由于樓內(nèi)經(jīng)常存在私開的DHCP服務器,導致大量主機無法分配到合法IP地址;另外,由于有相當數(shù)量的主機指定IP地址,因此造成了與DHCP分配的IP地址沖突。以上兩方面,均造成了該公寓樓大量主機無法正常訪問網(wǎng)絡。
經(jīng)過一段時間的分析、實驗,我們決定對該公寓樓部署DHCP Snooping和Dynamic ARP Inspection兩項技術(shù),以保證網(wǎng)絡的正常運行。
該公寓網(wǎng)絡設備使用情況如下,接入層為××臺Cisco 2950交換機上聯(lián)至堆疊的4臺Cisco 3750,再通過光纖上聯(lián)至匯聚層的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數(shù)據(jù)包上限
- 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包的數(shù)量#p#
五、一些問題的討論
在實際使用過程中我們發(fā)現(xiàn),在配置完上述命令后,Cisco 3750交換機會在運行一段時間以后變得緩慢,CPU利用率達到100%,性能嚴重下降。經(jīng)過分析我們發(fā)現(xiàn),在開始應用Dynamic ARP Inspection時,交換機會記錄大量的數(shù)據(jù)包,當端口通過的數(shù)據(jù)包過多時,交換機會認為遭受DoS攻擊,從而將端口自動errdisable,造成通信中斷。為了解決這個問題,我們需要加入命令errdisable recovery cause arp-inspection。
由于Cisco 3750交換機能力有限,因此我們建議在使用Cisco 3750交換機配置上述命令時應逐級增大port limit rate。#p#
六、小結(jié)
DHCP服務在網(wǎng)絡中的廣泛應用,極大地減輕了網(wǎng)絡管理員的負擔,方便了用戶使用網(wǎng)絡。但是由于有些用戶私自指定IP地址,造成了IP地址自動分配時引起的IP地址沖突,進而影響其他用戶的使用。我們經(jīng)過實際測試,給出了上述解決方案,本方法不僅適合于Cisco的3750交換機,也適用于Cisco的65系列交換機。
DHCP防指定IP地址的方法在我校已經(jīng)得到了成功的應用,經(jīng)過實踐檢驗,我們認為這是一個非常實用的功能。在系統(tǒng)設置好以后,網(wǎng)絡中的用戶只有設置為自動獲取IP地址才能上網(wǎng),否則將無法上網(wǎng)。從而解決了在使用DHCP的網(wǎng)絡中,用戶私自指定IP地址而帶來的IP地址沖突問題。
如果公司內(nèi)網(wǎng)由于用戶自行安裝了Windows Server版本的操作系統(tǒng)而小心啟用了DHCP服務,或其他因素在內(nèi)網(wǎng)中出現(xiàn)了非授權(quán)的DHCP服務器,會給網(wǎng)絡造成什么樣的影響呢?
DHCP server可以自動為用戶設置網(wǎng)絡IP地址、掩碼、網(wǎng)關(guān)、DNS、WINS 等網(wǎng)絡參數(shù),簡化了用戶網(wǎng)絡設置,提高了管理效率。但是,此時如果服務器和客戶端沒有認證機制,網(wǎng)絡上存在的非法的DHCP服務器將會給部分主機的地址分配、網(wǎng)關(guān)及DNS參數(shù)照成混亂,導致主機無法連接到外部網(wǎng)絡。出現(xiàn)這種情況,如何解決這些問題呢?
作為客戶端計算機來說,可以嘗試使用ipconfig /release釋放獲得的網(wǎng)絡參數(shù)后,然后用ipconfig /renew重新嘗試獲取正確的DHCP服務器配置服務,但這種方法很被動,往往要十幾次甚至幾十次才偶爾有可能成功一次,不能從根本解決問題。
另外一個解決辦法,在windows系統(tǒng)組建的網(wǎng)絡中,如果非法DHCP服務器也是用Windows系統(tǒng)建立的話我們可以通過“域”的方式對非法DHCP服務器進行過濾。將合法的DHCP服務器添加到活動目錄(Active Directory)中,通過這種認證方式就可以有效的制止非法DHCP服務器了。原理就是沒有加入域中的DHCP Server在相應請求前,會向網(wǎng)絡中的其他DHCP Server發(fā)送DHCPINFORM查詢包,如果其他DHCP Server有響應,那么這個DHCP Server就不能對客戶的要求作相應,也就是說網(wǎng)絡中加入域的DHCP服務器的優(yōu)先級比沒有加入域的DHCP服務器要高。這樣當合法DHCP存在時非法的就不起任何作用了。
授權(quán)合法DHCP的過程如下:
第一步:開始->程序->管理工具->DHCP
第二步:選擇DHCP root, 用鼠標右鍵單擊,然后瀏覽選擇需要認證的服務器。
第三步:點“添加”按鈕, 輸入要認證的DHCP服務器IP地址, 完成授權(quán)操作。
但是該方法只適用于非法DHCP服務器是windows系統(tǒng),需要用到域和活動目錄,配置較復雜,另外對于非Windows的操作系統(tǒng),就顯得力不從心了。
還有更好的方法,就是利用交換機的DHCP監(jiān)聽,通過建立和維護DHCP Snooping綁定表過濾不可信任的DHCP信息,也就是過濾掉非法DHCP服務器向網(wǎng)絡上發(fā)送的數(shù)據(jù)包。首先定義交換機上的信任端口和不信任端口,將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 拒絕服 /* 務攻擊