文/趙瓊 何海濤 楊敏
網(wǎng)絡(luò)流量作為整個網(wǎng)絡(luò)復(fù)雜性的動態(tài)載體,是研究網(wǎng)絡(luò)體系架構(gòu)、實(shí)施網(wǎng)絡(luò)管理及進(jìn)行網(wǎng)絡(luò)安全分析的最有效切入點(diǎn)。網(wǎng)絡(luò)流量采集是指捕獲網(wǎng)絡(luò)上的數(shù)據(jù)包并對其進(jìn)行分析的過程,對網(wǎng)絡(luò)問題解決、協(xié)議調(diào)試、性能評估和安全分析等方面均有極大幫助。本文根據(jù)中山大學(xué)流量采集需求,以流量輸出多樣化為基本目標(biāo),通過引入SDN技術(shù),提出了一種較為先進(jìn)的大規(guī)模流量采集及分發(fā)方案,并在此基礎(chǔ)之上搭建統(tǒng)一的系統(tǒng)平臺。首先能夠?qū)π@網(wǎng)流量進(jìn)行全方位的實(shí)時采集,制作流量副本,然后對其進(jìn)行中轉(zhuǎn)與過濾,進(jìn)而按需分發(fā)給后端不同的業(yè)務(wù)分析系統(tǒng)。
需求分析
目前校園網(wǎng)需要基于流量分析的系統(tǒng)有兩種:上網(wǎng)行為管理設(shè)備和Cloudera安全大數(shù)據(jù)分析平臺,主要需求如下。
1.流量采集統(tǒng)一化需求
上述系統(tǒng)都需要采集校園網(wǎng)主要鏈路的完整數(shù)據(jù)包,因此選用鏡像流量采集技術(shù)捕獲網(wǎng)絡(luò)流量。但現(xiàn)有鏡像采集多數(shù)是基于目標(biāo)分析設(shè)備的單一采集,對于存在多個后端分析系統(tǒng)的應(yīng)用場景,就需要在網(wǎng)絡(luò)各個層級或區(qū)域設(shè)備上部署多套采集點(diǎn),這無疑增加了網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性和可維護(hù)性,無法實(shí)現(xiàn)集中管控。因此,需要一種集中化、集約化的管理手段,對網(wǎng)絡(luò)實(shí)時流量的捕獲和分發(fā)進(jìn)行統(tǒng)一化的維護(hù)和管理,減少運(yùn)維難度和網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜性,提升管理效率和運(yùn)維水平。
2.流量輸出多樣化需求
對于不同的后端分析系統(tǒng),對流量的需求并不完全一致。例如,上網(wǎng)行為管理設(shè)備作為校園網(wǎng)出口審計(jì)設(shè)備,需要對校內(nèi)所有IP訪問互聯(lián)網(wǎng)和校內(nèi)重要信息系統(tǒng)的流量日志進(jìn)行審計(jì);而安全大數(shù)據(jù)分析平臺初期需要分析校外向校內(nèi)訪問的日志(即校園網(wǎng)教科網(wǎng)出口),從而發(fā)現(xiàn)安全隱患。因此就需要對所捕獲的流量實(shí)施過濾,以滿足流量多樣化的輸出要求。
3.流量輸出負(fù)載均衡需求
隨著以太網(wǎng)傳輸速率的不斷增大,單個后端分析系統(tǒng)的能力很難適應(yīng)高速發(fā)展的網(wǎng)絡(luò)速度,然而,性能越高意味著價格越高,經(jīng)濟(jì)投入和產(chǎn)出效益往往不能達(dá)成一個很好的平衡。因此,并行部署多個后端分析設(shè)備,利用流量輸出的負(fù)載均衡實(shí)現(xiàn)高速流量的平均分配,每個輸出接口連接一個分析系統(tǒng),用于接收流量,然后這些分析系統(tǒng)通過共享外置數(shù)據(jù)中心的方式將流量進(jìn)行合并分析,從而達(dá)到對總體流量的分析目的。
架構(gòu)設(shè)計(jì)
根據(jù)上述需求,在校園網(wǎng)總體架構(gòu)基礎(chǔ)之上,通過引入SDN技術(shù),構(gòu)建了流量采集系統(tǒng)平臺,如圖1所示。

