顧成武 陳中舉 孟祥國 劉恒
摘要:ICMP協議是一種面向無連接的網絡層協議。該文通過對ICMP協議的基本概念、主要功能和數據包結構的分析,用ICMP來實現對網絡設備在線狀態的感知,實現對空閑IP地址提前回收技術的研究。
關鍵詞:ICMP;IP;地址復用
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)29-0054-02
1 引言
DHCP(Dynamic Host Configuration Protocol)攻擊是一種通過不斷偽造MAC地址來耗盡正常的DHCP服務器的IP地址池,然后攻擊者通過架設一個對應的DHCP服務器,來替代正常的DHCP服務器提供IP地址分配功能,從而偽裝成內網的網關,借此來控制內網中的主機網絡流量的攻擊方法。
在現有的IP地址動態分配算法中,往往服務器只會通過設定一個租約時間,在租約時間到達一半時,客戶端會向服務器發出續約請求;在租約時間結束時,如果客戶端沒有響應請求,服務器才會回收對應的IP地址。這種分配算法存在一定的局限性,服務器在整個服務過程中,都處于被動的響應狀態,不能判斷當前的客戶端的在線狀態。故而,IP地址在整個租約時間結束前,都會與其被分配給的客戶端所綁定,不會再分配給其他客戶端所使用。
由于DHCP分配算法的局限性,并沒有身份驗證機制,也沒有客戶端狀態判定機制。攻擊者可以通過批量的偽造MAC地址去請求IP地址,即可輕而易舉地耗盡IP地址池資源。
ICMP(Internet Control Message Protocol)全稱為因特網控制報文協議,它是IPv4協議簇中的一個用于路由器和IP主機之間傳遞控制信息的網絡協議。可以通過ICMP來實現類心跳包機制,判斷當前客戶端的狀態,及時回收空閑的IP地址,避免IP地址池耗盡,防護DHCP攻擊[4]。
2 ICMP協議的基本概念
ICMP協議本身是一個被設計用于差錯傳輸的協議,用于向數據通訊中的源主機報告錯誤。ICMP是TCP/IP協議簇中用于主機與路由之間傳遞控制信息的一個子協議,可以用于報告錯誤、交換受限控制和控制信息等。一個ICMP報文包括IP報頭、ICMP報頭和ICMP報文信息。當IP報頭中的協議字段標識為1時,就代表該報文為ICMP報文[3]。ICMP報頭數據結構如下圖示。
ICMP協議主要用于確保TCP/IP協議的可靠運行,只能檢查IP傳輸中的差錯,而不能糾錯。ICMP依賴于IP協議,屬于網絡層的協議,并不需要指定端口號。ICMP的功能可以分為兩種:ICMP差錯報告與ICMP查詢。ICMP的差錯報告可以分為:目的站不可達、源站抑制、超時、參數出錯、路由重定向五種。ICMP的查詢可以分為:回送請求、時間戳請求、地址掩碼請求、路由器查詢四種[1]。
3 ICMP數據包的結構
ICMP數據包結構包括ICMP頭部和數據兩部分。其中,ICMP頭部長度為4個字節,數據部分的長度可變,其內容由ICMP包的類型來決定[2]。ICMP的數據包頭部包括下面幾種信息:
(1)類型:表示ICMP包的基本類型,其長度為8位。采用不同的數值代表相應的類型,如:3代表目的站不可達,4代表源站抑制,11代表超時等,都是ICMP差錯報告數據包;0和8代表發送請求與響應,9和10代表路由器查詢與通告等,都是ICMP的查詢數據包。
(2)代碼:表示ICMP包的子類型,字段長度為8位。采用不同值表示相應的目的不可達類型,如:0代表網絡不可達,1代表主機不可達,2代表協議不可達等。
(3)頭部校驗和:可以用于校驗ICMP報頭在傳輸過程中是否出錯。
4 網絡設備在線狀態的判定
4.1 類心跳包機制
心跳包是一種在客戶端和服務器之間定時通知對方自己當前在線狀態的一個自定義的命令字,按照一定的間隔發送,類似于動物的心跳。主要用于長時間的保活與斷線處理。
但是由于心跳包整個過程的實現需要雙方都使用對應的命令字,不適用于在整個DHCP過程中的設備狀態的判定,故而引入一個類心跳包機制:由服務器按照一定的頻率,單方面的發出ICMP探測報文,當服務器無法收到相對應的設備的ICMP回應請求時,回收對應的IP地址[5]。
4.2 設備在線時的ICMP探測結果
4.3判定機制的優化
結合ICMP數據包對整個網絡性能的影響,可以設定一個峰值x,當整個IP地址的使用數量為x時,才會使用ICMP報文去判定當前設備的在線狀態,避免整個IP地址回收機制對網絡資源的過度消耗。
按照網絡利用率一般控制為50%計算,設x為整個DHCP地址池的一半,得出優化之后的判定機制流程圖。
5 結束語
本文從ICMP協議的基本概念、主要功能和協議的原理出發,根據實際的實驗結果對利用ICMP對空閑的IP地址進行了研究。對于實現網絡資源的優化利用,應對DHCP協議攻擊和加強網絡安全有著良好的促進作用以及較好的應用價值。
參考文獻:
[1] 謝希仁. 計算機網絡[M].7版. 北京:電子工業出版社,2017.
[2] Stevens W R. TCP/IP Illustrated Volume 1: The Protocols[M]. 范建華,譯. 北京:機械工業出版社,2000.
[3] Douglas E Comer. Computer Networks and Internets[M].5th ed.Prentice Hall,2009.
[4] 杜樹杰. 基于ICMP協議的Ping主機探測 [J]. 計算機系統應用. 2009(12)
[5] 黃勤. 基于ICMP的網絡主機狀態判斷研究[J]. 科技廣場.2012(08)
【通聯編輯:代影】