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