目 錄
NetStream技術應用背景Internet的高速發展為用戶提供了更高的帶寬,支持的業務和應用日漸增多,傳統流量統計如SNMP、端口鏡像等,由於統計流量方式不靈活或是需要投資專用服務器成本高等原因,無法滿足對網絡進行更細致的管理,需要一種新技術來更好的支持網絡流量統計。
NetStream技術是一種基於網絡流信息的統計技術,可以對網絡中的業務流量情況進行統計和分析。在網絡的接入層、彙聚層、核心層上,都可以通過部署NetStream。
NetStream技術的應用有以下幾種。
l 計費:NetStream為基於資源(如線路、帶寬、時段等)占用情況的計費提供了精細的數據。Internet服務提供商可以利用這些信息來實行靈活的計費策略,如基於時間、帶寬、應用、服務質量等。企業客戶可以使用這些信息計算部門費用或分配成本,以便有效利用資源。
l 網絡規劃:NetStream可以為網絡管理工具提供關鍵信息,比如各個AS域之間的網絡流量情況,以便優化網絡設計和規劃,實現以最小的網絡運營成本達到最佳的網絡性能和可靠性。
l 網絡監控:通過在出口部署NetStream,對連接Internet網絡的接口進行實時的流量監控,可以分析各種業務占用出口帶寬的情況。網管人員可以根據這些信息判斷網絡的運行情況,盡早發現不合理的網絡結構或是網絡中的性能瓶頸,方便網管人員規劃和分配網絡資源。
l 用戶監控和分析:通過NetStream技術可以使網絡管理者輕鬆獲取用戶使用網絡和應用資源的詳細情況,進而用於高效地規劃以及分配網絡資源,並保障網絡的安全運行。
NetStream是一項基於“流”來提供報文統計的技術。NetStream支持二層報文、IP報文(UDP、TCP、ICMP報文)和MPLS報文的統計。
l 對於IPv4報文,IPv4 NetStream會根據IPv4報文的目的IP地址、源IP地址、目的端口號、源端口號、協議號、ToS(Type of Service,服務類型)、輸入接口或輸出接口來定義流,相同的七元組標識為同一條流。
l 對於IPv6報文,IPv6 NetStream會根據IPv6報文的目的IP地址、源IP地址、目的端口號、源端口號、協議號、流量分類、流標簽、輸入接口或輸出接口來定義流,相同的七元組標識為同一條流。
l 對於MPLS報文,可以統計MPLS報文內的IPv4/IPv6(6PE情況下)信息。如果統計IP信息,此時會根據MPLS標簽棧和IP信息共同確定一條流。
一個典型的NetStream係統由NDE、NSC和NDA三部分組成。
l NDE(NetStream Data Exporter)
NDE負責對網絡流進行分析處理,提取符合條件的流進行統計,並將統計信息輸出給NDA(NetStream Data Analyzer)設備。輸出前也可對數據進行一些處理,比如聚合。配置了NetStream功能的設備在NetStream係統中擔當NDE角色。
l NSC(NetStream Collector)
NSC通常為運行於Unix或者Windows上的一個應用程序,負責解析來自NDE的報文,把統計數據收集到數據庫中,可供NDA進行解析。NSC可以采集多個NDE設備輸出的數據,對數據進行進一步的過濾和聚合。
l NDA(NetStream Data Analyzer)
NDA是一個網絡流量分析工具,它從NSC中提取統計數據,進行進一步的加工處理,生成報表,為各種業務提供依據(比如流量計費、網絡規劃,攻擊監測)。通常,NDA具有圖形化用戶界麵,使用戶可以方便地獲取、顯示和分析收集到的數據。
圖 1 NetStream係統中的設備角色
如圖 1所示,NetStream進行數據采集和分析的過程如下:
(1) 配置了NetStream功能的設備(即NDE)把采集到的關於流的詳細信息定期發送給NSC;
(2) 信息由NSC初步處理後發送給NDA;
(3) NDA對數據進行分析,以用於計費、網絡規劃等應用。
NetStream流老化是設備向NSC輸出流統計信息的一種手段。當設備啟用NetStream功能後,流統計信息首先會被存儲在設備的NetStream緩衝區中。當存儲在設備上的NetStream流信息老化後,設備會把緩衝區中的流統計信息通過指定版本的NetStream輸出報文發送給NSC。
NetStream流老化有以下三種機製:
l 按時老化
l 強製老化
l TCP的FIN和RST報文觸發老化。
按時老化分為以下兩種方式:
l 不活躍的流老化:從最後一個報文開始,該流在指定的不活躍流老化時間內沒有被采集到(即在設定的不活躍流老化時間內統計到的流數目沒有增加),那麼設備會向NSC輸出該流的統計信息,這種老化稱為不活躍的流老化。通過這種老化,可以清除設備上NetStream緩衝區中的無用表項,充分利用統計表項資源。
l 活躍的流老化:從第一個報文開始,該流在指定的活躍流老化時間內一直能被采集到。活躍時間超過設定的活躍流老化時長後,需要輸出該流的統計信息,這種老化稱為活躍的流老化。因為該流實際上還存在,所以在設備上NetStream緩衝區關於該流的統計表項本身仍然存在。這種老化方式是設備為了向NSC輸出活躍流統計信息的一種機製。
執行強製老化命令,用戶可以將NetStream緩衝區中所有流老化,並清除NetStream緩衝區信息。
對於TCP連接,當有標誌為FIN或RST的報文發送時,表示一次會話結束。因此當一條已經存在的TCP協議NetStream流中流過一條標誌為FIN或RST的報文時,可以立即老化相應的NetStream流。但是假如一條流的第一個報文就是TCP的FIN或RST報文,則會按正常的流程創建一條新流,不進行老化。
普通流輸出是指所有流的統計信息都要被統計,並且每條流的統計信息都要輸出到NSC設備。
普通流的優點是:NSC可以得到每條流的詳細統計信息。但是缺點也是很明顯的,這種方式增加了網絡帶寬和設備的CPU占有率,而且為了存儲這些信息,需要大量的存儲介質空間。並且很多情況下,用戶並不需要獲取所有流的統計信息。
(1) IPv4 NetStream聚合功能
聚合流輸出是指采用聚合流輸出功能後,設備對與聚合關鍵項完全相同的流統計信息進行彙總,從而得到對應的聚合流統計信息,並且將該聚合統計信息發送到相應的接收聚合統計信息的NSC設備。
例如,如表 1所示,發送四條TCP流,其目的地址相同、源地址不同,源端口、目的端口均為10,選擇“協議-端口聚合”方式,該聚合方式的依據為“協議號、源端口、目的端口”,因為這四條TCP流的源端口、目的端口和協議號相同,在聚合流統計表項中隻會記錄一條聚合流統計信息。設備隻將聚合統計信息發送給相應的接收聚合統計信息的NSC,由此可見,聚合的最大好處是可以減少對網絡帶寬的占用。
在目前的實現中,IPv4 NetStream聚合流輸出支持的12種方式如表 1所示。
表 1 NetStream的12種聚合方式
聚合方式 | 聚合關鍵項 |
自治係統聚合 | 源AS號、目的AS號、輸入接口索引、輸出接口索引 |
協議-端口聚合 | 協議號、源端口、目的端口 |
源前綴聚合 | 源AS號、源掩碼長度、源前綴、輸入接口索引 |
目的前綴聚合 | 目的AS號、目的掩碼長度、目的前綴、輸出接口索引 |
源和目的前綴聚合 | 源AS號、目的AS號、源掩碼長度、目的掩碼長度、源前綴、目的前綴、輸入接口索引、輸出接口索引 |
前綴端口聚合 | 源前綴、目的前綴、源掩碼長度、目的掩碼長度、ToS、協議號、源端口、目的端口、輸入接口索引、輸出接口索引 |
服務類型-自治係統聚合 | ToS、源AS號、目的AS號、輸入接口索引、輸出接口索引 |
服務類型-源前綴聚合 | ToS、源AS號、源前綴、源掩碼長度、輸入接口索引 |
服務類型-目的前綴聚合 | ToS、目的AS號、目的掩碼長度、目的前綴、輸出接口索引 |
服務類型-前綴聚合 | ToS、源AS號、源前綴、源掩碼長度、目的AS號、目的掩碼長度、目的前綴、輸入接口索引和輸出接口索引 |
服務類型-協議-端口聚合 | ToS、協議類型、源端口、目的端口、輸入接口索引、輸出接口索引 |
服務類型-BGP下一跳聚合 | ToS、BGP下一跳地址、輸出接口索引 |
(2) IPv6 NetStream聚合功能
在目前的實現中,IPv6 NetStream聚合流輸出支持的6種方式如表 2所示。
表 2 IPv6 NetStream的6種聚合方式
聚合方式 | 聚合關鍵項 |
自治係統聚合 | 源AS號、目的AS號、輸入接口索引、輸出接口索引 |
協議-端口聚合 | 協議號、源端口、目的端口 |
源前綴聚合 | 源AS號、源掩碼長度、源前綴、輸入接口索引 |
目的前綴聚合 | 目的AS號、目的掩碼長度、目的前綴、輸出接口索引 |
源和目的前綴聚合 | 源AS號、目的AS號、源掩碼長度、目的掩碼長度、源前綴、目的前綴、輸入接口索引、輸出接口索引 |
BGP下一跳聚合 | BGP下一跳地址、輸出接口索引 |
目前Netstream輸出的報文主要有5、8、9三個版本。其中版本9可以為用戶提供根據實際需求設計各種統計元素的模板,使統計信息的輸出更為靈活。
l 版本5:根據七元組產生原始的數據流,但報文格式固定,不易擴展。
l 版本8:支持聚合輸出格式,但報文格式固定,不易擴展。
l 版本9:基於模板方式,使統計信息的輸出更為靈活,可以用來靈活輸出各種組合格式的數據。版本9支持對BGP下一跳、MPLS等統計輸出。
IPv6 Netstream輸出的統計信息隻能使用版本9格式。
IPv4 NetStream可以與Sampler采樣器配合使用。通過設定適當的采樣間隔,不但減少了統計的報文數量,收集到的統計信息也可以保證基本正確地反映整個網絡流的狀況。另外,采樣還可以減小對設備轉發性能造成的影響。
IPv6 NetStream可以與ACL(Access Control List,訪問控製列表)和QoS(Quality of Service,服務質量)配合使用,NetStream隻統計符合ACL和QoS篩選出的特定報文。通過這種方式可以使NetStream對用戶關注的數據進行統計,更能滿足用戶多樣的統計要求。
NetStream無論是和ACL或是和QoS配合使用,都是為了先對數據流進行過濾,這樣NetStream就可以“隻對某些符合條件的流”進行統計。兩者方式的區別是:QoS可以更加靈活的指定流,且應用方式多樣。