前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的icmp協(xié)議主題范文,僅供參考,歡迎閱讀并收藏。
關(guān)鍵詞:網(wǎng)絡(luò)技術(shù);Ping命令;icmp協(xié)議
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)19-30028-03
The Realization of Ping Command in Virtual Network Construction
LV Jin-rong, GONG Pei-zeng, YANG Zhi-qiang
(Dept of Computer Science and Engineering, Tongji University, Shanghai 200092, China)
Abstract: Network Technology is being more and more important not only in teaching but also in practical application. The paper based on the teaching curriculum and experiment requirement and did a primary researching in Virtual Network Construction. This experiment method use the simple icons to behalf the real network equipment which been used to construct network. Also the experiment method gives a command interface line in a separated window and simulates some network commands to check the states of net. This paper realizes the Ping command and analyzes with an experiment.
Key words: network technology; Ping command; ICMP protocols
1 引言
隨著計算機技術(shù)及網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,個人、家庭或宿舍中擁有多臺計算機已變得十分的普遍,將多臺計算機組建成網(wǎng)絡(luò)可以提高資源的利用率和協(xié)同工作的效率,所以網(wǎng)絡(luò)技術(shù)無論在教學(xué)還是在現(xiàn)實生活中都變得異常的重要。
在實際學(xué)習(xí)中,由于資源設(shè)備的限制,提供完善的實驗環(huán)境存在一定的難度,所以提供一種模擬的組建網(wǎng)絡(luò)的平臺具有很強的現(xiàn)實意義。雖然在應(yīng)用中,業(yè)界有很多優(yōu)秀的成品軟件,如:虛擬機軟件vmware、virtual pc;以及網(wǎng)絡(luò)認(rèn)證考試的軟件NetSim、Dynamips等工具也可用于模擬組建網(wǎng)絡(luò)的練習(xí)工具,但是由于它們所面向的是高級的網(wǎng)絡(luò)應(yīng)用,在教學(xué)的應(yīng)用中需要更簡單直觀的平臺。
文中就是基于面向網(wǎng)絡(luò)技術(shù)教學(xué)的目的而設(shè)計的實驗平臺,提供了簡單直觀實驗的要求。文中重點實現(xiàn)了Ping命令,根據(jù)Ping命令的運行原理,對它進行了模擬實現(xiàn),相應(yīng)的其他檢查網(wǎng)絡(luò)狀態(tài)的命令,如:tracert、ipconfig、netstat等等,也可以根據(jù)各自的運行原理進行實現(xiàn)[1]。
2 Ping命令及ICMP協(xié)議簡介
2.1 Ping命令簡介
“Ping”這個名字源于聲納定位操作,最早Ping程序是由Mike Muuss編寫[2],目的是為了測試另一臺主機是否可達(dá),該程序發(fā)送一份ICMP回顯請求報文給主機,并等待返回ICMP回顯應(yīng)答。
一般來說,如果不能Ping到某臺主機,那么就不能Telnet或者FTP到那臺主機;反過來,如果不能Telnet到某臺主機,那么通常可以用Ping程序來確定問題出在哪里。但是隨著Internet安全意識的增強,Ping不通一臺主機也可能是受路由器、防火墻的影響,但在一般的應(yīng)用中可以將Ping作為檢測網(wǎng)絡(luò)連通狀況的實用工具。
■
圖1 Ping命令發(fā)送ICMP報文
2.2 ICMP協(xié)議簡介
ICMP協(xié)議(Internet Control Message Protocol, Internet控制報文協(xié)議)是TCP/IP協(xié)議族的一個子協(xié)議,該協(xié)議位于網(wǎng)絡(luò)層,提供了傳輸差錯報文、控制報文和詢問報文的功能;允許ICMP報文在IP數(shù)據(jù)報內(nèi)攜帶。封裝格式如下圖:
■
圖2 ICMP封裝在IP數(shù)據(jù)報內(nèi)部
ICMP報文有多種類型,Ping程序使用ICMP的回顯請求報文,該報文的結(jié)構(gòu)如下:前四個字節(jié)為報文頭部分,第一個字節(jié)為報文類型,第二個字節(jié)未用,第三、四個字節(jié)為報文的校驗和,第五、六個字節(jié)為報文的標(biāo)志符,第六、七個字節(jié)為報文的序號,最后為選項數(shù)據(jù)但是報文總長度不超過64KB。
ICMP回顯請求和回顯應(yīng)答報文格式如下圖:
■
圖3 ICMP回顯請求和回顯應(yīng)答報文格式
3 Ping命令執(zhí)行原理及實現(xiàn)步驟
3.1 執(zhí)行原理和步驟
在進行Ping操作時,首先從客戶機向服務(wù)器發(fā)送ICMP回顯請求報文,當(dāng)服務(wù)器接收到客戶機發(fā)送來的ICMP回顯請求報文時,服務(wù)器就會向客戶機發(fā)送ICMP回顯應(yīng)答報文,客戶機通過接收來自服務(wù)器的ICMP回顯應(yīng)答報文,從而判斷與遠(yuǎn)程主機的聯(lián)通狀態(tài)。
實現(xiàn)步驟如下:
步驟 1:根據(jù)ICMP回顯請求的報文格式,定義報文;
步驟 2:客戶機發(fā)送封裝ICMP回顯請求報文的IP數(shù)據(jù)包;
步驟 3:客戶機接收封裝ICMP應(yīng)答報文的IP數(shù)據(jù)包。
3.2 數(shù)據(jù)包的檢驗和算法
為了保證包頭和數(shù)據(jù)不被破壞,數(shù)據(jù)包在計算機網(wǎng)絡(luò)中傳輸期間使用了檢驗和(圖3中的第三四字節(jié)),ICMP的檢驗和字段覆蓋整個ICMP報文,而求ICMP的檢驗和是必須的,檢驗和保證了ICMP報頭和數(shù)據(jù)的正確性。
檢驗和算法在所有的協(xié)議中都是相同的,只是由于協(xié)議的不同,檢驗和保證的域的內(nèi)容不同。檢驗和在各種協(xié)議中所保證的各種域如下:
■
檢驗和icmp_ckSum算法如下[4]:
① 在檢驗和的域中設(shè)置為0;
② 在數(shù)據(jù)長度為奇數(shù)時,在其域中最后追加0,使其調(diào)整為以16為單位(在這種調(diào)整方法中,即使追加8位,也不包含包長度);
③ 以16位為單位,將一個偽報頭、報頭、數(shù)據(jù)部分加上1的補碼;
④ 將所求出的值:1的補碼存儲到報頭檢查和的區(qū)域中。
如果首部在傳輸?shù)倪^程中沒有發(fā)生任何差錯,那么接收方計算的結(jié)果應(yīng)該為全1;如果結(jié)果不是全1(即檢驗和錯誤),那么IP就丟棄收到的數(shù)據(jù)報,但是不生成差錯報文,由上層去發(fā)現(xiàn)丟失的數(shù)據(jù)報并進行重傳。
4 模擬命令的實驗過程及結(jié)果
4.1 實驗要完成的功能
本實驗平臺要實現(xiàn)的功能界面如圖4。
在“工作臺”窗口中,組建了一個簡單的局域網(wǎng),通過模擬網(wǎng)絡(luò)命令測試該局域網(wǎng)的網(wǎng)絡(luò)連通狀態(tài),在“命令交互”窗口中,用Ping命令從PC1到PC2,返回的結(jié)果將與實際的局域網(wǎng)中得到的結(jié)果相似。
4.2 Ping命令的Visual C#模擬實現(xiàn)
安裝Ping命令的執(zhí)行原理、步驟,其具體的實現(xiàn)過程如下:
① ICMP數(shù)據(jù)包類的定義和實現(xiàn)。
public class IcmpPacket{private Byte_type;// 報文類型
private Byte_subCode;// 字代碼類型
private UInt16 _checkSum;// 報文校驗和
private UInt16 _identifier;//識別符
private UInt16 _sequenceNumber;// 序列號
private Byte[]_data; // 數(shù)據(jù)選項 }
② 模擬Socket的SendTo()方法的SimSendTo()方法。
在執(zhí)行Ping命令時該方法將被調(diào)用,根據(jù)計算機名或虛擬的IP地址,將ICMP數(shù)據(jù)包的UInt16數(shù)組發(fā)送給目的主機進行驗證。
在該方法中增加了對計算機名的名稱的解析,可以將計算機名稱與虛擬的IP地址對應(yīng)起來,因此Ping命令后面的參數(shù)可以是計算機名也可以是具體的IP地址。
③ 模擬Socket的ReceiveFrom()方法的SimReceiveFrom()方法。
此方法在執(zhí)行Ping命令是也會被調(diào)用,該方法返回了目的主機回顯的信息,表明了目的主機是否已經(jīng)接收到了發(fā)送的數(shù)據(jù),若該方法的返回值為ICMP數(shù)據(jù)包的大小,則表明操作成功,將在終端顯示接收信息;若返回的值為-1,則在終端顯示“目的主機不可到達(dá)”的信息。
④ 檢驗和icmp_ckSum()算法的實現(xiàn)。
public static UInt16 icmp_ckSum(UInt16[] buffer)
{int cksum = 0;
for(int i=0;i
cksum += (int) buffer[i];
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >> 16);
return (UInt16)(~cksum); }
5 結(jié)束語
該文對模擬組網(wǎng)的實驗平臺進行了介紹,詳細(xì)介紹了Ping命令的原理及其工作方式,并對其模擬實現(xiàn)進行了詳細(xì)的分析。依據(jù)此實現(xiàn)方式,可以對其他的命令tracert、ipconfig、netstat等等進行實現(xiàn),以完善該實驗平臺。
當(dāng)然該平臺到目前只是對關(guān)鍵的技術(shù)進行了前期的研究和解決,很多的功能和相關(guān)的技術(shù)還要進行繼續(xù)的研究,在命令的交互體驗方面也應(yīng)該更加真實,這些都成為以后工作的重點。
參考文獻(xiàn):
[1] Jon C.Snader. 劉江林,譯. 高級TCP/IP編程[M].北京:中國電力出版社,2001.6.
[2] W.Richard Stevens.TCP/IP Illustrated, Volume 1:The Protocols.北京:機械工業(yè)出版社,2002.1.
[3] 潘愛明,譯.計算機網(wǎng)絡(luò)[M].第4版.北京:清華大學(xué)出版社,2004.8.
[4] 馮杰,閆魯生,譯.TCP/IP網(wǎng)絡(luò)實驗程序篇[M].北京:科學(xué)出版社,2003.4.
[5] Gary R.Wright,W.Richard Stevens.TCP/IP Illustrated, Volume 2:The Implementation[M].北京:機械工業(yè)出版社,2002.1.
[6] 李銘,黃靜,譯.C#2005&.NET 3.0高級編程.第5版.北京:清華大學(xué)出版社,2007.12.
[7] RFC 791-1981 INTERNET PROTOCOL[S].Network Working Group.
關(guān)鍵詞:黑客攻擊;網(wǎng)絡(luò)協(xié)議;ICMPIP
一、黑客基礎(chǔ)知識
不難想象,本文可選擇的攻擊類型范圍很廣。我之所以選取本文所討論的幾種特定攻擊,是因為它們不需要太多關(guān)于所涉及協(xié)議的知識,但仍然能有效地說明了攻擊是如何執(zhí)行的、攻擊實際上是多么簡單(一旦您知道了詳細(xì)信息)以及攻擊者所需的資源(計算和網(wǎng)絡(luò))是多么有限。盡管不可能在本文中涵蓋關(guān)于黑客攻擊的整個主題,但我已盡可能簡化基本原理,而仍然盡量多地提供必要信息,以便您理解所描述的攻擊。
二、攻擊的種類。拒絕服務(wù)攻擊:通常,黑客瞄準(zhǔn)特定系統(tǒng),闖入系統(tǒng)以便將其用于特定用途。那些系統(tǒng)的主機安全性經(jīng)常會阻止攻擊者獲得對主機的控制權(quán)。但進行拒絕服務(wù)攻擊時,攻擊者不必獲得對系統(tǒng)的控制權(quán)。其目標(biāo)只是使系統(tǒng)或網(wǎng)絡(luò)過載,這樣它們就無法繼續(xù)提供服務(wù)了。拒絕服務(wù)攻擊可以有不同的目標(biāo),包括帶寬消耗(bandwidth consumption)和資源缺乏(resource starvation)。
三、分析選定的網(wǎng)絡(luò)攻擊
(一)協(xié)議
本段討論了針對網(wǎng)際控制報文協(xié)議(ICMP)和傳輸控制協(xié)議(TCP)上的攻擊,這兩個協(xié)議都屬于網(wǎng)際協(xié)議(IP)系列。在深入研究關(guān)于這些協(xié)議的詳細(xì)信息之前,我打算先在適合于這些協(xié)議的環(huán)境中討論它們。
網(wǎng)際控制報文協(xié)議(ICMP)是IP的組成部分,但它使用某些IP服務(wù)。ICMP提供服務(wù),使主機能夠彼此交流控制信息。ICMP由IP和一些更高級別的協(xié)議使用,如傳輸控制協(xié)議(TCP)。
傳輸控制協(xié)議(TCP)是本文中討論的第三個重要協(xié)議。TCP的功能比IP更進一步,并提供兩個重要特性:連接和服務(wù)質(zhì)量。這意味著您可以在兩臺主機之間開一個虛擬通道,通過這個通道,使得所發(fā)送的包的順序及其實際傳遞都得到保障。
接下來更高的一級是應(yīng)用層協(xié)議,如Telnet和SMTP。它們都使用由TCP提供的服務(wù)。例如,當(dāng)您用Telnet連接到主機時,打開一個連接,并且您希望所有輸入這個Telnet會話的數(shù)據(jù)都以正確的順序發(fā)送到接收主機。
(二)理解IP
因為IP提供的是無連接、不可靠、最高效的(best-effort)數(shù)據(jù)報傳遞服務(wù),所以IP的使用范圍多少受到了限制。但是,它提供兩個基本功能:尋址和分段。地址(在IP數(shù)據(jù)報頭中封裝為源和目的地地址)用來將數(shù)據(jù)報傳輸?shù)狡淠康牡兀@個過程稱為路由。有兩種基本情況:
接收主機和發(fā)送主機位于同一子網(wǎng),這種情況下數(shù)據(jù)報將被直接從發(fā)送方發(fā)送到接收方。
接收主機位于不同的子網(wǎng),這種情況下發(fā)送主機將把數(shù)據(jù)報轉(zhuǎn)發(fā)到網(wǎng)關(guān)(連接兩個子網(wǎng)的IP主機),然后,如果目的地主機在一個與網(wǎng)關(guān)相連的子網(wǎng)中,則網(wǎng)關(guān)會嘗試將數(shù)據(jù)報傳遞到目的地主機。如果目的地主機不在與網(wǎng)關(guān)相連的子網(wǎng)中,網(wǎng)關(guān)將會把數(shù)據(jù)報轉(zhuǎn)發(fā)到另一個網(wǎng)關(guān)。這個過程將反復(fù)進行,直到能夠?qū)?shù)據(jù)報傳遞到其目的地主機為止。
既然我已經(jīng)介紹了基礎(chǔ)知識,現(xiàn)在可以討論個別協(xié)議了。在以下幾節(jié)中,您將找到關(guān)于ICMP和TCP的更詳細(xì)的信息以及一些使用這些協(xié)議的有趣的攻擊。
(三)使用ICMP
超時消息:每個IP數(shù)據(jù)報頭中都包含一個字段―稱為“生存時間字段”―它指出數(shù)據(jù)報在被丟棄之前還能在因特網(wǎng)上保持多久。數(shù)據(jù)報在因特網(wǎng)上保持的時間以跳躍點(hop)衡量,其中一個跳躍點表示數(shù)據(jù)報通向目的地節(jié)點路徑上的一個網(wǎng)關(guān)。當(dāng)數(shù)據(jù)報經(jīng)過網(wǎng)關(guān)轉(zhuǎn)發(fā)時,它就將生存時間字段中的值減一。如果處理數(shù)據(jù)報的網(wǎng)關(guān)測定該數(shù)據(jù)報IP頭中的生存時間字段為0,則丟棄該數(shù)據(jù)報并用超時消息通知源主機。
回應(yīng)請求和回應(yīng)應(yīng)答消息:如果主機A想知道主機B是否是活動的,則主機A會向主機B發(fā)送一條ICMP回應(yīng)請求消息。主機B將用ICMP回應(yīng)應(yīng)答消息來應(yīng)答,以表明自己是活動的。這條消息就是眾所周知的ping包。
以上這些并不是ICMP所使用的全部消息類型,但它們能使您大致了解ICMP的用途。接下來我將向您介紹兩種ICMP攻擊。
目的地不可到達(dá)攻擊
類別:拒絕服務(wù)攻擊
描述:如上所述,ICMP目的地不可到達(dá)消息向嘗試轉(zhuǎn)發(fā)消息的網(wǎng)關(guān)提供了一種工具,用來通知發(fā)送方:因為在數(shù)據(jù)報目的地地址中指定的主機不可到達(dá),所以無法傳遞該消息。
如果入侵者獲得了網(wǎng)絡(luò)10.1.0.0中一臺主機的訪問權(quán),那么,他可以廣播一條“目的地不可到達(dá)消息”,聲明網(wǎng)關(guān)G對于他所在網(wǎng)絡(luò)的所有主機是不可到達(dá)的。這將使網(wǎng)關(guān)G和網(wǎng)絡(luò)10.2.0.0暫時變得不可用,因而不可能從網(wǎng)絡(luò)10.1.0.0向網(wǎng)絡(luò)10.2.0.0傳輸任何消息。
這種攻擊背后的動機只是使網(wǎng)絡(luò)或服務(wù)暫時癱瘓。因為攻擊者不需要功能強大的機器或高速的網(wǎng)絡(luò)連接來執(zhí)行這種攻擊,所以它特別危險。
(四)Smurf攻擊
類別:拒絕服務(wù)攻擊
描述:Smurf攻擊是拒絕服務(wù)攻擊的一種非常可怕的形式,因為它具有放大效應(yīng)。Smurf攻擊利用ICMP回應(yīng)消息。如上所述,主機A每次向主機B發(fā)送回應(yīng)請求消息時,主機B都會返回回應(yīng)應(yīng)答消息以表明自己是活動的。名稱“Smurf攻擊”源自一個名為smurf的利用程序,攻擊者用該程序來執(zhí)行這種攻擊。
(五)傳輸控制協(xié)議(TCP)
在繼續(xù)討論攻擊之前,我將更詳細(xì)地討論TCP的某些方面,這些知識對于下面討論的攻擊是必需的。尤其是TCP包(稱為段)的結(jié)構(gòu)、如何在主機之間建立TCP連接和如何關(guān)閉連接。
(六)TCP包的結(jié)構(gòu)
與IP數(shù)據(jù)報類似,TCP段包含頭部分、可選(選項)部分和數(shù)據(jù)部分。現(xiàn)在,讓我們更仔細(xì)地研究一下TCP頭的某些重要字段:
源端口:分配給啟動連接的主機上虛連接的端口號。
目的地端口:目的地端口號。這也由啟動連接的主機分配,因為只有該主機知道自己“想”連接到哪里。例如,如果您打開到特定主機的Telnet連接,則目的地端口將被設(shè)置為23。
序列號和確認(rèn)號:發(fā)送方和接收方使用兩個序列號來確保包沒有丟失、沒有重復(fù)以及可以在目的地節(jié)點以正確順序重新組裝。
標(biāo)志:這個字段包含六個控制位:
URG:向接收方表明一接收完數(shù)據(jù)就進行緊急處理。
ACK:表明確認(rèn)號字段是有意義的。
PSH:表明必須迅速地將數(shù)據(jù)傳遞到接收方。
RST:表明要立即復(fù)位連接。
SYN:在需要同步序列號的情況下設(shè)置。
FIN:表明不會再有來自發(fā)送方的數(shù)據(jù)了(也就是說,連接將要關(guān)閉)。
以上是TCP頭中的重要字段,下面關(guān)于TCP連接的建立和關(guān)閉的幾節(jié)將使您更好地理解這些字段的用途。
關(guān)鍵詞:網(wǎng)絡(luò)管理協(xié)議(SNMP) 網(wǎng)絡(luò)拓?fù)渥詣影l(fā)現(xiàn)算法 網(wǎng)絡(luò)管理
隨著計算機網(wǎng)絡(luò)的普及,人們對計算機網(wǎng)絡(luò)的依賴性大大加強了。在現(xiàn)有的技術(shù)條件下,人們希望有一個更加穩(wěn)定可靠的網(wǎng)絡(luò)環(huán)境。計算機網(wǎng)絡(luò)管理系統(tǒng)就是應(yīng)這樣的需求而產(chǎn)生的。它對網(wǎng)絡(luò)上的各種設(shè)備進行管理,通過監(jiān)視和控制這些設(shè)備。及時地向管理人員報告網(wǎng)絡(luò)狀態(tài),并且簡化網(wǎng)絡(luò)故障的處理,減少故障造成的損失,提高網(wǎng)絡(luò)的服務(wù)質(zhì)量和效率。在我國,人們開始認(rèn)識到網(wǎng)絡(luò)管理的重要性。
一、網(wǎng)絡(luò)管理中傳統(tǒng)的網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法
網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn),實際上就是根據(jù)網(wǎng)絡(luò)上節(jié)點連接情況,構(gòu)造出來一個反映這種連接關(guān)系的圖。網(wǎng)絡(luò)節(jié)點可以是網(wǎng)關(guān),也可以是子網(wǎng):網(wǎng)關(guān)節(jié)點是與子網(wǎng)和其它網(wǎng)關(guān)節(jié)點相鄰的節(jié)點;子網(wǎng)節(jié)點可被認(rèn)為只與網(wǎng)關(guān)節(jié)點相鄰,至少與它的缺省網(wǎng)關(guān)相鄰。各子網(wǎng)通過各目的網(wǎng)關(guān)與其他子網(wǎng)通信,這些子網(wǎng)可以是一個局域網(wǎng),也可以是某個局域網(wǎng)的一部分,它們都連接到網(wǎng)關(guān)的一個端口上。網(wǎng)關(guān)的端口可以連接子網(wǎng),也可以同其他路由器相連。
主拓?fù)渲傅氖欠从吵鲫P(guān)鍵設(shè)備包括路由器,它們的接口和子網(wǎng)的連接關(guān)系,即路由器一路由器、路由器一子網(wǎng)、接口的關(guān)系。這些信息需要對網(wǎng)絡(luò)進行搜索而獲得:一般只需要對連接設(shè)備進行遍歷就可以得到主拓?fù)浣Y(jié)構(gòu)。當(dāng)前的網(wǎng)管軟件都是通過對網(wǎng)絡(luò)設(shè)備的MIB庫進行訪問,所以這種方法又被稱為基于SNMP的拓?fù)浒l(fā)現(xiàn)。經(jīng)過上述的遍歷過程,可以得到網(wǎng)絡(luò)拓拓?fù)鋱D的整體構(gòu)成,知道了網(wǎng)絡(luò)主干通道情況。但是子網(wǎng)內(nèi)部的具體設(shè)備以及連接狀態(tài)尚不可知。這就需要依靠子網(wǎng)發(fā)現(xiàn)來做進一步的工作。子網(wǎng)發(fā)現(xiàn)完成的任務(wù)是確定子網(wǎng)內(nèi)各網(wǎng)絡(luò)設(shè)備的狀態(tài)、類型以及網(wǎng)絡(luò)接口。
遍歷的定義是:對于無向圖,以圖中某一點為出發(fā)點,沿著邊依次訪問圖的其余節(jié)點,如果圖是連通的,則從圖的任一點出發(fā)按一定的順序沿著某些邊可以訪問圖中的所有節(jié)點,而且每個節(jié)點僅被訪問一次,這一過程稱為圖的遍歷。在網(wǎng)絡(luò)上,一個節(jié)點可以和很多的節(jié)點連接,所以當(dāng)進行網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)現(xiàn)的時候,有可能會訪問已經(jīng)被發(fā)現(xiàn)過的節(jié)點。因此,在遍歷的時候,必須對每一個節(jié)點設(shè)置一個標(biāo)志。當(dāng)節(jié)點未被訪問過時,相應(yīng)的標(biāo)志為0,否則,就置為1。
二、改進的網(wǎng)絡(luò)拓?fù)渌惴?/p>
前面基于SNMP的拓?fù)渌惴ㄔ谝欢ǔ潭壬鲜欠浅S行У模負(fù)涞乃俣纫卜浅?臁5嬖谝粋€缺陷。那就是,在一個特定的域中,所有的子網(wǎng)的信息都依賴于設(shè)備具有SNMP的特性,如果系統(tǒng)不支持SNMP,則這種方法就無能為力了。還有對網(wǎng)絡(luò)管理的不重視,或者考慮到安全方面的原因,人們往往把網(wǎng)絡(luò)設(shè)備的SNMP功能關(guān)閉,這樣就難于取得設(shè)備的MIB值,就出現(xiàn)了拓?fù)涞牟煌暾裕瑖?yán)重影響了網(wǎng)絡(luò)管理系統(tǒng)的功能。針對這一的問題,下面討論本文對上述算法的改進一基于ICMP協(xié)議的拓?fù)浒l(fā)現(xiàn)。
(一)ICMP報文的格式
ICMP被認(rèn)為是IP層的一個組成部分。它傳遞差錯報文以及其他需要注意的信息。網(wǎng)際協(xié)議CIP沒有出錯報告或出錯校正機制,它依靠網(wǎng)際控制報文協(xié)議(ICMP)模塊來報告數(shù)據(jù)處理過程,井提供管理和狀態(tài)信息。ICMP報文在傳送時被封裝在IP數(shù)據(jù)報中,使用IP協(xié)議發(fā)送,但I(xiàn)CEP不看作是高層協(xié)議的內(nèi)容。
回應(yīng)請求與應(yīng)答均以IP數(shù)據(jù)報的形式在網(wǎng)間傳輸,假如成功地收到一個應(yīng)答(應(yīng)答中的數(shù)據(jù)拷貝與請求中的任選數(shù)據(jù)完全一致),不但說明信宿機可以到達(dá),而且說明數(shù)據(jù)報傳輸系統(tǒng)的相應(yīng)部分工作正常,至少信源機和信宿機的ICMP軟件和IP軟件工作正常,請求與應(yīng)答經(jīng)過中間網(wǎng)關(guān)也在正常工作。在許多TCP/IP實現(xiàn)中,用戶命令Ping便是利用ICMP回應(yīng)請求/應(yīng)答報文測試信宿機的可到達(dá)性的。
(二)PING的實現(xiàn)
PING的主要操作是發(fā)送報文,并簡單地等待回答。PING之所以如此命名,是因為它是一個簡單的回顯協(xié)議,使用ICMP響應(yīng)請求與響應(yīng)應(yīng)答報文。PING主要由系統(tǒng)程序員用于診斷和調(diào)試。一般的,PING的功能有:
LOOP BACK PING用于驗證TCP/IP軟件的操作。
PIN G地址確定能否尋址物理網(wǎng)絡(luò)設(shè)備。
PING遠(yuǎn)程IP地址驗證能否尋址網(wǎng)絡(luò)。
關(guān)鍵詞:簡單網(wǎng)絡(luò)管理協(xié)議(SNMP) 網(wǎng)絡(luò)拓?fù)渥詣影l(fā)現(xiàn)算法 網(wǎng)絡(luò)管理
隨著計算機網(wǎng)絡(luò)的普及,人們對計算機網(wǎng)絡(luò)的依賴性大大加強了。在現(xiàn)有的技術(shù)條件下,人們希望有一個更加穩(wěn)定可靠的網(wǎng)絡(luò)環(huán)境。計算機網(wǎng)絡(luò)管理系統(tǒng)就是應(yīng)這樣的需求而產(chǎn)生的。它對網(wǎng)絡(luò)上的各種設(shè)備進行管理,通過監(jiān)視和控制這些設(shè)備。及時地向管理人員報告網(wǎng)絡(luò)狀態(tài),并且簡化網(wǎng)絡(luò)故障的處理,減少故障造成的損失,提高網(wǎng)絡(luò)的服務(wù)質(zhì)量和效率。在我國,人們開始認(rèn)識到網(wǎng)絡(luò)管理的重要性。
一、網(wǎng)絡(luò)管理中傳統(tǒng)的網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法
網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn),實際上就是根據(jù)網(wǎng)絡(luò)上節(jié)點連接情況,構(gòu)造出來一個反映這種連接關(guān)系的圖。網(wǎng)絡(luò)節(jié)點可以是網(wǎng)關(guān),也可以是子網(wǎng):網(wǎng)關(guān)節(jié)點是與子網(wǎng)和其它網(wǎng)關(guān)節(jié)點相鄰的節(jié)點;子網(wǎng)節(jié)點可被認(rèn)為只與網(wǎng)關(guān)節(jié)點相鄰,至少與它的缺省網(wǎng)關(guān)相鄰。各子網(wǎng)通過各目的網(wǎng)關(guān)與其他子網(wǎng)通信,這些子網(wǎng)可以是一個局域網(wǎng),也可以是某個局域網(wǎng)的一部分,它們都連接到網(wǎng)關(guān)的一個端口上。網(wǎng)關(guān)的端口可以連接子網(wǎng),也可以同其他路由器相連。
主拓?fù)渲傅氖欠从吵鲫P(guān)鍵設(shè)備包括路由器,它們的接口和子網(wǎng)的連接關(guān)系,即路由器一路由器、路由器一子網(wǎng)、接口的關(guān)系。這些信息需要對網(wǎng)絡(luò)進行搜索而獲得:一般只需要對連接設(shè)備進行遍歷就可以得到主拓?fù)浣Y(jié)構(gòu)。當(dāng)前的網(wǎng)管軟件都是通過對網(wǎng)絡(luò)設(shè)備的MIB庫進行訪問,所以這種方法又被稱為基于SNMP的拓?fù)浒l(fā)現(xiàn)。經(jīng)過上述的遍歷過程,可以得到網(wǎng)絡(luò)拓拓?fù)鋱D的整體構(gòu)成,知道了網(wǎng)絡(luò)主干通道情況。但是子網(wǎng)內(nèi)部的具體設(shè)備以及連接狀態(tài)尚不可知。這就需要依靠子網(wǎng)發(fā)現(xiàn)來做進一步的工作。子網(wǎng)發(fā)現(xiàn)完成的任務(wù)是確定子網(wǎng)內(nèi)各網(wǎng)絡(luò)設(shè)備的狀態(tài)、類型以及網(wǎng)絡(luò)接口。
遍歷的定義是:對于無向圖,以圖中某一點為出發(fā)點,沿著邊依次訪問圖的其余節(jié)點,如果圖是連通的,則從圖的任一點出發(fā)按一定的順序沿著某些邊可以訪問圖中的所有節(jié)點,而且每個節(jié)點僅被訪問一次,這一過程稱為圖的遍歷。在網(wǎng)絡(luò)上,一個節(jié)點可以和很多的節(jié)點連接,所以當(dāng)進行網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)現(xiàn)的時候,有可能會訪問已經(jīng)被發(fā)現(xiàn)過的節(jié)點。因此,在遍歷的時候,必須對每一個節(jié)點設(shè)置一個標(biāo)志。當(dāng)節(jié)點未被訪問過時,相應(yīng)的標(biāo)志為0,否則,就置為1。
二、改進的網(wǎng)絡(luò)拓?fù)渌惴?/p>
前面基于SNMP的拓?fù)渌惴ㄔ谝欢ǔ潭壬鲜欠浅S行У模負(fù)涞乃俣纫卜浅?臁5嬖谝粋€缺陷。那就是,在一個特定的域中,所有的子網(wǎng)的信息都依賴于設(shè)備具有SNMP的特性,如果系統(tǒng)不支持SNMP,則這種方法就無能為力了。還有對網(wǎng)絡(luò)管理的不重視,或者考慮到安全方面的原因,人們往往把網(wǎng)絡(luò)設(shè)備的SNMP功能關(guān)閉,這樣就難于取得設(shè)備的MIB值,就出現(xiàn)了拓?fù)涞牟煌暾裕瑖?yán)重影響了網(wǎng)絡(luò)管理系統(tǒng)的功能。針對這一的問題,下面討論本文對上述算法的改進一基于ICMP協(xié)議的拓?fù)浒l(fā)現(xiàn)。
(一)ICMP報文的格式
ICMP被認(rèn)為是IP層的一個組成部分。它傳遞差錯報文以及其他需要注意的信息。網(wǎng)際協(xié)議CIP沒有出錯報告或出錯校正機制,它依靠網(wǎng)際控制報文協(xié)議(ICMP)模塊來報告數(shù)據(jù)處理過程,井提供管理和狀態(tài)信息。ICMP報文在傳送時被封裝在IP數(shù)據(jù)報中,使用IP協(xié)議發(fā)送,但I(xiàn)CEP不看作是高層協(xié)議的內(nèi)容。
回應(yīng)請求與應(yīng)答均以IP數(shù)據(jù)報的形式在網(wǎng)間傳輸,假如成功地收到一個應(yīng)答(應(yīng)答中的數(shù)據(jù)拷貝與請求中的任選數(shù)據(jù)完全一致),不但說明信宿機可以到達(dá),而且說明數(shù)據(jù)報傳輸系統(tǒng)的相應(yīng)部分工作正常,至少信源機和信宿機的ICMP軟件和IP軟件工作正常,請求與應(yīng)答經(jīng)過中間網(wǎng)關(guān)也在正常工作。在許多TCP/IP實現(xiàn)中,用戶命令Ping便是利用ICMP回應(yīng)請求/應(yīng)答報文測試信宿機的可到達(dá)性的。
(二)PING的實現(xiàn)
PING的主要操作是發(fā)送報文,并簡單地等待回答。PING之所以如此命名,是因為它是一個簡單的回顯協(xié)議,使用ICMP響應(yīng)請求與響應(yīng)應(yīng)答報文。PING主要由系統(tǒng)程序員用于診斷和調(diào)試。一般的,PING的功能有:
LOOP BACK PING用于驗證TCP/IP軟件的操作。
PIN G地址確定能否尋址物理網(wǎng)絡(luò)設(shè)備。
PING遠(yuǎn)程IP地址驗證能否尋址網(wǎng)絡(luò)。
PING遠(yuǎn)程主機名驗證主機上某個服務(wù)器的操作。
實現(xiàn)PING的過程主要是:首先向目的機器發(fā)送一個響應(yīng)請求的ICMP報文,然后等待目的機器的應(yīng)答,直到超時。如收到應(yīng)答報文,貝以報告目的機器運行正常,程序退出。
(三)traceroute的實現(xiàn)
在IP頭的結(jié)構(gòu)中,存在一個ip_ttl域,即生存時間(time to_live,TTL)。TTL參數(shù)用于測量數(shù)據(jù)報在網(wǎng)際存在多長時間。網(wǎng)絡(luò)中的每個路由器都檢查該域,如果TTL值為0,路由器就拋棄該數(shù)據(jù)報。路由器還必須對它處理的每個數(shù)據(jù)報的該域進行減I操作。在實際執(zhí)行中,TTL域是一個反映跳段的值。所以,當(dāng)數(shù)據(jù)報穿過一個IP節(jié)點(網(wǎng)關(guān))時。TTL域中的值就減1。
traceroute的功能就是利用IP頭中的TTL域。開始時信源設(shè)置IP頭的TTL值為0,發(fā)送報文給信宿,第一個網(wǎng)關(guān)收到此報文后,發(fā)現(xiàn)TTL值為0,它丟棄此報文,并發(fā)送一個類型為超時的ICMP報文給信源。信源接收到此報文后對它進行解析,這樣就得到了路由中的第一個網(wǎng)關(guān)地址。然后信源發(fā)送TTL值為1的報文給信宿,第一個網(wǎng)關(guān)把它的TTL值減為0后轉(zhuǎn)發(fā)給第二個網(wǎng)關(guān),第二個網(wǎng)關(guān)發(fā)現(xiàn)報文TTL值為0,丟棄此報文并向信源發(fā)送超時ICMP報文。這樣就得到了路由中和第二個網(wǎng)關(guān)地址。如此循環(huán)下去,直到報文正確到達(dá)信宿,這樣就得到了通往信宿的路由。
(四)網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn)算法
具體實現(xiàn)的步驟:
1、于給定的IP區(qū)間,利用PING依次檢測每個IP地址,將檢測到的IP地址記錄到IP地址表中。
2、對第一步中查到的每個IP地址進行traceroute操作,記錄到這些IP地址的路由。并把每條路由中的網(wǎng)關(guān)地址也加到IP表中。
3、對IP地址表中的每個IP地址,通過發(fā)送掩碼請求報文與接收掩碼應(yīng)答報文,找到這些IP地址的子網(wǎng)掩碼。
4、根據(jù)子網(wǎng)掩碼,確定對應(yīng)每個IP地址的子網(wǎng)地址,并確定各個子網(wǎng)的網(wǎng)絡(luò)類型。把查到的各個子網(wǎng)加入地址表中。
關(guān)鍵詞:拓?fù)浒l(fā)現(xiàn);ICMP;SNMP
中圖分類號:TP393.02 文獻(xiàn)標(biāo)識碼:A文章編號:1007-9599 (2011) 20-0000-01
Network Topology Auto-discovery System Design and Implementation
Tan Jian
(Guilin University of Electronic Science and Technology Hechi College,Yizhou546300,China)
Abstract:The design is based on SNMP and other protocols of the network topology discovery algorithm,three switches and routers as gateways rapid discovery of network topology,as much as possible to find a complete network,and network overhead of the extra load and as much as possible small.
Keywords:Topology discovery;ICMP;SNMP
一、系統(tǒng)功能模塊
從功能上看,網(wǎng)絡(luò)拓?fù)渥詣影l(fā)現(xiàn)系統(tǒng)由4個模塊構(gòu)成:一)主干網(wǎng)拓?fù)浒l(fā)現(xiàn)模塊主要功能為獲取主干網(wǎng)中路由器、子網(wǎng)之間的連接信息,將路由器地址放入路由隊列,將子網(wǎng)地址放入子網(wǎng)隊列,將連接信息放入連接隊列;二)子網(wǎng)拓?fù)浒l(fā)現(xiàn)模塊主要功能是獲取所有的子網(wǎng)內(nèi)的所有主機地址、掩碼和子網(wǎng)地址;三)主干網(wǎng)拓?fù)渖赡K主要功能是在主干網(wǎng)拓?fù)洳@得了已裝有了所有路由器地址的路由隊列、裝有所有子網(wǎng)地址的子網(wǎng)隊列和裝有連接信息的連接隊列后,將信息進一步進行處理,使網(wǎng)絡(luò)設(shè)備及其連接關(guān)系以圖像的形式展示在屏幕上;四)子網(wǎng)拓?fù)渖赡K的功能是在獲得了已裝有了所有路由器地址的路由隊列、裝有所有連接信息的連接隊列和裝有所有主機地址的主機隊列后,將信息進一步處理,將指定子網(wǎng)內(nèi)的主機及其連接關(guān)系以圖像的形式展示在屏幕上。
二、研究解決途徑
本算法采用異步的方式發(fā)送和接收ICMP回應(yīng)應(yīng)答包,提高了算法的性能和效率。圖4.19表示了SNMP和ICMP的層次位置關(guān)系。
圖1:網(wǎng)絡(luò)管理的層次結(jié)構(gòu)
三、網(wǎng)絡(luò)拓?fù)渥詣影l(fā)現(xiàn)算法
(一)子網(wǎng)與路由器發(fā)現(xiàn)算法描述
1.與網(wǎng)管所在子網(wǎng)直連的路由器檢測算法。確定主機地址。以子網(wǎng)地址+1為第一個主機地址,依次加1,增加N臺機器為止,這樣得到了N個主機地址IP。
檢查該IP是否在子網(wǎng)內(nèi)。若IP&MASK=Net,在子網(wǎng)中該地址可能是子網(wǎng)中一臺主機的地址。
回應(yīng)的ICMP包如果包含在輸入的IP中,該IP地址是一臺活動的主機。
對于已檢測出來的主機,用異步方式向每臺主機的161號端口發(fā)送SNMP報文,如果有回應(yīng)則表示該主機運行了SNMP。
對于已經(jīng)檢測出的SNMP主機,檢查其MIB值sysServices,這是一個整型變量,假設(shè)其值為m。設(shè)L是ISO七層模型中的某一層,如果該主機在第i層提供了服務(wù),則Li被賦予相應(yīng)的層數(shù)(Li取值范圍為1,2,3,4,7)
i=1為物理層,如中繼器;i=2為鏈路層;i=3為網(wǎng)絡(luò)層,如路由器;i=4為傳輸層,如主機;i=7為應(yīng)用層,如應(yīng)用程序。由于路由器提供鏈路層和網(wǎng)絡(luò)層,因此m=2(2-1)+2(3-1)=6。如果某臺SNMP主機的值為6,則它是要找的路由器。
2.子網(wǎng)和路由器的連接檢測算法。通過SNMP GetNext操作獲取路由表,表中有兩項極為重要的MIB變量ipRouteType和ipRouteDest,它們分別表示路由類型和所要到達(dá)的目的網(wǎng)絡(luò)地址,如果ipRouteType的值為3,則表示目的網(wǎng)絡(luò)與路由器直接相連。因而只需找出對應(yīng)的ipRouteType的值為3的目的網(wǎng)絡(luò)地址即可。同時可利用ipAdEnt If Index作為索引,與In2terface組的If Index和If Type相結(jié)合來確定子網(wǎng)的網(wǎng)絡(luò)拓?fù)漕愋汀?/p>
(二)主機發(fā)現(xiàn)算法描述
本算法中用到兩種報文:回應(yīng)(echo)請求或回應(yīng)應(yīng)答;信宿機發(fā)回響應(yīng)的回應(yīng)應(yīng)答。下圖所示的“標(biāo)識符”和“序號”用于匹配請求與應(yīng)答。
算法如下:
把子網(wǎng)內(nèi)所有主機加入鏈表,設(shè)置一次發(fā)送和接收間的最大延遲、鏈表循環(huán)次數(shù)最大值和檢查接收棧的時間。遍歷鏈表,鏈表空則轉(zhuǎn)至a。若檢查接收棧的時間到,則轉(zhuǎn)至d。依次檢查節(jié)點;若此時時間與發(fā)包時間差值大于延遲便轉(zhuǎn)c,不然檢查下一節(jié)點。若循環(huán)次數(shù)超過最大值,從鏈表中刪除,加入不可到達(dá)主機鏈表。不然發(fā)送ICMP包,設(shè)置當(dāng)前時間為發(fā)包時間,循環(huán)計數(shù)加1。檢查接收棧是否為空,若空就返回b。否則檢查回應(yīng)包,從鏈表中刪除相應(yīng)節(jié)點,加入可達(dá)主機鏈表。
四、算法的實現(xiàn)
(一)ICMP包的發(fā)送和接收。(1)構(gòu)造ICMP包,填充ICMP包頭中某些域,如序號、標(biāo)識等;(2)用SOCK-RAW類型創(chuàng)建套接字,調(diào)用函數(shù)為socket();(3)采取異步方式,用WSAAsyncSelect()函數(shù)注冊FD-READ事件;(4)分別用sentto()和recvfrom()發(fā)送和接收ICMP包,在接收到ICMP包時還要進行檢驗和匹配操作。
(二)用SNMP++技術(shù)實現(xiàn)SNMP編程。SNMP++把復(fù)雜的WinSNMP的APl函數(shù)封裝成一個個相關(guān)的C++類,從而大大簡化了SNMP網(wǎng)絡(luò)管理軟件開發(fā)的復(fù)雜性。它把SNMP編程中的核心部分都面向?qū)ο蠡庋b起來,因此程序員無需了解SNMP底層的機制,只需了解SNMP編程的流程即可快速開發(fā)出高效的SNMP程序。
參考文獻(xiàn):
[1]胡谷雨,張巍等.簡單網(wǎng)絡(luò)管理協(xié)議教程[M].電子工業(yè)出版社,2000
LAN接口
列出支持的LAN接口類型:防火墻所能保護的網(wǎng)絡(luò)類型,如以太網(wǎng)、快速以太網(wǎng)、千兆以太網(wǎng)、ATM、令牌環(huán)及FDDI等。
支持的最大LAN接口數(shù):指防火墻所支持的局域網(wǎng)絡(luò)接口數(shù)目,也是其能夠保護的不同內(nèi)網(wǎng)數(shù)目。
服務(wù)器平臺:防火墻所運行的操作系統(tǒng)平臺(如Linux、UNIX、Win NT、專用安全操作系統(tǒng)等)。
協(xié)議支持
支持的非IP協(xié)議:除支持IP協(xié)議之外,又支持AppleTalk、DECnet、IPX及NETBEUI等協(xié)議。
建立VPN通道的協(xié)議: 構(gòu)建VPN通道所使用的協(xié)議,如密鑰分配等,主要分為IPSec、PPTP、專用協(xié)議等。
可以在VPN中使用的協(xié)議:在VPN中使用的協(xié)議,一般是指TCP/IP協(xié)議。
加密支持
支持的VPN加密標(biāo)準(zhǔn):VPN中支持的加密算法, 例如數(shù)據(jù)加密標(biāo)準(zhǔn)DES、3DES、RC4以及國內(nèi)專用的加密算法。
除了VPN之外,加密的其他用途: 加密除用于保護傳輸數(shù)據(jù)以外,還應(yīng)用于其他領(lǐng)域,如身份認(rèn)證、報文完整性認(rèn)證、密鑰分配等。
提供基于硬件的加密: 是否提供硬件加密方法,硬件加密可以提供更快的加密速度和更高的加密強度。
認(rèn)證支持
支持的認(rèn)證類型: 是指防火墻支持的身份認(rèn)證協(xié)議,一般情況下具有一個或多個認(rèn)證方案,如RADIUS、Kerberos、TACACS/TACA
CS+、 口令方式、數(shù)字證書等。防火墻能夠為本地或遠(yuǎn)程用戶提供經(jīng)過認(rèn)證與授權(quán)的對網(wǎng)絡(luò)資源的訪問,防火墻管理員必須決定客戶以何種方式通過認(rèn)證。
列出支持的認(rèn)證標(biāo)準(zhǔn)和CA互操作性:廠商可以選擇自己的認(rèn)證方案,但應(yīng)符合相應(yīng)的國際標(biāo)準(zhǔn),該項指所支持的標(biāo)準(zhǔn)認(rèn)證協(xié)議,以及實現(xiàn)的認(rèn)證協(xié)議是否與其他CA產(chǎn)品兼容互通。
支持?jǐn)?shù)字證書:是否支持?jǐn)?shù)字證書。
訪問控制
通過防火墻的包內(nèi)容設(shè)置:包過濾防火墻的過濾規(guī)則集由若干條規(guī)則組成,它應(yīng)涵蓋對所有出入防火墻的數(shù)據(jù)包的處理方法,對于沒有明確定義的數(shù)據(jù)包,應(yīng)該有一個缺省處理方法;過濾規(guī)則應(yīng)易于理解,易于編輯修改;同時應(yīng)具備一致性檢測機制,防止沖突。IP包過濾的依據(jù)主要是根據(jù)IP包頭部信息如源地址和目的地址進行過濾,如果IP頭中的協(xié)議字段表明封裝協(xié)議為ICMP、TCP或UDP,那么再根據(jù)ICMP頭信息(類型和代碼值)、TCP頭信息(源端口和目的端口)或UDP頭信息(源端口和目的端口)執(zhí)行過濾,其他的還有MAC地址過濾。應(yīng)用層協(xié)議過濾要求主要包括FTP過濾、基于RPC的應(yīng)用服務(wù)過濾、基于UDP的應(yīng)用服務(wù)過濾要求以及動態(tài)包過濾技術(shù)等。
在應(yīng)用層提供支持:指防火墻是否支持應(yīng)用層,如HTTP、FTP、TELNET、SNMP等。服務(wù)在確認(rèn)客戶端連接請求有效后接管連接,代為向服務(wù)器發(fā)出連接請求,服務(wù)器應(yīng)根據(jù)服務(wù)器的應(yīng)答,決定如何響應(yīng)客戶端請求,服務(wù)進程應(yīng)當(dāng)連接兩個連接(客戶端與服務(wù)進程間的連接、服務(wù)進程與服務(wù)器端的連接)。為確認(rèn)連接的唯一性與時效性,進程應(yīng)當(dāng)維護連接表或相關(guān)數(shù)據(jù)庫(最小字段集合),為提供認(rèn)證和授權(quán),進程應(yīng)當(dāng)維護一個擴展字段集合。
在傳輸層提供支持:指防火墻是否支持傳輸層服務(wù)。
允許FTP命令防止某些類型文件通過防火墻:指是否支持FTP文件類型過濾。
用戶操作的類型:應(yīng)用層高級功能,如HTTP、POP3 。
支持網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT):NAT指將一個IP地址域映射到另一個IP地址域,從而為終端主機提供透明路由的方法。NAT常用于私有地址域與公有地址域的轉(zhuǎn)換以解決IP地址匱乏問題。在防火墻上實現(xiàn)NAT后,可以隱藏受保護網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu),在一定程度上提高了網(wǎng)絡(luò)的安全性。
支持硬件口令、智能卡: 是否支持硬件口令、智能卡等,這是一種比較安全的身份認(rèn)證技術(shù)。
防御功能
支持病毒掃描: 是否支持防病毒功能,如掃描電子郵件附件中的DOC和ZIP文件,F(xiàn)TP中的下載或上載文件內(nèi)容,以發(fā)現(xiàn)其中包含的危險信息。
提供內(nèi)容過濾: 是否支持內(nèi)容過濾,信息內(nèi)容過濾指防火墻在HTTP、FTP、SMTP等協(xié)議層,根據(jù)過濾條件,對信息流進行控制,防火墻控制的結(jié)果是:允許通過、修改后允許通過、禁止通過、記錄日志、報警等。 過濾內(nèi)容主要指URL、HTTP攜帶的信息:Java Applet、 JavaScript、ActiveX和電子郵件中的Subject、To、From域等。
能防御的DoS攻擊類型:拒絕服務(wù)攻擊(DoS)就是攻擊者過多地占用共享資源,導(dǎo)致服務(wù)器超載或系統(tǒng)資源耗盡,而使其他用戶無法享有服務(wù)或沒有資源可用。防火墻通過控制、檢測與報警等機制,可在一定程度上防止或減輕DoS黑客攻擊。
阻止ActiveX、Java、Cookies、JavaScript侵入:屬于HTTP內(nèi)容過濾,防火墻應(yīng)該能夠從HTTP頁面剝離Java Applet、ActiveX等小程序,及從Script、PHP和ASP等代碼檢測出危險代碼或病毒,并向瀏覽器用戶報警。同時,能夠過濾用戶上載的CGI、ASP等程序,當(dāng)發(fā)現(xiàn)危險代碼時,向服務(wù)器報警。
安全特性
支持轉(zhuǎn)發(fā)和跟蹤ICMP協(xié)議(ICMP ):是否支持ICMP,ICMP為網(wǎng)間控制報文協(xié)議。
提供入侵實時警告:提供實時入侵告警功能,當(dāng)發(fā)生危險事件時,是否能夠及時報警,報警的方式可能通過郵件、呼機、手機等。
提供實時入侵防范:提供實時入侵響應(yīng)功能,當(dāng)發(fā)生入侵事件時,防火墻能夠動態(tài)響應(yīng),調(diào)整安全策略,阻擋惡意報文。
識別/記錄/防止企圖進行IP地址欺騙:IP地址欺騙指使用偽裝的IP地址作為IP包的源地址對受保護網(wǎng)絡(luò)進行攻擊,防火墻應(yīng)該能夠禁止來自外部網(wǎng)絡(luò)而源地址是內(nèi)部IP地址的數(shù)據(jù)包通過。
管理功能
通過集成策略集中管理多個防火墻:是否支持集中管理,防火墻管理是指對防火墻具有管理權(quán)限的管理員行為和防火墻運行狀態(tài)的管理,管理員的行為主要包括:通過防火墻的身份鑒別,編寫防火墻的安全規(guī)則,配置防火墻的安全參數(shù),查看防火墻的日志等。防火墻的管理一般分為本地管理、遠(yuǎn)程管理和集中管理等。
提供基于時間的訪問控制:是否提供基于時間的訪問控制。
支持SNMP監(jiān)視和配置:SNMP是簡單網(wǎng)絡(luò)管理協(xié)議的縮寫。
本地管理:是指管理員通過防火墻的Console口或防火墻提供的鍵盤和顯示器對防火墻進行配置管理。
遠(yuǎn)程管理:是指管理員通過以太網(wǎng)或防火墻提供的廣域網(wǎng)接口對防火墻進行管理,管理的通信協(xié)議可以基于FTP、TELNET、HTTP等。
支持帶寬管理:防火墻能夠根據(jù)當(dāng)前的流量動態(tài)調(diào)整某些客戶端占用的帶寬。
負(fù)載均衡特性:負(fù)載均衡可以看成動態(tài)的端口映射,它將一個外部地址的某一TCP或UDP端口映射到一組內(nèi)部地址的某一端口,負(fù)載均衡主要用于將某項服務(wù)(如HTTP)分?jǐn)偟揭唤M內(nèi)部服務(wù)器上以平衡負(fù)載。
失敗恢復(fù)特性:指支持容錯技術(shù),如雙機熱備份、故障恢復(fù),雙電源備份等。
記錄和報表功能
防火墻處理完整日志的方法:防火墻規(guī)定了對于符合條件的報日志,應(yīng)該提供日志信息管理和存儲方法。
提供自動日志掃描:指防火墻是否具有日志的自動分析和掃描功能,這可以獲得更詳細(xì)的統(tǒng)計結(jié)果,達(dá)到事后分析、亡羊補牢的目的。
提供自動報表、日志報告書寫器:防火墻實現(xiàn)的一種輸出方式,提供自動報表和日志報告功能。
警告通知機制:防火墻應(yīng)提供告警機制,在檢測到入侵網(wǎng)絡(luò)以及設(shè)備運轉(zhuǎn)異常情況時,通過告警來通知管理員采取必要的措施,包括E-mail、呼機、手機等。
提供簡要報表(按照用戶ID或IP 地址):防火墻實現(xiàn)的一種輸出方式,按要求提供報表分類打印。
關(guān)鍵詞:包過濾;訪問控制列表;防火墻
中圖分類號:TN915.08 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 19-0000-02
隨著網(wǎng)絡(luò)的迅速發(fā)展,各種各樣的網(wǎng)絡(luò)軟件也隨之出現(xiàn),人們的生活和學(xué)習(xí)對網(wǎng)絡(luò)的依賴也越來越多,但網(wǎng)絡(luò)安全問題也接踵而來。防火墻是一種非常有效的網(wǎng)絡(luò)安全模型,通過它可以隔離風(fēng)險區(qū)域和安全區(qū)域的連接,同時不會妨礙人們對風(fēng)險區(qū)域的訪問,因此防火墻已經(jīng)成為世界上用的最多的網(wǎng)絡(luò)安全產(chǎn)品之一。包過濾技術(shù)是防火墻最基本的實現(xiàn)技術(shù),它具有通用、廉價、有效等特點。在不增加軟、硬件投資的情況下,利用路由器的訪問控制列表來設(shè)置包過濾放火墻,可以實現(xiàn)防火墻的大部分功能,是一種增強網(wǎng)絡(luò)安全的行之有效的方法。
1 包過濾技術(shù)基本原理
在網(wǎng)絡(luò)中,所有的信息傳輸都是以包的方式來實現(xiàn)的。包過濾是指對通過網(wǎng)絡(luò)的數(shù)據(jù)包進行 過濾操作,只有滿足條件的數(shù)據(jù)包才能通過網(wǎng)絡(luò),包過濾設(shè)備可以是路由器、網(wǎng)橋或計算機 ,通常是包過濾路由器。
包過濾防火墻一般作用在網(wǎng)絡(luò)層(IP層),故也稱網(wǎng)絡(luò)層防火墻(Network Lev Firewall)或IP過濾器(IP filters)。數(shù)據(jù)包過濾(Packet Filtering)是指在網(wǎng)絡(luò)層對數(shù)據(jù)包進行分析、選擇。通過檢查數(shù)據(jù)流中每一個數(shù)據(jù)包的源IP地址、目的IP地址、源端口號、目的端口號、協(xié)議類型等因素或它們的組合來確定是否允許該數(shù)據(jù)包通過。防火墻檢查每一條規(guī)則直至發(fā)現(xiàn)包中的信息與某規(guī)則相符。如果沒有一條規(guī)則能符合,防火墻就會使用默認(rèn)規(guī)則。在包過濾防火墻中,廣泛使用ACL(Access Control List,訪問控制列表)來實現(xiàn)數(shù)據(jù)識別,流經(jīng)包過濾防火墻的數(shù)據(jù)與ACL定義的規(guī)則進行匹配,并決定是轉(zhuǎn)發(fā)還是丟棄這些數(shù)據(jù)包。
2 ACL訪問控制列表
訪問控制列表是為了對路由器或者防火墻處理的流量進行過濾而建立的規(guī)則,它在改善網(wǎng)絡(luò)性能和加強網(wǎng)絡(luò)安全等方面已經(jīng)發(fā)揮出越來越重要的作用。以Cisco路由器為例,access-list(訪問列表)最基本的有兩種,分別是標(biāo)準(zhǔn)訪問列表和擴展訪問列表,二者的區(qū)別主要是前者是基于目標(biāo)地址的數(shù)據(jù)包過濾,而后者是基于目標(biāo)地址、源地址和網(wǎng)絡(luò)協(xié)議及其端口的數(shù)據(jù)包過濾。
2.1 標(biāo)準(zhǔn)訪問控制列表
標(biāo)準(zhǔn)訪問控制列表檢查路由的數(shù)據(jù)包的源地址,從而允許或拒絕基于網(wǎng)絡(luò)、子網(wǎng)或主機的IP地址的所有通信流量通過路由器的出口。當(dāng)我們要想阻止來自某一網(wǎng)絡(luò)的所有通信流量,或者充許來自某一特定網(wǎng)絡(luò)的所有通信流量,或者想要拒絕某一協(xié)議簇的所有通信流量時,可以使用標(biāo)準(zhǔn)訪問控制列表來實現(xiàn)這一目標(biāo)。
標(biāo)準(zhǔn)訪問控制列表是最簡單的ACL。它的具體格式如下:
access-list ACL號 permit|deny host ip地址
例如:access-list 10 deny host 192.168.1.1這句命令是將所有來自192.168.1.1地址的數(shù)據(jù)包丟棄。access-list 10 deny 192.168.1.0 0.0.0.255是對192.168.1.0/24這個網(wǎng)段進行過濾。
2.2 擴展訪問控制列表
擴展訪問控制列表既檢查數(shù)據(jù)包的源地址,也檢查數(shù)據(jù)包的目的地址,還檢查數(shù)據(jù)包的特定協(xié)議類型、端口號等。擴展訪問控制列表更具有靈活性和可擴充性,即可以對同一地址允許使用某些協(xié)議通信流量通過,也可以拒絕使用其他協(xié)議的流量通過。
擴展訪問列表的具體格式如下:
access-list ACL號 permit|deny protocol source 源地址 destination 目的地址 operator operan established log
例如:access-list 101 deny tcp any host 192.168.1.1 eq www這句命令是將所有主機訪問192.168.1.1這個地址網(wǎng)頁服務(wù)(WWW)TCP連接的數(shù)據(jù)包丟棄。
3 訪問控制列表的應(yīng)用
訪問控制列表的應(yīng)用領(lǐng)域很廣,包括流量控制、病毒過濾、設(shè)備管理和時間控制等方面,下面是應(yīng)用ACL保護企業(yè)內(nèi)部網(wǎng)絡(luò)安全的兩個案例。
3.1 禁止外部ICMP攻擊
ICMP協(xié)議是傳輸層的重要協(xié)議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網(wǎng)絡(luò)通不通、主機是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。在企業(yè)網(wǎng)絡(luò)中,我們希望保證正常的網(wǎng)絡(luò)通信的同時屏蔽惡意的ICMP消息,可以通過設(shè)置如下的訪問控制列表來實現(xiàn):
(1)access-list 100 permit icmp any 路由器E0接口地址 echo。允許外網(wǎng)主機可以PING通我方路由器廣域口地址,便于外網(wǎng)進行網(wǎng)絡(luò)測試。(2)access-list 100 deny icmp any any echo。禁止外網(wǎng)主機發(fā)起的任何ICMP ECHO 報文到達(dá)我方網(wǎng)絡(luò)主機,杜絕了外網(wǎng)主機發(fā)起的“端口掃描器Nmap ping操作”。(3)access-list 100 permit ip any any。允許所有的IP協(xié)議數(shù)據(jù)包通過,是保證不影響其他各種應(yīng)用。(4)access-group 100 in。端口應(yīng)用上設(shè)置在入方向進行應(yīng)用,保證了我方網(wǎng)絡(luò)主機可PING通外網(wǎng)任意主機,便于我方進行網(wǎng)絡(luò)連通性測試。
3.2 用訪問控制列表控制訪問時間
為了保證員工的上班質(zhì)量,許多企業(yè)需要對內(nèi)部機器訪問FTP服務(wù)器或者WWW服務(wù)器進行限制和管理,基于時間的ACL就比較適合這種對指定時間段或者指定服務(wù)的管理。例如在圖1所示的網(wǎng)絡(luò)環(huán)境中,只容許172.16.3.0網(wǎng)段的用戶在周末訪問172.16.4.13上的FTP資源,工作時間不能下載該FTP資源。可以利用訪問列表做以下配置。
(1)time-range softer。定義時間段名稱為workday。
(2)periodic weekend 00:00 to 23:59。定義具體時間范圍,為每周周末(6,日)的0點到23點59分。可以使用periodic weekdays定義具體的工作日。
(3)access-list 101 deny tcp any 172.16.4.13 0.0.0.0 eq ftp time-range softer。設(shè)置ACL,禁止在時間段softer范圍內(nèi)訪問172.16.4.13的FTP服務(wù)。
(4)access-list 101 permit ip any any。設(shè)置ACL,容許其他時間段和其他條件下的正常訪問。
4 ACL技術(shù)局限性分析
由于ACL是使用包過濾技術(shù)來實現(xiàn)的,過濾的依據(jù)又僅僅只是第三層和第四層包頭中的部分信息,這種技術(shù)具有一些固有的局限性,如無法識別到具體的人,無法識別到應(yīng)用內(nèi)部的權(quán)限級別等。因此,要達(dá)到端到端的權(quán)限控制目的,需要和系統(tǒng)級及應(yīng)用級的訪問權(quán)限控制結(jié)合使用。但將ACL應(yīng)用到路由器上可以在不添加任何軟硬件的條件下,起到保護內(nèi)部網(wǎng)絡(luò)安全,控制網(wǎng)絡(luò)流量以及靈活管理內(nèi)部網(wǎng)絡(luò)的作用,所以這種方法還是非常值得應(yīng)用和推廣的。
參考文獻(xiàn):
[1]Cisco網(wǎng)絡(luò)技術(shù)學(xué)院教程.北京人民郵電出版社,2004,7.
[2]諸燁.用ACL實現(xiàn)系統(tǒng)的安全訪問控制.計算機應(yīng)用與軟件,2005,3.
[3]王華麗.訪問控制列表在網(wǎng)絡(luò)安全中的應(yīng)用.電子科技,2007
[4]王芳.路由器訪問控制列表及其實現(xiàn)技術(shù)研究.計算機工程與設(shè)計.2007
關(guān)鍵詞:網(wǎng)絡(luò)管理 網(wǎng)間控制報文協(xié)議(ICMP) WBM
網(wǎng)絡(luò)管理的目的就是確保一定范圍內(nèi)的網(wǎng)絡(luò)及其網(wǎng)絡(luò)設(shè)備能夠穩(wěn)定、可靠、高效地運行,使所有的網(wǎng)絡(luò)資源處于良好的運行狀態(tài),達(dá)到用戶預(yù)期的要求。過去有一些簡單的工具用來幫助網(wǎng)管人員管理網(wǎng)絡(luò)資源,但隨著網(wǎng)絡(luò)規(guī)模的擴大和復(fù)雜度的增加,對強大易用的管理工具的需求也日益顯得迫切,管理人員需要依賴強大的工具完成各種各樣的網(wǎng)絡(luò)管理任務(wù),而網(wǎng)絡(luò)管理系統(tǒng)就是能夠?qū)崿F(xiàn)上述目的系統(tǒng)。
1 WBM 技術(shù)介紹
隨著應(yīng)用Intranet的企業(yè)的增多,同時Internet技術(shù)逐漸向Intranet的遷移,一些主要的網(wǎng)絡(luò)廠商正試圖以一種新的形式去應(yīng)用M I S 。因此就促使了W e b ( W e b - B a s e dManagement)網(wǎng)管技術(shù)的產(chǎn)生[2]。它作為一種全新的網(wǎng)絡(luò)管理模式—基于Web的網(wǎng)絡(luò)管理模式,從出現(xiàn)伊始就表現(xiàn)出強大的生命力,以其特有的靈活性、易操作性等特點贏得了許多技術(shù)專家和用戶的青睞,被譽為是“將改變用戶網(wǎng)絡(luò)管理方式的革命性網(wǎng)絡(luò)管理解決方案”。
WBM融合了Web功能與網(wǎng)管技術(shù),從而為網(wǎng)管人員提供了比傳統(tǒng)工具更強有力的能力。WBM可以允許網(wǎng)絡(luò)管理人員使用任何一種Web瀏覽器,在網(wǎng)絡(luò)任何節(jié)點上方便迅速地配置、控制以及存取網(wǎng)絡(luò)和它的各個部分。因此,他們不再只拘泥于網(wǎng)管工作站上了,并且由此能夠解決很多由于多平臺結(jié)構(gòu)產(chǎn)生的互操作性問題。WBM提供比傳統(tǒng)的命令驅(qū)動的遠(yuǎn)程登錄屏幕更直接、更易用的圖形界面,瀏覽器操作和W e b頁面對W W W用戶來講是非常熟悉的,所以WBM的結(jié)果必然是既降低了MIS全體培訓(xùn)的費用又促進了更多的用戶去利用網(wǎng)絡(luò)運行狀態(tài)信息。所以說,WBM是網(wǎng)絡(luò)管理方案的一次革命。
2 基于WBM 技術(shù)的網(wǎng)管系統(tǒng)設(shè)計
2.1 系統(tǒng)的設(shè)計目標(biāo)
在本系統(tǒng)設(shè)計階段,就定下以開發(fā)基于園區(qū)網(wǎng)、Web模式的具有自主版權(quán)的中文網(wǎng)絡(luò)管理系統(tǒng)軟件為目標(biāo),采用先進的WBM技術(shù)和高效的算法,力求在性能上可以達(dá)到國外同類產(chǎn)品的水平。
本網(wǎng)管系統(tǒng)提供基于WEB的整套網(wǎng)管解決方案。它針對分布式IP網(wǎng)絡(luò)進行有效資源管理,使用戶可以從任何地方通過WEB瀏覽器對網(wǎng)絡(luò)和設(shè)備,以及相關(guān)系統(tǒng)和服務(wù)實施應(yīng)變式管理和控制,從而保證網(wǎng)絡(luò)上的資源處于最佳運行狀態(tài),并保持網(wǎng)絡(luò)的可用性和可靠性。
2.2 系統(tǒng)的體系結(jié)構(gòu)
在系統(tǒng)設(shè)計的時候,以國外同類的先進產(chǎn)品作為參照物,同時考慮到技術(shù)發(fā)展的趨勢,在當(dāng)前的技術(shù)條件下進行設(shè)計。我們采用三層結(jié)構(gòu)的設(shè)計,融合了先進的WBM技術(shù),使系統(tǒng)能夠提供給管理員靈活簡便的管理途徑。
三層結(jié)構(gòu)的特點[2]:1)完成管理任務(wù)的軟件作為中間層以后臺進程方式實現(xiàn),實施網(wǎng)絡(luò)設(shè)備的輪詢和故障信息的收集;2)管理中間件駐留在網(wǎng)絡(luò)設(shè)備和瀏覽器之間,用戶僅需通過管理中間層的主頁存取被管設(shè)備;3)管理中間件中繼轉(zhuǎn)發(fā)管理信息并進行S N M P 和H T T P之間的協(xié)議轉(zhuǎn)換三層結(jié)構(gòu)無需對設(shè)備作任何改變。
3 網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法的設(shè)計
為了實施對網(wǎng)絡(luò)的管理,網(wǎng)管系統(tǒng)必須有一個直觀的、友好的用戶界面來幫助管理員。其中最基本的一個幫助就是把網(wǎng)絡(luò)設(shè)備的拓?fù)潢P(guān)系以圖形的方式展現(xiàn)在用戶面前,即拓?fù)浒l(fā)現(xiàn)。目前廣泛采用的拓?fù)浒l(fā)現(xiàn)算法是基于SNMP的拓?fù)浒l(fā)現(xiàn)算法。基于SNMP的拓?fù)渌惴ㄔ谝欢ǔ潭壬鲜欠浅S行У模負(fù)涞乃俣纫卜浅?臁5嬖谝粋€缺陷[3]。那就是,在一個特定的域中,所有的子網(wǎng)的信息都依賴于設(shè)備具有SNMP的特性,如果系統(tǒng)不支持SNMP,則這種方法就無能為力了。還有對網(wǎng)絡(luò)管理的不重視,或者考慮到安全方面的原因,人們往往把網(wǎng)絡(luò)設(shè)備的SNMP功能關(guān)閉,這樣就難于取得設(shè)備的M I B值,就出現(xiàn)了拓?fù)涞牟煌暾裕瑖?yán)重影響了網(wǎng)絡(luò)管理系統(tǒng)的功能。針對這一的問題,下面討論本系統(tǒng)對上述算法的改進—基于ICMP協(xié)議的拓?fù)浒l(fā)現(xiàn)。
3.1 PING和路由建立
PING的主要操作是發(fā)送報文,并簡單地等待回答。PING之所以如此命名,是因為它是一個簡單的回顯協(xié)議,使用ICMP響應(yīng)請求與響應(yīng)應(yīng)答報文。PING主要由系統(tǒng)程序員用于診斷和調(diào)試實現(xiàn)PING的過程主要是:首先向目的機器發(fā)送一個響應(yīng)請求的ICMP報文,然后等待目的機器的應(yīng)答,直到超時。如收到應(yīng)答報文,則報告目的機器運行正常,程序退出。
路由建立的功能就是利用I P 頭中的TTL域。開始時信源設(shè)置IP頭的TTL值為0,發(fā)送報文給信宿,第一個網(wǎng)關(guān)收到此報文后,發(fā)現(xiàn)TTL值為0,它丟棄此報文,并發(fā)送一個類型為超時的ICMP報文給信源。信源接收到此報文后對它進行解析,這樣就得到了路由中的第一個網(wǎng)關(guān)地址。然后信源發(fā)送TTL值為1的報文給信宿,第一個網(wǎng)關(guān)把它的TTL值減為0后轉(zhuǎn)發(fā)給第二個網(wǎng)關(guān),第二個網(wǎng)關(guān)發(fā)現(xiàn)報文TTL值為0,丟棄此報文并向信源發(fā)送超時ICMP報文。這樣就得到了路由中和第二個網(wǎng)關(guān)地址。如此循環(huán)下去,直到報文正確到達(dá)信宿,這樣就得到了通往信宿的路由。
3.2 網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn)算法具體實現(xiàn)的步驟:
(1)于給定的IP區(qū)間,利用PING依次檢測每個IP地址,將檢測到的IP地址記錄到IP地址表中。
(2)對第一步中查到的每個IP地址進行traceroute操作,記錄到這些IP地址的路由。并把每條路由中的網(wǎng)關(guān)地址也加到IP表中。(3)對IP地址表中的每個IP地址,通過發(fā)送掩碼請求報文與接收掩碼應(yīng)答報文,找到這些IP地址的子網(wǎng)掩碼。
(4)根據(jù)子網(wǎng)掩碼,確定對應(yīng)每個IP地址的子網(wǎng)地址,并確定各個子網(wǎng)的網(wǎng)絡(luò)類型。把查到的各個子網(wǎng)加入地址表中。
(5)試圖得到與IP地址表中每個IP地址對應(yīng)的域名(Domain Name),如具有相同域名,則說明同一個網(wǎng)絡(luò)設(shè)備具有多個IP地址,即具有多個網(wǎng)絡(luò)接口。
(6)根據(jù)第二步中的路由與第四步中得到的子網(wǎng),產(chǎn)生連接情況表。
4 結(jié)語
本文提出的ICMP協(xié)議的拓?fù)浒l(fā)現(xiàn)方法能夠較好的發(fā)現(xiàn)網(wǎng)絡(luò)拓?fù)洌撬枰加么罅康膸捹Y源。本系統(tǒng)進行設(shè)計時,主要考慮的是對園區(qū)網(wǎng)絡(luò)的網(wǎng)絡(luò)管理,所有的被管理設(shè)備和網(wǎng)管系統(tǒng)處于同一段網(wǎng)絡(luò)上,也就是說,系統(tǒng)可以直接到達(dá)被管理的網(wǎng)絡(luò),所以對遠(yuǎn)程的局域網(wǎng)就無能為力了。在做下一步工作的時候,可以添加系統(tǒng)對遠(yuǎn)程局域網(wǎng)絡(luò)的管理功能。
參考文獻(xiàn)
[1] 晏蒲柳.大規(guī)模智能網(wǎng)絡(luò)管理模型方法[J].計算機應(yīng)用研究.2005,03.
[2] 周楊,家海,任憲坤,王沛瑜.網(wǎng)絡(luò)管理原理與實現(xiàn)技術(shù)[M].北京:清華大學(xué)出版社.2000.
關(guān)鍵詞:IP網(wǎng)絡(luò);可用帶寬;背景流量;瓶頸帶寬
中圖分類號:TP393.01 文獻(xiàn)標(biāo)識碼:A文章編號:1007-9599 (2011) 13-0000-02
Technical Analysis of Network Bandwidth Measurement
Li Yan1,Tian Liang1,Wang Yan2
(1.School of Computer and Information Engineering,Xinxiang College,Xinxiang453003,China;2.Xinyang Vocational and Technical College,Xinyang464000,China)
Abstract:The measurement of change package of algorithms and packet/packet queue measurement algorithm theory analysis resulted in their different environments in the availability,accuracy,robustness,timeliness of analysis,indicating the existence of flaws and problems.Integration of the two types of algorithms,using transmission control protocol packets encapsulated detection algorithm to solve the Internet Control Message Protocol dependence,the use of transmission control protocol feedback mechanisms to measure the algorithm only deploy software at the sending end.
Keywords:IP network;Available bandwidth;Background traffic;Bottleneck bandwidth
一、背景
Internet對信息化的普及和發(fā)展起到了巨大的推動作用,但I(xiàn)nternet并沒有一個正規(guī)統(tǒng)一的商業(yè)模式,網(wǎng)絡(luò)也缺乏有效的管理和運營手段,存在服務(wù)質(zhì)量、信息安全和網(wǎng)絡(luò)管理等諸多問題。由于我國互聯(lián)網(wǎng)現(xiàn)階段的情況,馬上改善基礎(chǔ)設(shè)施并不現(xiàn)實,要解決以上這些難題,非常重要的一點就是能夠獲得對網(wǎng)絡(luò)狀態(tài)準(zhǔn)確、詳盡的了解,在現(xiàn)有網(wǎng)絡(luò)條件的基礎(chǔ)上,使得有效帶寬得到充分的利用。
綜上所述,在IP網(wǎng)絡(luò)中采用網(wǎng)絡(luò)瓶頸帶寬測量技術(shù)顯得尤為重要,可以實現(xiàn)[1][2]:
1.網(wǎng)絡(luò)實時監(jiān)控:在進行網(wǎng)絡(luò)測量的同時實時獲取網(wǎng)絡(luò)當(dāng)前的運行狀態(tài),了解網(wǎng)絡(luò)中的各種性能指標(biāo);在網(wǎng)絡(luò)發(fā)生異常或出現(xiàn)故障之前給出分析和預(yù)測,并向網(wǎng)絡(luò)管理員發(fā)出警報,與入侵檢測系統(tǒng)IDS、IPS更好的協(xié)同工作,避免網(wǎng)絡(luò)擁塞的出現(xiàn)和網(wǎng)絡(luò)蠕蟲病毒的侵襲。
2.網(wǎng)絡(luò)的科學(xué)規(guī)劃、優(yōu)化和合理設(shè)計:通過對網(wǎng)絡(luò)帶寬進行測量所得到的數(shù)據(jù)進行分析,獲取網(wǎng)絡(luò)流量分布、數(shù)據(jù)報文分布、協(xié)議分布等特征,對獲取的數(shù)據(jù)進行收集處理,為網(wǎng)絡(luò)的科學(xué)規(guī)劃、設(shè)計、路由策略的優(yōu)化等方面提供依據(jù)。
3.提供網(wǎng)絡(luò)增值服務(wù):通過對業(yè)務(wù)流占用網(wǎng)絡(luò)帶寬的分析、統(tǒng)計,可以獲得并分析網(wǎng)絡(luò)特征和用戶使用的偏好,進而開發(fā)和規(guī)劃新的網(wǎng)絡(luò)應(yīng)用和業(yè)務(wù)平臺,開發(fā)增值服務(wù),從而進一步滿足用戶的需求。
4.適用不同情況的資費標(biāo)準(zhǔn):通過對用戶上網(wǎng)時間、流量、網(wǎng)絡(luò)業(yè)務(wù)流等參數(shù)的數(shù)據(jù)分析,可以根據(jù)上網(wǎng)時間段、使用帶寬的容量、服務(wù)質(zhì)量等方面實行更加靈活多樣的資費標(biāo)準(zhǔn)。
二、VPS測量算法
VPS變包測量技術(shù)[3][4][5]最早由Steve Bellovin與Van Jacobson提出,用于測量鏈路的瓶頸帶寬。VPS的基本原理是在發(fā)送方發(fā)送大量的探測數(shù)據(jù)包,經(jīng)過鏈路中的路由節(jié)點到達(dá)接收方。探測包經(jīng)過路由節(jié)點時,記錄路由器收到這些數(shù)據(jù)包的響應(yīng)時間,由此計算出帶寬容量。
(一)算法理論分析。VPS測量算法在發(fā)送大小一定的若干個數(shù)據(jù)包給傳輸路徑上的路由節(jié)點時,假設(shè)發(fā)送的數(shù)據(jù)包中至少有一個數(shù)據(jù)包和產(chǎn)生的ICMP返回信息都沒有排隊時延,則實際測量的RTT只包含傳輸時延和傳播時延兩部分,那么對于給定大小為L的包,總共傳輸i跳,其最小的RTT 就可以由公式1計算得出:
(式1)
其中, 為第j跳的帶寬容量, 為數(shù)據(jù)包在鏈路j上的傳輸時延, 為到達(dá)第i跳前所產(chǎn)生的延遲, 表示為單位長度的數(shù)據(jù)包在通過鏈路j時所產(chǎn)生的時延,由于鏈路容量是物理容量,即為鏈路的吞吐量。通過發(fā)送不同大小的數(shù)據(jù)包,可通過數(shù)學(xué)原理估算出 的值。對于每一跳i,重復(fù)測量最小的RTT值,據(jù)此可由公式2估計出每跳的帶寬容量。
(式2)
VPS通過以上過程可以計算出每跳的鏈路帶寬容量,通過對數(shù)據(jù)收集比對,其中各段鏈路中容量最小的鏈路帶寬即為整條路徑的路徑帶寬容量,即如公式3所示:
(式3)
(二)影響測量精確度的原因分析。通過上面的理論分析,可以發(fā)現(xiàn),影響VPS算法測量的幾個主要因素如下:
1.探測包大小、發(fā)送頻率。探測包長度如果過小,在其還沒有到達(dá)接收方就可能被路由節(jié)點丟棄或被排隊,影響測量精度;而探測包長度如果過大,則會增加探測包本身通過鏈路時所產(chǎn)生的傳輸時延,同樣也會對測量精度產(chǎn)生影響。
2.背景流量。當(dāng)網(wǎng)絡(luò)中存在背景流量時,則探測數(shù)據(jù)包和其他業(yè)務(wù)流共享帶寬。當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞或有高優(yōu)先級的業(yè)務(wù)流存在時,探測包通過路由節(jié)點時可能會被排隊,產(chǎn)生排隊時延,由此影響RTT值的準(zhǔn)確度,進而影響最終的測量精度。
3.中間設(shè)備。當(dāng)網(wǎng)絡(luò)路徑中存在存儲轉(zhuǎn)發(fā)的二層設(shè)備時,這些二層設(shè)備會對數(shù)據(jù)包進行存儲轉(zhuǎn)發(fā),由此產(chǎn)生等待時延,可并不會發(fā)送ICMP協(xié)議的回應(yīng)報文。同樣如果網(wǎng)絡(luò)中的中間設(shè)備對ICMP協(xié)議進行過濾或限速處理的話,都會影響最終的測量精度。
4.路徑的對稱性。VPS算法主要的測量參數(shù)是路徑往返時間RTT,若探測路徑與返回路徑不一致,則所得的RTT就不是實際的路徑返回時間,由此產(chǎn)生較大的誤差。
(三)算法優(yōu)缺點分析。VPS算法屬于單端測量,即在測量時只需要在發(fā)送端部署軟件即可。基于上述的分析可以看出:算法的實現(xiàn)依賴于中間節(jié)點對ICMP協(xié)議的支持,當(dāng)中間節(jié)點對ICMP協(xié)議數(shù)據(jù)包實行丟棄或限速策略時,算法測量精度將大大下降;在測量時需要發(fā)送大量的探測包,占用網(wǎng)絡(luò)帶寬;算法是逐段測量鏈路的帶寬容量,最后對數(shù)據(jù)收集進行比對得出瓶頸帶寬,測量時間較長;后一個鏈路的測量結(jié)果要依賴于前面鏈路的測量結(jié)果,容易產(chǎn)生誤差累積。
三、PPTD包對/包隊列測量算法
包對技術(shù)最初是由Jacobson、Keshav和Bolot小組共同完成的。包對法是非常經(jīng)典的一種測量方法,可以說,目前絕大多數(shù)的帶寬測量都是對包對法的改進。
(一)算法理論分析。VPS算法需要發(fā)送探測報文等待接收方回應(yīng)后通過計算RTT時間來測量帶寬,而PPTD算法是利用數(shù)據(jù)包在傳輸過程中所形成的時間間隔來測量帶寬。發(fā)送方發(fā)送若干對數(shù)據(jù)包對給接收方,每對數(shù)據(jù)包都由兩個長度相等的背靠背數(shù)據(jù)包組成。在特定的鏈路中,兩個數(shù)據(jù)包之間的距離指兩個包在鏈路上傳輸時,最后一個比特位之間的距離。
圖1:包對測量方法原理圖
圖1描述了一個數(shù)據(jù)包對中的兩個數(shù)據(jù)包在通過鏈路i時前后的時間間隔變化情況。設(shè)數(shù)據(jù)包對的長度為L,經(jīng)過的路由跳數(shù)為h,所經(jīng)過的第i跳鏈路的帶寬為 ,則包對經(jīng)過 所需的時間間隔 。設(shè)在進入鏈路前兩數(shù)據(jù)包之間的時間間隔為 ,通過鏈路后的時間間隔為 ,可由公式4計算得出。
(式4)
數(shù)據(jù)包對在通過鏈路i時,會產(chǎn)生傳輸時延 ,當(dāng) 的值小于 時,說明兩個數(shù)據(jù)包在通過鏈路i時并沒有產(chǎn)生排隊時延,由此當(dāng)數(shù)據(jù)包離開鏈路i時, 。而當(dāng) 的值大于 ,說明數(shù)據(jù)包在通過鏈路i時,產(chǎn)生了排隊時延,由此造成包對之間的距離增大, 。
當(dāng)數(shù)據(jù)包對經(jīng)過最后一條鏈路到達(dá)接收端時總的時間間隔可由公式5計算得出。
(式5)
其中C就是這條路徑端到端的帶寬,也就是我們平常說的瓶頸帶寬。那么我們就可以通過接收端測得的 的值估算出 。
包隊列技術(shù)是包對技術(shù)的改進和擴展,將一對背靠背的數(shù)據(jù)包對擴展到多個背靠背的數(shù)據(jù)包,形成一個隊列,測量的基本思想是一致的。
(二)影響測量精確度的原因分析。通過上面的理論分析,可以發(fā)現(xiàn),影響PPTD算法測量的幾個主要因素如下:
1.背景流量。當(dāng)網(wǎng)絡(luò)中存在背景流量時,包對之間的時間間隔就不在僅僅的受傳輸時延的影響,因為背景流量的存在會造成數(shù)據(jù)包在路由設(shè)備上產(chǎn)生排隊時延,由此無法準(zhǔn)確的估算出 值的大小。
2.網(wǎng)絡(luò)擁塞造成探測包丟失。PPTD算法的實現(xiàn)是以估算背靠背數(shù)據(jù)包之間的時間間隔為基礎(chǔ)的,如果數(shù)據(jù)包對在鏈路上傳輸時,任意一個數(shù)據(jù)包對或者全部發(fā)生丟包現(xiàn)象,則PPTD就無法在進行帶寬測量。
3.數(shù)據(jù)包對的數(shù)量。通過采用包隊列的測量方法,發(fā)送多組數(shù)據(jù)包對,利用統(tǒng)計學(xué)原理來過濾掉誤差較大的測量樣本,可以減小背景流量對測量結(jié)果造成的影響,但這也不能完全解決問題。
(三)算法優(yōu)缺點分析。PPTD算法屬于雙端測量,在測量時發(fā)送方和接收方都需要部署軟件,同時還要保證時間的同步;算法只需要了解路徑的單向延遲,測量結(jié)果與路徑的對稱性無關(guān);PPTD不依賴于ICMP協(xié)議,可以在應(yīng)用層實現(xiàn);測量時發(fā)送的背靠背數(shù)據(jù)包相對較小,占用的網(wǎng)絡(luò)帶寬也相對少一些;無需了解每段鏈路的帶寬容量,測量時間短;測量時每次采用的結(jié)果之間相互獨立,互不干擾,不存在誤差積累的問題。
四、新模型的提出
在廣域網(wǎng)的測量工作中,把VPS算法和PPTD算法結(jié)合起來,取長補短,設(shè)計一種新型的測量模型。這種模型采用TCP協(xié)議作為探測數(shù)據(jù)包的封裝,這樣就可以有效地避免了VPS算法過于依賴ICMP協(xié)議而無法通過廣域網(wǎng)中有些路由器的問題,利用TCP協(xié)議三次握手的機制來收集返回信息,用以進行帶寬測量,這樣就可以解決PPTD必須采用雙端配置的問題。
但在實際的廣域網(wǎng)環(huán)境中網(wǎng)絡(luò)情況比較復(fù)雜,采用TCP協(xié)議也可能會出現(xiàn)以下問題:
1.TCP協(xié)議存在貪婪流的問題。改進方法:用慢啟動算法啟動并使傳輸速度達(dá)到極限值,然后降低增加速度,改為線性增加傳輸速度,當(dāng)探測到網(wǎng)絡(luò)中出現(xiàn)擁塞即發(fā)送數(shù)據(jù)包超時,將極限值減半,并且重新使用慢啟動算法。
2.抖動問題也是使用TCP協(xié)議不可避免要碰到的問題。改進辦法:采用大小一致的數(shù)據(jù)包,并且設(shè)定每個數(shù)據(jù)包的大小均為MTU最大傳輸單元所要求的1500字節(jié)。這樣可以使每個測量數(shù)據(jù)包的傳輸都能平衡、高效,盡可能減少傳輸過程中的排隊時間。
3.進行TCP傳輸時,窗口大小的確定。改進辦法:數(shù)據(jù)的傳輸速率主要由TCP協(xié)議的滑動窗口大小決定,設(shè)定接收窗口保持最大值狀態(tài),盡可能避免在接收方出現(xiàn)因為窗口過小而造成的丟包現(xiàn)象。
五、總結(jié)與展望
雖然本文對主流的網(wǎng)絡(luò)帶寬測量算法進行了研究,并且對其在各種不同網(wǎng)絡(luò)環(huán)境下的工作情況進行了實驗分析,但從理論分析和實驗數(shù)據(jù)的結(jié)果上可以看出目前現(xiàn)有的技術(shù)還都存在較大的缺陷。目前測量的數(shù)據(jù)相對準(zhǔn)確的都是進行瓶頸帶寬測量,而更為重要的參數(shù)可用帶寬容量一直都沒有得到較好的解決。因此,關(guān)于網(wǎng)絡(luò)帶寬測量還有很多工作要做,對兩種典型的算法進一步提煉,吸取其中值得借鑒的思想,進一步改進和完善文中最后提出的新的測量模型。
參考文獻(xiàn):
[1]劉湘輝.IP網(wǎng)絡(luò)帶寬測量的模型與算法的研究[D].[博士學(xué)位論文].長沙:國防科學(xué)技術(shù)大學(xué),2005
[2]楊帆.可用帶寬主動測量算法的研究[D].[碩士學(xué)位論文].北京:北京郵電大學(xué),2008
[3]M.Mathis,M.Allman.A Framework for Defining Empirical Bulk Transfer Capacity Metrics.RFC 3148,2001,162-198
[4]魏蔚,董亞波,魯東明,金光.低速率TCP拒絕服務(wù)攻擊的檢測響應(yīng)機制[J].浙江大學(xué)學(xué)報(工學(xué)版),2008,36(5):757-762