霍迎秋, 彭楚風, 王露璐
(西北農林科技大學 信息工程學院,陜西 楊凌 712100)
?
·計算機技術及應用·
基于ARP的局域網主機管理系統設計與實現
霍迎秋, 彭楚風, 王露璐
(西北農林科技大學 信息工程學院,陜西 楊凌 712100)

為實施對局域網內主機的有效管理,分析了ARP協議的工作原理,設計并實現了基于ARP協議的局域網主機管理系統,給出了系統的總體設計圖,以及主要功能模塊的設計流程圖。通過測試驗證了該管理系統能夠對局域網內主機實施有效的管控,滿足局域網內主機管理的需求。
網絡訪問控制; 地址解析協議; 網絡管理; 多線程; 地址解析欺騙
網絡技術的廣泛應用給人們的工作、生活帶來便利的同時,也帶來了很多問題,如網絡的非法接入,基于網絡的應用軟件的濫用,造成有效帶寬利用率低,網絡不穩定等,影響了正常工作,降低了工作效率。因此必須對局域網內的主機進行有效管控,規范網絡的使用行為,促進網絡使用有序進行,提高工作效率。
基于SNMP協議的網絡管理方法,是主要針對路由器、交換機等網絡設備進行控制和管理,且需要在被控網絡設備上配置SNMP協議[1-3]。基于Web的網絡管理部署簡單,使用方便,但是服務器端依舊需要通過SNMP協議來與被管理設備進行通信,因為SNMP協議的安全性問題造成整個系統的不穩定[3-6]。基于NetFlow協議對路由器、交換機等網絡設備的流量進行統計和分析,以此來管理整個網絡的運行狀況,但是這種方法不能夠對局域網內主機進行管理[7-8]。因此,本文詳細分析了ARP協議的工作原理,探討了基于ARP協議對局域網主機進行管理的方法,并進行系統設計與實現。
在以太局域網中,主機間的通信是基于MAC地址進行的,而每臺主機配置的是IP地址,因此需要將IP地址轉化為相應的MAC地址[9],這個轉化的過程稱為“地址解析”,主要由地址解析協議(Address Resolution Protocol,ARP)來實現[10-11]。
ARP數據包分為請求包和應答包。在以太網上發送ARP數據包的格式如圖1所示。

圖1 以太網中ARP請求或者應答的報文格式
局域網內的每臺主機都維護一個ARP緩存表,記錄IP地址和MAC地址的對應關系[12-13]。當源主機需要與目的主機通信時,首先檢查自己緩存中的ARP表,查看目的主機IP地址對應的MAC地址。如果能夠查到相對應的MAC地址,則直接將數據包發送到這個MAC地址;如果沒有,則向本地網段發送ARP請求的廣播包,查詢此目的IP地址對應的MAC地址。目的主機接收到廣播包后,首先將發送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經存在該IP的信息,則將其覆蓋。然后向源主機發送一個 ARP響應數據包;源主機根據ARP響應數據包中的IP地址和MAC地址更新ARP緩存表,并以此MAC地址發送數據[14]。
ARP欺騙原理是通過發送欺騙性的ARP應答數據包致使接收主機收到數據包后更新其ARP緩存表,從而建立錯誤的IP與MAC對應關系[15],進而不能夠與目的主機進行通信。因此,如果某臺主機(管理機)組裝虛假的ARP應答包,其中源IP地址填寫局域網網關的IP地址,源MAC地址填寫本機的MAC地址,發送給目的主機。目的主機接收到應答包后,修改自己的ARP緩存表。接下來目的主機正常發送給網關的數據則發給了管理機。如果需要監控目的主機的上網行為,則可以對來自目的主機的數據包進行分析;如需要細化控制上網行為,則可以根據控制需求設置過濾規則,封堵部分數據后再轉發給網關;如果僅需要禁止目的主機上網,則可不予轉發[16]。基于ARP欺騙實現訪問控制的流程圖如圖2所示。
3.1 系統總體設計
詳細分析具體應用需求,設計基于ARP實現訪問控制流程圖,如圖3所示。
根據系統總體設計圖,共設計10個功能模塊:獲取網卡模塊,初始化模塊,發送ARP掃描信息模塊,接收ARP掃描應答信息模塊,主機網絡訪問控制模塊,獲取網關IP地址模塊,ARP欺騙模塊,獲取特定IP地址的MAC地址模塊,恢復模塊,關閉模塊等。為清晰表達各模塊之間的調用關系,設計關系示意圖,如圖4所示。