圖1 基于SDN的流量采集系統(tǒng)總體架構(gòu)
1.捕獲層
捕獲層由高性能路由器構(gòu)成,其功能是通過在校園網(wǎng)中設(shè)置捕獲點(diǎn)對相關(guān)流量進(jìn)行實(shí)時抓取,并線速度轉(zhuǎn)發(fā)給NPB(網(wǎng)絡(luò)數(shù)據(jù)包代理)層。本系統(tǒng)的捕獲點(diǎn)是通過端口鏡像采集技術(shù)實(shí)現(xiàn)的,根據(jù)應(yīng)用場景的不同,可以在核心設(shè)備或關(guān)鍵鏈路上設(shè)置單一捕獲點(diǎn),也可以在網(wǎng)絡(luò)各個層級設(shè)備或鏈路設(shè)置多個捕獲點(diǎn),以捕獲不同代表性的網(wǎng)絡(luò)流量。
2.NPB層
NPB層亦叫過濾層,是整個網(wǎng)絡(luò)架構(gòu)的關(guān)鍵,由OpenFlow交換機(jī)來承擔(dān)。實(shí)現(xiàn)捕獲點(diǎn)的統(tǒng)一接入管理和對捕獲流量進(jìn)行集中高速緩存,并通過執(zhí)行流表策略來控制流量的輸出方式和路徑。本系統(tǒng)可實(shí)現(xiàn)基于網(wǎng)絡(luò)Layer 2—Layer 4層的流量識別,以及任意端口流量的復(fù)制、匯聚等,同時能對輸出流量進(jìn)行多出站端口的負(fù)載分擔(dān),以滿足流量輸出多樣化和流量輸出負(fù)載均衡的需求。
3.分發(fā)層
分發(fā)層同樣由高性能通用交換機(jī)構(gòu)成。負(fù)責(zé)各種后端分析系統(tǒng)的接入,即對輸出流量進(jìn)行定向傳送,提供1G/10G端口的輸出能力,并保留40G端口的可擴(kuò)展能力。
各層級間為緊耦合關(guān)系,其中NPB層必須支持OpenFlow 協(xié)議。每個層級都具備橫向擴(kuò)展能力,以滿足流量持續(xù)增大的擴(kuò)容升級需求。可以為每一個層級選取不同的設(shè)備進(jìn)行功能分擔(dān),也可以通過功能集成化的單一設(shè)備承擔(dān)。本采集平臺的具體實(shí)施就選取了后者模式。
功能設(shè)計(jì)
1.大規(guī)模流量采集統(tǒng)一化
根據(jù)應(yīng)用場景的不同,可以在核心設(shè)備或關(guān)鍵鏈路上設(shè)置單一捕獲點(diǎn),也可以在網(wǎng)絡(luò)各個層級設(shè)備或鏈路設(shè)置多個捕獲點(diǎn),以捕獲不同代表性的網(wǎng)絡(luò)流量。但與傳統(tǒng)分散采集不同,本平臺提供對捕獲點(diǎn)的統(tǒng)一接入管理,所有捕獲點(diǎn)都通過光纖鏈路與NPB層設(shè)備互聯(lián),并通過SDN控制器的統(tǒng)一調(diào)度,實(shí)現(xiàn)流量采集的統(tǒng)一化和集中化管理。
2.全流量分發(fā)
指將捕獲到的流量無損復(fù)制并進(jìn)行流量輸出。包括一對一(將一個入站端口的流量復(fù)制一份送往一個出站端口)、一對多、多對一、多對多等四種模式。下以一對一分發(fā)為例闡述其實(shí)現(xiàn)原理。例如:需要將E1/1/1端口所捕獲的流量進(jìn)行一對一輸出給E1/1/3端口,其實(shí)現(xiàn)過程如下。
(1)構(gòu)建OpenFlow流表
首先需要構(gòu)建1條流表,并對流表中的3個流表項(xiàng)進(jìn)行設(shè)定,即為匹配域(Match Fields)、優(yōu)先級(Priority)和指令(Instructions)。
Match Fields:包含數(shù)據(jù)包頭中的12個元組,定義如表1所示(未涉及的元組未在下表體現(xiàn))
Priority:具備高優(yōu)先級的流表優(yōu)先被匹配和轉(zhuǎn)發(fā),由于此次構(gòu)建的只有1條流表,因此在這里優(yōu)先級設(shè)定可以默認(rèn),即置空處理。
Instructions:用于指示OpenFlow交換機(jī)在收到匹配數(shù)據(jù)包后的處理動作。需要對Apply-Action action(s)中Action的Output屬性進(jìn)行特殊定義,設(shè)定為E1/1/3。
(2)下發(fā)OpenFlow流表
構(gòu)建好流表后,通過SDN控制器下發(fā)給交換機(jī),交換機(jī)就會生成流表轉(zhuǎn)發(fā)條目,根據(jù)查找流表實(shí)施流量的轉(zhuǎn)發(fā)路徑選擇,從而實(shí)現(xiàn)一對一的全流量分發(fā)功能。
(3)流量過濾分發(fā)
指將捕獲到的流量,通過一定的技術(shù)手段對其實(shí)施過濾后,在進(jìn)行流量的輸出。本方案實(shí)現(xiàn)了網(wǎng)絡(luò)Layer 2—Layer 4層的過濾。例如:將E1/1/1端口捕獲的流量中,目標(biāo)地址為222.200.160.0/19,目標(biāo)端口為80端口(TCP)的相關(guān)流量,輸出給端口E/1/1/3,具體實(shí)現(xiàn)過程如下。
(1)構(gòu)建OpenFlow流表
首先需要構(gòu)建1條OpenFlow流表,并對流表中的3個流表項(xiàng)進(jìn)行特殊設(shè)定。
Match Fields:與全流量分發(fā)不同的是,流量過濾分發(fā)需要對匹配域中更多的流表項(xiàng)進(jìn)行特殊設(shè)定,根據(jù)此案例目標(biāo),匹配域中的定義如表2所示(未涉及的流表項(xiàng)未在下表體現(xiàn))。

