配置思路
1.使能DHCP Snooping功能。
2.配置接口的信任狀态,以保證用戶端從合法的伺服器擷取IP位址。
3.使能ARP與DHCPSnooping的關聯功能,保證DHCP使用者在異常下線時實時更新綁定表。
4.使能根據DHCP Snooping綁定表生成接口的靜态MAC表項功能,以防止非DHCP使用者攻擊。
5.使能對DHCP封包進行綁定表比對檢查的功能,防止仿冒DHCP封包攻擊。
6.配置DHCP封包上送DHCP封包處理單元的最大允許速率,防止DHCP封包泛洪攻擊。
7.配置允許接入的最大使用者數以及使能檢測DHCP Request
操作步驟
1.使能DHCP Snooping功能。
[SwitchC] dhcp enable
[SwitchC]dhcp snooping enable
2.使能使用者側接口的DHCP Snooping功能。
[SwitchC] dhcp snooping enable vlan 1 to 100(或直接在接口啟用如下)
[SwitchC] interface gigabitethernet 0/0/1
[SwitchC-GigabitEthernet0/0/1] dhcp snooping enable
3.配置接口的信任狀态:将連接配接DHCP Server的接口狀态配置為“Trusted”。接dhcp的端口和交換機級聯端口需要配置
[SwitchC] interface gigabitethernet 0/0/3
[SwitchC-GigabitEthernet0/0/3]dhcp snooping trusted
4.使能ARP與DHCPSnooping的關聯功能。
[SwitchC]arp dhcp-snooping-detect enable
5.使能對DHCP封包進行綁定表比對檢查的功能。
[SwitchC] interface gigabitethernet0/0/1
[SwitchC-GigabitEthernet0/0/1] dhcp snooping check dhcp-request enable
6.配置DHCP封包上送DHCP封包處理單元的最大允許速率為10pps。
[SwitchC] dhcp snooping check dhcp-rate enable
[SwitchC] dhcp snooping check dhcp-rate 10
7.配置接口允許接入的最大使用者數。
[SwitchC] interface gigabitethernet 0/0/1
[SwitchC-GigabitEthernet0/0/1] dhcp snooping max-user-number 2
8.配置丢棄封包告警和封包限速告警功能。
使能丢棄封包告警功能,并配置丢棄封包告警門檻值。以GE0/0/1接口為例,GE0/0/2的配置相同
[SwitchC] interface gigabitethernet 0/0/1
[SwitchC] dhcp snooping alarm dhcp-rate enable
[SwitchC] dhcp snooping alarm dhcp-rate threshold 10
[SwitchC] dhcp snooping check user-bind enable
[SwitchC] dhcp snooping check mac-address enable 使能檢查DHCPRequest封包頭中MAC位址的功能
驗證配置結果
display dhcp snooping configuration 檢視DHCP Snooping的配置資訊。
display dhcp snooping interface 檢視接口下的DHCP Snooping運作資訊。
reset dhcpsnooping user-bind vlan | interface | * 複位DHCPSnooping綁定表
dhcp snoopinguser-bind autosave file-name 備份DHCPSnooping綁定表。
arp anti-attackcheck user-bind enable
arp anti-attackcheck user-bind alarm enable
arp anti-attackcheck user-bind alarm threshold 10
arp anti-attackcheck user-bind check-item mac-address
ip source checkuser-bind enable 啟用ip源防護
ip source checkuser-bind check-item { ip-address |mac-address | vlan }* 配置IP封包檢查項
ip source checkuser-bind alarm enable 使能IP封包檢查告警功能。
ip source checkuser-bind alarm threshold threshold 配置IP封包檢查告警門檻值預設100。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
使能DHCP Snooping功能之前,必須已使用指令dhcp enable使能了裝置的DHCP功能。
全局使能DHCP Snooping功能後,還需要在連接配接使用者的接口(如圖中的接口if1、if2和if3)或其所屬VLAN(如圖中的VLAN 10)使能DHCP Snooping功能。
當存在多個使用者PC屬于同一個VLAN時,為了簡化配置,可以在這個VLAN使能DHCP Snooping功能。
請在二層網絡中的接入裝置或第一個DHCP Relay上執行以下步驟。
1、使能DHCP Snooping功能
[Huawei]dhcp snooping enable ?
ipv4 DHCPv4 Snooping
ipv6 DHCPv6 Snooping
vlan Virtual LAN
或
[Huawei]dhcp snooping over-vpls enable # 使能裝置在VPLS網絡中的DHCP Snooping功能
或
[Huawei-vlan2]dhcp snooping enable
[Huawei-GigabitEthernet0/0/3]dhcp snooping enable
2、配置接口信任狀态
[Huawei-GigabitEthernet0/0/2]dhcp snooping trusted
或
[Huawei-vlan3]dhcp snooping trusted interface GigabitEthernet 0/0/6
3、去使能DHCP Snooping使用者位置遷移功能
在移動應用場景中,若某一使用者由接口A上線後,切換到接口B重新上線,使用者将發送DHCP Discover封包申請IP位址。
預設情況下裝置使能DHCP Snooping功能之後将允許該使用者上線,并重新整理DHCP Snooping綁定表。
但是在某些場景中,這樣的處理方式存在安全風險,比如網絡中存在攻擊者仿冒合法使用者發送DHCP Discover封包,最終導緻DHCP Snooping綁定表被重新整理,合法使用者網絡通路中斷。
此時需要去使能DHCP Snooping使用者位置遷移功能,丢棄DHCP Snooping綁定表中已存在的使用者(使用者MAC資訊存在于DHCP Snooping綁定表中)從其他接口發送來的DHCP Discover封包。
[Huawei]undo dhcp snooping user-transfer enable
4、配置ARP與DHCP Snooping的關聯功能
DHCP Snooping裝置在收到DHCP使用者發出的DHCP Release封包時将會删除該使用者對應的綁定表項,但若使用者發生了異常下線而無法發出DHCP Release封包時,DHCP Snooping裝置将不能夠及時的删除該DHCP使用者對應的綁定表。
使能ARP與DHCP Snooping的關聯功能,如果DHCP Snooping表項中的IP位址對應的ARP表項達到老化時間,則DHCP Snooping裝置會對該IP位址進行ARP探測,如果在規定的探測次數内探測不到使用者,裝置将删除使用者對應的ARP表項。之後,裝置将會再次按規定的探測次數對該IP位址進行ARP探測,如果最後仍不能夠探測到使用者,則裝置将會删除該使用者對應的綁定表項。
隻有裝置作為DHCP Relay時,才支援ARP與DHCP Snooping的關聯功能。
[Huawei]arp dhcp-snooping-detect enable
5、配置使用者下線後及時清除對應MAC表項功能
當某一DHCP使用者下線時,裝置上其對應的動态MAC表項還未達到老化時間,則裝置在接收到來自網絡側以該使用者IP位址為目的位址的封包時,将繼續根據動态MAC表項轉發此封包。
這種無效的封包處理在一定程度上将會降低裝置的性能。
裝置在接收到DHCP使用者下線時發送DHCP Release封包後,将會立刻删除使用者對應的DHCP Snooping綁定表項。利用這種特性,使能當DHCP Snooping動态表項清除時移除對應使用者的MAC表項功能,則當使用者下線時,裝置将會及時的移除使用者的MAC表項。
[Huawei]dhcp snooping user-offline remove mac-address
6、配置丢棄GIADDR字段非零的DHCP封包
DHCP封包中的GIADDR(Gateway Ip Address)字段記錄了DHCP封包經過的第一個DHCP Relay的IP位址,當用戶端發出DHCP請求時,如果伺服器和用戶端不在同一個網段,那麼第一個DHCP Relay在将DHCP請求封包轉發給DHCP伺服器時,會把自己的IP位址填入此字段,DHCP伺服器會根據此字段來判斷出用戶端所在的網段位址,進而選擇合适的位址池,為用戶端配置設定該網段的IP位址。
多DHCP中繼場景下DHCP封包處理流程(以DHCP Request封包為例).png
圖1 多DHCP中繼場景下DHCP封包處理流程(以DHCP Request封包為例)
如上圖1所示,在為了保證裝置在生成DHCP Snooping綁定表時能夠擷取到使用者MAC等參數,DHCP Snooping功能需應用于二層網絡中的接入裝置或第一個DHCP Relay上(如圖中的DHCP Relay1裝置)。
故DHCP Snooping裝置接收到的DHCP封包中GIADDR字段必然為零,若不為零則該封包為非法封包,裝置需丢棄此類封包。在DHCP中繼使能DHCP Snooping場景中,建議配置該功能。
通常情況下,PC發出的DHCP封包中GIADDR字段為零。在某些情況下,PC發出的DHCP封包中GIADDR字段不為零,可能導緻DHCP伺服器配置設定錯誤的IP位址。為了防止PC使用者僞造GIADDR字段不為零的DHCP封包申請IP位址,建議配置該功能。
[Huawei]dhcp snooping check dhcp-giaddr enable vlan ?
INTEGER<1-4094> Virtual LAN ID
或
[Huawei-vlan5]dhcp snooping check dhcp-giaddr enable
或
[Huawei-GigabitEthernet0/0/2]dhcp snooping check dhcp-giaddr enable
7、使能DHCP Server探測功能
在使能DHCP Snooping功能并配置了接口的信任狀态之後,裝置将能夠保證用戶端從合法的伺服器擷取IP位址,這将能夠有效的防止DHCP Server仿冒者攻擊。
但是此時卻不能夠定位DHCP Server仿冒者的位置,使得網絡中仍然存在着安全隐患。
通過配置DHCP Server探測功能,DHCP Snooping裝置将會檢查并在日志中記錄所有DHCP回應封包中攜帶的DHCP Server位址與接口等資訊,此後網絡管理者可根據日志來判定網絡中是否存在僞DHCP Server進而對網絡進行維護。
[Huawei]dhcp server detect
8、防止DHCP封包泛洪攻擊
在DHCP網絡環境中,若存在DHCP使用者短時間内向裝置發送大量的DHCP封包,将會對裝置的性能造成巨大的沖擊以緻可能會導緻裝置無法正常工作。通過使能對DHCP封包上送DHCP封包處理單元的速率進行檢測功能将能夠有效防止DHCP封包泛洪攻擊。
8.1、使能對DHCP封包上送DHCP封包處理單元的速率進行檢測功能
[Huawei-vlan3]dhcp snooping check dhcp-rate enable # 接口視圖下指令一樣
或
[Huawei]dhcp snooping check dhcp-rate enable ?
INTEGER<1-100> Rate value (Unit:pps)
alarm Alarm
vlan Virtual LAN
8.2、DHCP封包上送DHCP封包處理單元的最大允許速率
[Huawei-vlan3]dhcp snooping check dhcp-rate ?
INTEGER<1-100> Rate value (Unit:pps)
enable Enable
[Huawei-vlan3]dhcp snooping check dhcp-rate 80
8.3、使能當丢棄的DHCP封包數達到告警門檻值時的告警功能
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-rate enable
8.4、配置接口下被丢棄的DHCP封包的告警門檻值
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-rate threshold ?
INTEGER<1-1000> Threshold value (Unit:packets)
9、防止仿冒DHCP封包攻擊
在DHCP網絡環境中,若攻擊者仿冒合法使用者的DHCP Request封包發往DHCP Server,将會導緻使用者的IP位址租約到期之後不能夠及時釋放,以緻合法使用者無法使用該IP位址;若攻擊者仿冒合法使用者的DHCP Release封包發往DHCP Server,将會導緻使用者異常下線。
在生成DHCP Snooping綁定表後,裝置可根據綁定表項,對DHCP Request封包或DHCP Release封包進行比對檢查,隻有比對成功的封包裝置才将其轉發,否則将丢棄。
這将能有效的防止非法使用者通過發送僞造DHCP Request或DHCP Release封包冒充合法使用者續租或釋放IP位址。
9.1、使能對從指定VLAN内上送的DHCP封包進行綁定表比對檢查的功能
[Huawei]dhcp snooping check dhcp-request enable vlan ?
INTEGER<1-4094> Virtual LAN ID
或
[Huawei-GigabitEthernet0/0/2]dhcp snooping check dhcp-request enable
9.2、使能與綁定表不比對而被丢棄的DHCP封包數達到門檻值時的DHCP Snooping告警功能
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-request enable
9.3、DHCP Snooping丢棄封包數量的告警門檻值。
[Huawei]dhcp snooping alarm threshold ?
INTEGER<1-1000> Threshold value (Unit:packets)
9.4、與綁定表不比對而被丢棄的DHCP封包的告警門檻值
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-request threshold ?
INTEGER<1-1000> Threshold value (Unit:packets)
10、防止DHCP Server服務拒絕攻擊
若在網絡中存在DHCP使用者惡意申請IP位址,将會導緻IP位址池中的IP位址快速耗盡以緻DHCP Server無法為其他合法使用者配置設定IP位址。
另一方面,DHCP Server通常僅根據CHADDR(client hardware address,用戶端硬體位址)字段來确認用戶端的MAC位址。如果攻擊者通過不斷改變DHCP Request封包中的CHADDR字段向DHCP Server申請IP位址,将會導緻DHCP Server上的位址池被耗盡,進而無法為其他正常使用者提供IP位址。
為了防止某些端口的DHCP使用者惡意申請IP位址,可配置接口允許學習的DHCP Snooping綁定表項的最大個數來控制上線使用者的個數,當使用者數達到該值時,則任何使用者将無法通過此接口成功申請到IP位址。
為了防止攻擊者不斷改變DHCP Request封包中的CHADDR字段進行攻擊,可使能檢測DHCP Request封包幀頭MAC位址與DHCP資料區中CHADDR字段是否相同的功能,相同則轉發封包,否則丢棄。
10.1、裝置允許學習的DHCP Snooping綁定表項的最大個數
[Huawei]dhcp snooping max-user-number ?
INTEGER<1-1024> Max user number value
[Huawei]dhcp snooping max-user-number 20 ?
vlan Virtual LAN
[Huawei]dhcp snooping max-user-number 20 vlan ?
INTEGER<1-4094> Virtual LAN ID
或
[Huawei-GigabitEthernet0/0/2]dhcp snooping max-user-number ?
INTEGER<1-1024> Max user number value
10.2、DHCP Snooping綁定表的告警門檻值百分比
[Huawei] dhcp snooping user-alarm percentage percent-lower-value percent-upper-value
10.3、接口允許學習的DHCP Snooping綁定表項的最大個數。
[Huawei-GigabitEthernet0/0/2]dhcp snooping max-user-number ?
INTEGER<1-1024> Max user number value
或
[Huawei-vlan2]dhcp snooping max-user-number ?
INTEGER<1-1024> Max user number value
10.4、使能檢測DHCP Request封包幀頭MAC與DHCP資料區中CHADDR字段是否一緻功能
[Huawei]dhcp snooping check dhcp-chaddr enable vlan ?
INTEGER<1-4094> Virtual LAN ID
或
[Huawei-GigabitEthernet0/0/2]dhcp snooping check dhcp-chaddr enable ?
alarm Alarm
或
[Huawei-vlan2]dhcp snooping check dhcp-chaddr enable
10.5、幀頭MAC位址與DHCP資料區中CHADDR字段不比對而被丢棄的DHCP封包的告警門檻值
[Huawei-GigabitEthernet0/0/2]dhcp snooping alarm dhcp-chaddr threshold ?
INTEGER<1-1000> Threshold value (Unit:packets)
11、在DHCP封包中添加Option82字段
為使DHCP Server能夠擷取到DHCP使用者的精确實體位置資訊,可在DHCP封包中添加Option82字段。
Option82選項記錄了DHCP Client的位置資訊。
裝置通過在DHCP請求封包中添加Option82選項,可将DHCP Client的位置資訊發送給DHCP Server,進而使得DHCP Server能夠根據Option82選項的内容為DHCP Client配置設定合适的IP位址和其他配置資訊,并可以實作對用戶端的安全控制。
DHCP Option82必須配置在裝置的使用者側,否則裝置向DHCP Server發出的DHCP封包不會攜帶Option82選項内容。
11.1、在DHCP封包中添加Option82選項功能
[Huawei-vlan6]dhcp option82 ?
insert Insert option82 into DHCP packets # 插入
rebuild Rebuild option82 in the DHCP packets # 重建
[Huawei-vlan6]dhcp option82 insert ?
enable Enable
或
[Huawei-GigabitEthernet0/0/2]dhcp option82 ?
circuit-id DHCP option82 sub-option Circuit ID
format The format of DHCP option82
insert Insert option82 into DHCP packets
rebuild Rebuild option82 in the DHCP packets
remote-id DHCP option82 sub-option Remote ID
vlan Virtual LAN
[Huawei-GigabitEthernet0/0/2]dhcp option82 rebuild ?
enable Enable
11.2、配置Option82選項的格式
[Huawei-GigabitEthernet0/0/2]dhcp option82 vlan 3 circuit-id format ?
common Common format. Circuit-ID:"%iftype%slot/%subslot/%port:%svlan.%cvlan %sysname/0/0/0/0/0".
Remote-ID: “%mac”
default Default format. The same with global dhcp option82 formatconfiguration.
extend Extend format. Circuit-ID: 0 %length %svlan %5slot %3subslot%8port. Remote-ID: 0 %length %mac #
user-defined The format of DHCP option82 defined by user # 使用者自定義格式
或
[Huawei]dhcp option82 remote-id format ?
common Common format. Circuit-ID:"%iftype
%slot/%subslot/%port:%svlan.%cvlan %sysname/0/0/0/0/0".
Remote-ID: "%mac"
default Default format. Circuit-ID:"%portname:%svlan.%cvlan
%sysname/0/0/0/0/0". Remote-ID: "%mac"
extend Extend format. Circuit-ID: 0 %length %svlan %5slot %3subslot
%8port. Remote-ID: 0 %length %mac
user-defined The format of DHCP option82 defined by user
系統視圖下或同一個接口視圖下配置的所有Option82選項共用1~255個位元組長度,是以,所有Option82選項長度之和不能超過255個位元組,否則會導緻部分Option82選項資訊丢失。
裝置不限制配置多少個Option82選項,但是大量配置會占用很多記憶體,并延長裝置處理時間。為保證裝置性能,建議使用者根據自身需要和裝置記憶體大小來配置Option82選項。