本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種報文轉(zhuǎn)發(fā)方法及設(shè)備。
背景技術(shù):GRE(GenericRoutingEncapsulation,通用路由封裝)隧道是一個虛擬的點到點的連接,用于使在不同網(wǎng)絡(luò)層協(xié)議中的終端互相傳遞報文。GRE隧道兩端的終端通過對不同的網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)報文進(jìn)行封裝及解封裝處理,使這些被封裝的數(shù)據(jù)報文能夠在對端的網(wǎng)絡(luò)層協(xié)議中傳輸。如圖1所示,為現(xiàn)有技術(shù)中GRE穿越NAT(NetworkAddressTranslation,網(wǎng)絡(luò)地址轉(zhuǎn)換)組網(wǎng)的場景示意圖,其中PC1和PC2屬于內(nèi)網(wǎng)終端設(shè)備,PC3和PC4屬于外網(wǎng)終端設(shè)備。在PC1與PC3進(jìn)行跨主干IP(InternetProtocol,網(wǎng)絡(luò)間互聯(lián)協(xié)議)網(wǎng)絡(luò)通信的過程中,由PC1所發(fā)送的數(shù)據(jù)報文在經(jīng)內(nèi)網(wǎng)的隧道對端設(shè)備DUTA進(jìn)行數(shù)據(jù)封裝后,繼續(xù)通過GRE隧道進(jìn)行傳輸,并經(jīng)過NAT設(shè)備,NAT設(shè)備會對該封裝報文的外層IP地址,即隧道源IP地址進(jìn)行地址轉(zhuǎn)換,將隧道源IP地址轉(zhuǎn)換為NATIP地址,隨后將該封裝報文發(fā)送至外網(wǎng)的隧道對端設(shè)備DUTB,由DUTB對該封裝報文進(jìn)行解封裝處理。在如圖2所示的隧道加封裝過程中,封裝報文在經(jīng)過NAT設(shè)備轉(zhuǎn)發(fā)后,其外層的隧道源IP地址被替換為NAT設(shè)備地址池中的NATIP地址,封裝報文的內(nèi)層IP地址,即報文源IP地址不變。由于隧道對端設(shè)備只有在隧道源IP地址和隧道目的IP地址分別與該封裝報文中攜帶的隧道源IP地址及隧道目的IP地址均吻合的情況下,即隧道對端設(shè)備只有在確定接收到的封裝報文確實為來自隧道自身的本端設(shè)備時才會對該封裝報文進(jìn)行解封裝,因此,外網(wǎng)的隧道對端設(shè)備DUTB需要獲取到封裝報文在經(jīng)NAT設(shè)備轉(zhuǎn)換前的隧道源IP地址,即需要獲取封裝報文經(jīng)過NAT設(shè)備轉(zhuǎn)換后攜帶的NATIP地址與轉(zhuǎn)換前攜帶的隧道源IP地址之間的對應(yīng)關(guān)系,并將自身保存的內(nèi)網(wǎng)隧道對端設(shè)備DUTA的IP地址(即隧道源IP地址)替換封裝報文中經(jīng)過NAT轉(zhuǎn)換后的NATIP地址,這樣才能正常解封裝經(jīng)過NAT地址轉(zhuǎn)換的內(nèi)網(wǎng)隧道報文。為了使GRE隧道的對端設(shè)備能夠正常對封裝報文進(jìn)行解封裝,現(xiàn)有技術(shù)通常在NAT設(shè)備上人工配置隧道源IP地址(即上述的DUTA的IP地址)與NATIP地址(NAT設(shè)備中地址池中的IP地址)之間的映射關(guān)系,作為NAT轉(zhuǎn)換表,同時,在隧道對端設(shè)備(即上述的DUTB)上也人工配置該NAT轉(zhuǎn)換表,這樣,隧道對端設(shè)備接收到該NAT設(shè)備發(fā)送的報文后,就可以通過該NAT轉(zhuǎn)換表,來確定封裝報文的隧道源IP地址,從而可對封裝報文進(jìn)行解封裝。綜上,針對經(jīng)過NAT設(shè)備進(jìn)行地址轉(zhuǎn)換后的GRE隧道封裝報文,現(xiàn)有技術(shù)均需要通過人工在隧道設(shè)備中進(jìn)行與封裝報文相關(guān)的IP地址的配置,配置效率差,靈活性較低,適用性不強(qiáng)。
技術(shù)實現(xiàn)要素:本發(fā)明提供了一種報文轉(zhuǎn)發(fā)方法以及設(shè)備,用以解決現(xiàn)有技術(shù)在封裝報文解封裝過程中,采用人工進(jìn)行IP地址的配置所帶來的配置效率差,以及靈活性低和適用性不強(qiáng)的問題。一方面,本發(fā)明提供了一種報文轉(zhuǎn)發(fā)方法,包括:網(wǎng)絡(luò)地址轉(zhuǎn)換NAT設(shè)備接收內(nèi)網(wǎng)隧道設(shè)備發(fā)送的封裝報文;所述NAT設(shè)備將所述封裝報文中的隧道源IP地址替換成NATIP地址,所述NATIP地址為與外網(wǎng)IP地址不沖突的外網(wǎng)IP地址;所述NAT設(shè)備將所述NATIP地址與所述隧道源IP地址對應(yīng)的域名綁定,并發(fā)送至域名服務(wù)DNS服務(wù)器組,添加或更新所述DNS服務(wù)器組中的DDNS表項,以使得外網(wǎng)隧道設(shè)備接收到NAT設(shè)備轉(zhuǎn)發(fā)的所述封裝報文后,通過所述DNS服務(wù)器組進(jìn)行域名解析來確定所述封裝報文來自所述內(nèi)網(wǎng)隧道設(shè)備,以對所述封裝報文進(jìn)行解封裝;其中,所述NAT設(shè)備上預(yù)先設(shè)置有與所述內(nèi)網(wǎng)隧道設(shè)備的隧道源IP地址對應(yīng)的域名;所述DDNS表項保存所述域名及與域名綁定的NATIP地址。另一方面,本發(fā)明還提出了一種NAT設(shè)備,包括:接口模塊,用于接收內(nèi)網(wǎng)隧道設(shè)備發(fā)送的封裝報文;處理模塊,用于將所述封裝報文中的隧道源IP地址替換成NATIP地址,所述NATIP地址為與外網(wǎng)IP地址不沖突的外網(wǎng)IP地址;所述接口模塊,還用于將所述NATIP地址與所述隧道源IP地址對應(yīng)的域名綁定,并發(fā)送至域名服務(wù)DNS服務(wù)器組,添加或更新所述DNS服務(wù)器組中的DDNS表項,以使得外網(wǎng)隧道設(shè)備接收到NAT設(shè)備轉(zhuǎn)發(fā)的所述封裝報文后,通過所述DNS服務(wù)器組進(jìn)行域名解析來確定所述封裝報文來自所述內(nèi)網(wǎng)隧道設(shè)備,以對所述封裝報文進(jìn)行解封裝;其中,所述NAT設(shè)備上預(yù)先設(shè)置有與所述內(nèi)網(wǎng)隧道設(shè)備的隧道源IP地址對應(yīng)的域名;所述DDNS表項保存所述域名及與域名綁定的NATIP地址。通過應(yīng)用以上技術(shù)方案,NAT設(shè)備對內(nèi)網(wǎng)隧道設(shè)備發(fā)送的封裝報文的隧道源IP地址進(jìn)行轉(zhuǎn)化時,將NATIP地址與隧道源IP地址對應(yīng)的域名綁定,作為DDNS表項記錄在DDNS服務(wù)器組,使得外網(wǎng)隧道設(shè)備可以通過DNS域名解析來確定封裝報文是否是對應(yīng)的內(nèi)網(wǎng)隧道設(shè)備發(fā)送的報文,從而可對封裝報文進(jìn)行解封裝??梢钥闯?,采用本發(fā)明技術(shù)方案,不需要在隧道設(shè)備以及NAT設(shè)備進(jìn)行人工IP地址配置,就可以實現(xiàn)封裝報文的解封裝,可有效提高報文的轉(zhuǎn)發(fā)效率,確保網(wǎng)絡(luò)的穩(wěn)定性,具有較好的靈活性和適用性。附圖說明圖1為現(xiàn)有技術(shù)中GRE穿越NAT組網(wǎng)的場景示意圖;圖2為現(xiàn)有技術(shù)中隧道加封裝的過程示意圖;圖3為本發(fā)明實施例一提出的一種封裝報文的轉(zhuǎn)發(fā)方法的流程示意圖;圖4為本發(fā)明實施例二提出的一種封裝報文的轉(zhuǎn)發(fā)方法的流程示意圖;圖5為本發(fā)明技術(shù)方案的具體應(yīng)用場景示意圖;圖6為本發(fā)明實施例三所提出的一種封裝報文的轉(zhuǎn)發(fā)方法的流程示意圖;圖7為本發(fā)明提出的一種隧道加封裝過程示意圖;圖8為本發(fā)明所提出的一種封裝報文轉(zhuǎn)發(fā)設(shè)備的結(jié)構(gòu)示意圖。具體實施方式本發(fā)明提供了一種封裝報文的轉(zhuǎn)發(fā)方法,將封裝報文中的隧道源IP地址轉(zhuǎn)換為外網(wǎng)IP地址,并利用DNS服務(wù)器根據(jù)IP地址與域名之間的對應(yīng)關(guān)系對經(jīng)NAT設(shè)備轉(zhuǎn)換后的IP地址進(jìn)行解析并獲得封裝報文的隧道源IP地址,從而對報文從而提高了報文的轉(zhuǎn)發(fā)效率,并確保了網(wǎng)絡(luò)的穩(wěn)定性以及靈活性。本發(fā)明實施例提供的報文轉(zhuǎn)發(fā)方法中,NAT設(shè)備和外網(wǎng)隧道設(shè)備都會配置內(nèi)網(wǎng)隧道設(shè)備的域名,NAT設(shè)備在對封裝報文的隧道源源IP地址,即封裝報文的外層IP地址進(jìn)行IP地址轉(zhuǎn)換時,可將轉(zhuǎn)換后的NATIP地址與隧道源IP地址對應(yīng)的域名進(jìn)行綁定,以DDNS表項的形式保存在DNS(DomainNameServer,域名服務(wù)器)組中,這樣,外網(wǎng)的隧道設(shè)備在接收到NAT設(shè)備發(fā)送的封裝報文后,就可以根據(jù)域名解析來確定封裝報文來自于內(nèi)網(wǎng)隧道設(shè)備,進(jìn)而可以實現(xiàn)對封裝報文的解封裝。下面將以具體實例對本發(fā)明技術(shù)方案進(jìn)行詳細(xì)說明。圖3為本發(fā)明實施例一提供的報文轉(zhuǎn)發(fā)方法的流程示意圖。如圖3所示,本實施例中,NAT設(shè)備可對內(nèi)網(wǎng)中的隧道設(shè)備發(fā)送的封裝報文的外層IP地址進(jìn)行IP地址轉(zhuǎn)換,具體地,如圖3所示,本實施例方法可包括如下步驟:步驟301、網(wǎng)絡(luò)地址轉(zhuǎn)換NAT設(shè)備接收內(nèi)網(wǎng)隧道設(shè)備發(fā)送的封裝報文;步驟302、所述NAT設(shè)備將所述封裝報文中的隧道源IP地址替換成NATIP地址,所述NATIP地址為與外網(wǎng)IP地址不沖突的外網(wǎng)IP地址;步驟303、所述NAT設(shè)備將所述NATIP地址與所述隧道源IP地址對應(yīng)的域名綁定,并發(fā)送至域名服務(wù)DNS服務(wù)器組,添加或更新所述DNS服務(wù)器組中的DDNS表項,以使得外網(wǎng)隧道設(shè)備接收到NAT設(shè)備轉(zhuǎn)發(fā)的所述封裝報文后,通過所述DNS服務(wù)器組進(jìn)行域名解析來確定所述封裝報文來自所述內(nèi)網(wǎng)隧道設(shè)備,以對所述封裝報文進(jìn)行解封裝;其中,所述NAT設(shè)備上預(yù)先設(shè)置有與所述內(nèi)網(wǎng)隧道設(shè)備的隧道源IP地址對應(yīng)的域名;所述DDNS表項保存所述域名及與域名綁定的NATIP地址。本實施例中,NAT設(shè)備接收到內(nèi)網(wǎng)隧道設(shè)備發(fā)送的報文后,可基于自身所配置的該內(nèi)網(wǎng)隧道設(shè)備的域名,將內(nèi)網(wǎng)隧道設(shè)備發(fā)送的封裝報文中的隧道源IP地址,替換成NATIP地址后,并將NATIP地址與隧道源IP地址對應(yīng)的域名進(jìn)行綁定,將其以DDNS表項的形式保存在DNS服務(wù)器組中,外網(wǎng)隧道設(shè)備接收到NAT設(shè)備轉(zhuǎn)發(fā)的封裝報文后,就可以根據(jù)自身所配置的該內(nèi)網(wǎng)隧道設(shè)備的域名,通過域名解析的方式確定封裝報文來自該內(nèi)網(wǎng)隧道設(shè)備,從而對封裝報文進(jìn)行解封裝處理。需要說明的是,以上NAT設(shè)備和外網(wǎng)隧道設(shè)備所配置的內(nèi)網(wǎng)隧道的域名均會進(jìn)行同步更新,保證以上二者的一致性。其中,NAT設(shè)備和外網(wǎng)隧道設(shè)備上可預(yù)先通過人工設(shè)置內(nèi)網(wǎng)隧道的域名信息,具體可以是與內(nèi)網(wǎng)隧道的IP地址與域名對應(yīng)關(guān)系的信息,這樣,NAT設(shè)備接收到內(nèi)網(wǎng)設(shè)備發(fā)送的報文時,就可以查詢該對應(yīng)關(guān)系,以獲得相應(yīng)的域名,從而可將NAT后的NATIP地址發(fā)送給DNS服務(wù)器組,保存在DDNS表項中。本實施例中,外網(wǎng)隧道設(shè)備接收到封裝報文后,可立即根據(jù)自身存儲的對應(yīng)的內(nèi)網(wǎng)的隧道設(shè)備的域名,向DDNS服務(wù)器組發(fā)起域名解析,獲得域名對應(yīng)的NATIP地址,若解析得到的該NATIP地址,與其接收到的封裝報文的外層IP地址(即經(jīng)過NAT設(shè)備轉(zhuǎn)換后的NATIP地址)一致,則說明該封裝報文確實為對應(yīng)的內(nèi)網(wǎng)隧道設(shè)備發(fā)送的報文,則可對其進(jìn)行解封裝。需要說明的是:由于NAT設(shè)備對內(nèi)網(wǎng)隧道設(shè)備發(fā)送的報文進(jìn)行IP地址轉(zhuǎn)換時,轉(zhuǎn)換后的NATIP地址是不固定的,即是動態(tài)的,因此,需要將該NATIP地址與內(nèi)外隧道設(shè)備的域名進(jìn)行綁定并通知DDNS服務(wù)器。在報文后續(xù)達(dá)到外網(wǎng)隧道設(shè)備后,即可利用DDNS服務(wù)器對封裝報文中的域名進(jìn)行解析,從而根據(jù)該NATIP地址確定報文來自于內(nèi)網(wǎng)隧道設(shè)備。其中,所述的DDNS服務(wù)器組具體而言是指可以進(jìn)行動態(tài)域名解析的DDNS服務(wù)器綜上,本發(fā)明實施例技術(shù)方案中,NAT設(shè)備對內(nèi)網(wǎng)隧道設(shè)備發(fā)送的封裝報文的隧道源IP地址進(jìn)行轉(zhuǎn)化時,可將轉(zhuǎn)換后的NATIP地址與隧道源IP地址對應(yīng)的域名進(jìn)行綁定,以DDNS表項的形式記錄在DDNS服務(wù)器組,使得外網(wǎng)隧道設(shè)備可以通過DNS域名解析確定封裝報文來自于內(nèi)網(wǎng)隧道設(shè)備,從而可對封裝報文進(jìn)行解封裝??梢钥闯觯捎帽景l(fā)明技術(shù)方案,不需要在隧道設(shè)備以及NAT設(shè)備進(jìn)行人工IP地址配置,就可以實現(xiàn)封裝報文的解封裝,可有效提高報文的轉(zhuǎn)發(fā)效率,確保網(wǎng)絡(luò)的穩(wěn)定性,具有較好的靈活性和適用性。圖4為本發(fā)明實施例二提供的報文轉(zhuǎn)發(fā)方法的流程示意圖。在上述圖3所示實施例技術(shù)方案基礎(chǔ)上,本實施例中,封裝報文具體為通用路由封裝GRE報文,NAT設(shè)備還可對GRE報文中的內(nèi)層IP地址,即報文源IP地址進(jìn)行處理,具體地,如圖4所示,本實施例方法可包括如下步驟:步驟401、NAT設(shè)備接收內(nèi)網(wǎng)隧道設(shè)備發(fā)送的GRE報文;步驟402、判斷GRE報文的頭部乘客協(xié)議是否為IP協(xié)議,是則執(zhí)行步驟403,否則執(zhí)行步驟404;步驟403、NAT設(shè)備將GRE報文中的報文源IP地址替換為與外網(wǎng)IP地址不沖突的外網(wǎng)IP地址,并記錄報文源IP地址與外網(wǎng)IP地址之間的對應(yīng)關(guān)系表項,執(zhí)行步驟404;步驟404、NAT設(shè)備將GRE報文中的隧道源IP地址替換成NATIP地址,該NATIP地址為與外網(wǎng)IP地址不沖突的外網(wǎng)IP地址,將NATIP地址與隧道源IP地址對應(yīng)的域名綁定,生成并存儲NATIP地址與隧道源IP地址之間的對應(yīng)關(guān)系表項;步驟405、NAT設(shè)備將NATIP地址與域名之間的綁定關(guān)系發(fā)送至DNS服務(wù)器組,添加或更新所述DNS服務(wù)器組中的DDNS表項。本實施例中,NAT設(shè)備可對GRE報文中的內(nèi)層IP地址進(jìn)行地址轉(zhuǎn)換,這樣,外網(wǎng)的網(wǎng)絡(luò)設(shè)備接收到該封裝報文后,由于封裝報文轉(zhuǎn)換后的內(nèi)層IP地址為外網(wǎng)IP地址,這樣,外網(wǎng)的網(wǎng)絡(luò)設(shè)備就可以直接以轉(zhuǎn)換后的內(nèi)層IP地址進(jìn)行報文的轉(zhuǎn)發(fā)或處理。本實施例中,當(dāng)NAT設(shè)備接收到外網(wǎng)隧道設(shè)備發(fā)送的封裝報文后,可在報文源IP地址與外網(wǎng)IP地址之間的對應(yīng)關(guān)系表項中查找與封裝報文中的內(nèi)層IP地址對應(yīng)的報文源IP地址,并將內(nèi)層IP地址替換為查找到的報文源IP地址,即將外網(wǎng)發(fā)送的封裝報文中的外網(wǎng)IP地址轉(zhuǎn)換為內(nèi)網(wǎng)IP地址,使得內(nèi)網(wǎng)的網(wǎng)絡(luò)設(shè)備接收到該報文后,即可進(jìn)行處理。本實施例中,NAT設(shè)備接收到外網(wǎng)隧道設(shè)備發(fā)送的封裝報文后,可根據(jù)封裝報文中攜帶的NATIP地址,在NATIP地址與隧道源IP地址之間的對應(yīng)關(guān)系表項中查找與該NATIP地址對應(yīng)的隧道源IP地址,將該NATIP地址替換為查找到的隧道源IP地址,并將報文轉(zhuǎn)發(fā)到內(nèi)網(wǎng)的隧道設(shè)備。這樣,內(nèi)網(wǎng)的隧道設(shè)備就可以直接對NAT設(shè)備轉(zhuǎn)發(fā)的封裝報文進(jìn)行解封裝。上述本發(fā)明實施例中,所述的NAT設(shè)備將封裝報文中的隧道源IP地址替換成NATIP地址,具體可為:NAT設(shè)備從自身存儲的外網(wǎng)IP地址池中選擇一個尚未分配的外網(wǎng)IP地址,將外網(wǎng)IP地址作為NATIP地址替換封裝報文中的隧道源IP地址。這樣,NAT設(shè)備可針對不同的隧道設(shè)備發(fā)送的報文分配不同的NATIP地址,以確保封裝報文均能得到處理??梢钥闯?,本實施例中,NAT設(shè)備在對封裝報文的外層IP地址,即隧道源IP地址進(jìn)行地址轉(zhuǎn)換時,同時可對內(nèi)層IP地址為IP地址時進(jìn)行地址轉(zhuǎn)換,以確保報文可在外網(wǎng)傳輸;同時,NAT設(shè)備上記錄地址轉(zhuǎn)換前后的對應(yīng)關(guān)系表項,這樣使得外網(wǎng)設(shè)備發(fā)送來的報文可進(jìn)行處理,以確保接收到的報文可準(zhǔn)確地傳輸至目的設(shè)備。為了進(jìn)一步闡述本發(fā)明的技術(shù)思想,現(xiàn)結(jié)合如圖5所示的具體應(yīng)用場景,以及圖6所示的流程示意圖,對本發(fā)明的技術(shù)方案進(jìn)行說明。其中,終端1為內(nèi)網(wǎng)終端設(shè)備,終端3為外網(wǎng)終端設(shè)備,DUTA為內(nèi)網(wǎng)隧道設(shè)備,DUTB為外網(wǎng)隧道設(shè)備,DNSServer處于外網(wǎng)環(huán)境中,NAT設(shè)備中的地址池為3.1.1.10-3.1.1.20,其中,NAT設(shè)備以及外網(wǎng)設(shè)備事先配置有外網(wǎng)隧道設(shè)備的域名。在本具體實施例中,由內(nèi)網(wǎng)終端1與外網(wǎng)終端3進(jìn)行IP通信,終端1的IP地址為192.168.1.1,終端3的IP地址為1.2.1.1。內(nèi)網(wǎng)和外網(wǎng)環(huán)境中同時存在IP網(wǎng)絡(luò)和IPX網(wǎng)絡(luò),其主干網(wǎng)絡(luò)為IP網(wǎng)絡(luò)。下面將以ICMP(InternetControlMessageProtocol,Internet控制報文協(xié)議)請求應(yīng)答報文為例,對各設(shè)備之間的報文交互流程進(jìn)行詳細(xì)說明:S601,終端1發(fā)送報文,其發(fā)送報文的IP地址結(jié)構(gòu)為192.168.1.1---->1.2.1.1。其中,192.168.1.1為終端1的IP地址,為內(nèi)網(wǎng)IP地址;1.2.1.1為終端3的IP地址,為外網(wǎng)IP地址。S602,DUTA對報文進(jìn)行加封裝處理。當(dāng)報文到達(dá)內(nèi)網(wǎng)隧道設(shè)備DUTA時,DUTA對報文進(jìn)行加封裝處理,封裝后的報文的IP地址結(jié)構(gòu)為172.168.1.1---->1.1.1.1||192.168.1.1---->1.2.1.1,報文封裝完畢后即被送往NAT。其中,172.168.1.1就是DUTA的IP地址,為內(nèi)網(wǎng)IP地址,1.1.1.1就是DUTB的IP地址,為外網(wǎng)IP地址。S603,NAT設(shè)備對封裝報文進(jìn)行轉(zhuǎn)換。NAT設(shè)備在接收到DUTA發(fā)送的封裝報文后,首先基于封裝報文外層源IP地址的類型判斷封裝報文來自于內(nèi)網(wǎng)還是外網(wǎng)。若該外層源IP地址為內(nèi)網(wǎng)地址,則說明需要對該封裝報文中的內(nèi)網(wǎng)地址進(jìn)行IP地址的轉(zhuǎn)換;而當(dāng)該外層源IP地址為外網(wǎng)地址時,則說明需要對該封裝報文中的部分已轉(zhuǎn)換的外網(wǎng)地址重新轉(zhuǎn)換為內(nèi)網(wǎng)地址。需要說明的是,當(dāng)GRE隧道報文經(jīng)過NAT設(shè)備后,設(shè)備會根據(jù)GRE報文內(nèi)部乘客協(xié)議判斷是否需要進(jìn)行隧道內(nèi)層報文轉(zhuǎn)換。如果GRE頭部乘客協(xié)議為IP(即協(xié)議號為0x0800)協(xié)議,NAT設(shè)備進(jìn)行內(nèi)層地址轉(zhuǎn)換。如果GRE頭部乘客協(xié)議為非IP協(xié)議,即協(xié)議號為非0x0800的非IP協(xié)議的報文,例如IPX、AppleTALK、NetBEUI等,則NAT設(shè)備就不需要對封裝報文的內(nèi)層源IP地址進(jìn)行處理。而當(dāng)GRE頭部乘客協(xié)議為IP協(xié)議時,封裝報文中的IP地址,在NAT設(shè)備的內(nèi)部的處理如圖7所示。其中,由于封裝報文中同時包含外層源IP地址,即隧道源IP地址,以及內(nèi)層源IP地址,即報文源IP地址,因此在進(jìn)行地址轉(zhuǎn)換的過程中,NAT設(shè)備分別從自身存儲的外網(wǎng)IP地址池中選擇一個尚未分配的外網(wǎng)IP地址作為NATIP地址替換所述封裝報文中的隧道源IP地址,同時選擇一個尚未分配的外網(wǎng)IP地址對內(nèi)層源IP地址,即報文源IP地址進(jìn)行替換。具體地,在該步驟中,NAT設(shè)備對隧道外層IP地址進(jìn)行動態(tài)NAT地址轉(zhuǎn)換,對隧道內(nèi)層報文則進(jìn)行ALGNO-PAT地址轉(zhuǎn)換,轉(zhuǎn)換后的報文結(jié)構(gòu)如下:3.1.1.15---->1.1.1.1||3.1.1.10---->1.2.1.1。在轉(zhuǎn)換完畢后,NAT設(shè)備將報文繼續(xù)發(fā)往外網(wǎng)隧道設(shè)備DUTB,同時生成如下映射表項:192.168.1.1<======>3.1.1.10172.168.1.1<======>3.1.1.15。其中,NAT設(shè)備在對封裝報文的外層源IP地址進(jìn)行替換時,也可選擇用靜態(tài)地址,即為其分配一個靜態(tài)IP地址,例如1.1.1.10。具體地,可在NAT設(shè)備上配置與內(nèi)網(wǎng)隧道的域名對應(yīng)的靜態(tài)IP地址1.1.1.10,這樣,NAT設(shè)備接收到內(nèi)網(wǎng)隧道設(shè)備發(fā)送的封裝報文時,就可以直接將外層源IP地址替換成1.1.1.10。在該步驟中,NAT設(shè)備進(jìn)行地址轉(zhuǎn)換后,會同時保存地址轉(zhuǎn)換前后的對應(yīng)關(guān)系表,即封裝報文轉(zhuǎn)換前后的NATIP地址與隧道源IP地址之間的對應(yīng)關(guān)系,以及轉(zhuǎn)換前后的報文源IP地址與外網(wǎng)IP地址之間的對應(yīng)關(guān)系以表項的方式保存起來。同時,NAT設(shè)備會將對封裝報文的外層源IP地址,即隧道源IP地址轉(zhuǎn)換后的IP地址,即NATIP地址與內(nèi)網(wǎng)隧道設(shè)備的域名綁定,發(fā)送至DDNS服務(wù)器組,以添加或更新相應(yīng)的DDNS表項。若DDNS服務(wù)器組首次接收到內(nèi)網(wǎng)隧道設(shè)備的域名與NATIP地址,則會生成一個對應(yīng)該域名的DDNS表項,將NATIP地址保存,若再次收到,則將收到的NATIP地址替換已有的NATIP地址。具體地,假設(shè)內(nèi)網(wǎng)隧道設(shè)備的域名為gre.com,那么NAT設(shè)備上就會預(yù)先設(shè)置該域名,并與內(nèi)網(wǎng)隧道設(shè)備的IP地址關(guān)聯(lián),當(dāng)NAT設(shè)備接收到封裝報文,解析IP地址為內(nèi)網(wǎng)隧道設(shè)備的IP地址,則進(jìn)行地址轉(zhuǎn)換后,將轉(zhuǎn)換后的NATIP地址與該域名gre.com綁定,并發(fā)送至DNS服務(wù)器組,而DNS服務(wù)器組可在DDNS服務(wù)器上增加或更新相應(yīng)的DDNS表項,記錄相應(yīng)的域名及NATIP地址,本實施例中,DDNS服務(wù)器上的DDNS表項就會記錄:gre.com===>3.1.1.15。由于涉及到IP地址的動態(tài)分配,外網(wǎng)隧道設(shè)備需要使用DNS服務(wù)器組中的(DynamicDomainNameServer,動態(tài)域名服務(wù))DDNS服務(wù)器對封裝報文中的域名進(jìn)行解析,確定該封裝報文來自于內(nèi)網(wǎng)隧道設(shè)備,繼而查找與該IP地址對應(yīng)的對應(yīng)表項。因此,DNS服務(wù)器組根據(jù)對應(yīng)關(guān)系表項向其中的DDNS服務(wù)器更新域名與轉(zhuǎn)換后的IP地址的對應(yīng)關(guān)系,使DDNS表項將所述對應(yīng)關(guān)系表項的內(nèi)容進(jìn)行保存。其中,所述的DNS服務(wù)器組,也即包括DNS服務(wù)器和DDNS服務(wù)器,由于本實施例涉及到動態(tài)地址分配,即域名對應(yīng)的IP地址是動態(tài)的,所以需要使用其中的DDNS服務(wù)器進(jìn)行域名解析。S604,DUTB對報文進(jìn)行解封裝處理。外網(wǎng)隧道設(shè)備在接收到封裝報文后,首先根據(jù)自身配置的對應(yīng)的內(nèi)網(wǎng)隧道設(shè)備的域名,通過DDNS服務(wù)器的DDNS表項對封裝報文的域名進(jìn)行解析,確定該報文是否來自對應(yīng)的內(nèi)網(wǎng)隧道設(shè)備,從而實現(xiàn)對封裝報文的解封裝。具體地,外網(wǎng)隧道設(shè)備根據(jù)對應(yīng)的內(nèi)網(wǎng)隧道設(shè)備的域名,查詢得到該域名對應(yīng)的IP地址,為其接收到的封裝報文中的外層源IP地址時,就可以確定其是從對應(yīng)的內(nèi)網(wǎng)隧道設(shè)備,即可對其進(jìn)行解封裝。實際應(yīng)用中,上述S603中,NAT設(shè)備也可將隧道源IP地址轉(zhuǎn)換前后的NATIP地址與隧道源IP地址對應(yīng)關(guān)系一起與域名綁定,使得對應(yīng)的DDNS表項可記錄該隧道源IP地址轉(zhuǎn)換前后的IP地址,這樣,外網(wǎng)隧道設(shè)備進(jìn)行解封裝時,就可以直接獲得域名對應(yīng)的地址轉(zhuǎn)換前后的IP地址,并與封裝報文的外層源IP地址比較,確定地址轉(zhuǎn)換后的IP地址與其相同,且轉(zhuǎn)換后的IP地址為對應(yīng)的內(nèi)網(wǎng)隧道的IP地址,則可對報文進(jìn)行解封裝。在本步驟中,經(jīng)地址轉(zhuǎn)換后的報文到達(dá)外網(wǎng)隧道設(shè)備DUTB后,對封裝報文解封裝后,解封裝后的報文的IP地址格式如下:3.1.1.10---->1.2.1.1。S605,DUTB將報文發(fā)送至終端3。由于DUTB解封裝后的報文中的IP地址均為外網(wǎng)IP地址,因此,報文可以在外網(wǎng)中傳輸,到達(dá)終端3。此時,DUTB會記錄該報文的源IP地址,當(dāng)接收到發(fā)送至該源IP地址的報文時,就會進(jìn)行隧道封裝進(jìn)行轉(zhuǎn)發(fā)。S606,終端3向終端1發(fā)送應(yīng)答報文。終端3接收到ICMP請求報文后,就可以發(fā)送應(yīng)到報文,報文的IP地址結(jié)構(gòu)為:1.2.1.1---->3.1.1.10。S607,DUTB對應(yīng)答報文進(jìn)行加封裝處理,并發(fā)送至NAT設(shè)備?;谥皩碜杂诮K端1的封裝報文的解封裝過程,DUTB在對該應(yīng)答報文進(jìn)行封裝時,直接將與DUTA的對應(yīng)的NATIP地址作為隧道目的IP地址。封裝后的報文的結(jié)構(gòu)如下:1.1.1.1---->3.1.1.15||1.2.1.1---->3.1.1.10。S608,NAT設(shè)備根據(jù)映射表項對接收的隧道報文進(jìn)行地址轉(zhuǎn)換,并發(fā)送至DUTA。具體地,NAT設(shè)備可根據(jù)步驟603記錄的地址轉(zhuǎn)換前后的表項,查詢與報文的外層目的IP地址,內(nèi)層目的IP地址對應(yīng)的內(nèi)網(wǎng)IP地址,并進(jìn)行替換。經(jīng)地址轉(zhuǎn)換后的報文的結(jié)構(gòu)如下:1.1.1.1---->172.168.1.1||1.2.1.1---->192.168.1.1。S609,內(nèi)網(wǎng)隧道設(shè)備DUTA對收到的隧道報文進(jìn)行正常解封裝處理,經(jīng)解封裝后的報文的結(jié)構(gòu)為:1.2.1.1---->192.168.1.1。S610,DUTA將報文發(fā)送至終端1。為了實現(xiàn)上述的技術(shù)方案,如圖8所示,本發(fā)明還提出了一種網(wǎng)絡(luò)地址轉(zhuǎn)換NAT設(shè)備,包括:接口模塊810,用于接收內(nèi)網(wǎng)隧道設(shè)備發(fā)送的封裝報文;處理模塊820,用于將所述封裝報文中的隧道源IP地址替換成NATIP地址,所述NATIP地址為與外網(wǎng)IP地址不沖突的外網(wǎng)IP地址;所述接口模塊810,還用于將所述NATIP地址與所述隧道源IP地址對應(yīng)的域名綁定,并發(fā)送至域名服務(wù)DNS服務(wù)器組,添加或更新所述DNS服務(wù)器組中的DDNS表項,以使得外網(wǎng)隧道設(shè)備接收到NAT設(shè)備轉(zhuǎn)發(fā)的所述封裝報文后,通過所述DNS服務(wù)器組進(jìn)行域名解析來確定所述封裝報文來自所述內(nèi)網(wǎng)隧道設(shè)備,以對所述封裝報文進(jìn)行解封裝;其中,所述NAT設(shè)備上預(yù)先設(shè)置有與所述內(nèi)網(wǎng)隧道設(shè)備的隧道源IP地址對應(yīng)的域名;所述DDNS表項保存所述域名及與域名綁定的NATIP地址。在具體的應(yīng)用場景中,所述處理模塊820,還用于生成并存儲所述NATIP地址與所述隧道源IP地址之間的對應(yīng)關(guān)系表項;所述接口模塊810,還用于接收外網(wǎng)隧道設(shè)備發(fā)送的封裝報文,所述封裝報文攜帶所述NATIP地址;所述處理模塊820,還用于根據(jù)所述接口模塊810接收到的封裝報文的所述NATIP地址,在NATIP地址與隧道源IP地址之間的對應(yīng)關(guān)系表項中查找與所述NATIP地址對應(yīng)的隧道源IP地址,將所述NATIP地址替換為查找到的隧道源IP地址。在具體的應(yīng)用場景中,所述封裝報文具體為通用路由封裝GRE報文,所述處理模塊820,還用于:當(dāng)所述GRE報文的頭部乘客協(xié)議為IP協(xié)議時,將所述封裝報文中的報文源IP地址替換為與外網(wǎng)IP地址不沖突的外網(wǎng)IP地址,并記錄所述報文源IP地址與外網(wǎng)IP地址之間的對應(yīng)關(guān)系表項。在具體的應(yīng)用場景中,所述接口模塊810,還用于接收外網(wǎng)隧道設(shè)備發(fā)送的封裝報文;所述處理模塊820,還用于在所述接口模塊810接收到外網(wǎng)隧道設(shè)備發(fā)送的封裝報文后,在報文源IP地址與外網(wǎng)IP地址之間的對應(yīng)關(guān)系表項中查找與所述封裝報文中的內(nèi)層IP地址對應(yīng)的報文源IP地址,并將所述內(nèi)層IP地址替換為查找到的報文源IP地址。在具體的應(yīng)用場景中,所述處理模塊820,具體用于從自身存儲的外網(wǎng)IP地址池中選擇一個尚未分配的外網(wǎng)IP地址,將所述外網(wǎng)IP地址作為NATIP地址替換所述封裝報文中的隧道源IP地址。由此可見,通過應(yīng)用以上技術(shù)方案,NAT設(shè)備對內(nèi)網(wǎng)隧道設(shè)備發(fā)送的封裝報文的隧道源IP地址進(jìn)行轉(zhuǎn)化時,將NATIP地址與隧道源IP地址對應(yīng)的域名綁定,作為DDNS表項記錄在DDNS服務(wù)器組,使得外網(wǎng)隧道設(shè)備可以通過DNS域名解析來確定封裝報文是否是對應(yīng)的內(nèi)網(wǎng)隧道設(shè)備發(fā)送的報文,從而可對封裝報文進(jìn)行解封裝??梢钥闯?,采用本發(fā)明技術(shù)方案,不需要在隧道設(shè)備以及NAT設(shè)備進(jìn)行人工IP地址配置,就可以實現(xiàn)封裝報文的解封裝,可有效提高報文的轉(zhuǎn)發(fā)效率,確保網(wǎng)絡(luò)的穩(wěn)定性,具有較好的靈活性和適用性。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施場景所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施場景的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實施場景中的裝置中的模塊可以按照實施場景描述進(jìn)行分布于實施場景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實施場景的一個或多個裝置中。上述實施場景的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。上述本發(fā)明序號僅僅為了描述,不代表實施場景的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實施場景,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。