李春平,王 東,張淑榮,葉裴雷,李 妍
(廣東白云學院大數據與計算機學院,廣州 510000)
隨著網絡規模和終端用戶數量不斷增大,尤其是近年來寬帶互聯網和移動互聯網的普及和發展,網絡組織架構更趨復雜,網絡服務和業務呈現多樣化,使網絡流量呈海量式增長。組織機構內部需要對其業務流量進行用戶行為監控、日常流量統計、計費管理,另外網絡工程師借助流量監測與分析工具能夠發現異常網絡流量,及時阻斷病毒、黑客、惡意代碼等的非法訪問,從而提高網絡的安全性與可靠性。同時互聯網中的ISP服務提供商需要對各類網絡服務進行計費管理,評估資源利用情況,合理分配資源,實施網絡調優,從而實現控制運營成本的目的,使資源利用率最大化。這都需要可靠而且高效的流量監測與分析系統。
由于SNMP 的數據采集是直接通過網絡設備端口采集數據流量,從而無法提供具體的點到點會話連接的信息,因此對網絡數據流量具體流向的統計方法實現起來較為復雜,且不夠準確,基于SNMP的流量監測與分析系統存在著系統性能瓶頸、在大型網絡中進行部署存在一定困難。
Netflow 是為克服傳統的網絡流量監測與分析系統的不足,由思科研發的網絡流量監測技術,廣泛應用在運營商、組織機構的網絡上。基于Netflow 的網絡監測系統由于占用的資源較少,對運行網絡不會產生較大的影響,提供使用率統計、業務流量統計、業務流向分析、異常預警等豐富的功能,具有實時性和準確率高的特點。
Netflow 是由思科開發的一種基于flow 的流量分析技術。Netflow 的信息單元被稱為flow ,flow是一個帶有唯一標識編號的單向的輸入流或輸出流。其中每條流主要包含源IP 地址(Source IP address)、源端口(Source port)、目的IP 地址(Destination IP address)、目的端口(Destination port)、IP 協議類型(IP protocol type)、服務類型(Service type)、TCP 標記(TCP flag)、字節數(Bytes)等內容。一個flow 就是端到端的一次連接或者會話。Netflow 對流入和流出網絡設備物理接口的所有流量進行采集,通過對這些數據進行分析,可以發現網絡異常行為,找出形成網絡擁塞的原因。Netflow 采集的數據通常存放在本地的緩存中,通過定義在用戶數據報協議UDP 的9996 端口上,也可以將采集的數據傳輸給任意第三方的Netflow監測分析工具。
1.3.1 高速緩存機制
NetFlow 在開始工作時生成一個數據高速緩存,當Flow 中的第一個IP 數據包到達時,由于沒有匹配數據,此時會創建NetFlow 緩存。NetFlow 緩存中同時包含了flow 的流量占比、字節數、數據包個數以及時間戳等統計信息。當后面的數據流進來時,將按照緩存內容匹配在同一個數據流中進行傳輸,其他的訪問控制之類的策略信息就不再匹配。這種高速緩存機制大大提高了數據包檢查匹配的速度。
1.3.2 緩存和傳輸機制
NetFlow 由兩個核心組件組成:NetFlow 緩存和NetFlow的數據傳輸機制。NetFlow緩存用來存儲來自輸入接口采集的IP 數據流信息;NetFlow 的數據輸機制主要根據預先定義的策略規則,將數據發送到網絡管理采集器,便于數據采集。
1.3.3 超時釋放
當數據流的flow 信息被接收時,在NetFlow數據高速緩存中會保留相應的副本,當在規定的時間內沒有匹配規則的的數據流通過時,則停止對這個數據流的傳輸與統計,并釋放高速緩存資源。在NetFlow 中到期的flow,將被執行封裝在UDP數據報中輸出。
NetFlow 不同的版本對flow 記錄數量上存在略微的區別。在NetFlow V1 中最多可以有25 個記錄,V5 版本中最多可以有30 個flow 記錄,V9版本中28個記錄,每秒鐘至少發一次flow。
NetFlow 采用UDP 數據報(datagram)的形式進行封裝,主要包括頭標信息和信息流記錄,NetFlow有多個不同版本,從version 1、version 5、version 7到version 9,目前常采用的是version 9。NetFlow version 9 是更加靈活和可擴展的Netflow數據輸出格式,采用了基于模板(Template)的統計數據輸出,支持用戶自定義數據格式、添加需要輸出的數據域等多種Netflow新功能。
表1 顯示 了NetFlow 版 本1 的Packet Header頭標信息格式,表2 顯示了NetFlow 版本1 的Data FlowSet 數據流記錄格式。

表1 NetFlow版本1頭標信息格式