圖2 基于ARP欺騙實現訪問控制的原理

圖3 基于ARP實現訪問控制總體設計圖
圖中空心圓圈表示開始,實心圓圈表示結束,圓角矩形表示各個功能模塊,粗線條表示對并發進程之間的同步,帶箭頭的實線表示順序關系,實線若加上“調用”,則表示模塊之間存在調用關系。
3.2 主要功能模塊設計
給出主要功能模塊的詳細設計,如圖4所示。

圖4 功能模塊關系示意圖
3.2.1 初始化模塊
該模塊接收用戶對于網卡的選擇,然后實現網卡設備的初始化,接著創建兩個線程,一個線程執行發送ARP模塊,另外一個線程執行接收ARP模塊。詳細流程圖如圖5所示。

圖5 初始化模塊流程圖
3.2.2 發送ARP掃描信息模塊
該模塊作為發送ARP請求包的線程,基于libnet開發包實現ARP數據包構造及發送,發送對象為局域網中所有主機。詳細流程圖如圖6所示。
3.2.3 接收ARP掃描應答信息模塊
該模塊作為接收ARP請求包的線程,實現對收到的ARP應答包的接收與處理,以此統計局域網內主機的數量,記錄各主機IP地址和MAC地址信息。例如,若收到一個ARP應答則主機數增加1,且將其應打包中的IP地址與MAC地址存儲至fprintf.out文件中保存。接收掃描應答信息的時間設置為15 s。詳細流程圖,如圖7所示。

圖6 發送ARP掃描信息模塊流程圖

圖7 接收ARP掃描應答信息模塊流程圖
3.2.4 主機網絡訪問控制模塊
該模塊對于用戶設定的IP地址進行ARP欺騙,其操作是創建一個線程調用ARP欺騙模塊,并構造結構體mythread存儲該IP地址和所創建線程的句柄,最后加入thread_鏈表,以待用戶處理。流程圖見圖8。

圖8 主機網絡訪問控制模塊流程
3.2.5 恢復主機網絡訪問模塊
該模塊對于用戶設定的IP地址停止ARP訪問控制,即從thread_鏈表中找到對目的IP地址進行ARP訪問控制的線程句柄,對其進行終止操作,然后釋放句柄,最后從鏈表中刪除該節點。最后向該主機發送正確的網關ARP數據包,流程圖如圖9所示。

圖9 恢復主機網絡訪問模塊流程圖
3.2.6 ARP欺騙模塊
該模塊對用戶設定的IP地址進行ARP欺騙,即偽裝成網關發送錯誤的MAC地址給訪問控制對象,使其因無法與網關進行通信而無法上網。流程圖如圖10所示。
3.2.7 獲取特定IP地址的MAC地址模塊
該模塊被ARP欺騙模塊調用,主要功能是獲取局域網內任意指定IP地址主機的MAC地址。實現方式是從fprintf.out文件中讀取存儲進去的IP、MAC地址對,從中查找指定IP地址對應的MAC地址。流程圖如圖11所示。

圖10 ARP欺騙模塊流程圖

