摘 要: 針對當前網絡中IP地址管理混亂的狀況,根據網絡管理需求,設計并實現了IP-MAC-PORT綁定系統。通過簡單網絡管理協議(SNMP)定期對路由及交換設備進行數據采集和分析,對網絡進行實時監(jiān)控,追蹤并定位出IP地址異常主機的具體位置,然后利用交換機支持端口管理的特性,實現對IP盜用者的有效網絡隔離。
關鍵詞: 簡單網絡管理協議;管理信息庫;代理
Internet的迅速發(fā)展和企業(yè)網絡系統的不斷擴展推動了基于IP協議的通信量的巨增,隨之而來的是IP地址管理問題,特別是局域網內部IP地址管理,而IP地址管理中最重要的就是網絡安全問題。影響網絡安全的因素有很多,IP盜用或地址欺騙就是其中一個常見且危害極大的因素。如果缺乏有效的管理,就會導致網絡可用性和服務質量的下降,甚至網絡的崩潰。面對這種情況,本文在研究簡單網絡管理協議SNMP(Simple Network Management Protocol)網絡管理模型的基礎上設計并實現了IPMAC綁定系統。該系統能實時監(jiān)控網絡的運行狀態(tài),能及時、準確地發(fā)現網絡中IP、MAC和端口之間的異常變動并發(fā)出報警信息,便于網絡管理人員及時處理安全隱患,提高了網絡的安全性。
1 相關概念
1.1 SNMP的管理模型
SNMP是為基于TCP/IP的多廠商異構互連網的管理而設計的。它作為工業(yè)標準,已被廣泛接受,其應用已擴展到其他協議組。
SNMP的網絡管理模型[1]由多個管理代理、至少一個管理工作站、一種通用的網絡管理協議、一個或多個管理信息庫MIB(Management Information Base)等組成[2],其模型如圖1所示。
管理者(Manager)可以是工作站、個人計算機等,它負責發(fā)出管理操作的指令,并接收來自代理的信息。
代理(Agent)駐留在被管對象中,對來自管理者的請求進行應答,并隨機為管理者報告一些重要的意外事件。
管理信息MIB是對通過網絡管理協議可以訪問信息的精確定義,通常就是被管理設備的數據庫。
網絡管理協議是管理者與代理之間通信的協議,它提供一種訪問任何廠商生產的網絡設備并獲得一系列標準值的一致性方式。
1.2 SNMP協議
SNMP是一種應用層協議,它只要求使用無連接服務的數據傳送服務,自身具有糾錯能力,因此減少了網絡負擔。SNMP的基本功能包括:監(jiān)視網絡性能、監(jiān)測并恢復網絡故障以及配置網絡設備等。SNMP的協議體系結構由SMI、MIB和SNMP本身三部分構成。SMI描述了互連網中受管對象的識別方案和結構;MIB描述了SNMP所用到的管理信息庫的結構以及其中變量的定義,SMI和MIB都是用OSI的ASN.1定義的;SNMP的MIB用于存放網絡元素的各種管理參數,SNMP本身提供在網絡管理站和被管對象之間交換管理信息的方法。
網絡管理站和被管對象之間通過發(fā)送SNMP報文來彼此通信。實現SNMP協議有兩種操作:取值和設置值。為此,SNMP協議定義了5種PDU(Protocol Data Unit)[3],即:GetRequest-PDU、GetNextRequest-PDU、SetRequest-PDU、GetReponse-PDU和Trap-PDU。其中,GetRequest-PDU用于訪問代理,并從MIB中獲得變量值;GetNextRequest-PDU取下1條MIB值,它提供了一種連續(xù)讀取MIB變量的方法;SetRequest-PDU用于設置MIB中變量的值;GetReponse-PDU用于對上述3個請求的響應;Trap-PDU用于代理報告一些異常事件,如系統重新初始化、局部鏈路失效、鏈路功能恢復以及鄰居沒有響應等。
每個SNMP報文被封裝成一個UDP數據報,并通過IP層發(fā)送出去。協議指定在161端口接收除“Trap”以外的所有報文,而在162端口接收“Trap”報文。這5種報文的操作如圖2所示。
1.3 IP冒用
IP冒用是指使用者使用未經授權的IP地址來配置網上的計算機。由于IP地址是一個協議邏輯地址,需要用戶設置并隨時修改其值,因此無法限制用戶修改本機的IP地址。如果用戶在配置或修改配置時,使用的不是合法獲得的IP地址,就形成了IP冒用。
1.4 IP-MAC捆綁技術
交換機是局域網的主要網絡設備,它工作在數據鏈路層,基于MAC地址來轉發(fā)和過濾數據包。因此,每個交換機均維護著一個與端口對應的MAC地址表。任何與交換機直接相連或處于同一廣播域的主機的MAC地址均會被保存到交換機的MAC地址表中。因此,可以在交換機上使用IP-MAC綁定,在交換機上形成一個靜態(tài)的IP-MAC對應表,以達到非法MAC無法通過交換機登錄網絡的目的。
1.5 多層B/S結構
多層B/S體系結構的優(yōu)越性體現在以下幾點:將表現與功能進一步分離,可獨立優(yōu)化各層以提高系統的可伸縮性與綜合性能;平臺通用性強,功能模塊可重用;對客戶端的要求與限制大大減低,維護與升級方便;開發(fā)過程的有限并行等。同時,中間件技術也被引進來,它是一些獨立的代碼封裝體,提供特定的服務[3]。
2 系統總體設計
2.1 設計思路
以太網交換機根據端口號與節(jié)點MAC地址的對應關系建立“端口號/MAC地址映射表”。當有幀從某端口到達交換機時,交換機的交換控制中心將根據“端口號/MAC地址映射表”的對應關系找出對應幀目的地址的輸出端口號,為輸入端口到輸出端口建立連接,這種端口之間的連接可以根據需要同時建立多條。根據以太網交換機工作原理可知,在整個網絡中,某個確定節(jié)點的MAC地址與交換機端口號的對應關系只可能出現在下列兩種情況中:(1)出現在與之直接相連的交換機的“端口號/MAC地址映射表”中,且其對應的交換機端口號必為該節(jié)點物理連接的端口號;(2)出現在與之不直接相連的交換機的“端口號/MAC地址映射表”中,則其對應的交換機端口號必為該交換機與其他交換機的級連端口上。而如果交換機的某個端口用于級連,也就是不接主機,顯然不引入安全問題,這種情況不用考慮。因此,如果在所有交換機的“端口號/MAC地址映射表”中出現兩個或兩個以上非級連端口與某個確定主機的MAC地址對應,說明必然有人使用了他人主機的MAC地址(修改了其本機的MAC地址)。也就是說,如果能夠動態(tài)獲得整個網絡中各交換機非級連端口與節(jié)點MAC的映射表,就可以發(fā)現異常MAC地址。
在TCP/IP網絡中,主機的IP地址只是主機在網絡層中的地址,不能直接用來進行通信。若要將網絡層中傳送的數據包交給目的主機,必須知道該主機的MAC地址。因此,必須在IP地址和主機MAC地址之間進行轉換。在以太網上,IP地址到MAC地址的轉換由地址轉換協議(ARP)來完成。為了找出與某個IP地址對應的MAC地址,主機要采用MAC廣播地址發(fā)送ARP請求包,帶有MAC廣播地址的幀到達本地網絡的每個網絡接口。ARP請求包基本詢問這樣一個問題“我這里擁有IP地址所對應的MAC地址是什么?”,一般只有與指定IP地址一致的主機才響應這個ARP請求,其他主機一概忽視該ARP請求。ARP請求的目標主機將發(fā)送一個數據包作為接收到的IP數據包的答復?;卮鹦枰私釧RP廣播請求包發(fā)送者的IP地址及MAC地址的聯系。為了加速IP地址解析的過程,每一個主機都有一個ARP Cache,里面保存了一些最近訪問的一些節(jié)點的IP與MAC地址的對應信息。如果能夠獲得這些IP與MAC地址的對應信息,就可以發(fā)現異常IP地址。監(jiān)聽出口路由器的ARR Cache,可以找到網絡上活動節(jié)點的IP地址和MAC地址的對應信息,但這可能會增加路由器的負擔,影響出口速度,最好能從各交換機獲取活動IP與MAC的對應信息。
通過對Internet MIB和SNMP的研究,發(fā)現MIB中的管理對象有一個IP地址翻譯實體(AT組),其MIB對象標識為iso-org-dod-internet-mgmt-mib2-at-atTable (oid=1.3.6.1.2.1.3.1.1.2)。為了進行一步了解交換機的MIB,本設計通過編程獲取了Intel Express 500T Ethernet Switch的MIB,并對此MIB進行了分析,發(fā)現交換機的每個端口均有一個IP地址翻譯實體,其對象標識為: 1.3.6.1.2.1.3.1.1.2.x(x為端口號)。定時查詢網絡上每個交換機的非級連端口的IP地址翻譯實體,便可以動態(tài)獲取各交換機端口號-主機MAC地址映射及主機IP地址-主機MAC地址映射信息。對Intel交換機MIB的進一步分析后發(fā)現,與端口工作狀態(tài)有關的MIB對象標識為1.3.6.1.2.1.2.2.1.7.x(x為端口號),該值為1時,該端口啟用,該值為2時,該端口禁用。MIB對象的命名方法[4]如圖3所示。
2.2 系統業(yè)務流程
本系統實現了以下4個業(yè)務:
(1)實時IP-MAC-PORT信息的顯示。獲取整個網絡中的實時表。實時表主要包含設備IP、MAC、上聯端口索引等信息。管理員可對某一IP地址范圍進行查詢,對已獲取的實時表可執(zhí)行同步到基準,或刪除操作。
(2)基準IP-MAC-PORT信息的顯示。該業(yè)務主要用于對基準信息的維護及管理(注:系統首次初始化時基準IP-MAC-PORT信息由實時表同步得到,并保存在數據庫中),具體包含對基準信息的查詢、修改、刪除以及設置基準的比較狀態(tài)。
(3)接口下聯設備列表顯示。用于查詢接口的實時狀態(tài)。
(4)IPMAC定位。管理員可以根據IP或MAC迅速定位設備在網絡中的具體位置。
系統整體的業(yè)務流程為:系統啟動,系統初始化并開始輪詢整個網絡的FDB和ARP信息(系統啟動后默認設置是每隔5 min輪詢一次),將獲取到的信息生成實時IP-MAC-PORT表,將實時表與基準表做差異判斷,如有不同信息則生成差異表并根據系統已設置的方式報警通知管理員,以便能及時做出處理,圖4為IPMAC系統的整體業(yè)務流程。
2.3 功能模塊設計與實現
本系統由參數設置、數據采集、數據分析、配置管理和信息發(fā)布5個模塊組成。
2.3.1 參數設置模塊
參數設置模塊用于設置和修改系統運行所需的參數,包括:數據采集的時間間隔,需要監(jiān)測的交換機非級連端口信息(每個端口信息由所在交換機的IP地址和端口號組成),發(fā)現異常對應,是否禁用發(fā)現異常的交換機端口。這些參數設置保存在文本文件(ipman.sys)中,系統運行時讀入內存。
2.3.2 數據采集模塊
數據采集模塊按預定的時間間隔從各交換機的MIB采集非級連端口的ARP Cache數據,并將采集的數據生成實時表保存在內存中,它由交換機IP地址、交換機端口號、主機IP地址、與該IP地址對應的MAC地址等信息組成。
2.3.3 數據分析模塊
當采集模塊完成某次數據采集并與各交換機斷開連接后,系統自動啟動數據分析模塊。數據分析模塊從實時表讀取采集模塊最近一次采集的數據,將每條記錄與基準表比較,判斷是否存在IP地址-MAC地址或MAC地址-交換機端口號異常對應,如存在異常對應,將異常信息生成差異表,它由差異描述、差異分類、時間、操作等數據項組成。其中,異常的類別有IP變更、新增終端和終端變更三種。如果發(fā)現異常,該模塊將向管理員發(fā)送報警電子郵件(提示聲或短信),并根據系統設置是否禁用該端口。
2.3.4 配置管理模塊
當異常排除后,網管人員可用配置管理模塊開啟某個交換機的端口,管理員也可用此模塊來對交換機端口的一些參數進行配置。
2.3.5 信息發(fā)布
采用CGI程序從差異表中讀取數據,將差異表異常信息通過IIS 4.0發(fā)布,這樣網絡管理人員可隨時隨地瀏覽查看IP地址安全管理日志。
3 系統測試
在一個擁有50多臺終端的局域網中對IPMAC綁定系統做了監(jiān)控與管理測試,該局域網中包括了各種型號的路由器、交換機、多種平臺的服務器等標準SNMP設備,測試的結果符合真實網絡運行中包含多種網絡設備的實際情況。圖5所示為系統在運行期間獲得的差異表。
從圖5可以看出,無論是網絡中新增加一個設備、把設備移到別的端口下,還是修改了設備的IP地址,系統都能及時、準確地發(fā)現并報警。這就使得網絡管理人員能及時地發(fā)現網絡中出現的異常變動,便于對可能出現的網絡安全隱患采取相應的措施。系統在運行期間是全自動的,網絡管理人員即使不在電腦旁也能通過系統發(fā)送的短信報警信息及時發(fā)現網絡的常異變動,這就極大提高了網絡的可維護性和安全性,減輕了網絡管理人員的負擔。
針對當前網絡運行和管理中存在的IP地址理管混亂、IP冒用等問題,本文在研究SNMP網絡管理模型的基礎上,仔細探討了IPMAC綁定系統的設計與實現,并通過在局域網中的使用測試得到了良好的預期效果:
(1)系統能有效地發(fā)現和阻止IP地址及MAC地址盜用,提高了網絡的安全性和管理水平。
(2)IPMAC系統具有網絡配置工作量小、用戶透明、對網絡的性能影響小等優(yōu)點。
(3)隨著計算機網絡規(guī)模不斷擴大以及復雜度的不斷提高,SNMP在提高網絡系統的可管理性、可靠性和安全性等方面將發(fā)揮越來越大的作用。
參考文獻
[1] WALDBUSSER S. RFC1757-Remote network monitoring management information base[DB/OL]. Camegie Mellon University, 1995,2.
[2] 于小紅.網絡管理軟件的選擇和應用[J].計算機應用研究,2001(2):25-28.
[3] 岑賢道,安常青.網絡管理協議及應用開發(fā)[M].北京:清華大學出版社,1999.
[4] STEVEN W R.TCP/IP詳解卷1:協議[M].北京:機械工業(yè)出版社,2008.