專利名稱:分布式架構下nat地址池的自適應分配方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信網技術,尤其涉及一種分布式架構下NAT地址池的自 適應分配方法和系統(tǒng)。
背景技術:
NAT (Network Address Translation,網絡地址轉換)技術是一種把內網 私有IP地址翻譯成公網IP地址的技術,被用來緩解目前IP空間枯竭的問題。NAT技術通常被應用在路由器、防火墻、ISDN路由器或者單獨的NAT 設備中,主要包括以下三種類型靜態(tài)NAT (StaticNAT)、動態(tài)地址NAT (PooledNAT)禾B NAPT (Port—Level NAT,網絡地址端口轉換)。隨著網絡的發(fā)展和對設備功能性要求的提高,集中式的設備往往難以滿 足實際的需求,因此分布式處理架構應運而生。以防火墻等安全設備為例, 由于安全設備在進行攻擊檢測及主動防御時需要消耗大量的CPU資源,單 純采用集中方式處理的安全設備很難突破其在性能和帶寬上的瓶頸,因此引 入_了圖1所示的分布式處理架構業(yè)務處理單元(業(yè)務板)和接口單元(接 口板)分離,在各個業(yè)務板上完成業(yè)務的分布式處理,以及通過接口板進行 發(fā)送處理;其中,主控板用于進行業(yè)務板和接口板的業(yè)務配置和管理??梢钥闯?,在分布式處理架構中,由于報文流需要在不同的業(yè)務板上進 行NAT處理,那么在各個業(yè)務板共用NAT地址池資源的情況下,就會存在 五元組沖突的可能性。如圖2所示,私有源IP地址為192.168丄1、源端口為 21的報文流(1)和私有源IP地址為192.168丄2、源端口為21的報文流(2) 分別從接口板上的接口 l被發(fā)送到業(yè)務板l、 2進行NAT處理,處理后的公 網源IP為lOO丄l.l,源端口為1025,則兩條數(shù)據流會產生五元組沖突,其 結果是NAT處理后兩條數(shù)據流合并為一條數(shù)據流,這樣返回的反向報文就 沒有辦法被轉換成原本地兩條數(shù)據流,即反向報文無法送回原來的設備,從 而,導致網絡業(yè)務無法得到正常處理,同時可能帶來網絡安全方面的問題。因此,在分布式處理架構中,需要有效的進行地址池資源管理,以避免 業(yè)務板處理過程中的五元組沖突?,F(xiàn)有的地址池資源管理所采用的,是按照業(yè)務板進行地址池資源靜態(tài)劃 分的方式,主要包括以下兩種(1) 對于地址池資源按照IP地址進行劃分,即各個業(yè)務板使用不同的 公網IP地址;具體的,是在業(yè)務板啟動后,根據地址池資源和整機業(yè)務板數(shù)量,劃分 得到屬于本業(yè)務板的地址使用范圍。例如在2個業(yè)務板的情況下,對于地址池A(100丄l.l 100.1丄10),業(yè)務板1使用的地址范圍為100.1丄1 100.1丄5, 業(yè)務板2使用的地址范圍為100丄1.6-100丄1.10;在業(yè)務板處理報文流時, 業(yè)務板從自己所使用的地址池中選取地址作為源地址,端口選擇可以是任意 可用值。請結合圖3A,顯示了按照IP地址劃分地址池資源時報文流的處理情況, 其中,報文流(1)在業(yè)務板進行NAT處理后源IP變?yōu)閘OO丄l.l,而報文流(2) 上業(yè)務板進行NAT處理后源IP變?yōu)?00丄1.6;可以看出,即使不同業(yè)務板 所分配的端口相同,也不會出現(xiàn)五元組沖突的問題。(2) 對于地址池資源按照端口范圍進行劃分,即各個業(yè)務板使用的公 網IP地址范圍相同,但是端口范圍不同;具體的,是在業(yè)務板啟動后獲得靜態(tài)的端口范圍參數(shù)。例如在2個業(yè)務 板的情況下,如果用戶可使用的端口范圍是1025-65535,則業(yè)務板1使用的 端口范圍為1025-00,業(yè)務板2使用的端口范圍為01-65535;在業(yè)務板處理 報文流時,業(yè)務板從自己所使用的端口范圍中分配端口。請結合圖3B,顯示了按照端口范圍劃分地址池資源時報文流的處理情 況,其中,報文流(l)在業(yè)務板進行NAT處理后源端口變?yōu)?025,而報文流 (2)上業(yè)務板進行NAT處理后源端口變?yōu)?0001;可以看出,即使不同業(yè)務 板所分配的IP地址相同,也不會出現(xiàn)五元組沖突的問題。雖然上述技術方案能夠通過靜態(tài)配置完全避免資源分配沖突的問題,且 實現(xiàn)簡單方便;但是,仍然存在以下問題 (1)適用范圍存在限制;例如,由于地址池是靜態(tài)劃分的,因此無法解決動態(tài)NAT,如Easy IP情況下五元組沖突的問題;再例如,對于地址池范圍小于業(yè)務板數(shù)量情況不適用;舉例來說,如果地址池資源為100丄1.1 00丄1.5,而業(yè)務板個數(shù)為6,則必然有一個業(yè)務板 不能獲得地址池資源的分配。(2) 處理能力存在限制;由于接口板的報文流并不是均勻分發(fā)給各個業(yè)務板的,因此可能存在一 個業(yè)務板上地址池資源已經耗盡,而其余業(yè)務板的地址池資源并遠未到達上 限的情況。例如,如果業(yè)務板1由于報文流比較多而使用完所分配的端口資源(1025 一OO),則其對于新接收的報文流進行處理時,就會由于分配端口失敗而導 致處理失敗,進而導致報文被丟棄;同時,業(yè)務板2上由于報文流比較少, 端口資源還有很多未被使用。顯然,地址池的靜態(tài)配置往往導致整機遠未達到最大規(guī)格的情況下,已 經難以正常處理業(yè)務的情況。(3) 靈活性差;由于地址池資源是靜態(tài)劃分的,即使在某些業(yè)務板故障或者不在位的情 況下,其地址池資源也不能由其他業(yè)務板,造成地址池資源的閑置和浪費。綜上所述,目前分布式處理架構下NAT資源的分配方案存在諸多不足, 現(xiàn)有技術尚無妥善的解決方案。發(fā)明內容本發(fā)明的實施例旨在提供分布式架構下NAT地址池的自適應分配方案, 以有效提高NAT資源的利用率。為實現(xiàn)上述目的,本發(fā)明的實施例提供了一種分布式架構下NAT地址 池的自適應分配方法,適用于由主控板、 一個以上業(yè)務板和接口板構成的分 布式處理架構;在主控板中統(tǒng)一管理NAT資源項,包括閑置的NAT資源項 和已分配給各業(yè)務板的NAT資源項,該NAT資源項由成對的公網IP和端 口構成;以及,執(zhí)行以下步驟Sl、該主控板根據各業(yè)務板的請求,執(zhí)行閑置的NAT資源項到相應 的業(yè)務板的一次分配;S2、該業(yè)務板執(zhí)行該主控板分配的NAT資源項到所處理的報文流的二 次分配。本發(fā)明的實施例還提供了一種分布式架構下NAT地址池的自適應分配 系統(tǒng),適用于由主控板、 一個以上業(yè)務板和接口板構成的分布式處理架構; 包括NAT地址池,設置在該主控板上,包括閑置的NAT資源項和已分配 給各業(yè)務板的NAT資源項,該NAT資源項由成對的公網IP和端口構成;NAT—次分配單元,設置在所述主控板上,與所述NAT地址池連接, 用于根據各業(yè)務板的請求,執(zhí)行閑置的NAT資源項到相應的業(yè)務板的一 次分配;NAT二次分配單元,設置在所述業(yè)務板上,與所述NAT—次分配單元 的輸出連接,用于執(zhí)行所分配的NAT資源項到所處理的報文流的二次分配。由上述技術方案可知,本發(fā)明的實施例通過根據業(yè)務板的報文量,動態(tài) 調整NAT資源分配,具有以下有益效果1、 實現(xiàn)NAT資源的充分利用;2、 避免NAT轉換后五元組的沖突;3、 具有較佳的靈活性和適應性。通過以下參照附圖對優(yōu)選實施例的說明,本發(fā)明的上述以及其它目的、 特征和優(yōu)點將更加明顯。
圖1為現(xiàn)有技術中安全設備分布式處理架構示例的結構框圖; 圖2顯示了分布式處理架構下,NAT處理所存在的問題; 圖3A、 3B分別顯示了按照IP地址和端口范圍劃分地址池資源時,報文 流的處理情況;圖4顯示了本發(fā)明所提供的分布式架構下NAT地址池的自適應分配方 法一實施例的流程圖;圖5為圖4所示實施例中,觸發(fā)業(yè)務板請求/釋放NAT資源項的實施例 的流程圖;圖6為圖4所示方法中,NAT地址池組織邏輯的一個具體示例;圖7為圖4所示方法中,主控板NAT資源塊組織的一個具體示例; 圖8為圖4所示方法中,業(yè)務板管理NAT資源塊的一個具體示例; 圖9為圖4所示方法中,業(yè)務板上NAT資源塊位圖維護的一個具體示圖10A、 10B為圖4所示方法中,業(yè)務板上NAT資源項的二次分配和 釋放過程的流程圖;圖11顯示了本發(fā)明所提供的分布式架構下NAT地址池的自適應分配系 統(tǒng)一實施例的框圖;圖12顯示了本發(fā)明所提供的分布式架構下NAT地址池的自適應分配系 統(tǒng)另一實施例的框圖;圖13A 圖13C為圖11和圖12所示系統(tǒng)中,具體部件的實施例框圖。
具體實施方式
下面將詳細描述本發(fā)明的具體實施例。應當注意,這里描述的實施例只 用于舉例說明,并不用于限制本發(fā)明。首先必須說明的是,本發(fā)明所提供的技術方案適用于由主控板、 一個以 上業(yè)務板和接口板構成的分布式處理架構,主要克服現(xiàn)有技術中分布式處理 架構下NAT地址池靜態(tài)配置所存在的諸多缺陷。在實際應用中,接口板可以與主控板合設,即將全局接口設置在主控板 上,通過交換網絡進行與業(yè)務板之間的報文流收/發(fā),也就是說,主控板同時 作為接口板來面向所有的業(yè)務板提供接口服務,而不再設立獨立的接口板。 此時,分布式處理架構從物理實現(xiàn)的角度,可以被表述為由設有全局接口 的主控板和一個以上業(yè)務板構成的分布式處理架構。值得注意的是,即使全局接口設置在主控板上,其與主控板仍分別實現(xiàn) 不同的邏輯功能,因此本發(fā)明實施例從邏輯功能的角度,仍將接口板與主控 板分離描述。但本領域普通技術人員可以理解,這僅僅意味著本發(fā)明實施例 所適用的分布式處理架構具有接口板功能,實現(xiàn)該功能的全局接口可以設置 在主控板上,也可以設置在獨立的接口板上。本發(fā)明的基本思路在于,由主控板進行NAT資源的統(tǒng)一管理,由業(yè)務 板根據所處理報文流的情況從主控板獲取/釋放所需的NAT資源,以實現(xiàn)NAT資源的充分利用,并保證NAT轉換不致發(fā)生五元組沖突。較佳的,NAT資源引入分級管理的思想,由主控板進行NAT資源塊的管理,由業(yè)務板進行資源塊中資源的管理,以提高資源分配的效率。 下面就結合具體實施例加以說明。請參見圖4,顯示了本發(fā)明所提供的分布式架構下NAT地址池的自適應 分配方法一實施例。其中,在主控板中統(tǒng)一管理NAT資源項,包括閑置的NAT資源項 和己分配給各業(yè)務板的NAT資源項,該NAT資源項由成對的公網IP和 端口構成;具體來說,每個NAT資源項對應唯一的"IP+端口"對,因此可以把 整個NAT地址池看成由連續(xù)的NAT資源項組成。為了便于管理,可以通過主控板分組保存閑置的NAT資源項和分配 給各業(yè)務板的資源項的方式,實現(xiàn)在主控板中對NAT資源項的統(tǒng)一管理。 較佳的,該分組保存可以通過鏈表來實現(xiàn)。可以看出,無論實際如何進行分配,所有的NAT資源項都在主控板 中獲得統(tǒng)一的全局控制,因此不會發(fā)生不同業(yè)務板分配有相同NAT資源 項的情況,從而避免后續(xù)業(yè)務板根據NAT資源進行NAT轉換時可能存 在的五元組沖突。在上述NAT資源全局控制的基礎上,NAT地址池通過以下步驟實現(xiàn) 自適應分配51、 主控板根據各業(yè)務板的請求,執(zhí)行閑置的NAT資源項到相應的 業(yè)務板的一次分配;即報文流量較高的業(yè)務板能夠從主控板獲得較多的 NAT資源。具體的,在主控板分組保存閑置的NAT資源項和分配給各業(yè)務板的 資源項的情況下,本步驟可以通過以下方式實現(xiàn)將NAT資源項從閑置 的NAT資源組中轉移到相應的業(yè)務板資源組中,并通過板間通信通知該 業(yè)務板。同時,為了提高效率,主控板所進行的一次分配一般為同時分配多 個NAT資源項。52、 業(yè)務板執(zhí)行該主控板分配的NAT資源項到所處理的報文流的二次分配,也就是針對每一個報文流,分配一個NAT資源項。具體的,本步驟S2包括521、 將本板當前可分配的NAT資源項二次分配給報文流,并為二 次分配的NAT資源項設置已分配標志;522、 對報文流釋放的NAT資源項,取消該NAT資源項的已分配標 志,使其重新成為本板當前可分配的資源項。通過上述步驟S1 S2可以看出,本技術方案可以通過NAT資源項的 全局管理有效的避免五元組沖突,還可以在分布式環(huán)境下實現(xiàn)根據各個 業(yè)務板NAT業(yè)務量來適應性分配NAT資源,從而提高NAT資源的利用 率。較佳的,步驟S1還包括主控板將各業(yè)務板釋放的NAT資源項重新設 置為閑置的NAT資源項。本步驟的作用在于適應業(yè)務板流量的變化,動態(tài)調整業(yè)務板上的NAT 資源,從而實現(xiàn)NAT資源的最大利用,克服現(xiàn)有技術中地址池資源分配存 在的資源占用問題和使用不均勻的問題。具體的,在主控板分組保存閑置的NAT資源項和分配給各業(yè)務板的資 源項的情況下,本步驟可以通過以下方式實現(xiàn)將該NAT資源項從相應的 業(yè)務板資源組中轉移到閑置的NAT資源組中。為了實現(xiàn)主控板和業(yè)務板之間NAT資源項的有效轉移,請參見圖5,可 以執(zhí)行以下步驟501、 業(yè)務板識別本板當前可分配的NAT資源項;502、 當可分配的NAT資源項數(shù)量小于預設的第一閾值時,業(yè)務板 向主控板請求獲取一定數(shù)量的NAT資源項,并執(zhí)行步驟S1,使主控板根 據各業(yè)務板的請求,執(zhí)行閑置的NAT資源項到相應的業(yè)務板的一次分配;503、 當可分配的NAT資源項數(shù)量大于預設的第二閾值時,業(yè)務板向主 控板釋放一定數(shù)量的NAT資源項,并執(zhí)行步驟S1,使主控板將各業(yè)務板釋 放的NAT資源項重新設置為閑置的NAT資源項。其中,第一閾值和第二閾值可以由管理員根據實際需要進行設置,且上 述步驟可以周期性執(zhí)行。通過上述較佳實施例可以看出,當業(yè)務板NAT資源不足時,主控板能夠將NAT資源項分配給業(yè)務板;當業(yè)務板NAT資源項出現(xiàn)過剩,可 以將NAT資源返回給主控板,供主控板調配。因此,本技術方案不但可 以有效的避免五元組沖突,還可以在分布式環(huán)境下實現(xiàn)根據各個業(yè)務板 NAT業(yè)務量動態(tài)調整各個業(yè)務板上NAT資源分配情況,達到最大化的 NAT資源利用率的目標。更佳的,為了實現(xiàn)高效快速的資源分配,本發(fā)明實施例采用資源塊的方 式對NAT資源進行管理,即NAT地址池按連續(xù)的資源塊進行組織,每個資 源塊為一些連續(xù)的資源組成。如圖6所示,顯示了以資源塊方式組織時,NAT地址池組織邏輯的一個 具體示例。該地址池范圍是(訓丄1.1 100丄U0),可用端口范圍一共是63K (即 1025到65535),則以按照公網IP地址順序排列,且每一公網IP地址下按 照端口順序排列的方式,可以獲得10X63K的連續(xù)的NAT資源項。對連續(xù)的NAT資源項加以分塊,可以考慮按照每塊1024個資源來進行 組織,形成NAT資源i央,在本實施例中,每個NAT資源塊由"IP+端口范圍" 標識;其中,具體大小可以根據具體情況加以調整。每個NAT資源塊由NAT資源塊索引來標識,NAT資源池中資源塊的 NAT資源塊索引從0開始順序進行編號,從而可以通過NAT資源塊索引計 算出它所標識的資源范圍。以圖6所示情況為例,NAT資源塊的IP地址= NAT資源塊索弓1/63 +NAT地址池起始地址;NAT資源塊的端口范圍是(NAT 資源塊索引X63X1024, (NAT資源塊索引X63 + 1) X1024 ))。顯然,主控板對于NAT資源項的統(tǒng)一管理,事實上是對NAT資源塊的 統(tǒng)一管理。作為一個具體的實施例,步驟Sl中可以以鏈表的形式分組管理 NAT資源塊,如圖7所示。需要指出,具體NAT資源塊組織方式不一定必須是鏈表,這里只是舉 例描述思想。在圖7所示實施例中,所有空閑可用的NAT資源塊放到一個 空閑資源塊鏈表中管理;當業(yè)務板1向主控板申請NAT資源時,主控板從 空閑資源塊鏈表中獲取閑置的NAT資源塊,將其移到業(yè)務板1的資源塊鏈 表上同時通過板間通信通知業(yè)務板1;當業(yè)務板1向主控板釋放NAT資源時, 將資源塊移動到空閑資源塊鏈表上,即重新設置為閑置的NAT資源塊。通過上述構造,主控板可以方便的實現(xiàn)NAT資源塊的一次分配和回收。 同時,NAT資源塊中NAT資源項的二次分配和釋放,則由業(yè)務板進行。作為一個較佳實施例,如圖8所示,為業(yè)務板管理NAT資源塊的示例。 業(yè)務板通過指針數(shù)組記錄本板上所有的NAT資源塊,通過第一函數(shù)指向本 板當前所分配的NAT資源塊,通過第二函數(shù)記錄本板當前可分配的NAT資 源塊數(shù)目。其中,指針數(shù)組ppstNatBlock對應記錄所述業(yè)務板上所有的NAT資源 塊,指針不為空對應的都是本業(yè)務板的NAT資源塊;nextavailBlk為第一函 數(shù),用于在NAT資源分配時找到當前可分配用的NAT資源塊;而availblknum 為第二函數(shù),表示本業(yè)務板可分配的NAT資源塊的個數(shù),這個函數(shù)用于決 定是否向主控板申請NAT資源塊或者釋放NAT資源塊。在業(yè)務板管理NAT資源塊的同時,業(yè)務板還需要對報文流進行NAT資 源塊中的NAT資源項的分配,其中,通過為每一NAT資源塊設置的第三函 數(shù)指向該NAT資源塊中當前可分配的NAT資源項。作為一個較佳的實施例,業(yè)務板可以按照位圖的形式記錄NAT資源塊 中的NAT資源項,通過將相應的bit位置1為所述NAT資源項設置已分配 標志,通過將相應的bit位置0為所述NAT資源項取消已分配標志。圖9顯示了一個具體的位圖維護情況,業(yè)務板通過位圖方式為每個NAT 資源塊維護1024個NAT資源項的使用情況;其中,數(shù)組ulPort[32]用于維 護1024個NAT資源項的使用狀態(tài),每個bit代表本塊內的一個NAT資源項 (IP+端口), ulNextPortWord作為第三函數(shù),表示下一個可分配的NAT資源 項在本塊中的相對位置(ulNextPortWord/32為在數(shù)組ulPort [32]中的偏移位 置,ulNextPortWord^32為在數(shù)組元素的bit偏移位置)。上述圖6 圖9示例了采用資源塊形式組織NAT資源項的具體情況,從 中可以看出,主控板和業(yè)務板之間進行資源塊的交互而非單獨的NAT資源 項的交互,能夠有效的減少業(yè)務板和主控板之間全局維護NAT資源使用所 需的交互信息量。同時可以看出,NAT業(yè)務使用的資源分兩步完成,在主控板完成全局 NAT資源塊分配(一次分配)和回收,在業(yè)務板上完成具體NAT資源項的 分配(二次分配)和釋放。具體的,業(yè)務板上NAT資源項的二次分配和釋放過程如圖IOA和圖IOB所示。圖10A顯示了業(yè)務板上NAT資源項分配過程的流程圖,包括以下步驟:5211、 通過所述第一函數(shù)(nextavai舊lk)獲取當前所分配的NAT 資源塊;5212、 找到NAT資源塊后,通過該NAT資源塊中的第三函數(shù) (ulNextPortWord)獲取當前可分配的NAT資源項;5213、 將該NAT資源項分配給報文流,并為其設置已分配標志; 具體的,可通過以下方法設置已分配標志通過ulNextPortWord/32找到其在資源數(shù)組ulPort[32]中的位置,通 過ulNextPortWord^32找到其在數(shù)組元素的bit位置,將此bit位置為1。5214、 在該NAT資源塊中査找是否存在下一可分配的NAT資源項, 是則,執(zhí)行步驟S215,否則,執(zhí)行步驟S216;5215、 將第三函數(shù)(ulNextPortWord)指向所述下一可分配的NAT 資源項;這里的策略是盡量保證后面的資源塊都是空白的,即后續(xù)資源 塊中的NAT資源項都沒有被分配,以便于主控塊做回收處理;5216、 將第三函數(shù)(ulNextPortWord)指向無效值,標識該NAT資 源塊已分配并將第二函數(shù)(availblknum)執(zhí)行減1處理,此外,如果 availblknum小于第一闕值,則向主控板申請新的NAT資源塊,不再贅述;具體的,可通過以下方法標識該NAT資源塊已分配置 ulNextPortWord為全F,表示本塊已經分配完。5217、 在指針數(shù)組(ppstNatBlock)中從頭查找可分配的NAT資源塊 并將第一函數(shù)(nextavai舊lk)指向它,將該NAT資源塊的第三函數(shù)(ulNextPortWord )指向其一 NAT資源項。圖IOB顯示了業(yè)務板上NAT資源釋放過程的流程圖,包括以下步驟5221、 對于報文流釋放的NAT資源項,根據其公網IP和端口號計 算相應的NAT資源塊索引標識,以識別其所在的NAT資源塊;其中, NAT資源塊索引=(IPl-地址池首地址)X63 + Portl/1024。資源塊中 的偏移位置=Portl°/。1024;5222、 為該NAT資源塊中的相應NAT資源取消已分配標志; 具體的,可采用以下操作對NAT資源塊中偏移位置對應的bit置0,完成資源釋放處理。5223、 識別NAT資源塊的第三函數(shù)(ulNextPortWord)是否指向無 效值,是則執(zhí)行步驟S224,否則執(zhí)行步驟S225;5224、 說明釋放前該NAT資源塊中沒有可分配的NAT資源,則將 第三函數(shù)(ulNextPortWord)指向該NAT資源項,并執(zhí)行步驟S225;5225、 識別第一函數(shù)(nextavai舊lk)是否指向無效值,是則執(zhí)行步 驟S226,否則執(zhí)行步驟S227;5226、 說明釋放前該業(yè)務板中沒有可分配的NAT資源塊,則將第一 函數(shù)(nextavai舊lk)指向該NAT資源塊;5227、 識別NAT資源塊中是否所有的NAT資源項都己釋放完畢;5228、 如果是,取消所述NAT資源塊的已分配標識并將第二函數(shù) (availblknum)執(zhí)行加1處理;此外,如果availblknum大于第二閾值,則向主控板釋放相應的NAT資源塊,不再贅述。本領域普通技術人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟 可以通過程序指令相關的硬件來完成,所述的程序可以存儲于一計算機可讀 取存儲介質中,該程序在執(zhí)行時,在主控板中統(tǒng)一管理NAT資源項,包括 閑置的NAT資源項和已分配給各業(yè)務板的NAT資源項,所述NAT資源項 由成對的公網IP和端口構成;以及,執(zhí)行如下步驟51、 所述主控板根據各業(yè)務板的請求,執(zhí)行閑置的NAT資源項到相 應的業(yè)務板的一次分配;52、 所述業(yè)務板執(zhí)行所述主控板分配的NAT資源項到所處理的報文流 的二次分配。所述的存儲介質包括ROM/RAM (ReadonlyMemory/Random-Access Memory,只讀存儲器/隨機訪問內存)、磁碟或者光盤等。相應的,本發(fā)明實施例還提供了分布式架構下NAT地址池的自適應分 配系統(tǒng)100,適用于由主控板、 一個以上業(yè)務板和接口板構成的分布式處理 架構,當然,該分布式處理架構中主控板和接口板可以合設。請參考圖11,包括NAT地址池lOl,設置在主控板上,用于保存NAT資源項,包括閑置的NAT資源項和已分配給各業(yè)務板的NAT資源項;該NAT資源項為 "IP+端口"的組合,由成對的公網IP和端口構成,即每一NAT資源項 對應NAT地址池101中唯一的公網IP和端口對,而NAT地址池101由 一個個連續(xù)的NAT資源項組成。NAT —次分配單元102,設置在主控板上,與NAT地址池101連接, 用于根據各業(yè)務板的請求,執(zhí)行閑置的NAT資源項到相應的業(yè)務板的一 次分配;由于各業(yè)務板可以根據本板實際處理的報文流情況實時發(fā)出請 求,因此報文流量較高的業(yè)務板能夠從主控板獲得較多的NAT資源。NAT二次分配單元103,設置在業(yè)務板上,與NAT—次分配單元的輸 出102連接,用于執(zhí)行所分配的NAT資源項到所處理的報文流的二次分配。 可以看出,主控板進行全局NAT資源的統(tǒng)一控制,從而避免各個業(yè)務 板上NAT處理的五元組沖突;以及,在分布式環(huán)境下實現(xiàn)根據各個業(yè)務板 NAT業(yè)務量來適應性分配NAT資源,從而提高NAT資源的利用率。較佳的,請結合圖12, NAT—次分配單元102還與NAT二次分配單元 103的輸出連接,用于將各NAT 二次分配單元103釋放的NAT資源項重新 在NAT地址池101中設置為閑置的NAT資源項,以適應業(yè)務板流量的變化, 動態(tài)調整業(yè)務板上的NAT資源,從而實現(xiàn)NAT資源的最大利用,克服現(xiàn)有 技術中地址池資源分配存在的資源占用問題和使用不均勻的問題,達到最大 化的NAT資源利用率的目標。作為具體的實施例,請參見圖13A 13C。 圖13A顯示了 NAT地址池101的一個具體實施例,包括 空閑NAT資源組1011,用于保存閑置的NAT資源項; 各業(yè)務板NAT資源組1012,用于相應保存已分配給各業(yè)務板的NAT 資源項;資源轉移模塊1013,分別空閑NAT資源組1011、各業(yè)務板NAT資源 組1012和NAT —次分配單元102連接,用于將一次分配給業(yè)務板的NAT 資源項從空閑NAT資源組1011中轉移到相應的業(yè)務板NAT資源組1012中, 以及,將各業(yè)務板釋放的資源項從相應業(yè)務板NAT資源組1012中轉移到閑 置的空閑NAT資源組1011中。較佳的,為了便于NAT資源的管理和分配,減少業(yè)務板和主控板之間的管理信息交互,NAT資源項可以以NAT資源塊的形式加以組織。該NAT 資源塊由對按照公網IP地址順序排列,且每一公網IP地址下按照端口順序 排列的連續(xù)NAT資源項進行分塊獲得,且每個NAT資源塊以順序編號的 NAT資源塊索引標識,以便計算其標識的資源范圍。具體示例請結合圖6。在NAT資源項以NAT資源塊的形式加以組織的情況下,空閑NAT資 源組1011和業(yè)務板NAT資源組1012都是以NAT資源塊的形式對NAT資 源項加以保存,資源轉移模塊1013也是以NAT資源塊為單位,配合一次分 配進行NAT資源在主控板內的轉移。為了便于NAT資源項/NAT資源塊的組織,作為一個具體實現(xiàn)方式,該 空閑資源組1011和業(yè)務板資源組1012可以為鏈表。圖13B顯示了 NAT —次分配單元102的一個具體實施例,包括NAT—次分配模塊1021,用于根據業(yè)務板的請求,指令NAT地址 池101將閑置的NAT資源項設置為已分配給業(yè)務板的NAT資源項,并 通過板間通信將該NAT資源信息通知NAT 二次分配單元103;NAT資源回收模塊1022,用于根據業(yè)務板的資源釋放情況,指令 NAT地址池103將各業(yè)務板釋放的NAT資源項重新設置為閑置的NAT 資源項。在NAT資源項以NAT資源塊的形式加以組織的情況下,NAT —次 分配模塊1021所分配的,以及NAT資源回收模塊1022所回收的,都是 NAT資源塊。圖13C顯示了 NAT二次分配單元103的一個具體實施例,包括NAT資源模塊1031 ,用于保存NAT —次分配單元102所分配的NAT 資源項;在NAT資源項以NAT資源塊的形式加以組織的情況下,其保 存的是NAT資源塊;NAT 二次分配模塊1032,與NAT資源模塊1031連接,用于將本板 當前可分配的NAT資源項二次分配給報文流,并為該二次分配的NAT 資源項設置已分配標志;NAT資源釋放模塊1033,與NAT資源模塊1031連接,用于取消報文 流釋放的NAT資源項的已分配標志,使其重新成為本板當前可分配的資源 項。在NAT資源項以NAT資源塊的形式加以組織的情況下,NAT 二次分配模塊1032和NAT資源釋放模塊1033都是對NAT資源塊內的NAT資源項執(zhí)行操作。特別是,NAT資源模塊1031包括 指針數(shù)組,用于記錄業(yè)務板上所有的NAT資源塊; 第一函數(shù)塊,用于指向當前所分配的NAT資源塊; 第二函數(shù)塊,用于記錄當前可分配的NAT資源塊數(shù)目; 同時,該指針數(shù)組的每一個NAT資源塊關聯(lián)有 NAT數(shù)組,用于記錄NAT資源塊中的NAT資源項 第三函數(shù)塊,用于指向當前可分配的NAT資源項。 從上述實施例可以看出,在NAT資源項以NAT資源塊的形式加以組織的情況下,能夠實現(xiàn)NAT資源的分層管理,即在主控板上完成NAT資源塊的分配,在業(yè)務板上完成具體NAT資源項的分配。較佳的,為了達到高效快速的資源分配,該NAT數(shù)組可以為位圖,相應的bit位置1標志所述NAT資源項已分配,相應的bit位置0標志所述NAT資源項未分配。同時,為了有效的實現(xiàn)NAT資源塊的分配和釋放,NAT二次分配單元 103還可以包括NAT資源控制模塊1034,與NAT資源模塊1031連接,用于識別本板 當前可分配的NAT資源項;如果可分配的NAT資源項數(shù)量小于預設的第一 閾值,向NAT—次分配單元102請求獲取一定數(shù)量的NAT資源項;如果可 分配的NAT資源項數(shù)量大于預設的第二閾值時,向NAT —次分配單元102 釋放一定數(shù)量的NAT資源項。在NAT資源項以NAT資源塊的形式加以組織的情況下,該NAT資源 控制模塊1034與NAT資源模塊1031的第二函數(shù)塊連接,以當前可分配的 NAT資源塊數(shù)目作為與第一/第二閾值比較的依據。雖然已參照幾個典型實施例描述了本發(fā)明,但應當理解,所用的術語是 說明和示例性、而非限制性的術語。由于本發(fā)明能夠以多種形式具體實施而 不脫離發(fā)明的精神或實質,所以應當理解,上述實施例不限于任何前述的細 節(jié),而應在隨附權利要求所限定的精神和范圍內廣泛地解釋,因此落入權利 要求或其等效范圍內的全部變化和改型都應為隨附權利要求所涵蓋。2權利要求
1.一種分布式架構下NAT地址池的自適應分配方法,適用于由主控板、一個以上業(yè)務板和接口板構成的分布式處理架構;其特征在于,在主控板中統(tǒng)一管理NAT資源項,包括閑置的NAT資源項和已分配給各業(yè)務板的NAT資源項,所述NAT資源項由成對的公網IP和端口構成;以及,執(zhí)行以下步驟S1、所述主控板根據各業(yè)務板的請求,執(zhí)行閑置的NAT資源項到相應的業(yè)務板的一次分配;S2、所述業(yè)務板執(zhí)行所述主控板分配的NAT資源項到所處理的報文流的二次分配。
2. 根據權利要求1所述的分布式架構下NAT地址池的自適應分配方 法,其特征在于,所述步驟Sl還包括所述主控板將各業(yè)務板釋放的 NAT資源項重新設置為閑置的NAT資源項。
3. 根據權利要求2所述的分布式架構下NAT地址池的自適應分配方 法,其特征在于,所述主控板分組保存閑置的NAT資源項和分配給各業(yè) 務板的資源項;所述步驟Sl中主控板執(zhí)行閑置的NAT資源項到相應業(yè)務板的一次 分配的步驟包括將所述NAT資源項從閑置的NAT資源組中轉移到相 應的業(yè)務板資源組中,并通過板間通信通知所述業(yè)務板;所述步驟Sl中主控板將各業(yè)務板釋放的NAT資源項重新設置為閑 置的NAT資源項的步驟包括將所述NAT資源項從相應的業(yè)務板資源 組中轉移到閑置的NAT資源組中。
4. 根據權利要求3所述的分布式架構下NAT地址池的自適應分配方 法,其特征在于,以鏈表的形式分組保存NAT資源項。
5. 根據權利要求2所述的分布式架構下NAT地址池的自適應分配方 法,其特征在于,所述步驟S2包括 521、 將本板當前可分配的NAT資源項二次分配給報文流,并為所 述二次分配的NAT資源項設置已分配標志; 522、 對報文流釋放的NAT資源項,取消所述NAT資源項的已分配標志,使其重新成為本板當前可分配的資源項。
6. 根據權利要求2所述的分布式架構下NAT地址池的自適應分配方法,其特征在于,還包括以下步驟501、 業(yè)務板識別本板當前可分配的NAT資源項;502、 當可分配的NAT資源項數(shù)量小于預設的第一閾值時,所述業(yè) 務板向主控板請求獲取一定數(shù)量的NAT資源項,并執(zhí)行步驟SI;503、 當可分配的NAT資源項數(shù)量大于預設的第二閾值時,所述業(yè) 務板向主控板釋放一定數(shù)量的NAT資源項,并執(zhí)行步驟Sl。
7. 根據權利要求1-6任一所述的分布式架構下NAT地址池的自適應 分配方法,其特征在于,所述統(tǒng)一管理的NAT資源項以NAT資源塊的形式組織;其中,所 述NAT資源塊通過以下步驟獲得以按照公網IP地址順序排列,且每一公網IP地址下按照端口順序排 列的方式,設置連續(xù)的NAT資源項;對所述連續(xù)的NAT資源項加以分塊,每個NAT資源塊以順序編號 的NAT資源塊索引標識。
8. 根據權利要求7所述的分布式架構下NAT地址池的自適應分配方 法,其特征在于,所述步驟SI包括主控板根據各業(yè)務板的請求,將閑置的NAT資 源塊分配給相應的業(yè)務板,以及,將各業(yè)務板釋放的NAT資源塊重新設 置為閑置的NAT資源塊;所述步驟S2包括業(yè)務板對報文流進行NAT資源塊中的NAT資源 項的分配;其中,各業(yè)務板通過指針數(shù)組記錄本板上所有的NAT資源塊, 通過第一函數(shù)指向本板當前所分配的NAT資源塊,通過第二函數(shù)記錄本 板當前可分配的NAT資源塊數(shù)目,以及,通過為NAT資源塊設置的第 三函數(shù)指向所述NAT資源塊中當前可分配的NAT資源項。
9. 根據權利要求8所述的分布式架構下NAT地址池的自適應分配方 法,其特征在于,所述步驟S21包括 、 通過所述第一函數(shù)獲取所述當前所分配的NAT資源塊; 、 通過所述第三函數(shù)獲取當前可分配的NAT資源項;5213、 將所述NAT資源項分配給報文流,并為所述NAT資源項設 置已分配標志;5214、 在所述NAT資源塊中查找是否存在下一可分配的NAT資源 項,是則,執(zhí)行步驟S215,否則,執(zhí)行步驟S216;5215、 將所述第三函數(shù)指向所述下一可分配的NAT資源項;5216、 將所述第三函數(shù)指向無效值,標識所述NAT資源塊已分配并 將所述第二函數(shù)執(zhí)行減1處理;5217、 在所述指針數(shù)組中查找可分配的NAT資源塊并將所述第一函 數(shù)指向所述NAT資源塊,將所述NAT資源塊的第三函數(shù)指向所述NAT 資源塊中的一NAT資源項;所述步驟S22包括5221、 對于報文流釋放的NAT資源項,根據其公網IP和端口號計 算相應的NAT資源塊索引標識,以識別其所在的NAT資源塊;5222、 為所述NAT資源塊中的相應NAT資源項取消已分配標志;5223、 識別所述NAT資源塊的第三函數(shù)是否指向無效值,是則執(zhí)行 步驟S224,否則執(zhí)行步驟S225;5224、 將所述第三函數(shù)指向所述NAT資源項,并執(zhí)行步驟S225;5225、 識別第一函數(shù)是否指向無效值,是則執(zhí)行步驟S226,否則執(zhí) 行步驟S227;5226、 將所述第一函數(shù)指向所述NAT資源塊;5227、 識別所述NAT資源塊中是否所有的NAT資源都已釋放完畢;5228、 如果是,取消所述NAT資源塊的已分配標識并將第二函數(shù)執(zhí) 行加1處理。
10. 根據權利要求9所述的分布式架構下NAT地址池的自適應分配 方法,其特征在于,所述步驟S2中,業(yè)務板按照位圖的形式記錄NAT 資源塊中的NAT資源項,通過將相應的bit位置1為所述NAT資源項設 置已分配標志,通過將相應的bit位置0為所述NAT資源項取消已分配標志o
11. 一種分布式架構下NAT地址池的自適應分配系統(tǒng),適用于由主 控板、 一個以上業(yè)務板和接口板構成的分布式處理架構;其特征在于,包括NAT地址池,設置在所述主控板上,用于保存NAT資源項,包括閑 置的NAT資源項和已分配給各業(yè)務板的NAT資源項,所述NAT資源項 由成對的公網IP和端口構成;NAT—次分配單元,設置在所述主控板上,與所述NAT地址池連接, 用于根據各業(yè)務板的請求,執(zhí)行閑置的NAT資源項到相應的業(yè)務板的一 次分配;NAT二次分配單元,設置在所述業(yè)務板上,與所述NAT—次分配單 元的輸出連接,用于執(zhí)行所分配的NAT資源項到所處理的報文流的二次 分配。
12. 根據權利要求11所述的分布式架構下NAT地址池的自適應分配 系統(tǒng),其特征在于,所述NAT—次分配單元與所述NAT 二次分配單元 的輸出連接,用于將各NAT二次分配單元釋放的NAT資源項重新在NAT 地址池中設置為閑置的NAT資源項。
13. 根據權利要求12所述的分布式架構下NAT地址池的自適應分配 系統(tǒng),其特征在于,所述NAT地址池包括空閑NAT資源組,用于保存閑置的NAT資源項; 各業(yè)務板NAT資源組,用于相應保存已分配給各業(yè)務板的NAT資 源項;資源轉移模塊,分別空閑NAT資源組、各業(yè)務板NAT資源組和NAT 一次分配單元連接,用于將一次分配給業(yè)務板的NAT資源項從空閑NAT 資源組中轉移到相應的業(yè)務板NAT資源組中,以及,將各業(yè)務板釋放的 NAT資源項從相應的業(yè)務板NAT資源組中轉移到空閑NAT資源組中。
14. 根據權利要求13所述的分布式架構下NAT地址池的自適應分配 系統(tǒng),其特征在于,所述空閑NAT資源組和各業(yè)務板NAT資源組為鏈 表。
15. 根據權利要求12所述的分布式架構下NAT地址池的自適應分配 系統(tǒng),其特征在于,所述NAT—次分配單元包括NAT—次分配模塊,用于根據業(yè)務板的請求,指令所述NAT地址池 將閑置的NAT資源項設置為己分配給業(yè)務板的NAT資源項,并通過板間通信將所述NAT資源信息通知所述NAT 二次分配單元;NAT資源回收模塊,用于指令所述NAT地址池將各業(yè)務板釋放的 NAT資源項重新設置為閑置的NAT資源項。
16. 根據權利要求12所述的分布式架構下NAT地址池的自適應分配 系統(tǒng),其特征在于,所述NAT二次分配單元包括NAT資源模塊,用于保存一次分配的NAT資源項; NAT二次分配模塊,與所述NAT資源模塊連接,用于將本板當前可分配的NAT資源項二次分配給報文流,并為所述二次分配的NAT資源項設置已分配標志;NAT資源釋放模塊,與所述NAT資源模塊連接,用于取消報文流釋放的NAT資源項的已分配標志,使其重新成為本板當前可分配的資源項。
17. 根據權利要求12所述的分布式架構下NAT地址池的自適應分配 系統(tǒng),其特征在于,所述NAT二次分配單元還包括NAT資源控制模塊,與所述NAT資源模塊連接,用于識別本板當前 可分配的NAT資源項;如果可分配的NAT資源項數(shù)量小于預設的第一 閾值,向所述NAT —次分配單元請求獲取一定數(shù)量的NAT資源項;如 果可分配的NAT資源項數(shù)量大于預設的第二閾值時,向所述NAT —次 分配單元釋放一定數(shù)量的NAT資源項。
18. 根據權利要求11-17任一所述的分布式架構下NAT地址池的自適 應分配系統(tǒng),其特征在于,所述NAT地址池中的NAT資源項以NAT資 源塊的形式組織,其中所述NAT資源塊由對按照公網IP地址順序排列, 且每一公網IP地址下按照端口順序排列的連續(xù)NAT資源項進行分塊獲 得,且每個NAT資源塊以順序編號的NAT資源塊索引標識;則所述NAT資源模塊包括指針數(shù)組,用于記錄所述業(yè)務板上所有的NAT資源塊; 第一函數(shù)塊,用于指向當前所分配的NAT資源塊; 第二函數(shù)塊,與所述NAT資源控制模塊連接,用于記錄當前可分配 的NAT資源塊數(shù)目;所述指針數(shù)組的每一個NAT資源塊關聯(lián)有 NAT數(shù)組,用于記錄NAT資源塊中的NAT資源項第三函數(shù)塊,用于指向當前可分配的NAT資源項。 19.根據權利要求18所述的分布式架構下NAT地址池的自適應分配 系統(tǒng),其特征在于,所述NAT數(shù)組為位圖,相應的bit位置1標志所述 NAT資源項已分配,相應的bit位置O標志所述NAT資源項未分配。
全文摘要
本發(fā)明公開了一種分布式架構下NAT地址池的自適應分配方法和系統(tǒng),適用于由主控板、一個以上業(yè)務板和接口板構成的分布式處理架構。該方法包括在主控板中統(tǒng)一管理由成對的公網IP和端口構成的NAT資源項,包括閑置的NAT資源項和已分配給各業(yè)務板的NAT資源項;主控板根據各業(yè)務板的請求,執(zhí)行閑置的NAT資源項到相應的業(yè)務板的一次分配;業(yè)務板執(zhí)行主控板分配的NAT資源項到所處理的報文流的二次分配。在較佳的實施例中,NAT資源項以資源塊的形式分級管理主控板進行NAT資源塊的分配,業(yè)務板進行NAT資源項的分配。通過本發(fā)明,實現(xiàn)NAT資源的充分利用,避免NAT轉換后五元組的沖突,以及,具有較佳的靈活性和適應性。
文檔編號H04L29/12GK101247421SQ20081008427
公開日2008年8月20日 申請日期2008年3月28日 優(yōu)先權日2008年3月28日
發(fā)明者常向青, 張雪鋒, 鄒旭東 申請人:杭州華三通信技術有限公司