表2 過濾流量分發(fā)中的匹配域定義
Priority:由于此次構(gòu)建的只有1條流表,置空處理即可。
Instructions:設(shè)定 Apply-Action action(s)中 Action的Output屬性為E1/1/3。
(2)下發(fā)OpenFlow流表
構(gòu)建好流表后,通過SDN控制器下發(fā)給OpenFlow交換機(jī),OpenFlow交換機(jī)就會生成流表轉(zhuǎn)發(fā)條目,根據(jù)查找流表實(shí)施流量轉(zhuǎn)發(fā)路徑選擇,并實(shí)現(xiàn)流量的過濾分發(fā)功能。
4.輸出流量負(fù)載均衡
指將捕獲的流量通過負(fù)載均衡技術(shù)平均分配到多個輸出接口,本方案是通過哈希算法,基于五元組方式實(shí)現(xiàn)流量的負(fù)載均衡。例如:將E1/1/1端口捕獲的流量,通過流量負(fù)載均衡的方式分發(fā)給三個不同的出站端口:E/1/1/5、E/1/1/6、E/1/1/8,具體實(shí)現(xiàn)過程如下。
(1)創(chuàng)建組
在OpenFlow中,組表可以實(shí)現(xiàn)負(fù)載均衡,需對其4個組成項(xiàng)進(jìn)行特殊設(shè)定,其中:
Group Identifier:定義為1,表示組號,用于區(qū)分其它組。
Group Type:選擇select,表示調(diào)用交換機(jī)的哈希算法,基于五元組實(shí)現(xiàn)流量負(fù)載均衡。
Counters:默認(rèn)置空。
Action Buckets:這里定義了動作集合。需要為每一個物理端口都單獨(dú)定義,因此需要構(gòu)建3個Buckets,都具備自己獨(dú)立的Bucket-id,但都屬于同一個組編號。具體定義見表3。

