一種分布式網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及分布式網(wǎng)絡(luò)地址轉(zhuǎn)換NAT(Netw〇rk AddressTranslation)系統(tǒng)。
【背景技術(shù)】
[0002] 互聯(lián)網(wǎng)網(wǎng)絡(luò)地址分配機構(gòu)IANA(TheInternetAssignedNumbersAuthority)規(guī) 定了三類私有IP地址空間:10. 〇?〇? 0-10. 255. 255. 255、172. 16. 0? 0-172. 31. 255. 255 和 192. 168. 0.0-192. 168. 255. 255。這三類IP地址只能在內(nèi)部網(wǎng)絡(luò)使用,不允許在互聯(lián)網(wǎng)使 用。則使用私有IP地址的網(wǎng)絡(luò)為內(nèi)部網(wǎng)絡(luò),簡稱"內(nèi)網(wǎng)";使用公有IP地址的網(wǎng)絡(luò)稱為外部 網(wǎng)絡(luò),簡稱"外網(wǎng)"或者"互聯(lián)網(wǎng)"。
[0003]NAT技術(shù)是在IPv4地址日漸枯竭的情況下出現(xiàn)的一種技術(shù),主要用于實現(xiàn)內(nèi)部網(wǎng) 絡(luò)訪問外部網(wǎng)絡(luò)的功能,并于1994年作為RFC文檔發(fā)布。NAT提供了一種將IP地址從編址 域P映射到編址域Q的機制。通常稱編址域P為私有IP地址域,只允許內(nèi)部網(wǎng)絡(luò)使用,編 址域Q則為可在互聯(lián)網(wǎng)路由的公有IP地址域。
[0004] 當(dāng)前使用最廣泛的網(wǎng)絡(luò)地址轉(zhuǎn)換類型有三種:靜態(tài)NAT、動態(tài)NAT、網(wǎng)絡(luò)地址端口 轉(zhuǎn)換NAPT。
[0005] 靜態(tài)NAT(StaticNAT)中內(nèi)部主機的私有IP被永久一對一地映射到公有IP。靜 態(tài)NAT沒有狀態(tài)的概念,不需要記錄前一個數(shù)據(jù)包的轉(zhuǎn)換信息,只需處理好當(dāng)前數(shù)據(jù)包。靜 態(tài)NAT在完成IP地址轉(zhuǎn)換與網(wǎng)絡(luò)層校驗和重新計算后,在內(nèi)外網(wǎng)之間轉(zhuǎn)發(fā)數(shù)據(jù)包。圖1.就 是靜態(tài)NAT的例子,通過在私有IP和公有IP之間建立靜態(tài)映射關(guān)系,外部主機訪問公有 IP地址就相當(dāng)于訪問內(nèi)部主機。例如:夕卜部主機HostA要訪問WebServer,只需訪問Web Server私有IP地址(10. 0. 0. 4)對應(yīng)的公有IP地址(159. 226. 40. 4)即可。公有IP和私 用IP之間的映射,將由NAT設(shè)備完成。靜態(tài)NAT的一個最顯著的缺點是沒有提高公有IP 地址利用率,由于一對一的靜態(tài)映射關(guān)系,公有IP被內(nèi)部主機獨占。當(dāng)內(nèi)部主機不在線或 者不可用時,公有IP地址就被浪費。靜態(tài)NAT方式只是作為NAT的一種特殊方式出現(xiàn),僅 僅體現(xiàn)了網(wǎng)絡(luò)地址轉(zhuǎn)換的思想。
[0006] 動態(tài)NAT(PooledNAT)在私有IP地址和公有IP地址間建立起的動態(tài)映射關(guān)系, 所有公有IP被放入地址池,當(dāng)內(nèi)部主機需要訪問互聯(lián)網(wǎng)時,根據(jù)地址選擇算法從地址池中 選擇一個可用的公有IP地址,并在公私IP地址間建立映射。應(yīng)答報文和后續(xù)報文都將使 用該映射表項進行轉(zhuǎn)換。等到通信結(jié)束后,該映射表項被拆除,公網(wǎng)IP重新歸入到地址池。 在內(nèi)部主機網(wǎng)絡(luò)訪問并發(fā)率不高的情況下,動態(tài)NAT能夠通過公私IP之間映射關(guān)系的動態(tài) 建立和拆除,保證網(wǎng)絡(luò)訪問正常進行,從而達到使用少量公有IP就能夠讓大量內(nèi)部主機訪 問互聯(lián)網(wǎng)的目的。動態(tài)NAT的這種運作方式與CPU按照時間片調(diào)度類似,從宏觀上看所有內(nèi) 部主機同時訪問互聯(lián)網(wǎng),而實際上同一時刻只允許公有IP地址個數(shù)的內(nèi)部主機訪問互聯(lián) 網(wǎng)。圖2就是動態(tài)NAT的例子,內(nèi)部網(wǎng)絡(luò)使用10. 0. 0. 0/24網(wǎng)段,公有IP地址全部放入地 址池中,通過在私有IP和公有IP之間建立動態(tài)映射關(guān)系,實現(xiàn)內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)互連。
[0007] 雖然動態(tài)NAT提供了使用少量公網(wǎng)IP就能讓大量內(nèi)部主機同時訪問互聯(lián)網(wǎng)的機 制,但是該機制的實現(xiàn)依賴于內(nèi)部主機訪問的頻率。假設(shè)100個內(nèi)部主機使用20個公有IP 進行互聯(lián)網(wǎng)訪問,一旦有超過20個頻繁活動的內(nèi)部主機占據(jù)了地址池中的所有公有IP地 址,其他主機就無法獲取公有IP地址,從而也就阻塞了這些主機的互聯(lián)網(wǎng)訪問。
[0008] 網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(NetworkAddressPortTranslation)是當(dāng)前最流行的 NAT方式,被普遍應(yīng)用于接入設(shè)備中,能夠?qū)?nèi)部網(wǎng)絡(luò)隱藏在一個或幾個公有IP地址后。 與前兩種網(wǎng)絡(luò)地址轉(zhuǎn)換只修改IP地址不同,NAPT將映射關(guān)系延伸到端口級別,單個公有IP 地址的不同端口能夠與多個私有IP地址建立映射關(guān)系,網(wǎng)絡(luò)地址端口轉(zhuǎn)換涉及到網(wǎng)絡(luò)層 和傳輸層。圖3就是NAPT的例子,內(nèi)部網(wǎng)絡(luò)使用10. 0. 0. 0/24網(wǎng)段,總共有3個公有IP地 址。當(dāng)一個內(nèi)部主機需要進行互聯(lián)網(wǎng)訪問時,NAPT設(shè)備不僅要對數(shù)據(jù)包的IP地址進行轉(zhuǎn) 換,還需要對傳輸層端口號進行轉(zhuǎn)換。由于可用的端口地址眾多,因此NAPT幾乎是解決了 動態(tài)NAT中由于地址池公有IP不足帶來的內(nèi)部主機訪問互聯(lián)網(wǎng)被阻塞的問題。使用NAPT, 從外部主機的角度看,所有內(nèi)部主機的數(shù)據(jù)包都來源于一個或者幾個公有IP地址,用戶只 需要申請少量的公有IP地址就能夠?qū)崿F(xiàn)讓大量內(nèi)部主機接入互聯(lián)網(wǎng)。盡管主機數(shù)量眾多 而互聯(lián)網(wǎng)帶寬有限,可能導(dǎo)致上網(wǎng)體驗不好的情況。
[0009] 隨著NAT設(shè)備的廣泛部署,出現(xiàn)越來越多局部NAT環(huán)境"過冷"和"過熱"兩種極 端情況。如圖4所示,某單位有三個部門,各自通過NAT設(shè)備接入互聯(lián)網(wǎng),各個NAT環(huán)境間 沒有交互關(guān)系。這里假設(shè)每個NAT環(huán)境擁有同等資源。由于環(huán)境一用戶多,而環(huán)境二和環(huán) 境三用戶少,在同等資源條件下,必然導(dǎo)致環(huán)境一"過熱"而環(huán)境二、環(huán)境三"過冷"。"過冷" 環(huán)境的NAT設(shè)備負(fù)載低,網(wǎng)絡(luò)帶寬被浪費;"過熱"環(huán)境的NAT設(shè)備負(fù)載高,網(wǎng)絡(luò)帶寬不足。 造成這一狀況的根本原因在于:資源分散、無法共享。
[0010] 因此傳統(tǒng)的NAT系統(tǒng)IP資源利用率低,且不支持負(fù)載的資源使用策略。
【發(fā)明內(nèi)容】
[0011] 有鑒于此,本發(fā)明提供了一種分布式網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng),能夠提高NAT系統(tǒng)中IP資源利用率,支持復(fù)雜的資源使用策略,并具有三種擴展功能,優(yōu)化了網(wǎng)絡(luò)應(yīng)用。
[0012] 為達到上述目的,本發(fā)明的技術(shù)方案為:該系統(tǒng)包括接入層、復(fù)用層和控制層; 接入層中節(jié)點為接入點AP;復(fù)用層中節(jié)點為復(fù)用點MP;控制層中節(jié)點為控制點CP。
[0013] 接入點AP為接入服務(wù)器;接入點AP具有與內(nèi)網(wǎng)主機通信以及為內(nèi)網(wǎng)主機選定公 有IP資源,并與持有選定公有IP資源的復(fù)用點MP進行通信并進行地址轉(zhuǎn)換的功能。
[0014] 復(fù)用點MP為復(fù)用服務(wù)器;每個復(fù)用點MP均維護各自持有的公有IP資源,每個復(fù) 用點MP具有通過各自的公有IP資源與外網(wǎng)通信的功能。
[0015] 控制點CP包括資源服務(wù)器IPS和配置服務(wù)器CC;其中資源服務(wù)器IPS用于維護 系統(tǒng)中所有復(fù)用點MP的公有IP地址資源;配置服務(wù)器用于對各層的節(jié)點進行配置。
[0016] 接入點AP、復(fù)用點MP和控制點CP之間使用隧道進行互聯(lián),隧道為傳輸層連接隧 道。
[0017] 進一步地,接入點AP與持有選定公有IP資源的復(fù)用點MP建立會話并進行地址轉(zhuǎn) 換的過程具體為:內(nèi)網(wǎng)主機發(fā)起到外網(wǎng)主機的連接請求,該連接請求中包括內(nèi)網(wǎng)主機IP地 址和端口號、外網(wǎng)主機IP地址和端口號,接入點AP接收到該連接請求,通過設(shè)定的公有IP 選擇算法選擇公有IP地址和端口號,由此產(chǎn)生一個新的會話映射表項,將新的會話映射表 項中與連接有關(guān)的信息傳遞給復(fù)用點MP,復(fù)用點MP建立新的連接信息表項,會話建立;接 入點AP與復(fù)用點MP采用該會話進行數(shù)據(jù)交互;
[0018] 會話映射表項存于會話映射表中,該會話映射表由接入點AP建立并維護,會話映 射表項為一個會話的基本數(shù)據(jù)結(jié)構(gòu),具體包括內(nèi)網(wǎng)主機的IP地址和端口號、所選取的公有IP地址和端口號、目的外網(wǎng)主機的IP地址和端口號以及該會話對端復(fù)用點MP的IP地址;
[0019] 連接信息表項存于連接信息表中,該連接信息表由復(fù)用點MP建立并維護,連接 信息表項為用于一個會話的輔助數(shù)據(jù)結(jié)構(gòu);具體包括內(nèi)網(wǎng)主機對應(yīng)的公有IP地址和端口 號、外網(wǎng)主機的IP地址和端口號以及該會話對端接入點AP的IP地址;
[0020] 與連接有關(guān)的信息包括公有IP地址和端口號、外網(wǎng)主機IP地址和端口號、以及會 話對端接入點AP的IP地址。
[0021] 優(yōu)選地,上述設(shè)定的公有IP選擇算法為每次選取不同復(fù)用點MP的公有IP地址。
[0022] 優(yōu)選地,公有IP選擇算法包括按連接變換公有IP地址和按時間變換公有IP地 址:
[0023] 按連接變換公有IP地址具體為以會話為單元循環(huán)選取不同的公有IP地址和端口 號;
[0024] 按時間變換公有IP地址具體為在連接請求中加入時間字段,在時間字段范圍內(nèi) 使用預(yù)設(shè)的公有IP地址,一旦超時,則變換選取其他公有IP地址。
[0025] 進一步地,接入層、復(fù)用層和控制層的節(jié)點之間采用三類數(shù)據(jù)流進行數(shù)據(jù)交互,三 類數(shù)據(jù)流分別為公有IP提交流、公有IP獲取流以及系統(tǒng)數(shù)據(jù)流;其中系統(tǒng)數(shù)據(jù)流包括配置 流和業(yè)務(wù)數(shù)據(jù)流。
[0026] 公有IP提交流的數(shù)據(jù)方向為復(fù)用點MP至資源服務(wù)器IPS;當(dāng)復(fù)用點MP初始化時, 復(fù)用點MP將其所維持的所有公有IP地址資源信息通過公有IP提交流發(fā)送至資源服務(wù)器 IPS,或者當(dāng)復(fù)用點MP所維持的公有IP地址發(fā)生變更時,