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