Internet/Intranet的部署和使用正在迅猛成長,并且導致了企業(yè)和消費者計算模式的重大轉變。市場已經提出了對流量統(tǒng)計和管理技術的需求,并要求這一技術能有效提供記錄網(wǎng)絡和應用資源利用率所必須的信息。為此,Cisco系統(tǒng)公司在其IOS交換體系結構中引入一種新的交換技術——NetFlow交換。NetFlow交換在虛擬局域網(wǎng)(VLAN)技術的基礎上,在同一個平臺上提供了交換和路由兩種功能。
Cisco路由和交換平臺中的NetFlow服務可提供內置在快速、最優(yōu)和CEF交換路徑之中的網(wǎng)絡數(shù)據(jù)流統(tǒng)計功能。NetFlow服務可利用網(wǎng)絡中數(shù)據(jù)流創(chuàng)造價值,并可在最大限度減小對路由器/交換機性能的影響的前提下提供詳細的數(shù)據(jù)流統(tǒng)計信息。特別是作為其交換功能的一部分,它能夠為企業(yè)提供網(wǎng)絡的容量規(guī)劃、趨勢分析以及數(shù)據(jù)優(yōu)先級等方面的信息,這些統(tǒng)計信息包括用戶、協(xié)議、端口和服務類型等。NetFlow交換可以部署在網(wǎng)絡中的任何位置,作為對現(xiàn)有尋徑基礎設施的擴展。NetFlow還可對訪問列表進行有效的處理,進而實現(xiàn)數(shù)據(jù)包過濾和安全性服務。NetFlow數(shù)據(jù)可被用于多種多樣的用途,如網(wǎng)絡管理與規(guī)劃、企業(yè)財務、基于利用率的計費以及針對市場營銷目的的數(shù)據(jù)倉庫和數(shù)據(jù)采集等。
一、NetFlow交換及其特點
NetFlow交換在網(wǎng)絡層實現(xiàn)高性能的交換,它提供一個高效的機制,可以用來處理安全訪問列表,從而不必像其他交換方式那樣,為完成同樣的任務而付出很高的性能代價。NetFlow交換識別主機之間的網(wǎng)絡流量,并在提供相關服務的同時,對網(wǎng)絡流量中的分組進行交換。在傳統(tǒng)的網(wǎng)絡交換中,每一個輸入分組是單獨處理的,路由器為每個分組進行一系列獨立的查詢,利用一系列函數(shù)去檢查訪問列表、獲取記賬數(shù)據(jù)、交換該分組。然后將它發(fā)送(即交換)到目的地。這些查詢包括確定是否采用安全訪問過濾,以及更新網(wǎng)絡統(tǒng)計計賬記錄。而在NetFlow交換中,查詢過程僅對分組流中的第一個分組進行,當一個網(wǎng)絡流被識別并確定了與其相關的服務后,那么后面所有的分組都作為該信息流的一部分,在面向連接的基礎上進行處理,這樣就繞過了訪問列表的檢查,進而依次對分組進行交換和獲取統(tǒng)計信息。
NetFlow交換中要創(chuàng)建一個信息流高速緩存,里面包含對所有活動信息流進行交換和訪問列表檢查所需要的信息,利用標準的快速交換路徑先處理信息流中的第一個分組,這樣就生成了NetFlow高速緩存,這樣每個信息流都與一個即將到來的接口端口號和要發(fā)出的接口端口號相關聯(lián),并且有一個特定的安全訪問權限和加密策略。高速緩存中還包含用于數(shù)據(jù)流統(tǒng)計的條目。隨著后面分組的交換,這些條目也不斷地更新。NetFlow高速緩存被創(chuàng)建后,那些被標識為屬于現(xiàn)有的一個信息流的分組即可以依據(jù)高速緩存信息被交換,從而繞過了安全訪問列表檢查。對于所有活動信息流,在NetFlow高速緩存中保留相應的信息。
對分組進行交換,并且一個任務接一個任務地按順序為分組提供服務。這種流線型處理分組的方式提高了網(wǎng)絡服務的能力,提高了Cisco IOS有關安全性、服務質量(QoS)和網(wǎng)絡流量計賬的服務性能。同時,NetFlow交換提供了以每個用戶和每個應用(即會話)為基礎的更有效的服務。
二、NetFlow的數(shù)據(jù)格式
NetFlow以UDP數(shù)據(jù)報文的形式輸出信息流,它有2種格式: (1)版本1格式。這是最初發(fā)布的格式; (2)版本5格式。這是后來發(fā)布的一種加強格式,它增加了邊界網(wǎng)關協(xié)議(BGP)的自治系統(tǒng)(AS)信息和信息流的序列號。
在版本1和版本5 格式中,數(shù)據(jù)報文由一個頭標信息、一個或多個信息流記錄構成。通常情況下,接收程序不管接收哪種格式,它都會分配一個足夠大的緩沖區(qū),以便數(shù)據(jù)報文到來時,可以容納下最大的數(shù)據(jù)。此外,它使用頭標信息中的版本信息來決定如何理解這些數(shù)據(jù)報文。頭標信息中的第二個字段是數(shù)據(jù)報文中記錄的個數(shù),可以用它來對記錄進行索引。
因為NetFlow輸出采用UDP協(xié)議來發(fā)送輸出的數(shù)據(jù)報文,所以可能會丟失數(shù)據(jù)。為了確定信息流輸出信息是否丟失,版本5的頭標信息格式中包含了一個信息流序列號。這個序列號等于前一個序列號加上剛剛過去的數(shù)據(jù)報文中信息流的個數(shù)。當接收到一個新的數(shù)據(jù)報文后,接收程序可以從頭標信息中的序列號中提取出預期的序列號,這樣即可以獲取丟失信息流的數(shù)目。
三、配置NetFlow交換
在一個路由器中,NetFlow交換涉及到標識分組信息流、執(zhí)行交換和處理訪問列表。它不涉及路由器之間的任何連接設置協(xié)議,也不涉及對其他任何網(wǎng)絡設備或端點工作站的連接設置協(xié)議。它也不要求對分組本身或其他任何網(wǎng)絡設備進行任何外部修改。所以,NetFlow交換對現(xiàn)有的網(wǎng)絡,包括端點工作站、應用軟件和網(wǎng)絡設備(如局域網(wǎng)交換機)是完全透明的。此外,因為NetFlow交換在每個互聯(lián)的網(wǎng)絡設備中獨立地進行,所以并不需要在網(wǎng)絡中的每個路由器中都操作它,網(wǎng)絡規(guī)劃人員可以在路由器/接口的基礎上有選擇地激活NetFlow交換(和NetFlow數(shù)據(jù)輸出),這樣就可以在特定的網(wǎng)絡位置上進行數(shù)據(jù)流交換、控制和記賬。
在一個接口上配置NetFlow時,這個接口就不再使用其他交換模式了。為了配置NetFlow交換,在接口配置模式下,利用以下面命令為IP路由啟用NetFlow交換:
ip route-cache flow
該命令的no格式可以禁用NetFlow交換,具體命令如下:
no ip route-cache flow
通常,NetFlow高速緩存的默認值可以滿足需求。然而網(wǎng)絡管理員也可以通過增加或減少高速緩存中保留的條目數(shù),來滿足信息流比率的需要。系統(tǒng)的默認值是64KB個流動高速緩存條目,每個高速緩存條目大約占用64B的存儲空間。為了在NetFlow高速緩存中自定義條目的個數(shù),在全局配置模式下,使用下面的命令即可改變NetFlow高速緩存中保留的條目的個數(shù):
ip flow-cache entries number
其中number為條目的個數(shù),范圍是1024~524288,默認值是65536。
Cisco公司的部分路由器帶有路由/交換處理器(RSP)和VIP控制器。對VIP控制器可以這樣配置:通過VIP交換接收分組,而不必每個分組都要RSP參與,這種處理稱為分散式交換,可以降低對RSP的需求。可以通過配置VIP硬件,使之進行NetFlow交換。
為了在VIP上配置分散式交換,首先要根據(jù)所使用的協(xié)議為IP路由配置路由器,然后就可以使用下面的命令,在全局配置模式下,開始配置IP分散式交換和NetFlow交換了。
interface type slot/port-adapter/port;指定接口,并且進入接口配置模式
ip route-cache distributed;在該接口中啟用IP分組的VIP分散式交換
ip route-cache flow; 指定信息流交換
當RSP或VIP進行信息流交換時,它們使用信息流高速緩存取代目的地網(wǎng)絡高速緩存來交換IP分組。信息流高速緩存使用源頭和目的地的網(wǎng)絡地址、協(xié)議以及源頭和目的地的端口號來區(qū)分各條目。
![]() |
四、管理和使用NetFlow交換的統(tǒng)計信息
通過NetFlow交換,還可以獲取豐富的統(tǒng)計信息,這些統(tǒng)計信息包括IP分組大小的分布、IP信息流交換的高速緩存信息,以及信息流信息,例如協(xié)議、總的信息流數(shù)量和每秒的信息流數(shù)量等。上述信息可以幫助網(wǎng)絡管理員分析路由器的運行情況。為了管理NetFlow交換的統(tǒng)計信息,可以在授權的可執(zhí)行模式下,利用“show ip cache flow”命令顯示NetFlow交換的綜合統(tǒng)計信息,以便網(wǎng)絡管理人員了解當前網(wǎng)絡的流量以及各種應用的數(shù)據(jù)流情況。附圖是使用該命令的輸出信息范例。 IP packet size distribution給出分組大小分布的情況(百分比),如這里的.554表明55.4%的分組數(shù)在33~64B之間;接下來的數(shù)字描述了Netflow高速緩沖區(qū)的使用情況; 后面的2個表中詳細地給出了使用各種協(xié)議的分組和當前信息流的統(tǒng)計信息。 NetFlow交換的信息還可以輸出到網(wǎng)絡管理應用程序中。為了在信息流到期時,將NetFlow高速緩存中保留的NetFlow交換的統(tǒng)計信息輸出到一個工作站中,在全局配置模式下,利用下面的命令即可:
ip flow-export ip-address udp-port version 5 [origin-as |peer-as]
在版本5中,用這條命令來配置路由器,把NetFlow高速緩存條目輸出到工作站,可以選擇指定最初的AS或同等的AS,默認值是2種AS都不輸出,這樣可以提高性能。為了保證數(shù)據(jù)來自有效的NetFlow源頭,Cisco公司建議接收程序檢查數(shù)據(jù)報文,首先檢查數(shù)據(jù)報文的大小,確定它至少可以容納版本字段和計數(shù)字段。然后,應該證實版本是有效的版本1或5,而且接收到的字節(jié)數(shù)足以容納頭標信息和對信息流記錄進行計數(shù)。 NetFlow交換的這些信息用途很廣,可以用來為企業(yè)網(wǎng)絡管理與分析提供依據(jù),為網(wǎng)絡管理員合理規(guī)劃企業(yè)的網(wǎng)絡結構、均衡網(wǎng)絡負載和優(yōu)化網(wǎng)絡性能提供參考等,為ISP提供計費根據(jù)、為診斷網(wǎng)絡入侵和查找網(wǎng)絡攻擊提供線索以及幫助企業(yè)實現(xiàn)進行數(shù)據(jù)采集等等。