表3 Buckets的定義
(2)構(gòu)建OpenFlow流表
構(gòu)建方式和全流量分發(fā)、流量過濾分發(fā)的流表實(shí)現(xiàn)一致,但引入組表概念后,指令集中的Apply-Action action(s)中Action的屬性選擇就不能選用output,而需要對group屬性進(jìn)行特殊定義,由于此示例中建立了Group Identifier為1的組,因此也設(shè)定為1。
(3)下發(fā)OpenFlow流表
構(gòu)建好流表后,與全流量分發(fā)和過濾分發(fā)不一樣的是,這里執(zhí)行的OpenFlow組表,當(dāng)調(diào)用組表中Action Buckets時候,就會將流量送往組編號為1的組中,由于組中包含3個物理輸出端口,因此就可以基于哈希的調(diào)度算法實(shí)現(xiàn)輸出流量的負(fù)載均衡。
實(shí)施拓?fù)?/p>
根據(jù)校園網(wǎng)流量采集平臺總體架構(gòu),結(jié)合現(xiàn)網(wǎng)資源條件和采集需求,實(shí)施的網(wǎng)絡(luò)拓?fù)淙鐖D2所示。整個系統(tǒng)通過旁路方式部署于校園網(wǎng)中,不改變整體校園網(wǎng)架構(gòu)。捕獲層、NPB層和分發(fā)層由兩臺OpenFlow交換機(jī)承擔(dān),基于ODL的SDN控制器負(fù)責(zé)流表的下發(fā)。經(jīng)過二次處理之后的流量,由交換機(jī)分發(fā)給后端的上網(wǎng)行為管理設(shè)備和安全大數(shù)據(jù)分析平臺。

圖2 網(wǎng)絡(luò)流量采集平臺實(shí)施拓?fù)?/p>
定義捕獲點(diǎn)
在核心層的兩臺路由器上各設(shè)立了1個捕獲點(diǎn),并通過端口鏡像技術(shù)實(shí)現(xiàn)流量的捕獲。2臺核心路由器的源端口各自選取 了 三 個(A為:Te5/4、Te9/2、Po3;B為:Te5/4、Te7/3、Po1;),分別代表著校內(nèi)IP訪問互聯(lián)網(wǎng)、訪問校內(nèi)數(shù)據(jù)中心的流量,鏡像方向?yàn)槿颉Mㄟ^對2個捕獲點(diǎn)的流量數(shù)據(jù)進(jìn)行統(tǒng)一接入和管理,就形成流量資源池,后端的分析系統(tǒng)可按需索取流量,并可重復(fù)、并行工作;而目的端口則分別采用1條10Gbps鏈路與OpenFlow交換機(jī)互聯(lián)。
全流量分發(fā)策略
1.制定分發(fā)策略

圖3 針對上網(wǎng)行為管理設(shè)備的一對一全流量分發(fā)

表4 上網(wǎng)行為管理設(shè)備的流表策略
OpenFlow交換機(jī)通過2條物理鏈路接受鏡像流量,由于校園網(wǎng)部署的2臺上網(wǎng)行為管理設(shè)備需要對校內(nèi)用戶實(shí)施互聯(lián)網(wǎng)訪問的行為分析,且通過共享外置數(shù)據(jù)中心實(shí)現(xiàn)日志審計(jì)功能,入站和出站流量并沒有嚴(yán)格的對應(yīng)關(guān)系,因此,本平臺采用了一對一模式進(jìn)行全流量分發(fā),如圖3所示:
(1)將E1/1/1端口流量通過一對一模式,輸出給E1/1/3端口;
(2)將E1/1/2端口流量通過一對一模式,輸出給E1/1/4端口。
2.制定流表策略
根據(jù)上述的一對一全流量分發(fā)策略,需要構(gòu)建2條OpenFlow流表,分別用于對2臺上網(wǎng)行為管理設(shè)備的一對一全流量分發(fā),根據(jù)全流量分發(fā)實(shí)現(xiàn)原理,構(gòu)建流表策略如表4所示。
3.流表下發(fā)和展現(xiàn)
根據(jù)上表中優(yōu)先級為110的流表為例,SDN控制器下發(fā)流表策略,交換機(jī)執(zhí)行效果展現(xiàn)如下。

圖4 OpenFlow交換機(jī)入站端口流量圖(7天)

