程冕 唐勇 蘇金樹 陳曙暉
國防科技大學計算機學院 湖南 410073
如何將核心網(wǎng)流量完整均勻地分配到每一臺入侵檢測設備中,是當前需要迫切解決的問題。傳統(tǒng)的多元組(指源目IP,源目端口等)哈希函數(shù)調度方式因無法準確識別每個數(shù)據(jù)報文的用戶歸屬,無法滿足3G核心網(wǎng)中按用戶進行分流的要求。因此本文提出一種基于用戶終端IP的數(shù)據(jù)分流方法,識別出報文中的用戶終端IP后再進行分流,使得同一用戶產(chǎn)生的所有數(shù)據(jù)都能在同一臺入侵檢測設備中進行分析還原,確保了用戶數(shù)據(jù)的完整性以及還原的準確性。
針對3G核心網(wǎng)域流量大且報文結構復雜的特點,為適應多臺入侵檢測設備并行處理的方式,分流方法必須滿足以下兩點:
(1) 數(shù)據(jù)流完整原則。一方面為應對目前出現(xiàn)的入侵檢測的逃避技術,如TCP分片攻擊,我們必須保證同一個會話被分流到同一個檢測系統(tǒng)中??梢圆捎没诙嘣M的哈希函數(shù)調度方法來實現(xiàn)這一目的。另一方面在3G核心網(wǎng)域,為檢測針對用戶的攻擊,還要求能夠完整還原每一個用戶的數(shù)據(jù)信息,這就需要將所有同一用戶產(chǎn)生的數(shù)據(jù)報文分流到同一臺入侵檢測設備中。
(2) 負載均衡原則。3G核心網(wǎng)所覆蓋的范圍很大,因此流量也非常驚人,單一的入侵檢測設備已經(jīng)遠遠無法滿足線速處理的要求。因此在并行處理的基礎上,我們要求分流方法能夠將數(shù)據(jù)流完整均勻地轉發(fā)至每一臺入侵檢測設備,以完成線速處理的要求。
基于以上原則,為有效識別用戶終端IP地址,本方法總體分為四個模塊來完成分流功能。程序初始化時會首先建立存放PDSN/GGSN地址的表M1和存放目的MAC地址的哈希表H1。圖1為本分流算法的簡單流程圖。
圖1 分流算法流程圖
接下來分模塊對本分流方法進行詳細介紹。
(1) 學習模塊。此模塊用于3G核心網(wǎng)鏈路中PDSN/GGSN地址的提取及存儲。算法1是學習模塊運行過程的簡單描述。
算法1 學習模塊(1)Initialize M1;(2)WHILE (Packet from 3G core network);IF(Data Packet) THEN Send Packet;Continue;IF(Control Packet) THEN Get PDSN/GGSN address;Compare each address in Table M1;IF(Match)THEN Send Packet;Continue;IF(Match not found ) THEN Write address into Table M1;Send Packet;Continue;ELSE Drop Packet;END IF;END WHILE;
(2) 上下行判定模塊。此模塊用于進行數(shù)據(jù)報文上下行狀態(tài)的判定,在判定結束后會給每個數(shù)據(jù)報文填上特定的標簽。算法2是上下行判定模塊運行過程的簡單描述。算法中報文上下行狀態(tài)的判定根據(jù)如下:
算法2 上下行判定模塊(1)WHILE (Packet from 學習模塊 );IF(Data Packet)THEN Get Source IP and Destination IP;Compare each address in Table M1;IF(Source IP Match) THEN Write Up Link Sign;Send Packet;Continue;IF(Destination IP Match) THEN Write Down Link Sign;Send Packet;Continue;IF(Control Packet) THEN Send Packet;Continue;END IF;END WHILE;
① 若數(shù)據(jù)報文的源IP地址與表M1中的PDSN/GGSN地址匹配,說明此報文為PDSN/GGSN端往PCF/SGSN端通信的報文,即為下行鏈路報文。
② 若數(shù)據(jù)報文的目的IP地址與表M1中的PDSN/GGSN地址匹配,說明此報文為PCF/SGSN端往PDSN/GGSN端通信的報文,即為上行鏈路報文。
(3) 解封裝模塊。此模塊用于數(shù)據(jù)報文隧道封裝結構的解封裝處理。這里應用文獻[11]中的報文提取方法即可完成相應處理,得到內層的用戶數(shù)據(jù)報文,最后將其發(fā)往分流模塊。
(4) 分流模塊。此模塊用于對用戶終端IP的判定,并以此對用戶數(shù)據(jù)報文進行分流并發(fā)送至入侵檢測系統(tǒng)中。算法3是分流模塊運行過程的簡單描述。
算法3 分流模塊(1)Initialize H1;(2)WHILE (Packet from 解封裝模塊 );IF(Up Link Packet) THEN Get Source IP;Run HASH Algorithm;Match MAC address in Table H1;Write MAC address into Packet;Send Packet;Continue;IF(Down Link Packet) THEN Get Destination IP;Run HASH Algorithm;Match MAC address in Table H1;Write MAC address into Packet;Send Packet;Continue;END IF;END WHILE;
算法中用戶終端IP的判定根據(jù)如下:
① 若為上行鏈路報文,可知是從用戶終端發(fā)往Internet網(wǎng)絡的報文,判定源IP地址即為用戶終端IP地址。
② 若為下行鏈路報文,可知是從Internet網(wǎng)絡回復給用戶終端的報文,判定目的IP地址即為用戶終端IP地址。
為證明本文數(shù)據(jù)分流方法的可行性,我們通過回放實際3G鏈路中采集的原始數(shù)據(jù)包來測試使用本方法所形成的3G流量處理分流設備。測試數(shù)據(jù)包采集自某省實際的CDMA2000核心網(wǎng)鏈路。
測試分為功能測試和性能測試兩方面。功能方面主要測試是否滿足負載均衡性和數(shù)據(jù)流完整性,性能方面則進行大流量下的丟包率統(tǒng)計,測試其性能瓶頸。測試儀采用EXFO公司的IPRO 10G測試儀以及IXIA公司的Optixia XM2 10G測試儀進行原始數(shù)據(jù)報文的回放,均可支持最大10Gbit/s的回放速率。設備結構如圖2所示。
圖2 測試設備結構圖
本測試只使用IPRO 10G測試儀,測試數(shù)據(jù)包的大小為2GB,包含有1816784個GRE隧道封裝報文,通過程序統(tǒng)計其中包含了647條用戶數(shù)據(jù)流,經(jīng)過3G流量處理分流設備處理后實際輸出1280011個用戶數(shù)據(jù)報文,測試時回放速率為1.5Gbit/s。入侵檢測設備使用六臺帶有千兆網(wǎng)卡的主機,主機硬件配置為CPU主頻2.66GHz、內存2G,操作系統(tǒng)為CentOS 5.6。同時在入侵檢測設備上運行OmniPeek網(wǎng)絡數(shù)據(jù)包采集分析軟件進行數(shù)據(jù)包采集,并通過設定過濾條件排除了非隧道封裝數(shù)據(jù)報文的采集。圖3為負載均衡方面的測試結果,S1~S6代表六臺不同的入侵檢測系統(tǒng)。測試結果表明本數(shù)據(jù)分流方法在負載均衡原則上已基本達到要求。
圖3 負載均衡測試結果
表1 數(shù)據(jù)完整性測試結果
表1為數(shù)據(jù)完整性方面的測試結果??梢园l(fā)現(xiàn)每個入侵檢測系統(tǒng)收到的用戶流數(shù)目相加正好等于從3G流量處理分流設備中發(fā)出的用戶流總數(shù),可確定沒有任何一條用戶數(shù)據(jù)流被分離到兩臺測試主機上。如果有任何一條用戶流被分發(fā)到兩臺不同的入侵檢測系統(tǒng)中,最后收到的用戶數(shù)之和必大于發(fā)出的用戶數(shù)。證明本文提出的分流方法可以滿足用戶數(shù)據(jù)完整性的要求。
為證明在實際應用中的作用,本分流方法通過Verilog硬件編程語言在FPGA中實現(xiàn)。
測試儀仍使用EXFO公司的IPRO 10G測試儀,因為3G核心網(wǎng)實際鏈路的流量巨大,為測試速率超過10Gbit/s的情況,增加一臺IXIA公司的Optixia XM2 10G測試儀。兩臺測試儀同時進行原始數(shù)據(jù)報文的回放,可以使數(shù)據(jù)報文進入3G流量處理分流設備的最高速率達到20Gbit/s。
測試數(shù)據(jù)包大小共為374GB,包含報文6.71x108個,平均報文長度為573字節(jié),其中GRE隧道封裝報文約3.49x108個,全部報文長度分布如圖4所示。
圖4 測試用流量報文長度分布
圖5為測試數(shù)據(jù)包采集地某工作日3G核心網(wǎng)域的流量分布示意圖,觀測時間為8:00至18:00。
將以上數(shù)據(jù)包分為兩份通過兩臺測試儀進行同時回放,回放速率從10Gbit/s開始每次增加1Gbit/s。測試結果如圖6所示。
圖5 某工作日3G核心網(wǎng)流量分布示意圖
圖6 3G流量處理分流設備的報文丟失率
從圖6可以發(fā)現(xiàn),在報文發(fā)送速率達到15Gbit/s前,系統(tǒng)一直能保持線速處理的狀態(tài);在報文發(fā)送速率達到20Gbit/s時,數(shù)據(jù)丟失率不超過1%。
基于以上實驗結果,本文提出的基于用戶終端IP地址的數(shù)據(jù)分流算法完全能夠適應3G核心網(wǎng)用戶數(shù)據(jù)分流的要求。
為適應入侵檢測系統(tǒng)并行處理前數(shù)據(jù)報文按用戶進行分流的需要,針對3G核心網(wǎng)數(shù)據(jù)流量大,報文結構復雜的特點,本文提出了一種基于用戶終端IP的數(shù)據(jù)分流方法,該方法首先通過核心網(wǎng)鏈路中的控制報文獲取鏈路上所有的PDSN/GGSN地址,然后將每個報文外層的源目IP與獲取的PDSN/GGSN地址進行比較,得到報文的上下行狀態(tài),最后根據(jù)上下行狀態(tài)的結果判定每個報文內的用戶終端IP并以此進行分流。本方法保證了每一條完整的用戶數(shù)據(jù)流都能被分流到同一臺入侵檢測設備中。通過功能性實驗證明,本分流方法在負載均衡和數(shù)據(jù)完整性方面完全可以滿足當前3G核心網(wǎng)對于用戶數(shù)據(jù)分流的需要。性能測試的結果也顯示基于本分流方法形成3G流量處理分流設備可以承受3G核心網(wǎng)大流量的沖擊。
[1] CDMA2000 Technical summary.http://www.umtsworld.com/html//technology/cdma2000.htm.
[2] WCDMA (UMTS): FDD Technical summary.http://www.Umtswo rld. com/technology/wcdma.htm.
[3] 蔣建春,馬恒太,任黨恩,卿斯?jié)h.網(wǎng)絡安全入侵檢測.軟件學報.2000.
[4] 陳培鑫,陳曙暉,蘇金樹.軟硬結合的CDMA2000核心網(wǎng)終端報文提取方法.通信學報.2011.