程冕 唐勇 蘇金樹 陳曙暉
國防科技大學計算機學院 湖南 410073
如何將核心網流量完整均勻地分配到每一臺入侵檢測設備中,是當前需要迫切解決的問題。傳統的多元組(指源目IP,源目端口等)哈希函數調度方式因無法準確識別每個數據報文的用戶歸屬,無法滿足3G核心網中按用戶進行分流的要求。因此本文提出一種基于用戶終端IP的數據分流方法,識別出報文中的用戶終端IP后再進行分流,使得同一用戶產生的所有數據都能在同一臺入侵檢測設備中進行分析還原,確保了用戶數據的完整性以及還原的準確性。
針對3G核心網域流量大且報文結構復雜的特點,為適應多臺入侵檢測設備并行處理的方式,分流方法必須滿足以下兩點:
(1) 數據流完整原則。一方面為應對目前出現的入侵檢測的逃避技術,如TCP分片攻擊,我們必須保證同一個會話被分流到同一個檢測系統中。可以采用基于多元組的哈希函數調度方法來實現這一目的。另一方面在3G核心網域,為檢測針對用戶的攻擊,還要求能夠完整還原每一個用戶的數據信息,這就需要將所有同一用戶產生的數據報文分流到同一臺入侵檢測設備中。
(2) 負載均衡原則。3G核心網所覆蓋的范圍很大,因此流量也非常驚人,單一的入侵檢測設備已經遠遠無法滿足線速處理的要求。因此在并行處理的基礎上,我們要求分流方法能夠將數據流完整均勻地轉發至每一臺入侵檢測設備,以完成線速處理的要求。
基于以上原則,為有效識別用戶終端IP地址,本方法總體分為四個模塊來完成分流功能。程序初始化時會首先建立存放PDSN/GGSN地址的表M1和存放目的MAC地址的哈希表H1。圖1為本分流算法的簡單流程圖。

圖1 分流算法流程圖
接下來分模塊對本分流方法進行詳細介紹。
(1) 學習模塊。此模塊用于3G核心網鏈路中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) 上下行判定模塊。此模塊用于進行數據報文上下行狀態的判定,在判定結束后會給每個數據報文填上特定的標簽。算法2是上下行判定模塊運行過程的簡單描述。算法中報文上下行狀態的判定根據如下:

算法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;
① 若數據報文的源IP地址與表M1中的PDSN/GGSN地址匹配,說明此報文為PDSN/GGSN端往PCF/SGSN端通信的報文,即為下行鏈路報文。
② 若數據報文的目的IP地址與表M1中的PDSN/GGSN地址匹配,說明此報文為PCF/SGSN端往PDSN/GGSN端通信的報文,即為上行鏈路報文。
(3) 解封裝模塊。此模塊用于數據報文隧道封裝結構的解封裝處理。這里應用文獻[11]中的報文提取方法即可完成相應處理,得到內層的用戶數據報文,最后將其發往分流模塊。
(4) 分流模塊。此模塊用于對用戶終端IP的判定,并以此對用戶數據報文進行分流并發送至入侵檢測系統中。算法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的判定根據如下:
① 若為上行鏈路報文,可知是從用戶終端發往Internet網絡的報文,判定源IP地址即為用戶終端IP地址。
② 若為下行鏈路報文,可知是從Internet網絡回復給用戶終端的報文,判定目的IP地址即為用戶終端IP地址。
為證明本文數據分流方法的可行性,我們通過回放實際3G鏈路中采集的原始數據包來測試使用本方法所形成的3G流量處理分流設備。測試數據包采集自某省實際的CDMA2000核心網鏈路。
測試分為功能測試和性能測試兩方面。功能方面主要測試是否滿足負載均衡性和數據流完整性,性能方面則進行大流量下的丟包率統計,測試其性能瓶頸。測試儀采用EXFO公司的IPRO 10G測試儀以及IXIA公司的Optixia XM2 10G測試儀進行原始數據報文的回放,均可支持最大10Gbit/s的回放速率。設備結構如圖2所示。

圖2 測試設備結構圖
本測試只使用IPRO 10G測試儀,測試數據包的大小為2GB,包含有1816784個GRE隧道封裝報文,通過程序統計其中包含了647條用戶數據流,經過3G流量處理分流設備處理后實際輸出1280011個用戶數據報文,測試時回放速率為1.5Gbit/s。入侵檢測設備使用六臺帶有千兆網卡的主機,主機硬件配置為CPU主頻2.66GHz、內存2G,操作系統為CentOS 5.6。同時在入侵檢測設備上運行OmniPeek網絡數據包采集分析軟件進行數據包采集,并通過設定過濾條件排除了非隧道封裝數據報文的采集。圖3為負載均衡方面的測試結果,S1~S6代表六臺不同的入侵檢測系統。測試結果表明本數據分流方法在負載均衡原則上已基本達到要求。

圖3 負載均衡測試結果

表1 數據完整性測試結果
表1為數據完整性方面的測試結果。可以發現每個入侵檢測系統收到的用戶流數目相加正好等于從3G流量處理分流設備中發出的用戶流總數,可確定沒有任何一條用戶數據流被分離到兩臺測試主機上。如果有任何一條用戶流被分發到兩臺不同的入侵檢測系統中,最后收到的用戶數之和必大于發出的用戶數。證明本文提出的分流方法可以滿足用戶數據完整性的要求。
為證明在實際應用中的作用,本分流方法通過Verilog硬件編程語言在FPGA中實現。
測試儀仍使用EXFO公司的IPRO 10G測試儀,因為3G核心網實際鏈路的流量巨大,為測試速率超過10Gbit/s的情況,增加一臺IXIA公司的Optixia XM2 10G測試儀。兩臺測試儀同時進行原始數據報文的回放,可以使數據報文進入3G流量處理分流設備的最高速率達到20Gbit/s。
測試數據包大小共為374GB,包含報文6.71x108個,平均報文長度為573字節,其中GRE隧道封裝報文約3.49x108個,全部報文長度分布如圖4所示。

圖4 測試用流量報文長度分布
圖5為測試數據包采集地某工作日3G核心網域的流量分布示意圖,觀測時間為8:00至18:00。
將以上數據包分為兩份通過兩臺測試儀進行同時回放,回放速率從10Gbit/s開始每次增加1Gbit/s。測試結果如圖6所示。

圖5 某工作日3G核心網流量分布示意圖

圖6 3G流量處理分流設備的報文丟失率
從圖6可以發現,在報文發送速率達到15Gbit/s前,系統一直能保持線速處理的狀態;在報文發送速率達到20Gbit/s時,數據丟失率不超過1%。
基于以上實驗結果,本文提出的基于用戶終端IP地址的數據分流算法完全能夠適應3G核心網用戶數據分流的要求。
為適應入侵檢測系統并行處理前數據報文按用戶進行分流的需要,針對3G核心網數據流量大,報文結構復雜的特點,本文提出了一種基于用戶終端IP的數據分流方法,該方法首先通過核心網鏈路中的控制報文獲取鏈路上所有的PDSN/GGSN地址,然后將每個報文外層的源目IP與獲取的PDSN/GGSN地址進行比較,得到報文的上下行狀態,最后根據上下行狀態的結果判定每個報文內的用戶終端IP并以此進行分流。本方法保證了每一條完整的用戶數據流都能被分流到同一臺入侵檢測設備中。通過功能性實驗證明,本分流方法在負載均衡和數據完整性方面完全可以滿足當前3G核心網對于用戶數據分流的需要。性能測試的結果也顯示基于本分流方法形成3G流量處理分流設備可以承受3G核心網大流量的沖擊。
[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] 蔣建春,馬恒太,任黨恩,卿斯漢.網絡安全入侵檢測.軟件學報.2000.
[4] 陳培鑫,陳曙暉,蘇金樹.軟硬結合的CDMA2000核心網終端報文提取方法.通信學報.2011.