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