思科交換機(jī)DHCPSnooping
思科交換機(jī)DHCPSnooping
思科依靠自身的技術(shù)和對網(wǎng)絡(luò)經(jīng)濟(jì)模式的深刻理解,成為了網(wǎng)絡(luò)應(yīng)用的成功實踐者之一,那么你知道思科交換機(jī)DHCPSnooping的功能是什么嗎?下面是學(xué)習(xí)啦小編整理的一些關(guān)于思科交換機(jī)DHCPSnooping的相關(guān)資料,供你參考。
思科交換機(jī)DHCPSnooping介紹:
采用DHCP服務(wù)的常見問題
架設(shè)DHCP服務(wù)器可以為客戶端自動分配IP地址、掩碼、默認(rèn)網(wǎng)關(guān)、DNS服務(wù)器等網(wǎng)絡(luò)參數(shù),簡化了網(wǎng)絡(luò)配置,提高了管理效率。但在DHCP服務(wù)的管理上存在一些問題,常見的有:
●DHCP Server的冒充
●DHCP Server的DOS攻擊,如DHCP耗竭攻擊
●某些用戶隨便指定IP地址,造成IP地址沖突
1、DHCP Server的冒充
由于DHCP服務(wù)器和客戶端之間沒有認(rèn)證機(jī)制,所以如果在網(wǎng)絡(luò)上隨意添加一臺DHCP服務(wù)器,它就可以為客戶端分配IP地址以及其他網(wǎng)絡(luò)參數(shù)。只要讓該DHCP服務(wù)器分配錯誤的IP地址和其他網(wǎng)絡(luò)參數(shù),那就會對網(wǎng)絡(luò)造成非常大的危害。
2、DHCP Server的拒絕服務(wù)攻擊
通常DHCP服務(wù)器通過檢查客戶端發(fā)送的DHCP請求報文中的CHADDR(也就是Client MAC address)字段來判斷客戶端的MAC地址。正常情況下該CHADDR字段和發(fā)送請求報文的客戶端真實的MAC地址是相同的。攻擊者可以利用偽造 MAC的方式發(fā)送DHCP請求,但這種攻擊可以使用Cisco 交換機(jī)的端口安全特性來防止。端口安全特性(PortSecurity)可以限制每個端口只使用唯一的MAC地址。但是如果攻擊者不修改DHCP請求報文的源 MAC地址,而是修改DHCP報文中的CHADDR字段來實施攻擊,那端口安全就不起作用了。由于DHCP服務(wù)器認(rèn)為不同的CHADDR值表示請求來自不同的客戶端,所以攻擊者可以通過大量發(fā)送偽造CHADDR的DHCP請求,導(dǎo)致DHCP服務(wù)器上的地址池被耗盡,從而無法為其他正常用戶提供網(wǎng)絡(luò)地址,這是一種DHCP耗竭攻擊。DHCP耗竭攻擊可以是純粹的DOS攻擊,也可以與偽造的DHCP服務(wù)器配合使用。當(dāng)正常的DHCP服務(wù)器癱瘓時,攻擊者就可以建立偽造的DHCP服務(wù)器來為局域網(wǎng)中的客戶端提供地址,使它們將信息轉(zhuǎn)發(fā)給準(zhǔn)備截取的惡意計算機(jī)。甚至即使DHCP請求報文的源MAC地址和 CHADDR字段都是正確的,但由于DHCP請求報文是廣播報文,如果大量發(fā)送的話也會耗盡網(wǎng)絡(luò)帶寬,形成另一種拒絕服務(wù)攻擊。
3、客戶端隨意指定IP地址
客戶端并非一定要使用DHCP服務(wù),它可以通過靜態(tài)指定的方式來設(shè)置IP地址。如果隨便指定的話,將會大大提高網(wǎng)絡(luò)IP地址沖突的可能性。
DHCP Snooping技術(shù)介紹
DHCP監(jiān)聽(DHCP Snooping)是一種DHCP安全特性。Cisco交換機(jī)支持在每個VLAN基礎(chǔ)上啟用DHCP監(jiān)聽特性。通過這種特性,交換機(jī)能夠攔截第二層VLAN域內(nèi)的所有DHCP報文。
DHCP監(jiān)聽將交換機(jī)端口劃分為兩類:
●非信任端口:通常為連接終端設(shè)備的端口,如PC,網(wǎng)絡(luò)打印機(jī)等
●信任端口:連接合法DHCP服務(wù)器的端口或者連接匯聚交換機(jī)的上行端口
通過開啟DHCP監(jiān)聽特性,交換機(jī)限制用戶端口(非信任端口)只能夠發(fā)送DHCP請求,丟棄來自用戶端口的所有其它DHCP報文,例如 DHCPOffer報文等。而且,并非所有來自用戶端口的DHCP請求都被允許通過,交換機(jī)還會比較DHCP請求報文的(報文頭里的)源MAC地址和(報文內(nèi)容里 的)DHCP客戶機(jī)的硬件地址(即CHADDR字段),只有這兩者相同的請求報文才會被轉(zhuǎn)發(fā),否則將被丟棄。這樣就防止了DHCP耗竭攻擊。信任端口可以 接收所有的DHCP報文。通過只將交換機(jī)連接到合法DHCP服務(wù)器的端口設(shè)置為信任端口,其他端口設(shè)置為非信任端口,就可以防止用戶偽造DHCP服務(wù)器來攻擊網(wǎng)絡(luò)。DHCP監(jiān)聽特性還可以對端口的DHCP報文進(jìn)行限速。通過在每個非信任端口下進(jìn)行限速,將可以阻止合法DHCP請求報文的廣播攻擊。DHCP 監(jiān)聽還有一個非常重要的作用就是建立一張DHCP監(jiān)聽綁定表(DHCP SnoopingBinding)。一旦一個連接在非信任端口的客戶端獲得一個合法的DHCPOffer,交換機(jī)就會自動在DHCP監(jiān)聽綁定表里添加一個 綁定條目,內(nèi)容包括了該非信任端口的客戶端IP地址、MAC地址、端口號、VLAN編號、租期等信息。如:
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-snooping10 FastEthernet0/1
這張DHCP監(jiān)聽綁定表為進(jìn)一步部署IP源防護(hù)(IPSG)和動態(tài)ARP檢測(DAI)提供了依據(jù)。說明:
I.非信任端口只允許客戶端的DHCP請求報文通過,這里只是相對于DHCP報文來說的。其他非DHCP報文還是可以正常轉(zhuǎn)發(fā)的。這就表示客戶端可以以靜態(tài)指定IP地址的方式通過非信任端口接入網(wǎng)絡(luò)。由于靜態(tài)客戶端不會發(fā)送DHCP報文,所以DHCP監(jiān)聽綁定表里也不會有該靜態(tài)客戶端的記錄。信任端口的 客戶端信息不會被記錄到DHCP監(jiān)聽綁定表里。如果有一客戶端連接到了一個信任端口,即使它是通過正常的DHCP方式獲得IP地址,DHCP監(jiān)聽綁定表里也不有該客戶端的記錄。如果要求客戶端只能以動態(tài)獲得IP的方式接入網(wǎng)絡(luò),則必須借助于IPSG和DAI技術(shù)。
II.交換機(jī)為了獲得高速轉(zhuǎn)發(fā),通常只檢查報文的二層幀頭,獲得目標(biāo)MAC地址后直接轉(zhuǎn)發(fā),不會去檢查報文的內(nèi)容。而DHCP監(jiān)聽本質(zhì)上就是開啟交換機(jī)對DHCP報文的內(nèi)容部分的檢查,DHCP報文不再只是被檢查幀頭了。
III. DHCP監(jiān)聽綁定表不僅用于防御DHCP攻擊,還為后續(xù)的IPSG和DAI技術(shù)提供動態(tài)數(shù)據(jù)庫支持。
IV.DHCP監(jiān)聽綁定表里的Lease列就是每個客戶端對應(yīng)的DHCP租約時間。當(dāng)客戶端離開網(wǎng)絡(luò)后,該條目并不會立即消失。當(dāng)客戶端再次接入網(wǎng)絡(luò), 重新發(fā)起DHCP請求以后,相應(yīng)的條目內(nèi)容就會被更新。如上面的00F.1FC5.1008這個客戶端原本插在Fa0/1端口,現(xiàn)在插在Fa0/3端口, 相應(yīng)的記錄在它再次發(fā)送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.當(dāng)交換機(jī)收到一個DHCPDECLINE或DHCPRELEASE廣播報文,并且報文頭的源MAC地址存在于DHCP監(jiān)聽綁定表的一個條目中。但是報文的實際接收端口與綁定表條目中的端口字段不一致時,該報文將被丟棄。
●DHCPRELEASE報文:此報文是客戶端主動釋放IP 地址(如Windows 客戶端使用ipconfig/release),當(dāng)DHCP服務(wù)器收到此報文后就可以收回IP地址,分配給其他的客戶端了
●DHCPDECLINE報文:當(dāng)客戶端發(fā)現(xiàn)DHCP服務(wù)器分配給它的IP地址無法使用(如IP地址發(fā)生沖突)時,將發(fā)出此報文讓DHCP服務(wù)器禁止使用這次分配的IP地址。
VI. DHCP監(jiān)聽綁定表中的條目可以手工添加。
VII. DHCP監(jiān)聽綁定表在設(shè)備重啟后會丟失,需要重新綁定,但可以通過設(shè)置將綁定表保存在flash或者tftp/ftp服務(wù)器上,待設(shè)備重啟后直接讀取,而不需要客戶端再次進(jìn)行綁定
VIII. 當(dāng)前主流的Cisco交換機(jī)基本都支持DHCP Snooping功能。
DHCP Option 82
當(dāng)DHCP服務(wù)器和客戶端不在同一個子網(wǎng)內(nèi)時,客戶端要想從DHCP服務(wù)器上分配到IP地址,就必須由DHCP中繼代理(DHCPRelayAgent)來轉(zhuǎn)發(fā)DHCP請求包。DHCP中繼代理將客戶端的DHCP報文轉(zhuǎn)發(fā)到DHCP服務(wù)器之前,可以插入一些選項信息,以便 DHCP服 務(wù)器能更精確的得知客戶端的信息,從而能更靈活的按相應(yīng)的策略分配IP地址和其他參數(shù)。這個選項被稱為:DHCP relay agentinformation option(中繼代理信息選項),選項號為82,故又稱為option 82,相關(guān)標(biāo)準(zhǔn)文檔為RFC3046.Option82是對DHCP選項的擴(kuò)展應(yīng)用。選項82只是一種應(yīng)用擴(kuò)展,是否攜帶選項82并不會影響DHCP原有 的應(yīng)用。另外還要看DHCP服務(wù)器是否支持選項82.不支持選項82的DHCP服務(wù)器接收到插入了選項82的報文,或者支持選項82的DHCP服務(wù)器接收到了沒有插入選項82的報文,這兩種情況都不會對原有的基本的DHCP服務(wù)造成影響。要想支持選項82帶來的擴(kuò)展應(yīng)用,則DHCP服務(wù)器本身必須支持選項 82以及收到的DHCP報文必須被插入選項82信息。從非信任端口收到DHCP請求報文,不管DHCP服務(wù)器和客戶端是否處于同一子網(wǎng),開啟了DHCP監(jiān) 聽功能的Cisco交換機(jī)都可以選擇是否對其插入選項82信息。默認(rèn)情況下,交換機(jī)將對從非信任端口接收到的DHCP請求報文插入選項82信息。
當(dāng)一臺開啟DHCP監(jiān)聽的匯聚交換機(jī)和一臺插入了選項82信息的邊界交換機(jī)(接入交換機(jī))相連時:
●如果邊界交換機(jī)是連接到匯聚交換機(jī)的信任端口,那么匯聚交換機(jī)會接收從信任端口收到的插入選項82的DHCP報文信息,但是匯聚交換機(jī)不會為這些信息建立DHCP監(jiān)聽綁定表條目。
●如果邊界交換機(jī)是連接到匯聚交換機(jī)的非信任端口,那么匯聚交換機(jī)會丟棄從該非信任端口收到的插入了選項82的DHCP報文信息。但在 IOS12.2(25)SE版本之后,匯聚交換機(jī)可以通過在全局模式下配置一條ip dhcp snooping informationallow-untrusted命令。這樣匯聚交換機(jī)就會接收從邊界交換機(jī)發(fā)來的插入選項82的DHCP報文信息,并且也為這些信 息建立DHCP監(jiān)聽綁定表條目。
在配置匯聚交換機(jī)下聯(lián)口時,將根據(jù)從邊界交換機(jī)發(fā)送過來的數(shù)據(jù)能否被信任而設(shè)置為信任或者非信任端口。
四、DHCP Snooping的配置
Switch(config)#ip dhcp snooping //打開DHCP Snooping功能
Switch(config)#ip dhcp snooping vlan 10 //設(shè)置DHCP Snooping功能將作用于哪些VLAN
Switch(config)#ip dhcp snooping verify mac-address //檢測非信任端口收到的DHCP請求報文的源MAC和CHADDR字段是否相同,以防止DHCP耗竭攻擊,該功能默認(rèn)即為開啟
Switch(config-if)#ip dhcp snooping trust //配置接口為DHCP監(jiān)聽特性的信任接口,所有接口默認(rèn)為非信任接口
Switch(config-if)#ip dhcp snooping limit rate 15 //限制非信任端口的DHCP報文速率為每秒15個包(默認(rèn)即為每秒15個包)如果不配該語句,則show ip dhcp snooping的結(jié)果里將不列出沒有該語句的端口,可選速率范圍為1-2048
建議:在配置了端口的DHCP報文限速之后,最好配置以下兩條命令
Switch(config)#errdisable recovery causedhcp-rate-limit //使由于DHCP報文限速原因而被禁用的端口能自動從err-disable狀態(tài)恢復(fù)
Switch(config)#errdisable recovery interval 30 //設(shè)置恢復(fù)時間;端口被置為err-disable狀態(tài)后,經(jīng)過30秒時間才能恢復(fù)
Switch(config)#ip dhcp snooping information option //設(shè)置交換機(jī)是否為非信任端口收到的DHCP報文插入Option 82,默認(rèn)即為開啟狀態(tài)
Switch(config)#ip dhcp snooping information optionallow-untrusted //設(shè)置匯聚交換機(jī)將接收從非信任端口收到的接入交換機(jī)發(fā)來的帶有選項82的DHCP報文
Switch#ip dhcp snooping binding 000f.1fc5.1008 vlan 10 192.168.10.131 interface fa0/2expiry 692000 //特權(quán)模式命令;手工添加一條DHCP監(jiān)聽綁定條目;expiry為時間值,即為監(jiān)聽綁定表中的lease(租期)
Switch(config)#ip dhcp snooping databaseflash:dhcp_snooping.db //將DHCP監(jiān)聽綁定表保存在flash中,文件名為dhcp_snooping.db
Switch(config)#ip dhcp snoopingdatabase tftp://192.168.2.5/Switch/dhcp_snooping.db //將DHCP監(jiān)聽綁定表保存到tftp服務(wù)器;192.168.2.5為tftp服務(wù)器地址,必須事先確定可達(dá)。URL中的Switch是tftp服務(wù) 器下一個文件夾;保存后的文件名為dhcp_snooping.db,當(dāng)更改保存位置后會立即執(zhí)行"寫"操作。
Switch(config)#ip dhcp snooping database write-delay30 //指DHCP監(jiān)聽綁定表發(fā)生更新后,等待30秒,再寫入文件,默認(rèn)為300秒;可選范圍為15-86400秒
Switch(config)#ip dhcp snooping database timeout 60//指DHCP監(jiān)聽綁定表嘗試寫入操作失敗后,重新嘗試寫入操作,直到60秒后停止嘗試。默認(rèn)為300秒;可選范圍為0-86400秒
說 明:實際上當(dāng)DHCP監(jiān)聽綁定表發(fā)生改變時會先等待write-delay的時間,然后執(zhí)行寫入操作,如果寫入操作失敗(比如tftp服務(wù)器不可達(dá)),接 著就等待timeout的時間,在此時間段內(nèi)不斷重試。在timeout時間過后,停止寫入嘗試。但由于監(jiān)聽綁定表已經(jīng)發(fā)生了改變,因此重新開始等待 write-delay時間執(zhí)行寫入操作……不斷循環(huán),直到寫入操作成功。
Switch#renew ip dhcp snooping databaseflash:dhcp_snooping.db //特權(quán)級命令;立即從保存好的數(shù)據(jù)庫文件中讀取DHCP監(jiān)聽綁定表。
看過文章“思科交換機(jī)DHCPSnooping"的人還看了: