| 查看文章 |
| 【 簡(jiǎn)介 】 IP網(wǎng)絡(luò )承載能力與所提供的應用業(yè)務(wù)規模向來(lái)都是相輔相成的,一方面IP網(wǎng)絡(luò )的建設將給新應用技術(shù)的推廣提供有效的實(shí)施平臺,另一方面應用業(yè)務(wù)也會(huì )隨著(zhù)自身系統發(fā)展需要而對現有IP網(wǎng)絡(luò )提出更高的資源需求,從而推動(dòng)IP網(wǎng)絡(luò )基礎建設進(jìn)入新的建設周期。
IP網(wǎng)絡(luò )承載能力與所提供的應用業(yè)務(wù)規模向來(lái)都是相輔相成的,一方面IP網(wǎng)絡(luò )的建設將給新應用技術(shù)的推廣提供有效的實(shí)施平臺,另一方面應用業(yè)務(wù)也會(huì )隨著(zhù)自身系統發(fā)展需要而對現有IP網(wǎng)絡(luò )提出更高的資源需求,從而推動(dòng)IP網(wǎng)絡(luò )基礎建設進(jìn)入新的建設周期。在這種類(lèi)似于“雞生蛋、蛋生雞”的邏輯悖論中,另外一個(gè)問(wèn)題卻是毋庸置疑的凸現了出來(lái),那就是如何把應用業(yè)務(wù)與其所占用的IP資源(如帶寬)清晰、準確的對應起來(lái),如何保證有限的IP資源能夠被合理應用的到主要利潤業(yè)務(wù)中。 以NetFlow為代表的Flow技術(shù)正是為響應這種挑戰而出現的新型解決途徑。 什么是Flow 在最開(kāi)始,Flow是網(wǎng)絡(luò )設備廠(chǎng)商為了在網(wǎng)元設備內部提高路由轉發(fā)速度而引入的一個(gè)技術(shù)概念,其本意是將高CPU消耗的路由表軟件查詢(xún)匹配作業(yè)部分轉移到硬件實(shí)現的快速轉發(fā)模塊上(如Cisco的CEF模式)。在這種功能模式中,數據包將通過(guò)幾個(gè)給定的特征定義歸并到特定的集合中,這個(gè)集合就是Flow。每個(gè)Flow的第一個(gè)數據包除了促使該Flow記錄的產(chǎn)生以外,還要驅動(dòng)網(wǎng)元三層模塊完成路由查詢(xún)并將查詢(xún)結果同期放入Flow記錄中,而該Flow集合的后續數據包將直接在Flow的已有記錄中獲得路由轉發(fā)信息,從而提高了網(wǎng)元設備的路由轉發(fā)效率。 作為網(wǎng)元設備內部路由機制優(yōu)化的副產(chǎn)物,Flow記錄能夠提供傳統SNMP MIB無(wú)法比擬的豐富信息,因此Flow數據被廣泛用于高端網(wǎng)絡(luò )流量測量技術(shù)的支撐,以提供網(wǎng)絡(luò )監控、流量圖式分析、應用業(yè)務(wù)定位、網(wǎng)絡(luò )規劃、快速排錯、安全分析(如DDOS)、域間記帳等數據挖掘功能。 相對于會(huì )話(huà)(“Session”)而言,“Flow”具備更細致的標識特征,在傳統的TCP/IP五元組的基礎上增加了一些新的域值,至少包括以下幾個(gè)字段: -源IP地址 -目的IP地址 -源端口 -目的端口 -IP層協(xié)議類(lèi)型 -ToS服務(wù)類(lèi)型 -輸入物理端口 以上七個(gè)字段可以唯一地確定任意一個(gè)數據包屬于哪個(gè)特定的Flow,換而言之任何一個(gè)字段出現了差異都意味著(zhù)一個(gè)新Flow的發(fā)生。 在實(shí)際軟件實(shí)現中,Flow所包含的字段定義及數量將會(huì )隨著(zhù)廠(chǎng)商甚至協(xié)議版本的不同而出現變化(如包含AS信息、Next_Hop等),業(yè)界因此也相應地出現了各種不同的實(shí)現版本。而在這些不同的Flow版本中,NetFlow得益于Cisco公司在網(wǎng)絡(luò )設備行業(yè)內無(wú)與倫比的領(lǐng)袖地位而獲得最大范圍的認同。 有多少種Flow Flow的版本差異通常直觀(guān)的表現在其輸出報文格式上。目前業(yè)內常見(jiàn)的主流Flow格式大致有以下幾種: ![]() 隨著(zhù)IETF對IPFIX的標準化,網(wǎng)絡(luò )流量分析的數據采集協(xié)議也將也將逐步轉移到NetFlow V9/IPFIX標準上來(lái)。因此,下文將以NetFlow V9為例介紹Flow的詳細內容。 NetFlow的運行機制 NetFlow的運行可分解為以下幾個(gè)關(guān)鍵功能單元,包括: 3.1 Cache緩存空間 NetFlow Cache是所有活躍Flow統計信息的存儲位置,所有具備相同關(guān)鍵字段的數據包都將在該Cache相應表項中進(jìn)行數據累計,如數據包數量、字節數等。除了被稱(chēng)之為Main Cache的上述緩存之外,部分支持Aggregation機制的網(wǎng)元設備還需提供相應的聚合緩存(Aggregation Cache),最終的輸出報文將包含該聚合緩存的匯總結果,從而能夠有效降低NetFlow流量對網(wǎng)絡(luò )帶寬的占用; ![]() 3.2 可配置的Cache維護機制 一般情況下Cache空間的占用是與所監控的Flow數量呈正比的,但是當鏈路中充斥著(zhù)大量的短連接Session時(shí),Flow表項數量可能會(huì )因為沒(méi)有得到及時(shí)釋放而過(guò)多占用有限的Cache空間。為此,NetFlow提供了一種非常復雜、高效的算法以快速定位一個(gè)數據包在該Cache中的位置或判斷是否應新建表項,并且通過(guò)管理員給定的閥值進(jìn)行各類(lèi)表項的超時(shí)導出,從而及時(shí)釋放老的表項以容納新建Flow信息。 Cache表項Timed-Out操作可由以下幾項因素進(jìn)行驅動(dòng): -該表項已經(jīng)空閑了指定的時(shí)間長(cháng)度(Inactive Timer,缺省15 seconds); -長(cháng)連接會(huì )話(huà)強制超時(shí)(Active Timer,缺省30 minutes); -緩存空間耗盡所觸發(fā)的強制超時(shí); -TCP FIN/RST觸發(fā)的超時(shí)。 3.3 規范的導出報文格式 NetFlow采用了主動(dòng)式數據推送機制,當Cache表項超時(shí)后,網(wǎng)元設備中的NetFlow Agent將通過(guò)規范的報文格式將超時(shí)表項數據送往指定主機(須事前指定IP地址、協(xié)議和端口)。雖然NetFlow在設計中可以接受任何傳輸層協(xié)議作為承載協(xié)議,但在一般實(shí)現中通常采用UDP作為缺省選擇,我們平時(shí)所看到的各種Flow協(xié)議版本主要描述了這種報文導出格式的定義。 NetFlow的封裝格式分為1個(gè)Header和若干個(gè)Record: -Header:主要包括版本號、序列號、后續Record數量、系統啟動(dòng)時(shí)間等; -Record:提供對每個(gè)Flow的詳細數據記錄。 下文以NetFlow V9為例,輸出報文Header與Record整體結構如下所示: ![]() |
聯(lián)系客服