專利名稱:用于分布式多重處理安全網關的系統和方法
技術領域:
本發明大體上涉及數據網絡,更具體地,用于分布式多重處理 安全網關的系統和方法。
背景技術:
隨著越來越多的計算4幾通過凄史據網絡連4妄并且越來越多的應 用程序將數據網絡用作它們的功能,數據網絡活動性增大。因此, 避免數據網絡違反安全性變得更加重要。
當前存在許多安全網關,例如,防火墻、VPN防火墻、父母控 制應用、電子郵件病毒4企測網關、用于網絡釣魚(phishing)和間 諜軟件(spyware)的專用網關、入侵檢測和防護應用、4妻入控制網 關、身份管理網關、以及許多其他類型的安全網關。這些產品通常 利用通用4效處理器(例如,Intel Pentium、 AMD處理器或SPARC 處理器)、或者基于^者:^MIPS架構、PowerPC架構、或ARM架構 的RISC架構的嵌入式孩先處理器來實現。
孩史處理器架構在其處理能力方面受到限制。通常它們能夠處理 達到每秒千兆比特的帶寬。在過去幾年中,凝:據網絡帶寬利用以快 于微處理器能力的提高的速度在增加。今天,在許多介質和大的安 全公司數據網絡中不難見到每秒幾千兆比特的數據網絡帶寬利用。 期望提供一種使在包括小型商業數據網絡、居民網絡和服務提供商 數據網絡的大多數數據網絡中變得更加流行的方案。增加數據網絡使用的趨勢顯示出了對更好和更高能力的安全 網關的需要,特別是在使用多個處理元件中(每個處理元件都是孩爻 處理器,或者基于微處理架構),以相互合作地工作來保護數據網 絡。
發明內容
一種用于分布式多重處理安全網關的系統和方法創建主枳J則 會話,基于網絡信息選擇服務器的代理服務器網絡地址,以及使用 該代理服務器網絡地址創建服務器側會話。選擇代理服務器網絡地
的數據包。網絡信息包括安全網關網絡地址和主才幾網絡地址。通過 以這種方式分配處理元件,提供了更高能力的安全網關。
圖la示出了安全數據網絡。
圖lb示出了網絡i也址專爭」換(NAT)處理的扭兌略圖。 圖lc示出了用于TCP會話的NAT處理。 圖2示出了分布式多重處理安全網關。 圖3示出了調度處理。
圖4示出了代理服務器網絡地址選擇處理。
具體實施例方式
圖la示出了安全數據網絡。安全網關170保護安全數據網絡
199。
在一個實施例中,安全數據網絡199是居民凝:據網癥各。在一個 實施例中,安全數據網絡199是企業網絡。在一個實施例中,安全 數據網絡199是區域企業網絡。在一個實施例中,安全數據網絡199 是服務l是供商網絡。
在一個實施例中,安全網關170是居民寬帶網關。在一個實施 例中,安全網關170是企業防火墻。在一個實施例中,安全網關170 是區域/>司防火墻或者部門防火墻。在一個實施例中,安全網絡170 是企業虛擬專用網絡(VPN)防火墻。在一個實施例中,安全網關 170是服務提供商網絡的互聯網網關。
當安全數據網絡199中的主機130訪問安全數據網絡199外的 服務器110時,主機130通過安全網關170創建與服務器110的會 話。在會話中在主機130和服務器110之間交換的數據包通過安全 網關170進行傳遞。在會話中處理數據包期間,安全網關170應用 多個安全策略。安全策略的實例包4舌網絡地址-f呆護、內容過濾、病 毒檢測和侵襲防護、間諜軟件或網絡釣魚阻止、網絡入侵或拒絕服 務防護、lt據流量監控、或者凄t據流量截取(interception )。
圖lb示出了網絡i也址專t換(NAT)處理的沖既略圖。
在一個實施例中,安全策略是保護主機130的網絡地址。主才幾 130在主才幾130和月l務器110之間的會話160中^f吏用主才幾網纟各;t也址 183。在一個實施例中,主4幾網全各i也址183包4舌主才幾130的IP i也址。 在另 一實施例中,主才幾網3各地址183包4舌主才幾130的會話端口 i也址。安全網關170通過不泄露主才幾網絡地址183來4呆護主才幾130。 當主才幾130將對會話160的會話請求發送到安全網關170時,會話 i青求包4舌主4幾網絡地址183 。
安全網關170創建與主才幾130的主才幾側會話169。主才幾130在 會話169中4吏用主才幾網絡地址183。
安全網關170選擇代理服務器網絡地址187。安全網關170使 用代理服務器網絡地址187來創建與服務器110的服務器側會話 165。
會話160
包括服務器側會話165和主機側會話169-
安全網關170對會話160執行網絡地址轉換(NAT)處理。安 全網關170通過以主機網絡地址183代替代理服務器網絡地址187 來對在服務器側會話165上接收到的數據包執行網絡地址轉換處 理。安全網關170將轉換的數據包傳輸到主機側會話169上。類似 地,安全網關170通過以代理服務器網絡地址187代替主機網絡地 址183來對在主機側會話169上接收到的數據包執行網絡地址轉換 處理。安全網關170將轉換的數據包傳輸到服務器側會話165上。
在一個實施例中,會話160是傳輸控制協議(TCP)會話。在 一個實施例中,會話160是用戶數據報協議(UDP)會話。在一個 實施例中,會話160是網間控制才艮文協議(ICMP)會話。在一個 實施例中,會話160基于在IP協議上的傳輸會話協議。在一個實施 例中,會話160基于在IP協議上的應用會話協議。
圖lc示出了用于TCP會話的NAT處理。主機130發送用于創建與服務器110的會話160的會話請求 192。會話160是TCP會話。會話請求192包括主機網絡地址183 和服務器網絡地址184。安全網關170接收會話請求192。安全網 關170 乂人會話_清求192中才是取主才幾網絡地址183。安全網關170確 定^^理"良務器網絡地址187。在一個實施例中,主才幾網絡地址183 包括主才幾的IP地址,并且安全網關170確定用^理服務器IP地址 來代替主才幾的IP地址。在一個實施例中,主才幾網絡地址183包4舌主 機的TCP端口號,并且安全網關170確定用代理月l務器TCP端口 號來代替主機的TCP端口號。安全網關170從會話請求192中^是取 服務器網絡地址184。安全網關170基于服務器網絡地址184和代 理服務器網絡地址187創建與服務器110的服務器側會話165。月良 務器側會話165是TCP會話。
安全網關170還通過響應于會話請求192來創建與主機130的 主才幾側會話169。
在創建服務器側會話165和主機側會話169之后,安全網關170 處理來自服務器側會話165和主機側會話169的數據包。
在一個實施例中,安全網關170接收來自月良務器側會話165的 數據包185。數據包185包括月良務器網絡地址184和代理服務器網 絡地址187。安全網關170才是取月良務器網絡地址184和^理月l務器 網絡地址187。安全網關170基于所提取的網絡地址來確定主才幾側 會i舌169。安全網關170還乂人主才幾側會話169中確定主才幾網絡;也址 183。安全網關170通過首先以主機網絡地址183代替代理服務器 網絡地址187來更改tt據包185。安全網關170更改凄t據包185的 其他部分,例如,TCP4交-驗和、IP報頭校-驗和。在一個實施例中, 安全網關170通過以主機網絡地址183代替任何使用的代理服務器 網絡地址187來更改凄t據包185的有效載荷。在安全網關170完成更改tt據包185之后,安全網關17(M夸更 改后的lt據包185傳輸到主才幾側會話169上。
以類似的方式,安全網關170接收來自主機側會話169的凝:據 包188。教:據包188包括服務器網絡地址184和主機網絡地址183。 安全網關170提取服務器網絡地址184和主機網絡地址183。安全 網關170基于所^是取的網絡地址來確定服務器側會話165。安全網 關170還從服務器側會話165中確定代理服務器網絡地址187。安 全網關170通過首先以代理服務器網絡地址187代替主才幾網絡i也址 183來更改凄t據包188。安全網關170更改凄t據包188的其他部分, 例如,TCP校驗和、IP才艮頭沖交-驗和。在一個實施例中,安全網關 170通過以代理服務器網絡地址187代替任何使用的主機網絡地址 183來更改凄t據包188的有效載荷。
在安全網關170完成更改凄史據包188之后,安全網關17(M尋更 改后的數據包188傳輸到服務器側會話165上。
圖2示出了分布式多重處理安全網關。
在一個實施例中,安全網關270是分布式多重處理系統。安全 網關270包括多個處理元件。處理元件272包括存々者才莫塊。存々者才莫 塊存儲主機網絡地址、代理服務器網絡地址和用于使處理元件272 應用圖1所描述的安全策略的其他信息。處理元件272具有處理元 件標識(identity ) 273。
安全網關270包括調度器275。調度器275接收數據包并確定 處理元件來處理ft據包。調度器275通常基于ft據包來計算處理元 件標識。基于計算出的處理元件標識,安全網關270將凄丈據包分配 纟合所標識的用于進4于處理的處理元件。在一個實施例中,調度器275接收來自主機側會話269的凝:據 包288,并基于數據包288中的主機網絡地址和服務器網絡地址來 計算第一處理元件標識。在另一實施例中,調度器275接收來自服 務器側會話265的數據包285,并基于數據包285中的代理服務器 網絡地址和服務器網絡地址來計算第二處理元件標識。
安全網關270包括網絡地址選擇器277。網絡地址選擇器277 基于網絡信息選擇代理服務器網絡地址。網絡信息包括在對會話 260的會話請求中獲得的主機網絡地址和安全網關網絡地址。還可 以使用其他類型的網絡信息。代理服務器網絡地址被用于創建服務 器側會話265。選擇代理服務器網絡地址,以使通過調度器275計 算出的第一處理元件才示識和第二處理元件標識4目同。^換句詔 說,分 配同一處理元件來處理來自月良務器側會話265的凄t據包285和來自 主機側會話269的數據包288。
圖3示出了調度處理。
調度器375基于從會話360的數據包385中獲得的兩個網絡地 址來計算處理元件標識。會話360包括主機側會話369和服務器側 會話365。主機側會話369的兩個網絡地址是服務器網絡地址和主 機網絡地址。服務器側會話365的兩個網絡地址是代理服務器網絡 地址和服務器網絡地址。調度器375計算用于主機側會話369和月良 務器側會話365的同一處理元件標識。
在一個實施例中,調度器375基于哈希函凄t來進^f亍計算。
在一個實施例中,調度器375通過將兩個網絡i也址相加來i十算 和。在一個實例中,調度器375通過對以二進制數表示的兩個網絡 地址執行二進制計算(例如,異或(XOR )二進制計算、或者與(AND ) 二進制計算)來計算和。在一個實例中,調度器375通過首先提取兩個網絡i也址的 一部分(例如,網紹_地址的前4 4立)并爿夸i者如二進 制運算的運算應用于所提取的部分來計算和。在一個實例中,調度 器375通過首先4吏兩個網絡地址與一個數字相乘并將i者如加法的運 算應用于該乘積來計算和。
在一個實施例中,調度器375通過處理該和來計算處理元4牛才示 識。在一個實施例中,在安全網關370中有4個處理元件。在一個 實例中,調度器375提取和的前兩位,并將所^是取的前兩位翻"i奪為 0到3之間的一個數字。在一個實例中,調度器375提取和的第一 位和最后一位,并將所提取的兩位翻譯為0到3之間的一個數字。 在一個實例中,調度器375將和除以4,并確定該除法的余婆t。該 余數是在0到3之間的數。
在一個實施例中,安全網關370包括8個處理元件。調度器375 提取和的3位,并將所提取的三位翻譯為0到7之間的一個數字。 在一個實例中,調度器375將和除以8,并確定該除法的余凄丈。該 余凄t是O到7之間的凄史。
在一個實施例中,網絡地址包括IP地址和會話端口地址。調 度器375計算兩個網結d也址的IP i也址和會i舌端口地JaL的和。
盡管上述教導基于上述哈希函數,但是對于本領域技術人員來 說,實現用于調度器375的不同哈希函數應當是顯而易見的。
圖4示出了代理月良務器網絡地址選擇處理。
網絡地址選擇器477為主機網絡地址483選擇代理服務器網絡 ;也址487。在一個實施例中,主沖幾網絡地址483包4舌主才幾IP i也址484 和主機會話端口地址485;代理服務器網絡地址487包括代理月良務 器IP地址488和代理服務器會話端口地址489。選擇代理服務器網絡地址487,以^f吏調度器475計算對于主機側會話469和服務器側 會話465的同 一處理元件標識。
在一個實施例中,選擇處理基于圖3所示的調度處理。在一個 實例中,調度器475使用計算兩個IP地址以及兩個會話端口地址的 和的方法,然后將和除以4。在一個實施例中,網絡地址選擇器477 首先選擇^理力良務器IP地址488。然后,網纟各地址選4奪器477選擇 代理服務器會話端口地址489,以使當對服務器網絡地址490和主 機網絡地址483使用該方法時,與當對服務器網絡地址490和代理 服務器網絡地址487使用該方法時一樣,調度器475計算同一處理 元件標識。
在一個實例中,調度器475根據兩個網絡地址的二進制蓮算符 XOR來計算和,并提取該和的后3個數字。網纟各地址選擇器477 選擇后3個數字與主機會話端口地址485的后3個數字相同的代理 服務器會話端口地址489。
在一個實施例中,安全網關470執行用于多個現有會話的網絡 地址轉換處理。網絡地址選擇器477 4企查所選4奪的代理月良務器網結_ 地址487是否未被用在多個現有會話中。在一個實施例中,安全網 關470包括數據存儲器(datastore ) 479。數據存儲器479存儲用在 多個現有對話中的多個^理月艮務器網絡地址。網全各地址選擇器477 通過比較所選擇的代理服務器網絡地址487與所存儲的多個代理月良 務器網絡地址并且沒有發現匹配來確定所選擇的代理服務器網絡 地址487未祐 使用。
在一個實施例中,處理元件包括網絡地址選擇器。處理元科^妄 收由安全網關基于由調度器計算的處理元件標識所分配的翁:才居包。 在一個實施例中,處理元件確定凄t據包包括會話:清求。處理元4牛中的網絡地址選擇器基于如圖4所示的會話請求中的主機網絡地址來 選擇^理月l務器網絡地址。
在一個實施例中,特定的第 一處理元件包4舌網絡地址選擇器。 沒有網絡地址選擇器的第二處理元件接收凄t據包并確定該ft才居包 包括會話請求。第二處理元件使用例如遠程函數調用將該數據包發 送到第一處理元件。第一處理元件4妄收該數據包。網絡地址選才奪器 基于會話請求中的主才幾網絡i也址來選擇代理月良務器網紹d也址。
在一個實施例中,在處理元件的存儲模塊中實現數據存儲器。 在一個實施例中,在翁:據存々者器中的多個代理月良務器網全各地址^皮存 儲到每個處理元件的每個存儲模塊中。在一個實施例中,利用在存 儲在處理元件的存^f諸才莫塊中的由處理元件處理的會話中4吏用的 理服務器網絡地址,以分發的方式將數據存儲器中的多個代理服務 器網絡地址存儲到存儲模塊中。
在一個實施例中,安全網關包括由多個處理元件共享的存4諸 器。安全網關將共享的存儲器劃分為多個存儲區。處理元件對專用 存4諸區進^f亍"i方問,而不乂于其4也存+者區進4iS方問。
在一個實施例中,安全網關包括中央處理單元。在一個實施例 中,中央處理單元包括多個處理線程,例如,超線程、孩史引擎、或 者在諸如特定用途集成電路(ASIC)或現場可編程門陣列(FPGA) 的電路中實現的其他處理線程。 一個處理元件為一個處理線程。
在一個實施例中,中央處理單元包括多個樣i處理器核心。 一個 處理線^f呈為一個孩i處理器核心。
在一個實施例中,安全策略用于病毒4企測或阻止。在一個實施 例中,安全策略用于網絡釣魚檢測或阻止。在一個實施例中,安全策略用于流量定額強制。在一個實施例中,安全策略用于合法凝:才居 截取。
在一個實施例中,NAT處理用于UDP會話。在一個實施例中, 安全網關接收UDP包。在一個實施例中,安全網關確定UDP包不 是來自現有會話。安全網關將UDP包作為會話請求進行處理。
在一個實施例中,NAT處理用于ICMP會話。以相同的方式, 安全網關將來自非現有會話的ICMP包作為會話請求進行處理。
權利要求
1.一種用于提供包括多個處理元件的安全網關的方法,包括以下步驟(a)創建主機側會話;(b)基于網絡信息為服務器選擇代理服務器網絡地址;以及(c)使用所述代理服務器網絡地址來創建服務器側會話,其中,選擇所述代理服務器網絡地址,以分配同一處理元件來處理來自所述服務器側會話和所述主機側會話的數據包。
2. 根據權利要求1所述的方法,其中,所述網絡信息包括安全網 關網纟各i也i止和主才幾網纟各i也i止。
3. 根據權利要求1所述的方法,還包括(d)接收來自所述主機側會話的數據包;(e )才艮據所述凄t提包中的月l務器網結-地址和主才幾網絡地 址來計算所述處玉里元4牛的標i只;以及(f) 將所述凄t據包的處理分配給所述處理元件,其中, 才艮據安全策略對所述凄t據包進4亍處理。
4. 根據權利要求3所述的方法,還包括(g) 接收所處理的數據包;(h )以所述4<理"良務器網絡地址來K替所述所處理的凄t 據包中的所述主才幾網絡地址;以及(i)將所述所處理的數據包發送到所述服務器側會話。
5. 根據權利要求1所述的方法,還包括(d)接收來自所述服務器側會話的數據包;(e )才艮據所述數據包中的服務器網絡地址和代理服務器 網絡地址來計算所述處理元件的標識;以及(f) 將所述lt據包的處理分配給所述處理元件,其中, 根據安全策略對所述數據包進行處理。
6. 根據權利要求5所述的方法,還包括(g) 接收所處理的數據包;(h) 以所述主才幾網絡地址來代/齊所述所處理的凝:寺居包中 的所述代理月l務器網絡地址;以及(i) 將所述所處理的凄t據包發送到所述主才幾側會話。
7. 根據權利要求1所述的方法,其中,所述選擇步驟(b)包括(bl )基于主機網絡地址選擇所述代理服務器網絡地址;以及(b2 )通過將所述代理服務器網絡地址與數據存儲器的 地址進^f亍比專交來確定所述代理月良務器網絡地址在現有會話中 未被使用。
8. —種安全網關,包4舌多個處理元件;網絡地址選擇器,用于接收對在主機和服務器之間的會 話的會話請求,并用于基于網絡信息為所述服務器選擇代理服 務器網絡地址;以及調度器,用于分配處理元件來處理來自服務器側會話和 主沖幾側會話的數據包,其中,通過所述網絡地址選擇器選擇所述代理月艮務器網 絡地址,以分配同 一處理元件來處理來自所述服務器側會話和 所述主才幾側會話的數據包。
9. 根據權利要求8所述的安全網關,其中,所述網絡信息包括安 全網關網^各i也iih和主才幾網癥各;也iit 。
10. 根據權利要求8所述的安全網關,其中,所述調度器用于接收來自所述主機側會話的數據包;才艮據所述凄t據包中的月良務器網絡地址和主才幾網紹_地址來 計算所述處理元件的標識;以及將所述數據包的處理分配給所述處理元件,其中,才艮據 安全策略對所述凄t據包進4于處理。
11. 才艮據權利要求IO所述的安全網關,其中,所述調度器還用于*接收所處理的#1據包;以所述^R理月良務器網絡地址來代替所述所處理的lt據包 中的所述主4幾網紹d也址;以及將所述所處理的數據包發送到所述服務器側會話。
12. 根據權利要求8所述的安全網關,其中,所述調度器用于接收來自所述服務器側會話的數據包;才艮據所述數據包中的月良務器網絡地址和代理月良務器網絡 ;也址來計算所述處理元件的標識;以及將所述凄t據包的處理分配給所述處理元件,其中,才艮據 安全策略對所述數據包進行處理。
13. 根據權利要求12所述的安全網關,其中,所述調度器還用于*接收所處理的#:據包;以所述主才幾網絡地址來代盧奪所述所處理的凝:據包中的所 述代理服務器網絡地址;以及將所述所處理的數據包發送到所述主才幾側會話。
14. 根據權利要求8所述的安全網關,還包括數據存儲器,用于 存儲現有會話的代理服務器網絡地址,其中,所述網絡地址選 擇器通過將所述代理服務器網絡地址與所述數據存儲器中的 地址進行比較來確定所述代理服務器網絡地址在現有會話中 未被使用,其中,所述網絡地址選擇器基于主機網絡地址來選 擇所述代理月良務器網絡地址。
全文摘要
一種用于分布式多重處理安全網關的系統和方法創建主機側會話、基于網絡信息為服務器選擇代理服務器網絡地址、以及使用代理服務器網絡地址來創建服務器側會話。選擇代理服務器網絡地址,以分配同一處理元件處理來自服務器側會話和主機側會話的數據包。網絡信息包括安全網關網絡地址和主機網絡地址。通過以這種方式分配處理元件,來提供更高能力的安全網關。
文檔編號G06F15/16GK101495993SQ200780001807
公開日2009年7月29日 申請日期2007年6月21日 優先權日2006年8月8日
發明者司徒偉倫, 澧 陳 申請人:瑞科網信科技有限公司