專利名稱:一種分布式系統中nat端口資源的分配方法
技術領域:
本發明涉及網絡通信技術領域,尤其涉及一種分布式系統中NAT端口資源的分配方法。
背景技術:
NAT (Network Address Translation,網絡地址轉換)是目前常用的一種解決IPv4 地址短缺的方案。在二級運營商的網絡出口或者大型企業(超過萬人)的業務出口中,網關設備要具有NAT功能。在這種場景下,由于對處理性能的要求比較高,集中式設備的性能滿足不了要求,部署的網關設備通常是分布式設備。實際應用中,網絡地址轉換可以只轉換IP地址,也可以同時轉換IP地址和TCP/ UDP協議的端口。網關設備中應用最多的是后者,本發明文件中提到的NAT都是指后者。在網關上配置幾個合法的外部IP地址,內部網絡的所有主機就可以通過共享這幾個IP地址來實現對hternet的訪問,從而可以最大限度地節約IP地址資源。內網主機發起的具有相同的源IP地址、源端口、目的IP地址、目的端口、協議的一系列報文,對應了一個報文流。在網關設備中,為了處理這個報文流,會建立一個會話狀態。 每一個會話狀態,都保存了一條NAT轉換信息(內網IP 內網端口 _>公網IP 公網端口)。 網關設備會利用這個會話狀態,來將內網主機的IP和端口,轉換為公網的IP和端口。每一個公網IP可以提供64K個端口,可以供64K個會話狀態來使用。具體地,比如內網主機1在進行ftp下載,網關會將主機1的信息 (192. 168. 1. 1:2000)轉換為公網的信息(10. 10. 10. 10:3000)。內網主機2在進行瀏覽網頁,網關會將主機2的信息(192. 168. 1. 2:2000)轉換為公網的信息(10. 10. 10. 10:4000)。參見圖1在分布式系統中,至少包含控制板和業務板這兩種類型的板卡。其中控制板負責整機控制調度、路由表學習和下發等工作。業務板負責本地查表、業務板狀態維護、會話狀態維護、安全業務功能處理等工作。會話狀態的建立和使用過程分為兩步(1) 建立會話狀態其中,報文流的第一個報文,會觸發建立會話狀態,包括NAT轉換信息;(2) 使用會話狀態在會話狀態建立以后,后續的報文就會使用會話狀態來進行轉發。包括使用 NAT的轉換信息來進行IP地址和端口的轉換。在分布式設備中,會有多塊業務板。業務板是可以后續增加的。比如用戶開始只買了 3塊業務板(業務板1,業務板2,業務板3),后來由于業務的發展,需要提高系統的處理能力,可以再增加一塊業務板(業務板4)。當前常用的一種實現方式為控制板上保留所有端口資源,業務板上不保留端口資源。參見圖2,圖中箭頭表示報文的流向。假定設備上只配置了一個公網 IP(10. 10. 10. 10),那么控制板上保存了這個公網IP地址所有的64K個端口資源。會話狀態的建立和使用過程(1)建立會話狀態第一個報文 (192. 168. 1. 1:2000)要先經過業務板,然后發送到控制板獲取NAT的轉換信息(192. 168. 1 .2:2000->10. 10. 10. 10:3000),然后把會話狀態保存在業務板上;( 使用會話狀態后續的報文利用業務板上保存的會話狀態,直接在業務板上進行轉發。這種實現方式存在的缺陷是擴展性不好,所有建立會話狀態的過程都要經過控制板,對控制板要求很高,在配置了很多塊業務板的情況下,控制板的處理性能將會成為瓶頸;新建會話狀態的過程延遲大,新建會話狀態的第一個報文都要繞一下控制板,導致報文的延遲大,給用戶的直觀反應是,速度變慢,應用中比如瀏覽網頁的速度變慢。當前常用的另一實現方式為業務板均分所有的端口資源,控制板上不保留端口資源。具體參見圖3,假設系統初始有3塊業務板(業務板1,業務板2,業務板幻,只配置了一個公網IP地址(10. 10. 10. 10),那么每塊業務板上分別保留了大約21K個端口資源。 每個業務板上保留的端口資源,是在系統初始化的時候決定的。在系統運行期間,不能動態調節。業務板之間的端口資源也不能相互借用。會話狀態的建立和使用過程(1)建立會話狀態第一個報文 (192. 168. 1. 2:2000)只經過業務板,就能獲取 NAT 的轉換信息(192. 168. 1. 2:2000_>10· 10 .10. 10:4000),然后把會話狀態保存在業務板上(不需要經過控制板處理);( 使用會話狀態后續的報文利用業務板上保存的會話狀態,直接在業務板上進行轉發。這種實現方式存在的缺陷是端口資源可能會形成較大浪費,在業務不均勻的情況下,可能會出現業務板1上還有端口資源,但業務板2和業務板3上的端口資源已經耗盡的情況;不支持業務板的熱插拔,在插入或者拔出業務板的時候,沒辦法自動為業務板分配或者回收端口資源,需要重啟系統,造成斷網。比如第一步,現在插入業務板4,仍然是業務板1,業務板2,業務板3各自有2IK個端口資源,業務板4沒有辦法自動保留端口資源。重啟系統之后,每個業務板上保留的端口資源是16K,第二步,又拔出業務板4,沒有辦法自動回收業務板4上的端口資源,業務板1,業務板2,業務板3上還是各自16K個端口資源,重啟系統之后,每個業務板上(業務板1,業務板2,業務板幻保留的端口資源恢復成21K。因此,當下需要迫切解決的一個技術問題就是如何能夠提出一種有效的措施,以解決現有技術中存在的缺陷。
發明內容
本發明所要解決的技術問題是提供一種分布式系統中NAT端口資源的分配方法, 有效降低報文處理的延遲,提高用戶的體驗。為了解決上述技術問題,本發明提供了一種分布式系統中NAT端口資源的分配方法,包括第一會話狀態的第一個報文經某一業務板時,觸發當前業務板的NAT模塊向控制板的NAT模塊申請N個端口資源,并取一端口 ;第一報文獲取所取端口的轉換信息,并將第一會話狀態保存在當前業務板;第一會話狀態的后續報文按照當前業務板上保存的會話狀態,在當前業務板上進行轉發;后續會話狀態的第一報文經過當前業務板時,該業務板的NAT模塊從剩余的N-I 個端口中取一端口,該后續會話狀態的第一報文獲取所取端口的轉換信息,并將該后續會話狀態保存在當前業務板;
該后續會話狀態的后續報文按照當前業務板上保存的會話狀態,在當前業務板上進行轉發。進一步地,所述N的取值范圍為24 212。進一步地,所述的分布式系統中NAT端口資源的分配方法還包括設置申請閥值和釋放閥值,業務板統計本板的可用端口數,當可用端口數小于申請閥值時,業務板向主控板申請端口資源;當可用端口數大于釋放閥值時,業務板向主控板釋放端口資源。進一步地,控制板中端口資源低于某一業務板的申請量時,控制板回收當前分布式系統其他業務板中未使用的端口資源,分配給當前申請端口資源的業務板。進一步地,所述轉換信息具體是內網主機的IP和端口到公網的IP和端口的轉換
fn息ο進一步地,所述報文包括源IP地址、源端口、目的IP地址、目的端口和協議。進一步地,每個公網IP提供64K個端口,供64K個會話狀態使用。進一步地,所述控制板中端口資源低于某一業務板的申請量時,控制板回收當前分布式系統其他業務板中未使用的端口資源,分配給當前申請端口資源的業務板,具體包括控制板收集業務板的端口資源信息;獲取所收集資源信息中未使用的端口資源;回收未使用端口資源并將其歸屬至控制板的NAT模塊;控制板NAT模塊分配端口資源給申請端口資源的業務板。進一步地,所述取一端口的方式為隨機方式或按照端口編號大小順序的方式。進一步地,所述業務板包括現有業務板和新增業務板。綜上,本發明提供的分布式系統中NAT端口資源的分配方法具有以下有益效果1、避開控制板處理性能的瓶頸;2、減少新建會話狀態的過程延遲;3、端口資源得到全局分配,避免了端口資源的浪費;
4、實現了業務板的熱插拔。
圖1是本發明的背景技術中所述的分布式系統的示意圖;圖2是本發明的背景技術中所述一種實現方式中分布式系統的示意圖;圖3是本發明的背景技術中所述另一種實現方式中分布式系統的示意圖;圖4是本發明的具體實施方式
中所述的一種分布式系統中NAT端口資源的分配方法的流程示意圖;圖5是本發明的具體實施方式
中所述的實際應用中的分布式系統示意圖;圖6是本發明的具體實施方式
中所述的應用實例的示意圖。
具體實施例方式下面結合附圖和具體實施方式
對本發明作進一步詳細的說明。
參照圖4所示一種分布式系統中NAT端口資源的分配方法的流程示意圖,具體包括S101,第一會話狀態的第一個報文經某一業務板時,觸發當前業務板的NAT模塊向控制板的NAT模塊申請N個端口資源,并取一端口 ;S102,第一報文獲取所取端口的轉換信息,并將第一會話狀態保存在當前業務板;S103,第一會話狀態的后續報文按照當前業務板上保存的會話狀態,在當前業務板上進行轉發;實際應用中的分布式系統示意圖參見圖5,控制板上有NAT模塊(全局池),保留所有端口資源,進行端口資源的全局統一分配。業務板在需要時通過NAT模塊-本地池來向 NAT-全局池一次申請較多的端口資源,通常申請范圍為24 212,也即16 4096個。如 第一個會話狀態的第一個報文(192. 168. 1. 3:2000)在經過業務板(假設為業務板1)時, 會觸發業務板1的NAT模塊-本地池來向NAT-全局池申請IK的端口資源(端口 5000-端口 5999)。第一個報文獲取了 NAT 的轉換信息(192. 168. 1. 3:2000_>10· 10. 10. 10:5000), 然后把會話狀態1保存在業務板上。此時業務板1的NAT模塊-本地池還有999個端口資源。第一個會話狀態后續的報文利用業務板上保存的會話狀態1,直接在業務板1上進行轉發。其中,轉換信息具體是內網主機的IP和端口到公網的IP和端口的轉換信息。報文包括源IP地址、源端口、目的IP地址、目的端口和協議。每個公網IP提供64K個端口, 供64K個會話狀態使用。S104,后續會話狀態的第一報文經過當前業務板時,該業務板的NAT模塊從剩余的N-I個端口中取一端口,該后續會話狀態的第一報文獲取所取端口的轉換信息,并將該后續會話狀態保存在當前業務板;S105,該后續會話狀態的后續報文按照當前業務板上保存的會話狀態,在當前業務板上進行轉發。當第二個會話狀態的第一個報文(192. 168. 1. 4:2000)經過業務板1時,業務板1 的NAT模塊-本地池就從剩余的999個端口資源取出1個端口。這個報文獲取了 NAT的轉換信息(192. 168. 1.4:2000->10. 10. 10. 105001),然后把會話狀態2保存在業務板上。第二個會話狀態后續的報文利用業務板上保存的會話狀態2,直接在業務板1上進行轉發。后續會話狀態與第二會話狀態采用同樣的方式進行處理。在實際應用中還會有插入或拔出業務板的需求,如現有的分布系統中有業務板1、 業務板2和業務板3,現在需要插入業務板4,當業務板4收到報文,業務板4的NAT模塊-本地池會自動從控制板的NAT模塊-全局池中分配端口資源,比如IK個端口資源。又或后期應用中,不再需要業務板4時,將其拔出,這時控制板的NAT模塊-全局池會把原來業務板 4上NAT模塊-本地池中的這IK個端口資源全部回收。當控制板中端口資源低于某一業務板的申請量時,控制板回收當前分布式系統其他業務板中未使用的端口資源,分配給當前申請端口資源的業務板。具體地,控制板收集業務板的端口資源信息,獲取所收集資源信息中未使用的端口資源,回收未使用端口資源并將其歸屬至控制板的NAT模塊,控制板NAT模塊分配端口資源給申請端口資源的業務板。
從而,控制板通過監控每個業務板NAT的端口資源的使用情況,可以將業務板之間的端口資源進行協調。如業務板1上還有端口資源,但業務板2和業務板3上的端口資源已經耗盡,又或業務板4向控制板申請端口資源時,控制板出現端口資源緊缺的狀況,控制板可以將業務板1上NAT模塊-本地池的端口資源回收到控制板上NAT模塊-全局池中, 然后根據需要轉移到業務板2和業務板3上的NAT模塊-本地池中,或分配給業務板4。此外,也可通過設置申請閥值和釋放閥值來實現端口資源的調控,具體地,業務板統計本板的可用端口數,當可用端口數小于申請閥值時,業務板向主控板申請端口資源;當可用端口數大于釋放閥值時,業務板向主控板釋放端口資源。文中所述的業務板包括現有業務板和新增業務板。以下通過具體應用實例對本發明所述方案作進一步介紹具體參見圖6,某一個寬帶運營商為2個小區提供寬帶上網業務,在小區1和小區2分別部署了分布式系統。小區 1的分布式系統上配置一條NAT轉換規則內網(屬于IP網段192. 168. 1. 0/24)來的報文全部轉換到公網IP地址(10. 10. 10. 10)。小區2的分布式系統上配置一條NAT轉換規則 內網(屬于IP網段192. 168. 2. 0/24)來的報文全部轉換到公網IP地址20. 20. 20)。在小區1中,開始用戶數目較少,為了保護該寬帶運營商的初始投入,分布式系統只配置了 3塊業務板。運營一段時間以后,用戶數目增加很多,3塊業務板處理能力不夠。 該寬帶運營商又購買了一塊業務板。在升級過程中,可以直接把業務板插入到機框中即可。 不需要更改配置和重啟系統。避免了中斷小區1中的用戶的業務中斷。整個升級過程,用戶感知不到。同樣地,小區2也可以采用上述運營和升級模式。需要說明的是,本發明的分布式系統中NAT端口資源的分配方法可廣泛用于各種二級運營商的網絡出口或大型企業的業務出口中。以上對本發明所提供的一種分布式系統中NAT端口資源的分配方法進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
權利要求
1.一種分布式系統中NAT端口資源的分配方法,其特征在于,包括第一會話狀態的第一個報文經某一業務板時,觸發當前業務板的NAT模塊向控制板的 NAT模塊申請N個端口資源,并取一端口 ;第一報文獲取所取端口的轉換信息,并將第一會話狀態保存在當前業務板; 第一會話狀態的后續報文按照當前業務板上保存的會話狀態,在當前業務板上進行轉發;后續會話狀態的第一報文經過當前業務板時,該業務板的NAT模塊從剩余的N-I個端口中取一端口,該后續會話狀態的第一報文獲取所取端口的轉換信息,并將該后續會話狀態保存在當前業務板;該后續會話狀態的后續報文按照當前業務板上保存的會話狀態,在當前業務板上進行轉發。
2.根據權利要求1所述的分布式系統中NAT端口資源的分配方法,其特征在于 所述N的取值范圍為M 212。
3.根據權利要求2所述的分布式系統中NAT端口資源的分配方法,其特征在于,進一步包括設置申請閥值和釋放閥值,業務板統計本板的可用端口數,當可用端口數小于申請閥值時,業務板向主控板申請端口資源;當可用端口數大于釋放閥值時,業務板向主控板釋放端口資源。
4.根據權利要求2所述的分布式系統中NAT端口資源的分配方法,其特征在于控制板中端口資源低于某一業務板的申請量時,控制板回收當前分布式系統其他業務板中未使用的端口資源,分配給當前申請端口資源的業務板。
5.根據權利要求1所述的分布式系統中NAT端口資源的分配方法,其特征在于 所述轉換信息具體是內網主機的IP和端口到公網的IP和端口的轉換信息。
6.根據權利要求1所述的分布式系統中NAT端口資源的分配方法,其特征在于 所述報文包括源IP地址、源端口、目的IP地址、目的端口和協議。
7.根據權利要求5所述的分布式系統中NAT端口資源的分配方法,其特征在于 每個公網IP提供64K個端口,供64K個會話狀態使用。
8.根據權利要求4所述的分布式系統中NAT端口資源的分配方法,其特征在于,所述控制板中端口資源低于某一業務板的申請量時,控制板回收當前分布式系統其他業務板中未使用的端口資源,分配給當前申請端口資源的業務板,具體包括控制板收集業務板的端口資源信息; 獲取所收集資源信息中未使用的端口資源; 回收未使用端口資源并將其歸屬至控制板的NAT模塊; 控制板NAT模塊分配端口資源給申請端口資源的業務板。
9.根據權利要求1所述的分布式系統中NAT端口資源的分配方法,其特征在于 所述取一端口的方式為隨機方式或按照端口編號大小順序的方式。
10.根據權利要求1-9任一所述的分布式系統中NAT端口資源的分配方法,其特征在于所述業務板包括現有業務板和新增業務板。
全文摘要
本發明提供了一種分布式系統中NAT端口資源的分配方法,屬于網絡通信技術領域,具體地,第一會話狀態的第一個報文經某一業務板時,觸發當前業務板的NAT模塊向控制板的NAT模塊申請N個端口資源,并取一端口,第一報文獲取所取端口的轉換信息,并將第一會話狀態保存在當前業務板,第一會話狀態的后續報文按照當前業務板上保存的會話狀態,在當前業務板上進行轉發,后續會話狀態的第一報文經過當前業務板時,該業務板的NAT模塊從剩余的N-1個端口中取一端口,該后續會話狀態的第一報文獲取所取端口的轉換信息,并將該后續會話狀態保存在當前業務板,該后續會話狀態的后續報文按照當前業務板上保存的會話狀態,在當前業務板上進行轉發。
文檔編號H04L29/12GK102404236SQ201110453760
公開日2012年4月4日 申請日期2011年12月30日 優先權日2011年12月30日
發明者隋少帥 申請人:蘇州山石網絡有限公司