摘要:為了有效的管理終端設備,通過分析DHCP(Dynamic Host Configuration Protocol)的動態配置過程和報文內容,提出了一個DHCP環境下對終端設備按照類別標識進行分類的方法。實驗證明,該方法是有效的。
關鍵詞:動態主機配置協議,終端設備,分類,網絡管理
中圖分類號:TP302文獻標識碼:A文章編號:1009-3044(2008)28-0063-02
Classificatioin of Network Ternimals on DHCP
SHAO Ye-qin,TU Zhong-qun,ZHANG Xiao-rong
(Modern Education Technology Center,Nantong University,Nantong 226001,China)
Abstract:To effectivly administrate the network terminals,this paper presents a way to classify the network terminals according to the classification fingerprint in a DHCP environment by analyzing the procedure of DHCP(Dynamic Host Configuration Protocol) and protocol messages.An experiment proves its validation.
Key words:Dynamic Host Configuration Protocol;Terminal;Classification;Network Administration
1 引言
隨著社會的不斷發展,網絡已經逐步成為人們工作和生活不可或缺的一個部分。在網絡普及的同時,網絡建設的重點逐漸由網絡物理建設轉變為對網絡的維護和管理,以形成一個快速、穩定、安全的網絡環境。在當前的情況下,如何要求終端設備安裝殺毒軟件,修補系統漏洞,以避免病毒入侵;如何限制用戶私自亂配IP,避免地址沖突;如何限制用戶使用共享上網設備,保證網絡秩序等都是網絡日常管理需要解決的問題。因此,對網絡終端設備的管理越來越成為網絡管理的一個重要任務。
DHCP作為動態的主機配置協議,由于能自動的分配和管理網絡中的IP地址,減少配置工作量而被廣泛的應用于實踐。如何管理好基于DHCP的網絡終端設備是大家關注的問題。Jenq-Haur Wang等[3]在DHCP環境下通過DHCP服務器和網絡出口處的MAC過濾器規范內網IP地址的使用。Jiang-Whai Dai等[4]通過對比DHCP的地址租賃列表和ARP表檢測局域網中的異常IP。
我們考慮到局域網中存在多種設備,如個人電腦,共享上網設備,網絡電話等,不同的設備在管理時需要采取不同的策略。為了有效的管理終端設備,基于先分類后管理的想法,本文提出了一個DHCP環境下終端設備的分類方法。
2 Dhcp協議
Dhcp (Dynamic Host Configuration Protocol)協議用于動態配置網絡中的主機。每當終端設備啟動時,向網絡中的dhcp服務器發出獲取配置的請求,服務器自動將網絡相關的配置信息,如IP地址,子網掩碼,網關等發送給終端設備,完成終端設備的配置。Dhcp的基本配置過程[1]見圖2。
通過sniffer抓包分析,我們發現,在這個動態配置的過程中,客戶端發起的DHCP DISCOVERY和DHCP REQUEST報文會包含一些廠商相關的信息選項(Vendor Information Tag),每個項都是以如下的形式出現:
■
圖1 DHCP報文的選項格式
■
圖2 DHCP的動態配置過程
所有可能選項的含義在[2]中進行了詳細的描述。在這些選項中,有一個命名為Parameter Request List的選項,它包含了一些客戶端感興趣的配置選項。其Code是55,Length為感興趣的選項數量,Value由多個字節組成,每個字節代表一個感興趣的項。圖3是一個例子,它表示某終端設備對1,28,3,43,44,46,47,6這些數字對應的選項感興趣。
■
圖3 一個DHCP DISCOVERY報文中的Vendor Information Tag實例片段
由于不同的終端設備有不同的用途和特點,因此它們感興趣的選項也有所不同,但對于同一類終端設備,這些選項基本一致,所以我們可以把這些設備感興趣的選項作為一類終端設備的標識(Fingerprint),并以此來區分不同種類的終端設備。
3 本文的方法
3.1 Microsoft Dhcp Server Callout API
為了方便對DHCP 服務器的運行進行干預,微軟提供了一個Dhcp Server Callout Api機制。DHCP服務器在啟動時提供對第三方動態鏈接庫的加載支持,并定義了動態鏈接庫的入口函數和一套函數鉤子,允許高級用戶在動態鏈接庫中通過入口函數將用戶自定義的函數注冊到DHCP服務器的函數鉤子中。在DHCP服務器運行過程中,當某個事件發生時,相應的注冊函數就被調用,并將報文相關的信息作為參數,傳遞給自定義函數,所以用戶可以通過這些自定義函數干預服務器的運行,完成自已的一些需求。本文方法利用在新的報文到達時會被觸發的DhcpNewPktHook函數鉤子來實現分類。
3.2 實現
通過前面的討論,我們知道,在DHCP DISCOVERY和DHCP REQUEST報文中包含了本文定義的客戶端標識信息(Fingerprint),而這兩個報文是客戶端發送給服務器的,當它們達到服務器時,DhcpNewPktHook就會被觸發。因此,可以為DhcpNewPktHook注冊一個自定義函數,通過自定義函數來完成設備的分類,見圖4。
為了能對設備分類,需要確定能標識各類設備的標識信息。通過對所有選項[2]含義的理解和對各類設備實際的抓包分析,我們歸納出各類設備的標識信息。然后按照如下過程區分設備的類型:
當新的報文到達DHCP服務器時,DhcpNewPktHook對應的自定義函數被調用,完成如下處理:
1) 解析當前報文的類型,如果是DHCP DISCOVERY報文,進行后續的處理,否則,不進行任何操作。
2) 解析Vendor Information Tag,得到報文中Parameter Request List選項,確定發出配置請求的終端設備的選項信息。
3) 將選項信息與預先定義的每類設備的類別標識信息進行比較,識別出設備的類別。
4) 將MAC地址等信息記錄在類別數據庫中,以便針對不同類別定義不同的策略來有效的管理終端設備。
4 實驗
為了驗證本文方法的有效性,我們用Vc6.0實現了本文的設備分類方法,并安裝在DHCP服務器上。在實驗中,我們將客戶端分成個人電腦、共享上網的NAT Router和其它三類,并定義相應的類別標識信息。在具有上萬用戶的實際網絡中,加入主要廠商的NAT Router產品,運行一段時間后,本文方法正確區分了網絡中的個人電腦和NAT Router,并未發生設備類別間的誤判。
5 結論
本文通過對DHCP動態配置過程的分析,依據不同設備所感興趣的廠商相關信息(Vendor Information Tag)的不同,總結出了設備類別標識信息(Fingerprint),并結合微軟的Microsoft Dhcp Server Callout API接口,對終端設備進行了分類。實驗結果表明,本文的方法是有效的。
參考文獻:
[1] Droms R, Dynamic Host Configuration Protocol[S].RFC 2131,IETF,March 1997.
[2]lexander S and Droms R.DHCP Options and BOOTP Vendor Extensions[S].RFC 2132,IETF,March 1997.
[3] Jenq-Haur Wang and Tzao-Lin Lee.Enhanced Intranet Management in a DHCP-enabled Environment[J].IEEE COMPSA'02,2002:893-898.
[4] Jiang-Whai Dai,Ling-Feng Chiang.A new method to detect abnormal IP address on DHCP[J].TENCON 2007-2007 IEEE Region 10 Conference,Oct.30 2007-Nov.2 2007:1-5.