一種適用于多出口網(wǎng)絡(luò)的地址轉(zhuǎn)換方法及設(shè)備的制作方法
【專利摘要】本發(fā)明公開了一種適用于多出口網(wǎng)絡(luò)的地址轉(zhuǎn)換方法和設(shè)備,網(wǎng)關(guān)設(shè)備從公網(wǎng)接口收到公網(wǎng)用戶發(fā)送來的連接首報(bào)文,根據(jù)連接首報(bào)文的目的地址,判斷連接首報(bào)文匹配地址轉(zhuǎn)換配置,查詢轉(zhuǎn)發(fā)表,并在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí),將連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,將所述連接首報(bào)文源地址轉(zhuǎn)換為私網(wǎng)接口的接口地址,建立會話表項(xiàng),將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去;網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到私網(wǎng)設(shè)備發(fā)送來的回應(yīng)報(bào)文,查詢會話表項(xiàng),將所述回應(yīng)報(bào)文目的地址轉(zhuǎn)換為所述公網(wǎng)用戶的IP地址,將回應(yīng)報(bào)文源地址轉(zhuǎn)換為公網(wǎng)地址,并根據(jù)轉(zhuǎn)換后的回應(yīng)報(bào)文目的地址,查詢轉(zhuǎn)發(fā)表進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
【專利說明】—種適用于多出口網(wǎng)絡(luò)的地址轉(zhuǎn)換方法及設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),特別是一種適用于多出口網(wǎng)絡(luò)的地址轉(zhuǎn)換方法和設(shè)備。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT, Network Address Translation),是一種通過轉(zhuǎn)換報(bào)文源/目的地址實(shí)現(xiàn)私網(wǎng)與公網(wǎng)互通的技術(shù)。由于NAT技術(shù)會破壞網(wǎng)絡(luò)互聯(lián)協(xié)議(IP,InternetProtocol)通信的端到端模型,給用戶在實(shí)際組網(wǎng)中帶來許多限制,由此,產(chǎn)生了多種類型的NAT,以滿足實(shí)際通信中各種各樣的用戶需求。比如NAT server就是一種能滿足公網(wǎng)用戶主動訪問私網(wǎng)設(shè)備的NAT技術(shù)。
[0003]NAT server的用法:NAT server為私網(wǎng)設(shè)備分配固定公網(wǎng)地址。企業(yè)向公網(wǎng)的域名解析服務(wù)器(DNS, Domain Name Service)注冊域名時(shí),域名對應(yīng)的IP地址為公網(wǎng)地址,當(dāng)公網(wǎng)某主機(jī)通過DNS解析到地址后,會發(fā)起目的地址為公網(wǎng)地址的報(bào)文,NAT設(shè)備收到該報(bào)文后,發(fā)現(xiàn)報(bào)文目的地址為NAT server配置的公網(wǎng)地址,于是將報(bào)文目的地址轉(zhuǎn)換為對應(yīng)的私網(wǎng)地址,使公網(wǎng)主機(jī)訪問到真實(shí)的私網(wǎng)設(shè)備。
[0004]然而,企業(yè)在使用NAT server時(shí),常會遇到多出口的難題,如圖1所示:該企業(yè)有兩個(gè)網(wǎng)關(guān)設(shè)備,分別接入了運(yùn)營商網(wǎng)絡(luò)A和運(yùn)營商網(wǎng)絡(luò)B。在A網(wǎng)關(guān)設(shè)備上,NAT server的公網(wǎng)地址屬于運(yùn)營商網(wǎng)絡(luò)A ;在B網(wǎng)關(guān)設(shè)備上,NAT server的公網(wǎng)地址屬于運(yùn)營商網(wǎng)絡(luò)B。由于用戶往往使用的DNS服務(wù)器屬于第三方(既不位于運(yùn)營商網(wǎng)絡(luò)A的網(wǎng)絡(luò)也不位于運(yùn)營商網(wǎng)絡(luò)B的網(wǎng)絡(luò)),位于運(yùn)營商網(wǎng)絡(luò)A網(wǎng)絡(luò)的用戶在解析服務(wù)器的域名時(shí),可能會解析到B網(wǎng)關(guān)設(shè)備上的公網(wǎng)地址,具體通信過程為:
[0005]用戶C通過DNS解析到的服務(wù)器地址為B網(wǎng)關(guān)設(shè)備上的公網(wǎng)地址,遂以B網(wǎng)關(guān)設(shè)備上的公網(wǎng)地址為目的地址,發(fā)起連接請求(如圖中標(biāo)號I的虛線箭頭);
[0006]B網(wǎng)關(guān)設(shè)備收到報(bào)文后,進(jìn)行目的地址轉(zhuǎn)換,然后將報(bào)文轉(zhuǎn)發(fā)給私網(wǎng)設(shè)備(如圖中標(biāo)號2的虛線箭頭);
[0007]私網(wǎng)設(shè)備發(fā)出回應(yīng)報(bào)文(如圖中標(biāo)號3的虛線箭頭),值得注意的是,由于私網(wǎng)設(shè)備回應(yīng)報(bào)文目的地址為用戶C的地址,而用戶C位于運(yùn)營商網(wǎng)絡(luò)A的網(wǎng)絡(luò)內(nèi),私網(wǎng)設(shè)備的回應(yīng)報(bào)文會被內(nèi)部網(wǎng)絡(luò)內(nèi)的中間設(shè)備轉(zhuǎn)發(fā)到A網(wǎng)關(guān)設(shè)備,而不是B網(wǎng)關(guān)設(shè)備(因?yàn)槁酚缮?,A網(wǎng)關(guān)設(shè)備更靠近用戶C)。這時(shí)A網(wǎng)關(guān)設(shè)備可能會對收到的報(bào)文有兩種處理:
[0008]一是檢查到這個(gè)報(bào)文并不屬于某個(gè)連接的首包,認(rèn)定它屬于非正常連接的報(bào)文,丟棄;二是不檢查報(bào)文是否屬正常連接,將報(bào)文的源地址轉(zhuǎn)換為運(yùn)營商網(wǎng)絡(luò)A網(wǎng)絡(luò)的公網(wǎng)地址,將報(bào)文轉(zhuǎn)發(fā)給用戶C。然而,用戶C收到此報(bào)文后,由于報(bào)文源地址并不是用戶C之前訪問的目的地址(B網(wǎng)關(guān)設(shè)備上的公網(wǎng)地址),該報(bào)文會被用戶C丟棄。
[0009]因此,網(wǎng)關(guān)設(shè)備A對報(bào)文的兩種處理都會導(dǎo)致用戶C訪問私網(wǎng)設(shè)備失敗。
[0010]現(xiàn)有的一種最優(yōu)實(shí)現(xiàn)方法為雙機(jī)熱備份,這種方法的基本原理為:在A網(wǎng)關(guān)設(shè)備和B網(wǎng)關(guān)設(shè)備之間,連接一根“心跳線”,當(dāng)A網(wǎng)關(guān)設(shè)備或B網(wǎng)關(guān)設(shè)備對報(bào)文進(jìn)行過NAT轉(zhuǎn)換時(shí),立即在本網(wǎng)關(guān)設(shè)備記錄一條會話表項(xiàng),會話表項(xiàng)里記錄著地址轉(zhuǎn)換對應(yīng)關(guān)系,兩個(gè)網(wǎng)關(guān)設(shè)備利用心跳線通過特殊的“心跳協(xié)議”實(shí)時(shí)同步各自生成的會話表項(xiàng),使兩個(gè)網(wǎng)關(guān)設(shè)備維護(hù)相同的會話表,這樣,如果某條連接的首報(bào)文由B網(wǎng)關(guān)設(shè)備轉(zhuǎn)換過目的地址,而該報(bào)文的回應(yīng)報(bào)文被轉(zhuǎn)發(fā)到了 A網(wǎng)關(guān)設(shè)備,A網(wǎng)關(guān)設(shè)備可根據(jù)設(shè)備上的會話表項(xiàng)里記錄的地址轉(zhuǎn)換對應(yīng)關(guān)系,將報(bào)文源地址轉(zhuǎn)換為B網(wǎng)關(guān)設(shè)備上的公網(wǎng)地址,即能順利完成通信。
[0011]雙機(jī)熱備份的方法存在明顯的缺點(diǎn):雙機(jī)熱備技術(shù)屬于高級高可靠性(HA,HighAvailability)技術(shù),支持雙機(jī)熱備的產(chǎn)品比較昂貴,且對兩臺設(shè)備的CPU、軟件版本的兼容性有較高要求(實(shí)際上,同一家設(shè)備供應(yīng)商的不同系列產(chǎn)品之間常常都無法滿足其要求)。因此,對于已經(jīng)使用了兩臺不同產(chǎn)品的企業(yè)來說,升級時(shí)需要購買新設(shè)備替換掉舊設(shè)備,網(wǎng)絡(luò)升級成本太高。
[0012]此外,如果企業(yè)的網(wǎng)絡(luò)有三個(gè)或更多的出口,則網(wǎng)關(guān)設(shè)備之間必須一對多備份,企業(yè)可能不得不購買更高端的產(chǎn)品作為網(wǎng)關(guān)設(shè)備,網(wǎng)絡(luò)升級成本更加昂貴。
【發(fā)明內(nèi)容】
[0013]有鑒于此,本發(fā)明提出了一種適用于多出口網(wǎng)絡(luò)的地址轉(zhuǎn)換方法及設(shè)備,在公網(wǎng)接口和私網(wǎng)接口都能進(jìn)行NAT處理,NAT處理流程中,在轉(zhuǎn)換首報(bào)文目的地址的同時(shí),還轉(zhuǎn)換首報(bào)文的源地址,使經(jīng)過NAT轉(zhuǎn)換的連接的回應(yīng)報(bào)文還能被引流到原始的NAT設(shè)備進(jìn)行相反的地址轉(zhuǎn)換,從而解決多出口的難題,對于企業(yè)來說,網(wǎng)絡(luò)升級代價(jià)很小。
[0014]本發(fā)明提出的技術(shù)方案為:
[0015]一種適用于多出口網(wǎng)絡(luò)的地址轉(zhuǎn)換方法,該方法應(yīng)用于網(wǎng)關(guān)設(shè)備,所述網(wǎng)關(guān)設(shè)備為私網(wǎng)設(shè)備連接的多個(gè)網(wǎng)關(guān)設(shè)備中的一個(gè),不同網(wǎng)關(guān)設(shè)備分別接入不同運(yùn)營商網(wǎng)絡(luò),各網(wǎng)關(guān)設(shè)備之間在私網(wǎng)建立路由鄰居,并通過該路由鄰居關(guān)系刷新各自的轉(zhuǎn)發(fā)表,該方法包括以下步驟:
[0016]網(wǎng)關(guān)設(shè)備從公網(wǎng)接口收到公網(wǎng)用戶發(fā)送來的連接首報(bào)文,所述連接首報(bào)文的源地址為所述公網(wǎng)用戶的IP地址,所述連接首報(bào)文的目的地址為公網(wǎng)用戶主動訪問私網(wǎng)設(shè)備時(shí)通過域名解析服務(wù)器DNS解析到的公網(wǎng)地址;
[0017]所述網(wǎng)關(guān)設(shè)備根據(jù)所述連接首報(bào)文的目的地址,判斷所述連接首報(bào)文匹配地址轉(zhuǎn)換配置時(shí),根據(jù)所述源地址查詢轉(zhuǎn)發(fā)表,并在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí),將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,將所述連接首報(bào)文源地址轉(zhuǎn)換為私網(wǎng)接口的接口地址,建立會話表項(xiàng),將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去;
[0018]所述網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到私網(wǎng)設(shè)備發(fā)送來的回應(yīng)報(bào)文時(shí),查詢得到所述會話表項(xiàng),將所述回應(yīng)報(bào)文目的地址轉(zhuǎn)換為所述公網(wǎng)用戶的IP地址,將所述回應(yīng)報(bào)文源地址轉(zhuǎn)換為所述公網(wǎng)地址,并根據(jù)轉(zhuǎn)換后的所述回應(yīng)報(bào)文的目的地址,查詢轉(zhuǎn)發(fā)表進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
[0019]上述方案中,在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口之前,還包括:
[0020]判斷所述連接首報(bào)文的源地址是否與所述網(wǎng)關(guān)設(shè)備上的公網(wǎng)地址屬于同一網(wǎng)段,是則不再判斷查詢的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是否是地址轉(zhuǎn)換配置中的私網(wǎng)接口,直接將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,連接首報(bào)文的源地址不變,建立會話表項(xiàng),將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去。
[0021]上述方案中,網(wǎng)關(guān)設(shè)備查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口不是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí),該方法進(jìn)一步包括:
[0022]網(wǎng)關(guān)設(shè)備將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,不轉(zhuǎn)換所述連接首報(bào)文的源地址,建立會話表項(xiàng)。
[0023]上述方案中,網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到的回應(yīng)報(bào)文攜帶的目的地址不是本私網(wǎng)接口地址時(shí),該方法進(jìn)一步包括:
[0024]網(wǎng)關(guān)設(shè)備根據(jù)該回應(yīng)報(bào)文的目的地址查詢轉(zhuǎn)發(fā)表,根據(jù)查詢到的轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)所述回應(yīng)報(bào)文。
[0025]上述方案中,網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到的回應(yīng)報(bào)文攜帶的目的地址是本私網(wǎng)接口地址,且找不到會話表項(xiàng)時(shí),該方法進(jìn)一步包括:
[0026]結(jié)束地址轉(zhuǎn)換處理,發(fā)送所述回應(yīng)報(bào)文給網(wǎng)關(guān)設(shè)備本機(jī)。
[0027]一種網(wǎng)關(guān)設(shè)備,所述網(wǎng)關(guān)設(shè)備為私網(wǎng)設(shè)備連接的多個(gè)網(wǎng)關(guān)設(shè)備中的一個(gè),所述網(wǎng)關(guān)設(shè)備與其它網(wǎng)關(guān)設(shè)備分別接入不同運(yùn)營商網(wǎng)絡(luò),各網(wǎng)關(guān)設(shè)備之間在私網(wǎng)建立路由鄰居,并通過該路由鄰居關(guān)系刷新各自的轉(zhuǎn)發(fā)表,該設(shè)備包括:
[0028]收發(fā)模塊,用于接收公網(wǎng)用戶發(fā)送來的連接首報(bào)文,所述連接首報(bào)文的源地址為所述公網(wǎng)用戶的IP地址,所述連接首報(bào)文的目的地址為公網(wǎng)用戶主動訪問私網(wǎng)設(shè)備時(shí)通過域名解析服務(wù)器DNS解析到的公網(wǎng)地址;還用于將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去;還用于接收私網(wǎng)設(shè)備發(fā)送來的回應(yīng)報(bào)文;
[0029]處理模塊,用于根據(jù)所述連接首報(bào)文的目的地址,判斷所述連接首報(bào)文匹配地址轉(zhuǎn)換配置時(shí),根據(jù)所述源地址查詢轉(zhuǎn)發(fā)表,并在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí),將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,將所述連接首報(bào)文源地址轉(zhuǎn)換為私網(wǎng)接口的接口地址,建立會話表項(xiàng);還用于查詢得到所述會話表項(xiàng),將所述回應(yīng)報(bào)文目的地址轉(zhuǎn)換為所述公網(wǎng)用戶的IP地址,將所述回應(yīng)報(bào)文源地址轉(zhuǎn)換為所述公網(wǎng)地址,并根據(jù)轉(zhuǎn)換后的所述回應(yīng)報(bào)文的目的地址,查詢轉(zhuǎn)發(fā)表進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
[0030]上述方案中,在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口之前,
[0031]所述處理模塊還用于,判斷所述連接首報(bào)文的源地址是否與所述網(wǎng)關(guān)設(shè)備上的公網(wǎng)地址屬于同一網(wǎng)段,是則不再判斷查詢的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是否是地址轉(zhuǎn)換配置中的私網(wǎng)接口,直接將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,連接首報(bào)文的源地址不變,建立會話表項(xiàng);
[0032]所述收發(fā)模塊還用于,將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去。
[0033]上述方案中,網(wǎng)關(guān)設(shè)備查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口不是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí),
[0034]所述處理模塊還用于,將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,不轉(zhuǎn)換所述連接首報(bào)文的源地址,建立會話表項(xiàng)。
[0035]上述方案中,網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到的回應(yīng)報(bào)文攜帶的目的地址不是本私網(wǎng)接口地址時(shí),[0036]所述處理單元還用于,根據(jù)該回應(yīng)報(bào)文的目的地址查詢轉(zhuǎn)發(fā)表,根據(jù)查詢到的轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)所述回應(yīng)報(bào)文。
[0037]上述方案中,網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到的回應(yīng)報(bào)文攜帶的目的地址是本私網(wǎng)接口地址,且找不到會話表項(xiàng)時(shí),
[0038]所述處理單元進(jìn)一步用于,結(jié)束地址轉(zhuǎn)換處理;
[0039]所述收發(fā)模塊進(jìn)一步用于,發(fā)送所述回應(yīng)報(bào)文給網(wǎng)關(guān)設(shè)備本機(jī)。
[0040]綜上所述,本發(fā)明公開的技術(shù)方案不需要在兩個(gè)網(wǎng)關(guān)設(shè)備之間建立熱備份關(guān)系即能解決多出口的難題,不限制兩臺網(wǎng)關(guān)設(shè)備的產(chǎn)品類型,對于企業(yè)來說,網(wǎng)絡(luò)升級代價(jià)很小。
【專利附圖】
【附圖說明】
[0041]圖1為現(xiàn)有技術(shù)雙出口組網(wǎng)示意圖。
[0042]圖2為實(shí)施例一的雙出口組網(wǎng)示意圖。
[0043]圖3為實(shí)施例一的流程圖。
[0044]圖4為實(shí)施例一報(bào)文交互流程圖。
[0045]圖5為本發(fā)明設(shè)備結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0046]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖及具體實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)描述。
[0047]本發(fā)明的技術(shù)方案是:網(wǎng)關(guān)設(shè)備從公網(wǎng)接口收到公網(wǎng)用戶發(fā)送來的連接首報(bào)文,所述連接首報(bào)文的源地址為所述公網(wǎng)用戶的IP地址,所述連接首報(bào)文的目的地址為公網(wǎng)用戶主動訪問私網(wǎng)設(shè)備時(shí)通過域名解析服務(wù)器DNS解析到的公網(wǎng)地址;
[0048]所述網(wǎng)關(guān)設(shè)備根據(jù)所述連接首報(bào)文的目的地址,判斷所述連接首報(bào)文匹配地址轉(zhuǎn)換配置時(shí),根據(jù)所述源地址查詢轉(zhuǎn)發(fā)表,并在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí),將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,將所述連接首報(bào)文源地址轉(zhuǎn)換為私網(wǎng)接口的接口地址,建立會話表項(xiàng),將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去;
[0049]所述網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到私網(wǎng)設(shè)備發(fā)送來的回應(yīng)報(bào)文時(shí),查詢得到所述會話表項(xiàng),將所述回應(yīng)報(bào)文目的地址轉(zhuǎn)換為所述公網(wǎng)用戶的IP地址,將所述回應(yīng)報(bào)文源地址轉(zhuǎn)換為所述公網(wǎng)地址,并根據(jù)轉(zhuǎn)換后的所述回應(yīng)報(bào)文的目的地址,查詢轉(zhuǎn)發(fā)表進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
[0050]一般地,路由器的報(bào)文處理流程都是“入接口業(yè)務(wù)處理一IP轉(zhuǎn)發(fā)一出接口業(yè)務(wù)處理”,當(dāng)向網(wǎng)關(guān)設(shè)備接口下發(fā)NAT配置時(shí),網(wǎng)關(guān)設(shè)備在該接口的業(yè)務(wù)處理隊(duì)列里注冊NAT業(yè)務(wù),該接口收到報(bào)文時(shí)會進(jìn)入NAT處理流程。
[0051]普通的NAT server必須在配置中指定公網(wǎng)接口、公網(wǎng)地址、私網(wǎng)地址,本發(fā)明中的地址轉(zhuǎn)換方法除需在配置中指定這三個(gè)參數(shù)外,還必須指定私網(wǎng)接口,且配置同時(shí)向公網(wǎng)接口和私網(wǎng)接口注冊NAT業(yè)務(wù),使兩個(gè)接口收到報(bào)文時(shí)均會進(jìn)入NAT處理流程。這里NAT處理流程包括兩方面內(nèi)容:對接收報(bào)文進(jìn)行地址轉(zhuǎn)換和不對接收報(bào)文進(jìn)行地址轉(zhuǎn)換,其中,網(wǎng)關(guān)設(shè)備接收到的報(bào)文匹配地址轉(zhuǎn)換配置時(shí)則對其進(jìn)行地址轉(zhuǎn)換,如果網(wǎng)關(guān)設(shè)備接收到的報(bào)文不匹配地址轉(zhuǎn)換配置,則直接轉(zhuǎn)發(fā)報(bào)文,不進(jìn)行地址轉(zhuǎn)換,這兩種處理方式均屬于NAT處理。下面詳述公網(wǎng)接口和私網(wǎng)接口對NAT的處理。
[0052]公網(wǎng)接口 NAT處理流程:
[0053]入方向處理:
[0054]網(wǎng)關(guān)設(shè)備從公網(wǎng)接口收到公網(wǎng)用戶發(fā)送來的連接首報(bào)文,所述公網(wǎng)用戶位于非所述公網(wǎng)接口連接的運(yùn)營商網(wǎng)絡(luò);所述連接首報(bào)文攜帶的源地址為所述公網(wǎng)用戶的IP地址,所述連接首報(bào)文攜帶的目的地址為公網(wǎng)用戶主動訪問私網(wǎng)設(shè)備時(shí)通過域名解析服務(wù)器DNS解析到的公網(wǎng)地址;網(wǎng)關(guān)設(shè)備判斷所述連接首報(bào)文匹配地址轉(zhuǎn)換配置。
[0055]網(wǎng)關(guān)設(shè)備根據(jù)所述源地址查詢轉(zhuǎn)發(fā)表,判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是否是地址轉(zhuǎn)換配置中的私網(wǎng)接口,若是則將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,將所述連接首報(bào)文源地址轉(zhuǎn)換為私網(wǎng)接口的接口地址,建立會話表項(xiàng),將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去;否則將報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,不轉(zhuǎn)換報(bào)文源地址,建立會話表項(xiàng),網(wǎng)關(guān)設(shè)備根據(jù)地址轉(zhuǎn)換后的連接首報(bào)文攜帶的目的地址查詢轉(zhuǎn)發(fā)表,根據(jù)查詢到的轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)地址轉(zhuǎn)換后的連接首報(bào)文。
[0056]出方向處理:網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到回應(yīng)報(bào)文,若回應(yīng)報(bào)文已進(jìn)行過地址轉(zhuǎn)換,不再能匹配上配置或會話,網(wǎng)關(guān)設(shè)備直接從接口轉(zhuǎn)發(fā)報(bào)文,無特殊處理。
[0057]私網(wǎng)接口 NAT處理流程:
[0058]入方向處理:
[0059]網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到回應(yīng)報(bào)文,判斷回應(yīng)報(bào)文攜帶的目的地址是否為本私網(wǎng)接口地址,如果是則查詢會話表項(xiàng),若能找到會話表項(xiàng),則將所述回應(yīng)報(bào)文目的地址轉(zhuǎn)換為所述公網(wǎng)用戶的IP地址,將所述回應(yīng)報(bào)文源地址轉(zhuǎn)換為所述公網(wǎng)地址,網(wǎng)關(guān)設(shè)備根據(jù)回應(yīng)報(bào)文攜帶的目的地址查詢轉(zhuǎn)發(fā)表,根據(jù)查詢到的轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)所述網(wǎng)絡(luò)地址轉(zhuǎn)換后的回應(yīng)報(bào)文;如果找不到會話表項(xiàng),結(jié)束地址轉(zhuǎn)換處理,上送所述回應(yīng)報(bào)文給網(wǎng)關(guān)設(shè)備本機(jī)。
[0060]出方向處理:
[0061]網(wǎng)關(guān)設(shè)備無論從公網(wǎng)接口收到連接首報(bào)文還是從私網(wǎng)接口收到回應(yīng)報(bào)文,均已進(jìn)行過地址轉(zhuǎn)換,報(bào)文已不會再匹配上配置或會話,網(wǎng)關(guān)設(shè)備直接從接口發(fā)出報(bào)文,無特殊處理。
[0062]方法實(shí)施例一
[0063]本實(shí)施例以雙出口組網(wǎng)、私網(wǎng)設(shè)備以私網(wǎng)服務(wù)器為例,如圖2所示,某企業(yè)有一臺放置在私網(wǎng)的服務(wù)器對外提供服務(wù),其私網(wǎng)地址是192.168.2.2,該企業(yè)有兩個(gè)網(wǎng)關(guān)設(shè)備A和B,分別接入運(yùn)營商網(wǎng)絡(luò)A和B,兩個(gè)網(wǎng)關(guān)設(shè)備之間在私網(wǎng)接口建立開放式最短路徑優(yōu)先OSPF (Open Shortest Path First)鄰居(實(shí)際應(yīng)用中不限于使用何種路由協(xié)議),并通過該路由鄰居關(guān)系刷新轉(zhuǎn)發(fā)表,使得:B網(wǎng)關(guān)設(shè)備的轉(zhuǎn)發(fā)表中,目的地址為運(yùn)營商網(wǎng)絡(luò)A網(wǎng)絡(luò)內(nèi)地址的轉(zhuǎn)發(fā)下一跳地址為A網(wǎng)關(guān)設(shè)備的私網(wǎng)接口地址;相反地,A網(wǎng)關(guān)設(shè)備的轉(zhuǎn)發(fā)表中,目的地址為運(yùn)營商網(wǎng)絡(luò)B網(wǎng)絡(luò)內(nèi)地址的轉(zhuǎn)發(fā)下一跳地址為B網(wǎng)關(guān)設(shè)備的私網(wǎng)接口地址。網(wǎng)關(guān)設(shè)備B上去往目的網(wǎng)段167.2.3.0/24的優(yōu)選路由的下一跳地址為192.168.1.2。私網(wǎng)服務(wù)器在網(wǎng)關(guān)設(shè)備A上配置公網(wǎng)地址167.1.1.2,在網(wǎng)關(guān)設(shè)備B上配置公網(wǎng)地址221.1.1.2。運(yùn)營商網(wǎng)絡(luò)A網(wǎng)絡(luò)內(nèi)用戶C使用的DNS服務(wù)器為第三方DNS server。
[0064]本實(shí)施例中網(wǎng)關(guān)設(shè)備A和網(wǎng)關(guān)設(shè)備B的私網(wǎng)接口配置OSPF對等體,并且根據(jù)公網(wǎng)的配置引入外部路由(比如:網(wǎng)關(guān)設(shè)備A和網(wǎng)關(guān)設(shè)備B在公網(wǎng)使用邊界網(wǎng)關(guān)協(xié)議(BGP,Border Gateway ProtocoI)學(xué)習(xí)路由,貝U需配置OSPF引入BGP路由),則網(wǎng)關(guān)設(shè)備A和網(wǎng)關(guān)設(shè)備B能互相學(xué)習(xí)到路由。一般來說,由于網(wǎng)關(guān)設(shè)備A是直接接入了運(yùn)營商網(wǎng)絡(luò)A,網(wǎng)關(guān)設(shè)備A上去往運(yùn)營商網(wǎng)絡(luò)A網(wǎng)絡(luò)內(nèi)的用戶C目的網(wǎng)段的路由會具有更小的cost值(相比網(wǎng)關(guān)設(shè)備B上)。網(wǎng)關(guān)設(shè)備B通過OSPF鄰居從網(wǎng)關(guān)設(shè)備A學(xué)習(xí)到去往用戶C目的網(wǎng)段的路由將成為網(wǎng)關(guān)設(shè)備B上的優(yōu)選路由,該路由目的網(wǎng)段為用戶C所在網(wǎng)段,下一跳為網(wǎng)關(guān)設(shè)備A的私網(wǎng)接口地址,出接口為網(wǎng)關(guān)設(shè)備B的私網(wǎng)接口。網(wǎng)關(guān)設(shè)備B會根據(jù)此路由下發(fā)轉(zhuǎn)發(fā)信息庫(FIB, Forward Information Base)表項(xiàng)。
[0065]一般地,NAT設(shè)備(本發(fā)明為網(wǎng)關(guān)設(shè)備)都會維護(hù)一個(gè)NAT會話表,NAT會話表記錄著地址轉(zhuǎn)換關(guān)系,用于指導(dǎo)NAT設(shè)備對一條連接的后續(xù)報(bào)文進(jìn)行地址轉(zhuǎn)換。NAT會話表至少包含原始報(bào)文的源、目的地址和發(fā)生地址轉(zhuǎn)換后的源、目的地址。
[0066]轉(zhuǎn)發(fā)表用于指導(dǎo)三層轉(zhuǎn)發(fā),所有三層網(wǎng)絡(luò)設(shè)備均實(shí)現(xiàn)轉(zhuǎn)發(fā)表,一般地,轉(zhuǎn)發(fā)表至少包含目的網(wǎng)段、轉(zhuǎn)發(fā)出接口、下一跳地址等信息。一種最簡形式的轉(zhuǎn)發(fā)表如表1所示:
[0067]表1
[0068]
【權(quán)利要求】
1.一種適用于多出口網(wǎng)絡(luò)的地址轉(zhuǎn)換方法,其特征在于,該方法應(yīng)用于網(wǎng)關(guān)設(shè)備,所述網(wǎng)關(guān)設(shè)備為私網(wǎng)設(shè)備連接的多個(gè)網(wǎng)關(guān)設(shè)備中的一個(gè),不同網(wǎng)關(guān)設(shè)備分別接入不同運(yùn)營商網(wǎng)絡(luò),各網(wǎng)關(guān)設(shè)備之間在私網(wǎng)建立路由鄰居,并通過該路由鄰居關(guān)系刷新各自的轉(zhuǎn)發(fā)表,該方法包括以下步驟: 網(wǎng)關(guān)設(shè)備從公網(wǎng)接口收到公網(wǎng)用戶發(fā)送來的連接首報(bào)文,所述連接首報(bào)文的源地址為所述公網(wǎng)用戶的IP地址,所述連接首報(bào)文的目的地址為公網(wǎng)用戶主動訪問私網(wǎng)設(shè)備時(shí)通過域名解析服務(wù)器DNS解析到的公網(wǎng)地址; 所述網(wǎng)關(guān)設(shè)備根據(jù)所述連接首報(bào)文的目的地址,判斷所述連接首報(bào)文匹配地址轉(zhuǎn)換配置時(shí),根據(jù)所述源地址查詢轉(zhuǎn)發(fā)表,并在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí),將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,將所述連接首報(bào)文源地址轉(zhuǎn)換為私網(wǎng)接口的接口地址,建立會話表項(xiàng),將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去; 所述網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到私網(wǎng)設(shè)備發(fā)送來的回應(yīng)報(bào)文時(shí),查詢得到所述會話表項(xiàng),將所述回應(yīng)報(bào)文目的地址轉(zhuǎn)換為所述公網(wǎng)用戶的IP地址,將所述回應(yīng)報(bào)文源地址轉(zhuǎn)換為所述公網(wǎng)地址,并根據(jù)轉(zhuǎn)換后的所述回應(yīng)報(bào)文的目的地址,查詢轉(zhuǎn)發(fā)表進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口之前,還包括: 判斷所述連接首報(bào)文的源地址是否與所述網(wǎng)關(guān)設(shè)備上的公網(wǎng)地址屬于同一網(wǎng)段,是則不再判斷查詢的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是否是地址轉(zhuǎn)換配置中的私網(wǎng)接口,直接將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,連接首報(bào)文的源地址不變,建立會話表項(xiàng),將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,網(wǎng)關(guān)設(shè)備查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口不是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí),該方法進(jìn)一步包括: 網(wǎng)關(guān)設(shè)備將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,不轉(zhuǎn)換所述連接首報(bào)文的源地址,建立會話表項(xiàng)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到的回應(yīng)報(bào)文攜帶的目的地址不是本私網(wǎng)接口地址時(shí),該方法進(jìn)一步包括: 網(wǎng)關(guān)設(shè)備根據(jù)該回應(yīng)報(bào)文的目的地址查詢轉(zhuǎn)發(fā)表,根據(jù)查詢到的轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)所述回應(yīng)報(bào)文。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到的回應(yīng)報(bào)文攜帶的目的地址是本私網(wǎng)接口地址,且找不到會話表項(xiàng)時(shí),該方法進(jìn)一步包括: 結(jié)束地址轉(zhuǎn)換處理,發(fā)送所述回應(yīng)報(bào)文給網(wǎng)關(guān)設(shè)備本機(jī)。
6. 一種網(wǎng)關(guān)設(shè)備,其特征在于,所述網(wǎng)關(guān)設(shè)備為私網(wǎng)設(shè)備連接的多個(gè)網(wǎng)關(guān)設(shè)備中的一個(gè),所述網(wǎng)關(guān)設(shè)備與其它網(wǎng)關(guān)設(shè)備分別接入不同運(yùn)營商網(wǎng)絡(luò),各網(wǎng)關(guān)設(shè)備之間在私網(wǎng)建立路由鄰居,并通過該路由鄰居關(guān)系刷新各自的轉(zhuǎn)發(fā)表,該設(shè)備包括: 收發(fā)模塊,用于接收公網(wǎng)用戶發(fā)送來的連接首報(bào)文,所述連接首報(bào)文的源地址為所述公網(wǎng)用戶的IP地址,所述連接首報(bào)文的目的地址為公網(wǎng)用戶主動訪問私網(wǎng)設(shè)備時(shí)通過域名解析服務(wù)器DNS解析到的公網(wǎng)地址;還用于將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去;還用于接收私網(wǎng)設(shè)備發(fā)送來的回應(yīng)報(bào)文;處理模塊,用于根據(jù)所述連接首報(bào)文的目的地址,判斷所述連接首報(bào)文匹配地址轉(zhuǎn)換配置時(shí),根據(jù)所述源地址查詢轉(zhuǎn)發(fā)表,并在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí),將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,將所述連接首報(bào)文源地址轉(zhuǎn)換為私網(wǎng)接口的接口地址,建立會話表項(xiàng);還用于查詢得到所述會話表項(xiàng),將所述回應(yīng)報(bào)文目的地址轉(zhuǎn)換為所述公網(wǎng)用戶的IP地址,將所述回應(yīng)報(bào)文源地址轉(zhuǎn)換為所述公網(wǎng)地址,并根據(jù)轉(zhuǎn)換后的所述回應(yīng)報(bào)文的目的地址,查詢轉(zhuǎn)發(fā)表進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,在判斷查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是地址轉(zhuǎn)換配置中的私網(wǎng)接口之前, 所述處理模塊還用于,判斷所述連接首報(bào)文的源地址是否與所述網(wǎng)關(guān)設(shè)備上的公網(wǎng)地址屬于同一網(wǎng)段,是則不再判斷查詢的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口是否是地址轉(zhuǎn)換配置中的私網(wǎng)接口,直接將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,連接首報(bào)文的源地址不變,建立會話表項(xiàng); 所述收發(fā)模塊還用于,將網(wǎng)絡(luò)地址轉(zhuǎn)換后的連接首報(bào)文從私網(wǎng)接口轉(zhuǎn)發(fā)出去。
8.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,網(wǎng)關(guān)設(shè)備查詢到的轉(zhuǎn)發(fā)表項(xiàng)中的轉(zhuǎn)發(fā)出接口不是地址轉(zhuǎn)換配置中的私網(wǎng)接口時(shí), 所述處理模塊還用于,將所述連接首報(bào)文目的地址轉(zhuǎn)換為配置中的私網(wǎng)地址,不轉(zhuǎn)換所述連接首報(bào)文的源地址,建立會話表項(xiàng)。
9.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到的回應(yīng)報(bào)文攜帶的目的地址不是本私網(wǎng)接口地址時(shí), 所述處理單元還用于,根據(jù)該回應(yīng)報(bào)文的目的地址查詢轉(zhuǎn)發(fā)表,根據(jù)查詢到的轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)所述回應(yīng)報(bào)文。
10.根據(jù)權(quán)利要求6所述.的設(shè)備,其特征在于,網(wǎng)關(guān)設(shè)備從私網(wǎng)接口收到的回應(yīng)報(bào)文攜帶的目的地址是本私網(wǎng)接口地址,且找不到會話表項(xiàng)時(shí), 所述處理單元進(jìn)一步用于,結(jié)束地址轉(zhuǎn)換處理; 所述收發(fā)模塊進(jìn)一步用于,發(fā)送所述回應(yīng)報(bào)文給網(wǎng)關(guān)設(shè)備本機(jī)。
【文檔編號】H04L29/12GK103475750SQ201310420978
【公開日】2013年12月25日 申請日期:2013年9月16日 優(yōu)先權(quán)日:2013年9月16日
【發(fā)明者】郗二軍 申請人:杭州華三通信技術(shù)有限公司