詳解DHCP Snooping的使用
對(duì)于DHCP的內(nèi)容我們已經(jīng)有所了解了。前面我們也講解了DHCP工作流程的相關(guān)步驟,不知道大家是否已經(jīng)掌握。那么接下來的內(nèi)容我們來講解一下DHCP Snooping的知識(shí),希望對(duì)大家有用。首先讓我們看看DHCP服務(wù)器的客戶端和服務(wù)端的相關(guān)工作流程是什么樣的。
DHCP Client 發(fā)出 DHCP DISCOVER廣播報(bào)文給 DHCP Server,若 Client 在一定時(shí)間內(nèi)沒有收到服務(wù)器的響應(yīng),則重發(fā) DHCP DISCOVER 報(bào)文。DHCP Server收到 DHCP DISCOVER報(bào)文后,根據(jù)一定的策略來給 Client 分配資源(如 IP 地址),然后發(fā)出 DHCP OFFER報(bào)文。DHCP Client 收到 DHCP OFFER報(bào)文后,發(fā)出 DHCP REQUEST請(qǐng)求,請(qǐng)求獲取服務(wù)器租約,并通告其他服務(wù)器已接受此服務(wù)器分配地址。
服務(wù)器收到 DHCP REQUEST報(bào)文,驗(yàn)證資源是否可以分配,如果可以分配,則發(fā)送 DHCP ACK 報(bào)文;如果不可分配,則發(fā)送 DHCP NAK 報(bào)文。DHCP Client收到 DHCP ACK 報(bào)文,就開始使用服務(wù)器分配的資源。如果收到 DHCP NAK,則重新發(fā)送 DHCP DISCOVER報(bào)文。
理解DHCP Snooping
DHCP Snooping 就是 DHCP 窺探,通過對(duì) Client 和服務(wù)器之間的 DHCP 交互報(bào)文進(jìn)行窺探,實(shí)現(xiàn)對(duì)用戶的監(jiān)控,同時(shí) DHCP Snooping起到一個(gè) DHCP 報(bào)文過濾的功能,通過合理的配置實(shí)現(xiàn)對(duì)非法服務(wù)器的過濾。下邊對(duì) DHCP Snooping內(nèi)使用到的一些術(shù)語及功能進(jìn)行一些解釋:
DHCP Snooping TRUST 口:由于 DHCP 獲取 IP的交互報(bào)文是使用廣播的形式,從而存在著非法服務(wù)器影響用戶正常 IP 的獲取,更有甚者通過非法服務(wù)器欺騙竊取用戶信息的現(xiàn)象,為了防止非法服務(wù)器的問題,DHCP nooping 把端口分為兩種類型, TRUST口和UNTRUST口,設(shè)備只轉(zhuǎn)發(fā)TRUST口收到的DHCP Reply報(bào)文,而丟棄所有來自UNTRUST口DHCP Reply報(bào)文,這樣我們把合法的DHCP Server 連接的端口設(shè)置為 TURST 口,其他口設(shè)置為 UNTRUST 口,就可以實(shí)現(xiàn)對(duì)非法 DHCP Server 的屏蔽。
DHCP Snooping 綁定數(shù)據(jù)庫:在 DHCP 環(huán)境的網(wǎng)絡(luò)里經(jīng)常會(huì)出現(xiàn)用戶私自設(shè)置IP 地址的問題,用戶私設(shè) IP 地址不但使網(wǎng)絡(luò)難以維護(hù),并且會(huì)導(dǎo)致一些合法的使用 DHCP 獲取 IP 的用戶因?yàn)闆_突而無法正常使用網(wǎng)絡(luò), DHCP Snooping通過窺探 Client 和 Server 之間交互的報(bào)文,把用戶獲取到的 IP信息以及用戶 MAC、VID、PORT、租約時(shí)間等信息組成一個(gè)用戶記錄表項(xiàng),從而形成一個(gè) DHCP Snooping 的用戶數(shù)據(jù)庫,配合 ARP檢測(cè)功能的使用,從而達(dá)到控制用戶上網(wǎng)的目的。
DHCP Snooping 就是通過對(duì)經(jīng)過設(shè)備的 DHCP 報(bào)文進(jìn)行合法性檢查,丟棄不合法的 DHCP 報(bào)文,并記錄用戶信息生成 DHCP Snooping 綁定數(shù)據(jù)庫供 ARP 檢測(cè)查詢使用。以下幾種類型的報(bào)文被認(rèn)為是非法的 DHCP 報(bào)文:
1. UNTRUST 口收到的 DHCP reply 報(bào)文,包括 DHCPACK、DHCPNACK、DHCPOFFER 等。
2. 打開 mac 校驗(yàn)時(shí),源 MAC 與 DHCP 報(bào)文攜帶的 DHCP Client 字段值分別為不同的報(bào)文。
3. 用戶的信息存在于 DHCP Snooping 綁定數(shù)據(jù)庫中,但是端口信息與設(shè)備保存在DHCP綁定數(shù)據(jù)庫中的信息中的端口信息不一致的DHCPRELEASE報(bào)文。#p#
DHCP Snooping和ARP探測(cè)的關(guān)系
ARP 探測(cè)就是對(duì)經(jīng)過設(shè)備的所有 ARP 報(bào)文進(jìn)行檢查, DHCP Snooping需要提供數(shù)據(jù)庫信息供 ARP 探測(cè)使用,在開啟 DAI 功能的設(shè)備上,當(dāng)收到 ARP報(bào)文時(shí),DAI 模塊就根據(jù)報(bào)文查詢 DHCP snooping的綁定數(shù)據(jù)庫,只有當(dāng)收到得 ARP 報(bào)文得 mac、ip 和端口信息都匹配時(shí)才認(rèn)為收到的 ARP 報(bào)文是合法的,才進(jìn)行相關(guān)的學(xué)習(xí)和轉(zhuǎn)發(fā)操作,否則丟棄該報(bào)文。
DHCP Snooping配置的其他注意事項(xiàng)
DHCP Snooping功能與 1x的 DHCP Option 82 功能是互斥的,即不能同時(shí)使用
DHCP Snooping和 DHCP Option82
DHCP Snooping僅對(duì)用戶的DHCP過程進(jìn)行窺探,若想控制用戶必須使用DHCP分配的 IP 上網(wǎng), 則必須使用 ARP 探測(cè)功能,而 ARP 檢測(cè)模塊需要檢測(cè)所有 ARP報(bào)文,所以會(huì)對(duì)設(shè)備的整體性能產(chǎn)生影響,需要用戶注意。
配置打開和關(guān)閉DHCP Snooping
缺省情況下,設(shè)備的 DHCP Snooping 功能是關(guān)閉,當(dāng)配置 ip dhcp snooping 命令后,設(shè)備就打開了 dhcp snooping 功能,開始對(duì) dhcp報(bào)文進(jìn)行監(jiān)控。
- switch# configure terminal //進(jìn)入配置模式
- switch(config)# [no] ip dhcp snooping DHCP snooping //打開和關(guān)閉
下邊是配置打開設(shè)備 DHCP snooping功能:
- switch# configure terminal
- switch(config)# ip dhcp snooping
- switch(config)# end
- switch#
配置DHCP源MAC檢查功能
配置此命令后,設(shè)備就會(huì)對(duì) UNTRUST 口送上來的 DHCP Request 報(bào)文進(jìn)行源MAC和 Client 字段的 MAC地址校驗(yàn)檢查,丟棄 MAC值不相同的不合法的報(bào)文。默認(rèn)不檢查。
- switch# configure terminal //進(jìn)入配置模式
- switch(config)# [no]ip dhcp snooping
- verify mac-address
#p#打開和關(guān)閉源 MAC檢查功能
下邊的是打開 DHCP 源 MAC檢查的功能
- switch# configure terminal
- switch(config)# ip dhcp snooping verify mac-address
- switch(config)# end
- switch#
配置靜態(tài)DHCP snooping用戶
在某些應(yīng)用情況下,某些端口下的用戶希望能夠靜態(tài)使用某些 IP,就可以通過靜態(tài)配置此用戶信息來實(shí)現(xiàn)。
switch# configure terminal //進(jìn)入配置模式
- switch(config)# [no] ip dhcp snooping
- bindingmac-addrees vlan vlan_id ip
- ip-addressinterface interface-id
設(shè)置DHCP靜態(tài)用戶到DHCP
snooping 綁定數(shù)據(jù)庫
下邊是添加一個(gè)靜態(tài)的用戶到設(shè)備的9端口:
- switch# configure terminal
- switch(config)# ip dhcp snooping binding 00d0.f801.0101 vlan
- 1 ip 192.168.4.243 interface gigabitEthernet 0/9
- switch(config)# end
- switch#
配置定時(shí)寫DHCP Snooping數(shù)據(jù)庫信息到flash
為了防止設(shè)備斷電重啟導(dǎo)致設(shè)備上的DHCP戶信息丟失,所以DHCP Snooping 提供可配置的定時(shí)把DHCP Snooping 數(shù)據(jù)庫信息寫入 flash的命令,默認(rèn)情況下,定時(shí)為 0,即不定時(shí)寫 flash。
- switch# configure terminal //進(jìn)入配置模式
- switch(config)# [no] ip dhcp snooping
- database write-delay [time]
設(shè)置DHCP延遲寫flash的時(shí)間
time:600s--86400s.缺省為 0
下邊的是設(shè)置 DHCP Snooping延遲寫 flash的時(shí)間為 3600s:
- switch# configure terminal
- switch(config)# ip dhcp snooping database write-delay 3600
- switch(config)# end
- switch#
手動(dòng)把DHCP snooping數(shù)據(jù)庫信息寫到flash
為了防止設(shè)備斷電重啟導(dǎo)致設(shè)備上的DHCP用戶信息丟失,除了配置定時(shí)寫flash 外,也可以根據(jù)需要手動(dòng)地把當(dāng)前的DHCP Snooping綁定數(shù)據(jù)庫信息寫入flash。
- switch# configure terminal //進(jìn)入配置模式
- switch(config)# ip dhcp snooping database
- write-to-flash
把DHCP snooping數(shù)據(jù)庫信息寫入flash
下邊的是手動(dòng)的把 DHCP Snooping 數(shù)據(jù)庫信息寫入 flash:
- switch# configure terminal
- switch(config)# ip dhcp snooping database write-to-flash
- switch(config)# end
#p#配置端口為TRUST口
用戶通過配置此命令來設(shè)置一個(gè)端口為 TRUST 口,默認(rèn)情況下所有端口全部為UNTRUST 口:
- switch# configure terminal //進(jìn)入配置模式
- switch(config)# interface interface //進(jìn)入接口配置模式
- switch(config-if)# [no] ip dhcp snooping trust //將端口設(shè)置為 trust 口
下邊是配置設(shè)備的 1端口為 TRUST 口:
- switch# configure terminal
- switch(config)# interface gigabitEthernet 0/1
- switch(config-if)# ip dhcp snooping trust
- switch(config-if)# end
- switch#
清空DHCP Snooping數(shù)據(jù)庫動(dòng)態(tài)用戶信息
此命令用于清空當(dāng)前的 DHCP Snooping 數(shù)據(jù)庫的信息。
- switch# clear ip dhcp snooping binding //清空當(dāng)前數(shù)據(jù)庫的信息
下邊的是手動(dòng)清空當(dāng)前數(shù)據(jù)庫的信息:
- switch# clear ip dhcp snooping binding
#p#DHCP snooping配置顯示
顯示DHCP snooping
您可以通過以下步驟顯示 ip dhcp snooping內(nèi)容
- switch# show ip dhcp snooping
顯示 dhcp snooping 的相關(guān)配置信息
例如:
- switch# show ip dhcp snooping
- Switch DHCP snooping status : ENABLE
- DHCP snooping Verification of hwaddr status : ENABLE
- DHCP snooping database wirte-delay time : 3600
- Interface Trusted
- ------------------------ -------
- GigabitEthernet 0/1 YES
顯示DHCP snooping 數(shù)據(jù)庫信息
您可以通過以下步驟顯示 ip dhcp snooping數(shù)據(jù)庫信息的相關(guān)內(nèi)容
switch# show ip dhcp snooping binding
查看 DHCP Snooping 綁定數(shù)
據(jù)庫的靜態(tài)用戶信息
例如:
- switch# show ip dhcp snooping binding
- MacAddress IpAddress Lease(sec) Type VLAN Interface
- ------------------ --------------- ---------- -----------
- 00d0.f801.0101 192.168.4.243 - static 1 GigabitEthernet 0/9