李春平,王 東,張淑榮,葉裴雷,李 妍
(廣東白云學(xué)院大數(shù)據(jù)與計(jì)算機(jī)學(xué)院,廣州 510000)
隨著網(wǎng)絡(luò)規(guī)模和終端用戶數(shù)量不斷增大,尤其是近年來寬帶互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的普及和發(fā)展,網(wǎng)絡(luò)組織架構(gòu)更趨復(fù)雜,網(wǎng)絡(luò)服務(wù)和業(yè)務(wù)呈現(xiàn)多樣化,使網(wǎng)絡(luò)流量呈海量式增長。組織機(jī)構(gòu)內(nèi)部需要對(duì)其業(yè)務(wù)流量進(jìn)行用戶行為監(jiān)控、日常流量統(tǒng)計(jì)、計(jì)費(fèi)管理,另外網(wǎng)絡(luò)工程師借助流量監(jiān)測與分析工具能夠發(fā)現(xiàn)異常網(wǎng)絡(luò)流量,及時(shí)阻斷病毒、黑客、惡意代碼等的非法訪問,從而提高網(wǎng)絡(luò)的安全性與可靠性。同時(shí)互聯(lián)網(wǎng)中的ISP服務(wù)提供商需要對(duì)各類網(wǎng)絡(luò)服務(wù)進(jìn)行計(jì)費(fèi)管理,評(píng)估資源利用情況,合理分配資源,實(shí)施網(wǎng)絡(luò)調(diào)優(yōu),從而實(shí)現(xiàn)控制運(yùn)營成本的目的,使資源利用率最大化。這都需要可靠而且高效的流量監(jiān)測與分析系統(tǒng)。
由于SNMP 的數(shù)據(jù)采集是直接通過網(wǎng)絡(luò)設(shè)備端口采集數(shù)據(jù)流量,從而無法提供具體的點(diǎn)到點(diǎn)會(huì)話連接的信息,因此對(duì)網(wǎng)絡(luò)數(shù)據(jù)流量具體流向的統(tǒng)計(jì)方法實(shí)現(xiàn)起來較為復(fù)雜,且不夠準(zhǔn)確,基于SNMP的流量監(jiān)測與分析系統(tǒng)存在著系統(tǒng)性能瓶頸、在大型網(wǎng)絡(luò)中進(jìn)行部署存在一定困難。
Netflow 是為克服傳統(tǒng)的網(wǎng)絡(luò)流量監(jiān)測與分析系統(tǒng)的不足,由思科研發(fā)的網(wǎng)絡(luò)流量監(jiān)測技術(shù),廣泛應(yīng)用在運(yùn)營商、組織機(jī)構(gòu)的網(wǎng)絡(luò)上。基于Netflow 的網(wǎng)絡(luò)監(jiān)測系統(tǒng)由于占用的資源較少,對(duì)運(yùn)行網(wǎng)絡(luò)不會(huì)產(chǎn)生較大的影響,提供使用率統(tǒng)計(jì)、業(yè)務(wù)流量統(tǒng)計(jì)、業(yè)務(wù)流向分析、異常預(yù)警等豐富的功能,具有實(shí)時(shí)性和準(zhǔn)確率高的特點(diǎn)。
Netflow 是由思科開發(fā)的一種基于flow 的流量分析技術(shù)。Netflow 的信息單元被稱為flow ,flow是一個(gè)帶有唯一標(biāo)識(shí)編號(hào)的單向的輸入流或輸出流。其中每條流主要包含源IP 地址(Source IP address)、源端口(Source port)、目的IP 地址(Destination IP address)、目的端口(Destination port)、IP 協(xié)議類型(IP protocol type)、服務(wù)類型(Service type)、TCP 標(biāo)記(TCP flag)、字節(jié)數(shù)(Bytes)等內(nèi)容。一個(gè)flow 就是端到端的一次連接或者會(huì)話。Netflow 對(duì)流入和流出網(wǎng)絡(luò)設(shè)備物理接口的所有流量進(jìn)行采集,通過對(duì)這些數(shù)據(jù)進(jìn)行分析,可以發(fā)現(xiàn)網(wǎng)絡(luò)異常行為,找出形成網(wǎng)絡(luò)擁塞的原因。Netflow 采集的數(shù)據(jù)通常存放在本地的緩存中,通過定義在用戶數(shù)據(jù)報(bào)協(xié)議UDP 的9996 端口上,也可以將采集的數(shù)據(jù)傳輸給任意第三方的Netflow監(jiān)測分析工具。
1.3.1 高速緩存機(jī)制
NetFlow 在開始工作時(shí)生成一個(gè)數(shù)據(jù)高速緩存,當(dāng)Flow 中的第一個(gè)IP 數(shù)據(jù)包到達(dá)時(shí),由于沒有匹配數(shù)據(jù),此時(shí)會(huì)創(chuàng)建NetFlow 緩存。NetFlow 緩存中同時(shí)包含了flow 的流量占比、字節(jié)數(shù)、數(shù)據(jù)包個(gè)數(shù)以及時(shí)間戳等統(tǒng)計(jì)信息。當(dāng)后面的數(shù)據(jù)流進(jìn)來時(shí),將按照緩存內(nèi)容匹配在同一個(gè)數(shù)據(jù)流中進(jìn)行傳輸,其他的訪問控制之類的策略信息就不再匹配。這種高速緩存機(jī)制大大提高了數(shù)據(jù)包檢查匹配的速度。
1.3.2 緩存和傳輸機(jī)制
NetFlow 由兩個(gè)核心組件組成:NetFlow 緩存和NetFlow的數(shù)據(jù)傳輸機(jī)制。NetFlow緩存用來存儲(chǔ)來自輸入接口采集的IP 數(shù)據(jù)流信息;NetFlow 的數(shù)據(jù)輸機(jī)制主要根據(jù)預(yù)先定義的策略規(guī)則,將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)管理采集器,便于數(shù)據(jù)采集。
1.3.3 超時(shí)釋放
當(dāng)數(shù)據(jù)流的flow 信息被接收時(shí),在NetFlow數(shù)據(jù)高速緩存中會(huì)保留相應(yīng)的副本,當(dāng)在規(guī)定的時(shí)間內(nèi)沒有匹配規(guī)則的的數(shù)據(jù)流通過時(shí),則停止對(duì)這個(gè)數(shù)據(jù)流的傳輸與統(tǒng)計(jì),并釋放高速緩存資源。在NetFlow 中到期的flow,將被執(zhí)行封裝在UDP數(shù)據(jù)報(bào)中輸出。
NetFlow 不同的版本對(duì)flow 記錄數(shù)量上存在略微的區(qū)別。在NetFlow V1 中最多可以有25 個(gè)記錄,V5 版本中最多可以有30 個(gè)flow 記錄,V9版本中28個(gè)記錄,每秒鐘至少發(fā)一次flow。
NetFlow 采用UDP 數(shù)據(jù)報(bào)(datagram)的形式進(jìn)行封裝,主要包括頭標(biāo)信息和信息流記錄,NetFlow有多個(gè)不同版本,從version 1、version 5、version 7到version 9,目前常采用的是version 9。NetFlow version 9 是更加靈活和可擴(kuò)展的Netflow數(shù)據(jù)輸出格式,采用了基于模板(Template)的統(tǒng)計(jì)數(shù)據(jù)輸出,支持用戶自定義數(shù)據(jù)格式、添加需要輸出的數(shù)據(jù)域等多種Netflow新功能。
表1 顯示 了NetFlow 版 本1 的Packet Header頭標(biāo)信息格式,表2 顯示了NetFlow 版本1 的Data FlowSet 數(shù)據(jù)流記錄格式。
表1 NetFlow版本1頭標(biāo)信息格式
表2 NetFlow版本1數(shù)據(jù)流記錄格式
以一個(gè)小型公司的局域網(wǎng)為例,該公司規(guī)模不大,內(nèi)網(wǎng)需要通過邊界路由器與外部Internet連接,實(shí)現(xiàn)對(duì)Internet的正常訪問。為了監(jiān)測網(wǎng)絡(luò)流量,發(fā)現(xiàn)網(wǎng)絡(luò)用戶異常行為,內(nèi)網(wǎng)上部署 了NetFlow 收 集 器。IP 地 址 規(guī) 劃 如 表3所示。
按照表3 中的IP 地址規(guī)劃,設(shè)計(jì)網(wǎng)絡(luò)拓?fù)鋱D,其中局域網(wǎng)上部署了NetFlow 收集器。如圖1所示。
圖1 網(wǎng)絡(luò)拓?fù)?/p>
表3 IP地址規(guī)劃
使用思科的Packet Tracer 模擬器進(jìn)行仿真,配置好各個(gè)路由器、服務(wù)器、DNS、PC 主機(jī)的接口IP 地址及子網(wǎng)掩碼,設(shè)置好默認(rèn)網(wǎng)關(guān)和DNS地址,參考配置如下。
2.3.1 邊緣路由器配置
flow exporter myflowEx
destination 172.16.0.100 //配置NetFlow 流 量收 集 器地址
transport udp 9996 //定義傳輸端口號(hào)為udp 9996
!
flow record rec1 //設(shè)置流記錄規(guī)則
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 //監(jiān)控IP輸入流
ip address 172.16.0.254 255.255.255.0
interface Serial0/0/1
ip flow monitor mon1 input //監(jiān)控IP輸入流
ip address 66.88.0.253 255.255.255.252
ip route 0.0.0.0 0.0.0.0 Serial0/0/1 //配置默認(rèn)路由
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 //配置靜
態(tài)路由
ip flow-export version 9 //定義流輸出版本
!
2.3.3 服務(wù)器及站點(diǎn)配置
NetFlow 收集器、DNS、PC 機(jī)、www.test.cn等站點(diǎn)的地址按地址規(guī)劃表中的參數(shù),配置好相應(yīng)的IP 地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)及DNS 解析地址,其中DNS 解析地址要指向ISP 提供的DNS服務(wù)器,IP地址為198.0.8.1。
2.3.4 測試網(wǎng)絡(luò)連通性
使用ping 命令測試PC-1 與本地網(wǎng)關(guān)、Net-Flow 收集器、外部網(wǎng)站www.test.cn 的連通性,測試結(jié)果顯示網(wǎng)絡(luò)連通性正常,其它主機(jī)與本地網(wǎng)關(guān)連通性均正常。測試結(jié)果如圖2所示。
圖2 網(wǎng)絡(luò)連通性測試
(1)打開NetFlow 收集器,觀測流量情況。在PC-2的命令行窗口中輸入ping 命令,測試與www.test.cn站點(diǎn)的連接。
C:>ping-t www.test.cn
(2)用ping 命令測試連通性時(shí),通常第一個(gè)數(shù)據(jù)包會(huì)報(bào)告超時(shí),在Packet Tracer模擬器中這是正常的,因?yàn)锳RP 進(jìn)程必須首先解析IP地址和MAC 地址,這個(gè)過程需要時(shí)間,另外在做DNS 解析時(shí)也需要花時(shí)間。短暫延遲之后,NetFlow 收集器屏幕將顯示一個(gè)餅圖。
(3)點(diǎn)擊餅圖或圖例項(xiàng),顯示流記錄詳細(xì)信息,如圖3所示。
圖3 ICMP流量監(jiān)測與分析
(4)流量內(nèi)容分析。因?yàn)閜ing 命令采用了ICMP 協(xié)議機(jī)制,因此ping 命令請(qǐng)求和響應(yīng)的數(shù)據(jù)包均遵循ICMP 協(xié)議。具體流量分析情況見表4。
表4 ICMP流量內(nèi)容分析
(1)流量采集。打開NetFlow 收集器,繼續(xù)觀測流量情況。在PC-3 的“桌面”選項(xiàng)卡中打開Web Browser 瀏覽器,在瀏覽器URL地址欄中輸入:http://www.test.cn進(jìn)行測試,此時(shí)PC-3將嘗試與www.test.cn 站點(diǎn)進(jìn)行TCP 會(huì)話連接,連接成功后,流量將在這個(gè)會(huì)話連接上傳輸。Net-Flow 收集器上顯示的流量統(tǒng)計(jì)如圖4所示。
圖4 TCP流量監(jiān)測與分析
(2)流量內(nèi)容分析。表5 顯示了完整的TCP數(shù)據(jù)流分析,從中可以看出,這是一個(gè)Web 瀏覽器發(fā)出的http 請(qǐng)求的數(shù)據(jù)流,從Web 服務(wù)器響應(yīng)的http流與請(qǐng)求的數(shù)據(jù)流有所不同。
表5 TCP流量內(nèi)容分析
Netflow 克服了傳統(tǒng)的基于SNMP 協(xié)議的網(wǎng)絡(luò)流量監(jiān)測與分析系統(tǒng)的不足,針對(duì)網(wǎng)絡(luò)中每個(gè)會(huì)話進(jìn)行業(yè)務(wù)流量統(tǒng)計(jì)、業(yè)務(wù)流向分析等,具有實(shí)時(shí)性和準(zhǔn)確率高的特點(diǎn),對(duì)運(yùn)行網(wǎng)絡(luò)影響小,廣泛應(yīng)用在ISP運(yùn)營商以及組織機(jī)構(gòu)的網(wǎng)絡(luò)上。文中分析了Netflow 的工作機(jī)制以及報(bào)文封裝格式,并針對(duì)一個(gè)具體的網(wǎng)絡(luò)案例進(jìn)行了ICMP、TCP 數(shù)據(jù)流的監(jiān)測與分析,給出了數(shù)據(jù)流監(jiān)測與分析的過程及方法。在生產(chǎn)環(huán)境中,組織機(jī)構(gòu)的網(wǎng)絡(luò)管理員和安全工程師可以根據(jù)Netflow 提供的數(shù)據(jù)流,發(fā)現(xiàn)網(wǎng)絡(luò)異常,及時(shí)響應(yīng),從而阻斷病毒、黑客以及其它的非授權(quán)訪問,從而提高網(wǎng)絡(luò)資源的利用率,保護(hù)組織機(jī)構(gòu)的數(shù)據(jù)資產(chǎn)安全。