表2 NetFlow版本1數據流記錄格式
以一個小型公司的局域網為例,該公司規模不大,內網需要通過邊界路由器與外部Internet連接,實現對Internet的正常訪問。為了監測網絡流量,發現網絡用戶異常行為,內網上部署 了NetFlow 收 集 器。IP 地 址 規 劃 如 表3所示。
按照表3 中的IP 地址規劃,設計網絡拓撲圖,其中局域網上部署了NetFlow 收集器。如圖1所示。

圖1 網絡拓撲

表3 IP地址規劃
使用思科的Packet Tracer 模擬器進行仿真,配置好各個路由器、服務器、DNS、PC 主機的接口IP 地址及子網掩碼,設置好默認網關和DNS地址,參考配置如下。
2.3.1 邊緣路由器配置
flow exporter myflowEx
destination 172.16.0.100 //配置NetFlow 流 量收 集 器地址
transport udp 9996 //定義傳輸端口號為udp 9996
!
flow record rec1 //設置流記錄規則
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
match ipv4 protocol
collect timestamp sys-uptime first
collect timestamp sys-uptime last
collect transport tcp flags
collect counter bytes
collect counter packets
collect interface input
collect interface output
!
flow monitor mon1
record rec1
exporter myflowEx
!
interface GigabitEthernet0/0
ip flow monitor mon1 input //監控IP輸入流
ip address 172.16.0.254 255.255.255.0
interface Serial0/0/1
ip flow monitor mon1 input //監控IP輸入流
ip address 66.88.0.253 255.255.255.252
ip route 0.0.0.0 0.0.0.0 Serial0/0/1 //配置默認路由
ip flow-export version 9
!
2.3.2 ISP路由器配置
interface GigabitEthernet0/0
ip address 198.0.8.254 255.255.255.0
!
interface Serial0/0/0
ip address 66.88.0.254 255.255.255.252
clock rate 2000000
!
ip route 172.16.0.0 255.255.255.0 Serial0/0/0 //配置靜
態路由
ip flow-export version 9 //定義流輸出版本
!
2.3.3 服務器及站點配置
NetFlow 收集器、DNS、PC 機、www.test.cn等站點的地址按地址規劃表中的參數,配置好相應的IP 地址、子網掩碼、默認網關及DNS 解析地址,其中DNS 解析地址要指向ISP 提供的DNS服務器,IP地址為198.0.8.1。
2.3.4 測試網絡連通性
使用ping 命令測試PC-1 與本地網關、Net-Flow 收集器、外部網站www.test.cn 的連通性,測試結果顯示網絡連通性正常,其它主機與本地網關連通性均正常。測試結果如圖2所示。

圖2 網絡連通性測試
(1)打開NetFlow 收集器,觀測流量情況。在PC-2的命令行窗口中輸入ping 命令,測試與www.test.cn站點的連接。
C:>ping-t www.test.cn
(2)用ping 命令測試連通性時,通常第一個數據包會報告超時,在Packet Tracer模擬器中這是正常的,因為ARP 進程必須首先解析IP地址和MAC 地址,這個過程需要時間,另外在做DNS 解析時也需要花時間。短暫延遲之后,NetFlow 收集器屏幕將顯示一個餅圖。
(3)點擊餅圖或圖例項,顯示流記錄詳細信息,如圖3所示。

圖3 ICMP流量監測與分析
(4)流量內容分析。因為ping 命令采用了ICMP 協議機制,因此ping 命令請求和響應的數據包均遵循ICMP 協議。具體流量分析情況見表4。

表4 ICMP流量內容分析
(1)流量采集。打開NetFlow 收集器,繼續觀測流量情況。在PC-3 的“桌面”選項卡中打開Web Browser 瀏覽器,在瀏覽器URL地址欄中輸入:http://www.test.cn進行測試,此時PC-3將嘗試與www.test.cn 站點進行TCP 會話連接,連接成功后,流量將在這個會話連接上傳輸。Net-Flow 收集器上顯示的流量統計如圖4所示。

圖4 TCP流量監測與分析
(2)流量內容分析。表5 顯示了完整的TCP數據流分析,從中可以看出,這是一個Web 瀏覽器發出的http 請求的數據流,從Web 服務器響應的http流與請求的數據流有所不同。

表5 TCP流量內容分析
Netflow 克服了傳統的基于SNMP 協議的網絡流量監測與分析系統的不足,針對網絡中每個會話進行業務流量統計、業務流向分析等,具有實時性和準確率高的特點,對運行網絡影響小,廣泛應用在ISP運營商以及組織機構的網絡上。文中分析了Netflow 的工作機制以及報文封裝格式,并針對一個具體的網絡案例進行了ICMP、TCP 數據流的監測與分析,給出了數據流監測與分析的過程及方法。在生產環境中,組織機構的網絡管理員和安全工程師可以根據Netflow 提供的數據流,發現網絡異常,及時響應,從而阻斷病毒、黑客以及其它的非授權訪問,從而提高網絡資源的利用率,保護組織機構的數據資產安全。