專利名稱:網(wǎng)絡(luò)地址轉(zhuǎn)換方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及技術(shù)領(lǐng)域IP地址技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法和設(shè)備。
背景技術(shù):
NAT (Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)是一種解決IPv4地址短缺以保留公網(wǎng)IP地址的重要技術(shù),NAT的主要應(yīng)用方法之一是通過創(chuàng)建TCP/UDP端口的映射將大量內(nèi)部私網(wǎng)地址轉(zhuǎn)換到少量公網(wǎng)IP地址,以起到節(jié)省公網(wǎng)地址的作用。目前網(wǎng)絡(luò)地址轉(zhuǎn)換已經(jīng)得到廣泛的使用。隨著全球IPv4地址枯竭日期的臨近,NAT444技術(shù)也在NAT技術(shù)基礎(chǔ)上發(fā)展成為了一種向IPv6演進(jìn)的重要過渡技術(shù)。由于TCP (Transmission Control Protocol,傳輸控制協(xié)議)/UDP (User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)的可用源、目地端口長度為16比特(比特),因此在NAT環(huán)境中一個(gè)公網(wǎng)地址可以代理的TCP/UDP連接數(shù)將少于65535個(gè),當(dāng)端口全部被占用后,NAT用戶后續(xù)使用新端口的會(huì)話將無法建立,因此制約了公網(wǎng)IPv4地址的利用率和NAT用戶的業(yè)務(wù)應(yīng)用。圖1示出現(xiàn)有技術(shù)中NAT網(wǎng)關(guān)進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換的示意圖。在圖1中,內(nèi)網(wǎng)主機(jī)A 11具有私網(wǎng)地址例如10.1. 0. 1,內(nèi)網(wǎng)主機(jī)B 12具有私網(wǎng)地址例如10. 100. 0. 1,NAT設(shè)備13具有公網(wǎng)地址218. 80. 254. 1,公網(wǎng)主機(jī)(服務(wù)器)D 14具有公網(wǎng)地址202. 100. 0.1。NAT設(shè)備13為內(nèi)網(wǎng)主機(jī)A 11轉(zhuǎn)換地址后,同一外網(wǎng)IP會(huì)話使用的端口達(dá)到最大值,此時(shí),如果內(nèi)網(wǎng)主機(jī)B 12請(qǐng)求建立新的端口會(huì)話,由于與公網(wǎng)IP地址218. 80. 254.1對(duì)應(yīng)的端口會(huì)話達(dá)到上限,內(nèi)網(wǎng)主機(jī)B 12新建的會(huì)話將在NAT設(shè)備13上丟棄。即NAT設(shè)備上一個(gè)公網(wǎng)IPv4地址對(duì)應(yīng)的最大會(huì)話數(shù)將受到端口的最大數(shù)限制,而不能超過65535。同樣的,在NAT64過渡技術(shù)中,由于IPv6地址范圍遠(yuǎn)大于IPv4所需代理的IPv6地址,因此端口限制也會(huì)造成公網(wǎng)IPv4地址的大量消耗和超過65535個(gè)端口后新會(huì)話無法建立的問題。
發(fā)明內(nèi)容
鑒于以上問題提出本發(fā)明。本發(fā)明要解決的一個(gè)技術(shù)問題是提供一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法和設(shè)備,能夠提高NAT轉(zhuǎn)換能力,提高了公網(wǎng)IPv4地址利用率。根據(jù)本發(fā)明的一個(gè)方面,提供一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法,包括接收來自內(nèi)網(wǎng)主機(jī)的IP報(bào)文,IP報(bào)文包括IPv4報(bào)文頭和源端口字段,IPv4報(bào)文頭中的源IP地址為內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址,源端口字段為內(nèi)網(wǎng)主機(jī)的端口號(hào);將私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào);將IP報(bào)文的源IP地址轉(zhuǎn)換為公網(wǎng)IP地址,將擴(kuò)展端口號(hào)寫入IP報(bào)文的源端口字段和EPORT字段,發(fā)送IP報(bào)文。優(yōu)選地,該方法還包括根據(jù)私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)與公網(wǎng)IP地址和擴(kuò)展端口號(hào)的映射關(guān)系建立映射表項(xiàng)。 優(yōu)選地,將私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào)包括將私網(wǎng)IP地址映射到公網(wǎng)IP地址;將內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到擴(kuò)展端口號(hào),其中由源端口字段表示擴(kuò)展端口號(hào)的低位比特,由EPORT字段表示擴(kuò)展端口號(hào)的高位比特。優(yōu)選地,將私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和新端口號(hào)包括將私網(wǎng)IP地址映射到公網(wǎng)IP地址;將內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到擴(kuò)展端口號(hào),擴(kuò)展端口號(hào)包括由源端口字段表示的端口號(hào)和由EPORT字段表示的內(nèi)網(wǎng)主機(jī)的唯一標(biāo)識(shí)。優(yōu)選地,該方法還包括接收來自公網(wǎng)的IP報(bào)文,IP報(bào)文包括IPv4報(bào)文頭、目的端口字段和EPORT字段;根據(jù)NAT映射表項(xiàng)獲得與由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào)對(duì)應(yīng)的私網(wǎng)IP地址和端口號(hào);將IP報(bào)文轉(zhuǎn)發(fā)給與私網(wǎng)IP地址和端口號(hào)對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)。根據(jù)本發(fā)明的另一方法,還提供一種網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備,包括報(bào)文接收模塊,用于接收來自內(nèi)網(wǎng)主機(jī)的IP報(bào)文,IP報(bào)文包括IPv4報(bào)文頭和源端口字段,IPv4報(bào)文頭中的 源IP地址為內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址,源端口字段為內(nèi)網(wǎng)主機(jī)的端口號(hào);地址映射模塊,用于將私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào);報(bào)文發(fā)送模塊,用于將IP報(bào)文的源IP地址轉(zhuǎn)換為公網(wǎng)IP地址,將擴(kuò)展端口號(hào)寫入IP報(bào)文的源端口字段和EPORT字段,發(fā)送IP報(bào)文。優(yōu)選地,該設(shè)備還包括映射存儲(chǔ)模塊,用于存儲(chǔ)根據(jù)私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)與公網(wǎng)IP地址和擴(kuò)展端口號(hào)的映射關(guān)系建立的映射表項(xiàng)。優(yōu)選地,該地址映射模塊包括IP地址映射單元,用于將私網(wǎng)IP地址映射到公網(wǎng)IP地址;端口映射單元,用于將內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào)。優(yōu)選地,由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào)包括由源端口字段表示擴(kuò)展端口號(hào)的低位比特和由EPORT字段表示擴(kuò)展端口號(hào)的高位比特,或由源端口字段表示的端口號(hào)和由EPORT字段表不的內(nèi)網(wǎng)主機(jī)的唯一標(biāo)識(shí)。優(yōu)選地,報(bào)文接收模塊還用于接收來自公網(wǎng)的IP報(bào)文,IP報(bào)文包括IPv4報(bào)文頭、目的端口字段和EPORT字段;地址映射模塊還用于根據(jù)NAT映射表項(xiàng)獲得與由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào)對(duì)應(yīng)的私網(wǎng)IP地址和端口號(hào);報(bào)文發(fā)送模塊還用于將IP報(bào)文轉(zhuǎn)發(fā)給與私網(wǎng)IP地址和端口號(hào)對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)。本發(fā)明提供的網(wǎng)絡(luò)地址轉(zhuǎn)換方法和設(shè)備,采用可選IPv4報(bào)文選項(xiàng)EPORT擴(kuò)展傳統(tǒng)的UDP/TCP端口數(shù)量,由此增強(qiáng)了 NAT轉(zhuǎn)換能力、大幅提高了公網(wǎng)IPv4地址利用率。
構(gòu)成說明書的一部分的附圖描述了本發(fā)明的實(shí)施例,并且連同說明書一起用于解釋本發(fā)明的原理。參照附圖,根據(jù)下面的詳細(xì)描述,可以更加清楚地理解本發(fā)明,其中圖1不出現(xiàn)有技術(shù)中NAT網(wǎng)關(guān)進(jìn)彳丁網(wǎng)絡(luò)地址轉(zhuǎn)換的不意圖;圖2示出IPv4報(bào)文頭格式以及可選報(bào)文頭EPORT的示意圖;圖3示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法的一個(gè)實(shí)施例的流程圖;圖4示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法的另一個(gè)實(shí)施例的流程圖5示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法的又一個(gè)實(shí)施例的流程圖;圖6示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備的一個(gè)實(shí)施例的結(jié)構(gòu)圖;圖7示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備的另一個(gè)實(shí)施例的結(jié)構(gòu)圖;圖8示出本發(fā)明的NAT網(wǎng)關(guān)進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換的示意圖。
具體實(shí)施例方式現(xiàn)在將參照附圖來詳細(xì)描述本發(fā)明的各種示例性實(shí)施例。應(yīng)注意到除非另外具體說明,否則在這些實(shí)施例中闡述的部件和步驟的相對(duì)布置、數(shù)字表達(dá)式和數(shù)值不限制本發(fā)明的范圍。同時(shí),應(yīng)當(dāng)明白,為了便于描述,附圖中所示出的各個(gè)部分的尺寸并不是按照實(shí)際的比例關(guān)系繪制的。 以下對(duì)至少一個(gè)示例性實(shí)施例的描述實(shí)際上僅僅是說明性的,決不作為對(duì)本發(fā)明及其應(yīng)用或使用的任何限制。對(duì)于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細(xì)討論,但在適當(dāng)情況下,所述技術(shù)、方法和設(shè)備應(yīng)當(dāng)被視為授權(quán)說明書的一部分。在這里示出和討論的所有示例中,任何具體值應(yīng)被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實(shí)施例的其它示例可以具有不同的值。應(yīng)注意到相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步討論。本發(fā)明實(shí)施例的基本構(gòu)思為通過新的IPv4可選報(bào)文頭EPORT(Extended TCP/UDP PORT)來擴(kuò)展NAT網(wǎng)關(guān)TCP/UDP端口映射能力。圖2示出IPv4報(bào)文頭格式以及可選報(bào)文頭EPORT的一個(gè)例子的示意圖,該例子中報(bào)文頭規(guī)格如下選項(xiàng)類型(option-type)字段(8比特)第I比特copied flag :取I,將可選報(bào)文頭復(fù)制到所有的切片報(bào)文中。第2比特option class,:取01定義為新的IP擴(kuò)展第5比特option number :取00001定義為EPORT id,標(biāo)識(shí)該IPv4報(bào)文包含EPORT可選報(bào)文頭為報(bào)文頭用于擴(kuò)展TCP/UDP端口。長度(LENGTH)字段(8比特)取00000100,標(biāo)識(shí)EPORT可選報(bào)文頭的總長度為
4byte0選項(xiàng)數(shù)據(jù)(option-data)字段(16比特)用于標(biāo)識(shí)NAT網(wǎng)關(guān)映射的TCP/UDP擴(kuò)
展端口號(hào)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,IPv4報(bào)文頭格式也可以有其他的實(shí)現(xiàn)方式,option-data字段也可以包括其他的可選字段,而LENGTH等字段可以有相應(yīng)的取值。圖3示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法的一個(gè)實(shí)施例的流程圖。如圖3所示,步驟302,NAT設(shè)備接收來自內(nèi)網(wǎng)主機(jī)的IP報(bào)文,IP報(bào)文包括IPv4報(bào)文頭和源端口字段,IPv4報(bào)文頭中的源IP地址為內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址,源端口字段為內(nèi)網(wǎng)主機(jī)的端口號(hào)。IP 報(bào)文例如是 TCP、UDP、IGMP (Internet Group Management Protocol,Internet組管理協(xié)議)等。步驟304,NAT設(shè)備將私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào)??梢愿鶕?jù)私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)與公網(wǎng)IP地址和擴(kuò)展端口號(hào)的映射關(guān)系建立映射表項(xiàng),將映射關(guān)系存儲(chǔ)在映射表項(xiàng)中。步驟306,NAT設(shè)備將IP報(bào)文的源IP地址轉(zhuǎn)換為公網(wǎng)IP地址,將擴(kuò)展端口號(hào)寫IP報(bào)文的源端口字段和EPORT字段,發(fā)送IP報(bào)文。上述實(shí)施例中,網(wǎng)絡(luò)NAT網(wǎng)關(guān)在進(jìn)行私網(wǎng)、公網(wǎng)IP地址轉(zhuǎn)換端口映射時(shí)結(jié)合原有的TCP/UDP端口,以可選的IPv4報(bào)文的方式擴(kuò)展TCP/UDP端口數(shù)量。這樣,一個(gè)公網(wǎng)IPv4地址可代理的TCP/UDP連接數(shù)從原有的16比特?cái)U(kuò)展到了 32比特,使得一個(gè)公網(wǎng)IPv4地址可以代理的連接數(shù)量從65535個(gè)大幅擴(kuò)展到了 4294967295個(gè),大幅度降低了 IPv4公網(wǎng)地址的消耗速度,同時(shí)在不影響用戶應(yīng)用體驗(yàn)的情況下增加了單層或多層NAT網(wǎng)關(guān)后可代理的私網(wǎng)地址規(guī)模,為IPv6的大規(guī)模部署贏得了時(shí)間。同時(shí),該解決方案不修改現(xiàn)有TCP/UDP報(bào)文頭的結(jié)構(gòu)和相關(guān)定義,不改變IP報(bào)文頭已定義的各個(gè)字 段,具備較好的協(xié)議兼容性。通過EPORT字段和源端口字段表示擴(kuò)展端口號(hào)有多種實(shí)現(xiàn)方式。下面將介紹幾個(gè)具體的例子。在本發(fā)明的一個(gè)實(shí)施例中,NAT網(wǎng)關(guān)設(shè)備將公網(wǎng)映射側(cè)TCP/UDP映射端口從傳統(tǒng)的TCP/UDP源端口號(hào)的16比特?cái)U(kuò)展到32比特,其中低位16比特端口號(hào)由傳統(tǒng)TCP/UDP源端號(hào)字段表示,超過16比特后(即一個(gè)經(jīng)過NAT映射后的公網(wǎng)地址代理的連接超過65535個(gè)后)的端口號(hào)由IPv4可選報(bào)文頭EPORT中option-data字段的TCP/UDP擴(kuò)展端口號(hào)+TCP/UDP源端號(hào)字段表示。需要注意,這種情況下,每個(gè)NAT網(wǎng)關(guān)的內(nèi)網(wǎng)主機(jī)可建立的連接遵從IPv4UDP/TCP的端口定義不超過65535,所有的內(nèi)網(wǎng)主機(jī)共享NAT網(wǎng)關(guān)的4294967295個(gè)(32比特)理論TCP/UDP連接。該方式對(duì)于小于65535個(gè)端口的情況不使用EPORT字段,對(duì)于大于65535個(gè)端口的情況再使用EPORT字段,可以較好地和現(xiàn)有的技術(shù)方案兼容,具有較好的兼容性。在本發(fā)明的另一個(gè)實(shí)施例中,NAT網(wǎng)關(guān)設(shè)備將公網(wǎng)映射側(cè)TCP/UDP映射端口從傳統(tǒng)的TCP/UDP源端口號(hào)的16比特?cái)U(kuò)展到32比特,其中低位的16比特端口號(hào)由傳統(tǒng)TCP/UDP源端號(hào)字段表述,高位的IPv4可選報(bào)文頭EPORT的TCP/UDP擴(kuò)展端口號(hào)用于標(biāo)識(shí)NAT網(wǎng)關(guān)代理的私網(wǎng)主機(jī),每一個(gè)內(nèi)網(wǎng)主機(jī)都由NAT網(wǎng)分配一個(gè)唯一的PORT的TCP/UDP擴(kuò)展端口號(hào)。在這種情況下,一個(gè)NAT網(wǎng)關(guān)設(shè)備最多可以代理65535(16比特)個(gè)內(nèi)網(wǎng)主機(jī),每個(gè)主機(jī)理論上都可以通過NAT網(wǎng)關(guān)建立65536 (16比特)的理論TCP/UDP連接。圖4示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法的另一個(gè)實(shí)施例的流程圖。如圖4所示,步驟402,NAT設(shè)備接收來自內(nèi)網(wǎng)主機(jī)的TCP/UDP報(bào)文,報(bào)文中包括IPv4報(bào)文頭和源端口字段,IPv4報(bào)文頭中的源IP地址為內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址。步驟404,將源IP地址由私網(wǎng)IP地址映射為公網(wǎng)IP地址。步驟406,將源端口號(hào)映射為由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào)。例如,源端口號(hào)占用源端口字段的16比特(比特),取值范圍為1-65535,而擴(kuò)展端口號(hào)占用EPORT字段(16比特)和源端口字段(16比特)共32比特,取值范圍可以為1-4294967295個(gè)。步驟408,建立映射表項(xiàng),將公網(wǎng)IP地址和擴(kuò)展端口號(hào)寫入TCP/UDP報(bào)文的對(duì)應(yīng)字段,將TCP/UDP報(bào)文發(fā)送到公網(wǎng)。采用公網(wǎng)IP地址的主機(jī)終端具備識(shí)別TCP/UDP報(bào)文中可選報(bào)文頭EPORT字段的能力,據(jù)此區(qū)分屬于不同會(huì)話連接的TCP/UDP報(bào)文,在返回TCP/UDP報(bào)文中原封保留接收到的可選報(bào)文頭的EPORT字段。該實(shí)施例還可以包括如下步驟步驟410,NAT設(shè)備接收來自公網(wǎng)的TCP/UDP報(bào)文,TCP/UDP報(bào)文中包括目的IP地址、目的端口號(hào)和EPORT字段。步驟412,根據(jù)映射表項(xiàng)獲得與目的IP地址和由EPORT字段和目的端口字段表示的擴(kuò)展端口號(hào)對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址和端口號(hào)。步驟414,將TCP/UDP報(bào)文發(fā)送給與私網(wǎng)IP地址對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)。上述實(shí)施例中,NAT網(wǎng)關(guān)設(shè)備接收到來自公網(wǎng)主機(jī)應(yīng)答的TCP/UDP報(bào)文后,識(shí)別可選報(bào)文頭的EPORT字段,根據(jù)映射的表項(xiàng)去除包含EPORT字段IPv4可選報(bào)文頭并將公網(wǎng)主機(jī)應(yīng)答的數(shù)據(jù)報(bào)文返回給相應(yīng)的內(nèi)網(wǎng)主機(jī)。不需要修改現(xiàn)有TCP/UDP報(bào)文頭的結(jié)構(gòu),不改變IP報(bào)文頭已定義的各個(gè)字段,具備較好的協(xié)議兼容性。 從NAT網(wǎng)關(guān)出口到所訪問的公網(wǎng)目地終端途經(jīng)的網(wǎng)絡(luò)設(shè)備不修改包含TCP/UDP端口擴(kuò)展的EPORT字段及所屬IPv4可選報(bào)文頭,不丟棄擁有該可選報(bào)文頭的IPv4報(bào)文。圖5示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法的又一個(gè)實(shí)施例的流程圖。如圖5所示,步驟502,NAT設(shè)備接收來自內(nèi)網(wǎng)主機(jī)的TCP/UDP報(bào)文,報(bào)文中包括IPv4報(bào)文頭和源端口字段,IPv4報(bào)文頭中的源IP地址為內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址。步驟504,NAT設(shè)備將私網(wǎng)IP地址和源端口號(hào)映射為公網(wǎng)IP地址和擴(kuò)展端口號(hào),并建立映射表項(xiàng)。步驟506,NAT設(shè)備將公網(wǎng)IP地址和擴(kuò)展端口號(hào)寫入TCP/UDP報(bào)文的源IP地址字段和源端口、EPORT字段,將TCP/UDP報(bào)文發(fā)向目的主機(jī)。步驟508,采用公網(wǎng)IP地址的公網(wǎng)主機(jī)識(shí)別TCP/UDP報(bào)文中可選報(bào)文頭EPORT字段,在返回TCP/UDP報(bào)文中原封保留接收到的可選報(bào)文頭的EPORT字段,將源端口字段的內(nèi)容寫入目的端口字段。步驟510,NAT設(shè)備接收來自公網(wǎng)的TCP/UDP報(bào)文,TCP/UDP報(bào)文中包括目的IP地址、目的端口號(hào)。步驟512,NAT設(shè)備判斷TCP/UDP報(bào)文的IPv4報(bào)文頭中是否包括EPORT字段,如果是,則執(zhí)行步驟516,否則執(zhí)行步驟514。步驟514,根據(jù)映射表項(xiàng)獲得與目的IP地址和由目的端口字段表示的端口號(hào)對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址和端口號(hào)。步驟516,根據(jù)映射表項(xiàng)獲得與目的IP地址和由EPORT字段和目的端口字段表示的擴(kuò)展端口號(hào)對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址和端口號(hào)。步驟518,將TCP/UDP報(bào)文發(fā)送給與私網(wǎng)IP地址對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)。上述實(shí)施例中,NAT設(shè)備通過判斷是否具有EPORT字段來分別進(jìn)行傳統(tǒng)映射處理和擴(kuò)展端口號(hào)處理,可以較好地和現(xiàn)有技術(shù)兼容。圖6示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備的一個(gè)實(shí)施例的結(jié)構(gòu)圖。如圖6所示,該設(shè)備包括報(bào)文接收模塊61、地址映射模塊62和報(bào)文發(fā)送模塊63。其中,報(bào)文接收模塊61接收來自內(nèi)網(wǎng)主機(jī)的IP報(bào)文,IP報(bào)文包括IPv4報(bào)文頭和源端口字段,IPv4報(bào)文頭中的源IP地址為內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址,源端口字段為內(nèi)網(wǎng)主機(jī)的端口號(hào);地址映射模塊62將私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào);報(bào)文發(fā)送模塊63將IP報(bào)文的源IP地址轉(zhuǎn)換為公網(wǎng)IP地址,將擴(kuò)展端口號(hào)寫IP報(bào)文的源端口字段和EPORT字段,發(fā)送IP報(bào)文。圖7示出本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備的另一個(gè)實(shí)施例的結(jié)構(gòu)圖。如圖7所示,該設(shè)備包括報(bào)文接收模塊61、地址映射模塊72、報(bào)文發(fā)送模塊63和映射存儲(chǔ)模塊74。映射存儲(chǔ)模塊74存儲(chǔ)根據(jù)私網(wǎng)IP地址和內(nèi)網(wǎng)主機(jī)的端口號(hào)與公網(wǎng)IP地址和擴(kuò)展端口號(hào)的映射關(guān)系建立的映射表項(xiàng)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,地址映射模塊72包括IP地址映射單元721和端口映射單元722。其中,IP地址映射單元721將私網(wǎng)IP地址映射到公網(wǎng)IP地址;端口映射單元722將內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,報(bào)文接收模塊61還用于接收來自公網(wǎng)的IP報(bào)文,IP報(bào)文包括IPv4報(bào)文頭、目的端口字段和EPORT字段;地址映射模塊72還用于根據(jù)NAT映射表項(xiàng)獲得與由EPORT字段和源端口字段表示的擴(kuò)展端口號(hào)對(duì)應(yīng)的私網(wǎng)IP地址和端口號(hào);報(bào)文 發(fā)送模塊63還用于將IP報(bào)文轉(zhuǎn)發(fā)給與私網(wǎng)IP地址和端口號(hào)對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)。圖8示出本發(fā)明的NAT網(wǎng)關(guān)進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換的示意圖。如圖8所示,NAT設(shè)備13在達(dá)到傳統(tǒng)最大端口數(shù)后,主機(jī)B 12初始化新的TCP/UDP連接,NAT設(shè)備13接收并啟用EPORT選項(xiàng)報(bào)文,將超出傳統(tǒng)最大端口數(shù)的部分?jǐn)U展到選項(xiàng)報(bào)文中去。服務(wù)器D 14識(shí)別NAT設(shè)備13傳遞過來數(shù)據(jù)包中的EPORT選項(xiàng);在返回NAT設(shè)備13的數(shù)據(jù)包中原封附帶該EPORT選項(xiàng)報(bào)文;NAT設(shè)備13根據(jù)之前建立的內(nèi)外映射表,將公網(wǎng)地址轉(zhuǎn)換成NAT內(nèi)部的私網(wǎng)地址,并去除EPROT選項(xiàng)報(bào)文頭返回給內(nèi)網(wǎng)主機(jī)B 12。本發(fā)明實(shí)施例采用可選IPv4報(bào)文選項(xiàng)EPORT將傳統(tǒng)的UDP/TCP端口數(shù)量在NAT轉(zhuǎn)換時(shí)從16bit擴(kuò)展到32bit,由此增強(qiáng)了 NAT轉(zhuǎn)換能力、大幅提高了公網(wǎng)IPv4地址利用率。此外,本發(fā)明實(shí)施例不修改現(xiàn)有TCP/UDP報(bào)文頭的結(jié)構(gòu)和相關(guān)定義,不改變IP報(bào)文頭已定義的各個(gè)字段,因此具備較好的協(xié)議兼容性。本發(fā)明實(shí)施例提供了通過擴(kuò)展TCP/UDP端口增強(qiáng)NAT轉(zhuǎn)換能力、提高IPv4地址利用率的方法和設(shè)備。至此,已經(jīng)詳細(xì)描述了根據(jù)本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法和設(shè)備。為了避免遮蔽本發(fā)明的構(gòu)思,沒有描述本領(lǐng)域所公知的一些細(xì)節(jié)。本領(lǐng)域技術(shù)人員根據(jù)上面的描述,完全可以明白如何實(shí)施這里公開的技術(shù)方案。本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對(duì)于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實(shí)施例是為了更好說明本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。
權(quán)利要求
1.一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法,其特征在于,包括接收來自內(nèi)網(wǎng)主機(jī)的IP報(bào)文,所述IP報(bào)文包括IPv4報(bào)文頭和源端口字段,所述IPv4報(bào)文頭中的源IP地址為所述內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址,所述源端口字段為所述內(nèi)網(wǎng)主機(jī)的端口號(hào);將所述私網(wǎng)IP地址和所述內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和由EPORT字段和所述源端口字段表示的擴(kuò)展端口號(hào);將所述IP報(bào)文的源IP地址轉(zhuǎn)換為所述公網(wǎng)IP地址,將所述擴(kuò)展端口號(hào)寫入所述IP報(bào)文的源端口字段和EPORT字段,發(fā)送所述IP報(bào)文。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述私網(wǎng)IP地址和所述內(nèi)網(wǎng)主機(jī)的端口號(hào)與所述公網(wǎng)IP地址和擴(kuò)展端口號(hào)的映射關(guān)系建立映射表項(xiàng)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述私網(wǎng)IP地址和所述內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和由EPORT字段和所述源端口字段表示的擴(kuò)展端口號(hào)包括將所述私網(wǎng)IP地址映射到所述公網(wǎng)IP地址;將所述內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到所述擴(kuò)展端口號(hào),其中由所述源端口字段表示所述擴(kuò)展端口號(hào)的低位比特,由所述EPORT字段表示所述擴(kuò)展端口號(hào)的高位比特。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述私網(wǎng)IP地址和所述內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和新端口號(hào)包括將所述私網(wǎng)IP地址映射到所述公網(wǎng)IP地址;將所述內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到所述擴(kuò)展端口號(hào),所述擴(kuò)展端口號(hào)包括由所述源端口字段表示的端口號(hào)和由所述EPORT字段表示的所述內(nèi)網(wǎng)主機(jī)的唯一標(biāo)識(shí)。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括接收來自公網(wǎng)的IP報(bào)文,所述IP報(bào)文包括IPv4報(bào)文頭、目的端口字段和EPORT字段;根據(jù)所述NAT映射表項(xiàng)獲得與由所述EPORT字段和所述源端口字段表示的擴(kuò)展端口號(hào)對(duì)應(yīng)的私網(wǎng)IP地址和端口號(hào);將所述IP報(bào)文轉(zhuǎn)發(fā)給與所述私網(wǎng)IP地址和端口號(hào)對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)。
6.一種網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備,其特征在于,包括報(bào)文接收模塊,用于接收來自內(nèi)網(wǎng)主機(jī)的IP報(bào)文,所述IP報(bào)文包括IPv4報(bào)文頭和源端口字段,所述IPv4報(bào)文頭中的源IP地址為所述內(nèi)網(wǎng)主機(jī)的私網(wǎng)IP地址,所述源端口字段為所述內(nèi)網(wǎng)主機(jī)的端口號(hào);地址映射模塊,用于將所述私網(wǎng)IP地址和所述內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到公網(wǎng)IP地址和由EPORT字段和所述源端口字段表示的擴(kuò)展端口號(hào);報(bào)文發(fā)送模塊,用于將所述IP報(bào)文的源IP地址轉(zhuǎn)換為所述公網(wǎng)IP地址,將所述擴(kuò)展端口號(hào)寫入所述IP報(bào)文的源端口字段和EPORT字段,發(fā)送所述IP報(bào)文。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,還包括映射存儲(chǔ)模塊,用于存儲(chǔ)根據(jù)所述私網(wǎng)IP地址和所述內(nèi)網(wǎng)主機(jī)的端口號(hào)與所述公網(wǎng)IP地址和擴(kuò)展端口號(hào)的映射關(guān)系建立的映射表項(xiàng)。
8.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述地址映射模塊包括IP地址映射單元,用于將所述私網(wǎng)IP地址映射到所述公網(wǎng)IP地址;端口映射單元,用于將所述內(nèi)網(wǎng)主機(jī)的端口號(hào)映射到由所述EPORT字段和所述源端口字段表示的擴(kuò)展端口號(hào)。
9.根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,由所述EPORT字段和所述源端口字段表示的擴(kuò)展端口號(hào)包括由所述源端口字段表示所述擴(kuò)展端口號(hào)的低位比特和由所述EPORT字段表示所述擴(kuò)展端口號(hào)的高位比特或由所述源端口字段表示的端口號(hào)和由所述EPORT字段表示的所述內(nèi)網(wǎng)主機(jī)的唯一標(biāo)識(shí)。
10.根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,所述報(bào)文接收模塊還用于接收來自公網(wǎng)的IP報(bào)文,所述IP報(bào)文包括IPv4報(bào)文頭、目的端口字段和EPORT字段;所述地址映射模塊還用于根據(jù)所述NAT映射表項(xiàng)獲得與由所述EPORT字段和所述源端口字段表示的擴(kuò)展端口號(hào)對(duì)應(yīng)的私網(wǎng)IP地址和端口號(hào);所述報(bào)文發(fā)送模塊還用于將所述IP報(bào)文轉(zhuǎn)發(fā)給與所述私網(wǎng)IP地址和端口號(hào)對(duì)應(yīng)的內(nèi)網(wǎng)主機(jī)。
全文摘要
本發(fā)明公開一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法和設(shè)備,涉及IP地址技術(shù)領(lǐng)域。該方法采用可選IPv4報(bào)文選項(xiàng)EPORT將傳統(tǒng)的UDP/TCP端口數(shù)量在NAT轉(zhuǎn)換時(shí)從16bit擴(kuò)展到32bit,由此增強(qiáng)了NAT轉(zhuǎn)換能力、大幅提高了公網(wǎng)IPv4地址利用率。此外,該方法并不修改現(xiàn)有TCP/UDP報(bào)文頭的結(jié)構(gòu)和相關(guān)定義,不改變IP報(bào)文頭已定義的各個(gè)字段,因此具備較好的協(xié)議兼容性。
文檔編號(hào)H04L29/12GK103024089SQ20111027912
公開日2013年4月3日 申請(qǐng)日期2011年9月20日 優(yōu)先權(quán)日2011年9月20日
發(fā)明者孫劍平, 黃國瑾 申請(qǐng)人:中國電信股份有限公司