DHCP snooping技術(shù)解析和配置詳述
網(wǎng)絡(luò)的安全和穩(wěn)定,是我們考慮的頭等大事,在DHCP的應(yīng)用中,我們也能看到相應(yīng)的體現(xiàn)。DHCP Snooping技術(shù),就是DHCP安全特性的一種表現(xiàn)手段。那么這里我們就來詳細介紹一下它的技術(shù),以及配置內(nèi)容吧。
一、DHCP snooping 技術(shù)介紹
DHCP監(jiān)聽(DHCP Snooping)是一種DHCP安全特性。Cisco交換機支持在每個VLAN基礎(chǔ)上啟用DHCP監(jiān)聽特性。通過這種特性,交換機能夠攔截第二層VLAN域內(nèi)的所有DHCP報文。
通過開啟DHCP監(jiān)聽特性,交換機限制用戶端口(非信任端口)只能夠發(fā)送DHCP請求,丟棄來自用戶端口的所有其它DHCP報文,例如DHCP Offer報文等。而且,并非所有來自用戶端口的DHCP請求都被允許通過,交換機還會比較DHCP 請求報文的(報文頭里的)源MAC地址和(報文內(nèi)容里的)DHCP客戶機的硬件地址(即CHADDR字段),只有這兩者相同的請求報文才會被轉(zhuǎn)發(fā),否則將被丟棄。這樣就防止了DHCP耗竭攻擊。信任端口可以接收所有的DHCP報文。通過只將交換機連接到合法DHCP服務(wù)器的端口設(shè)置為信任端口,其他端口設(shè)置為非信任端口,就可以防止用戶偽造DHCP服務(wù)器來攻擊網(wǎng)絡(luò)。DHCP監(jiān)聽特性還可以對端口的DHCP報文進行限速。通過在每個非信任端口下進行限速,將可以阻止合法DHCP請求報文的廣播攻擊。DHCP監(jiān)聽還有一個非常重要的作用就是建立一張DHCP監(jiān)聽綁定表(DHCP Snooping Binding)。一旦一個連接在非信任端口的客戶端獲得一個合法的DHCP Offer,交換機就會自動在DHCP監(jiān)聽綁定表里添加一個綁定條目,內(nèi)容包括了該非信任端口的客戶端IP地址、MAC地址、端口號、VLAN編號、租期等信息。
二、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-adress
- //檢測非信任端口收到的DHCP請求報文的源MAC和CHADDR字段是否相同,以防止DHCP耗竭攻擊,該功能默認即為開啟
- Switch(config-if)#ip dhcp snooping trust
- //配置接口為DHCP監(jiān)聽特性的信任接口,所有接口默認為非信任接口
- Switch(config-if)#ip dhcp snooping limit rate 15
- //限制非信任端口的DHCP報文速率為每秒15個包(默認即為每秒15個包)如果不配該語句,則show ip dhcp snooping的結(jié)果里將不列出沒有該語句的端口,可選速率范圍為1-2048
- 建議:在配置了端口的DHCP報文限速之后,最好配置以下兩條命令
- Switch(config)#errdisable recovery cause dhcp-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è)置交換機是否為非信任端口收到的DHCP報文插入Option 82,默認即為開啟狀態(tài)
- Switch(config)#ip dhcp snooping information option allow-untrusted
- //設(shè)置匯聚交換機將接收從非信任端口收到的接入交換機發(fā)來的帶有選項82的DHCP報文
- Switch#ip dhcp snooping binding 000f.1fc5.1008 vlan 10 192.168.10.131 interface fa0/2 expiry 692000 //特權(quán)模式命令;手工添加一條DHCP監(jiān)聽綁定條目;expiry為時間值,即為監(jiān)聽綁定表中的lease(租期)
- Switch(config)#ip dhcp snooping database
- flash:dhcp_snooping.db
- //將DHCP監(jiān)聽綁定表保存在flash中,文件名為dhcp_snooping.db
- Switch(config)#ip dhcp snooping database
- tftp://192.168.2.5/Switch/dhcp_snooping.db
- //將DHCP監(jiān)聽綁定表保存到tftp服務(wù)器;192.168.2.5為tftp服務(wù)器地址,必須事先確定可達。URL中的Switch是tftp服務(wù)器下一個文件夾;保存后的文件名為dhcp_snooping.db,當(dāng)更改保存位置后會立即執(zhí)行“寫”操作。
- Switch(config)#ip dhcp snooping database write-delay 30
- //指DHCP監(jiān)聽綁定表發(fā)生更新后,等待30秒,再寫入文件,默認為300秒;可選范圍為15-86400秒
- Switch(config)#ip dhcp snooping database timeout 60
- //指DHCP監(jiān)聽綁定表嘗試寫入操作失敗后,重新嘗試寫入操作,直到60秒后停止嘗試。默認為300秒;可選范圍為0-86400秒
- 說明:實際上當(dāng)DHCP監(jiān)聽綁定表發(fā)生改變時會先等待write-delay的時間,然后執(zhí)行寫入操作,如果寫入操作失?。ū热鐃ftp服務(wù)器不可達),接著就等待timeout的時間,在此時間段內(nèi)不斷重試。在timeout時間過后,停止寫入嘗試。但由于監(jiān)聽綁定表已經(jīng)發(fā)生了改變,因此重新開始等待write-delay時間執(zhí)行寫入操作……不斷循環(huán),直到寫入操作成功。
- Switch#renew ip dhcp snooping database flash:dhcp_snooping.db
- /特權(quán)級命令;立即從保存好的數(shù)據(jù)庫文件中讀取DHCP監(jiān)聽綁定表。