圖5 流表下發(fā)后OpenFlow交換機(jī)的出站端口流量圖(7天)
過濾分發(fā)和負(fù)載均衡
1.制定分發(fā)策略
校園網(wǎng)部署的全大數(shù)據(jù)分析平臺,初期主要對校內(nèi)應(yīng)用信息系統(tǒng)的訪問安全進(jìn)行分析和預(yù)警,并不需要全網(wǎng)流量,需要對其實(shí)施過濾分發(fā)。Cloudera安全分析平臺采用了并行分析機(jī)制,與OpenFlow交換機(jī)采用了3條1Gbps鏈路互聯(lián)。
兩臺核心路由器都包含了平臺所需要的網(wǎng)段流量信息(其中A包含有222.200.160.0/19、211.66.128.0/20、202.116.64.0/18等3個網(wǎng)段;B包含有202.116.64.0/18、125.217.160.0/20、219.222.192.0/20等3個網(wǎng)段),為保證出站端口過載而導(dǎo)致的數(shù)據(jù)丟失問題,必須實(shí)施流量負(fù)載均衡。基于此,流量分發(fā)策略如圖6所示。

圖6 Cloudera安全分析平臺過濾策略
(1)將E1/1/1中目標(biāo)IP段為222.200.160.0/19的流量,通過負(fù)載均衡方式分發(fā)給3個出站端口;
(2)將E1/1/1中目標(biāo)IP段為211.66.128.0/20的流量,通過負(fù)載均衡方式分發(fā)給3個出站端口;
(3)將E1/1/1中目標(biāo)IP段為202.116.64.0/18的流量,通過負(fù)載均衡方式分發(fā)給3個出站端口;
(4)將E1/1/2中目標(biāo)IP段為202.116.64.0/18的流量,通過負(fù)載均衡方式分發(fā)給3個出站端口;
(5)將E1/1/2中目標(biāo)IP段為125.217.160.0/20的流量,通過負(fù)載均衡方式分發(fā)給3個出站端口;
(6)將E1/1/2中目標(biāo)IP段為219.222.192.0/20的流量,通過負(fù)載均衡方式分發(fā)給3個出站端口。
2.制定流表策略
根據(jù)制定的策略,共需要構(gòu)建6條流表,但與全流量分發(fā)不同的是,還需要引入OpenFlow中的組表,以解決出站流量負(fù)載均衡的問題。另一方面,由于分發(fā)給上網(wǎng)行為管理設(shè)備的流量,與分發(fā)給安全分析平臺都來自于相同的捕獲點(diǎn),因此對于安全分析平臺,必須具備更高的流表優(yōu)先級,否則無法進(jìn)行流量分發(fā),流表策略如表5所示。
3.組的創(chuàng)建
組本身就是OpenFlow協(xié)議的一部分,根據(jù)2.3.3組表實(shí)現(xiàn)原理,將物理接口E1/1/5、E1/1/6和E1/1/8被定義為一個組(組號命名為1)。

表5 過濾分發(fā)策略

圖7 流表下發(fā)后組成員接口流量圖(負(fù)載均衡)
4.流表下發(fā)和展現(xiàn)
根據(jù)上表中優(yōu)先級為170的流表為例,SDN控制器下發(fā)流表策略,交換機(jī)執(zhí)行效果展現(xiàn)如下。可以看出,3個接口的流量曲線趨勢一致,表明流量輸出負(fù)載均衡已達(dá)到預(yù)期目標(biāo)。
本文基于云服務(wù)模型,以池化流量,策略分發(fā)為核心思想,在校園網(wǎng)總體架構(gòu)基礎(chǔ)之上構(gòu)建了統(tǒng)一的流量采集和分發(fā)平臺,相互獨(dú)立又互相融合。首先對校園網(wǎng)流量進(jìn)行各層級和多方位的實(shí)時采集,形成完整的校園網(wǎng)流量副本池,再通過SDN技術(shù)實(shí)現(xiàn)基于數(shù)據(jù)報(bào)文的L2-L4層過濾,形成不同類型的多個副本,進(jìn)而按需分發(fā)給后端不同的業(yè)務(wù)分析系統(tǒng)。基于SDN技術(shù)構(gòu)建的校園網(wǎng)流量采集平臺的建設(shè)與應(yīng)用不僅能簡化運(yùn)維、降低成本和提高事件處理效率,又可作為一項(xiàng)基礎(chǔ)服務(wù),支撐學(xué)校的教學(xué)科研活動,對進(jìn)行信息安全研究、大數(shù)據(jù)分析、用戶行為分析等科研團(tuán)隊(duì)提供便捷、豐富的網(wǎng)絡(luò)流量數(shù)據(jù)源,同時,也是校園網(wǎng)由傳統(tǒng)架構(gòu)向SDN架構(gòu)演進(jìn)的一個初步落地。