圖11 獲取特定IP地址的MAC地址模塊流程圖
3.3 主要功能界面設計
基于.NET平臺開發局域網主機管理系統,采用C/C++語言實現個功能模塊,顯示系統主要功能界面。系統啟動之后,在網卡列表顯示管理機的網卡設置,點擊“初始化”按鈕,對系統必要參數進行初始化,點擊“掃描”按鈕,掃描局域網內所有的主機,并顯示IP地址和MAC地址以及控制狀態,點擊“恢復”按鈕,恢復控制狀態。
本文分析了ARP協議的工作原理,基于.NET平臺設計并實現了基于ARP協議的局域網主機管理系統,給出了系統的總體詳細設計示意圖,以及主要功能模塊設計流程圖。該系統能夠很好地對以太網內的主機進行控制管理,為內部局域網的規范使用提供了強有力的工具。
[1] 牟鵬至,李 飛,羅傳軍.基于SNMP 的網絡管理系統安全方案研究[J]. 計算機工程與設計, 2010, 31(11): 3778-3806.
[2] 任小鳳,鄭 剛. 基于SNMP協議的分布式網絡性能測試與分析[J].中國測試, 2013,39(1):105-109.
[3] 楊妮妮,趙新慧,李文超,等.基于Web的SNMP網絡管理[J].微計算機信息,2006,22(2):110-112.
[4] 徐 濱.基于WEB和JAVA的網絡管理系統[J].煤炭技術,2011,30(12):273-274.
[5] 范建立.基于Web的網絡管理技術研究[J].煤炭技術,2013,32(2):2673-269.
[6] 張信杰,王旭仁,吳 剛. 分布式網絡監控系統設計與實現[J].計算機工程與設計,2010,31(17): 3797-3844.
[7] 曹建業,董永吉,冶曉隆,等. 基于NetFlow的流量統計系統的設計與實現[J].計算機工程與設計,2014,35(2):381-385.
[8] 孟曉蓓.基于NetFlow的網絡流量采集技術和應用[J].武漢理工大學學報,2009,31(23):155-158.
[9] 陸余良,張 永.ARP協議在局域網類型探測中的應用[J].計算機工程,2004(1):194-196.
[10] 王 斐,陸建德.交換網ARP 欺騙自動檢測系統的設計與實現[J].微電子學與計算機,2009(1):194-196.
[11] 謝希仁.計算機網絡[M].5版.北京:電子工業出版社,1989:119-122.
[12] 王 佳,李志蜀.基于ARP協議的攻擊原理分析[J]. 微電子學與計算機,2004,21(4):10-12.
[13] 徐智勇,吳自友,蔡 聰,等.基于Dynamic ARP Inspection的靜態MAC-IP綁定一種ARP欺騙避免解決方案[J].測控技術,2013,32(10):93-97.
[14] 李厚民. ARP攻擊原理在網管軟件中的應用[J].計算機安全,2009(10):114-116.
[15] 王 奇.以太網中ARP 欺騙原理與解決辦法[J].網絡安全技術與應用,2007(2):42-44.
[16] 李海鷹,程 灝,呂志強,等.針對ARP攻擊的網絡防御模式設計與實現[J].計算機工程,2005(5):170-171.
Local Network Host Manage System Design and Implementation Based on ARP
HUOYing-qiu,PENGChu-feng,WANGLu-lu
(College of Information Engineering, Northwest A & F University, Yangling 712100, China)
To manage the host in a local network effectively, this paper makes an analysis of the ARP protocol, and develops a local network host management system based on ARP. The overall design of the management system and flow charts of major models are provided. In addition, some functional tests are done, the result demonstrates that this management system can manage host of the local network effectively and meets the host management requirement.
network access control; ARP; network management; multithreading; ARP cheating
2014-12-10
國家自然科學基金項目(61271280);中央高校科技創新一般項目(2014YB067);大學生科技創新國家級項目(201410712095)
霍迎秋(1978-),男,河北唐山人,博士,實驗師,研究方向:計算機應、并行計算。E-mail:fallying@nwsuaf.edu.cn
TP 311
A
1006-7167(2015)08-0104-04