專利名稱:建立IPv6隧道的方法、IPv6隧道通信方法及IPv4邊緣設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,具體涉及一種建立網(wǎng)際協(xié)議版本6(IPv6,Internet Protocol version 6)隧道的方法、IPv6隧道通信方法及網(wǎng)際協(xié)議版本4(IPv4,Internet Protocol version 4)邊緣設(shè)備。
背景技術(shù):
目前,IPv6網(wǎng)絡(luò)的部署已經(jīng)在全球范圍內(nèi)展開,隨著IPv6網(wǎng)絡(luò)的發(fā)展,現(xiàn)有網(wǎng)絡(luò)中出現(xiàn)了許多局部的IPv6網(wǎng)絡(luò),這些IPv6網(wǎng)絡(luò)可能是通過運行IPv4協(xié)議的骨干網(wǎng)絡(luò)相連。為了使這些孤立的“IPv6島”能夠相互聯(lián)通,現(xiàn)有技術(shù)提出的一種解決方案是采用IPv6隧道技術(shù),實現(xiàn)IPv6報文穿越IPv4網(wǎng)絡(luò)的通信。
IPv6隧道技術(shù)是將IPv6報文封裝在IPv4報文中,從而使得IPv6報文能夠穿過IPv4網(wǎng)絡(luò)進行通信。對于采用IPv6隧道技術(shù)的邊緣設(shè)備來說,在隧道的入口處,需要將IPv6報文封裝進IPv4報文,該IPv4報文的源地址和目的地址分別是隧道入口和隧道出口的IPv4地址,從而該IPv4報文能夠在IPv4網(wǎng)絡(luò)中被路由到隧道出口;在隧道的出口處,再將其中的IPv6報文取出,并轉(zhuǎn)發(fā)到目的節(jié)點,實現(xiàn)IPv6報文穿越IPv4網(wǎng)絡(luò)。
現(xiàn)有的IPv6隧道技術(shù)具體有手工配置隧道、6 to 4隧道和自動隧道技術(shù)(ISATAP,Intra-Site Automatic Tunnel Addressing Protocol)等?,F(xiàn)有的IPv6隧道技術(shù)的缺點在于通常只能提供點到點隧道;要求邊緣設(shè)備支持多協(xié)議標簽交換(MPLS,Multi Protocol Label Switch)技術(shù)或IPv4/IPv6雙協(xié)議棧技術(shù)(即同時支持IPv4報文和IPv6報文轉(zhuǎn)發(fā)和相應(yīng)協(xié)議報文處理能力),而為使邊緣設(shè)備能夠支持MPLS技術(shù)或IPv4/IPv6雙協(xié)議棧技術(shù),一般需要對現(xiàn)有的邊緣設(shè)備的硬件進行更換或升級;現(xiàn)有的隧道技術(shù)都是將IPv6報文的報頭(包括報頭)以后的部分封裝進IPv4報文,且只能提供點到點的隧道,并且,其中有的隧道技術(shù)需要為邊緣設(shè)備配置特定格式的IPv6地址,這更增加了配置難度,也限制了其應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種建立IPv6隧道的方法、IPv6隧道通信方法及IPv4邊緣設(shè)備,無需IPv4邊緣設(shè)備支持IPv4/IPv6雙協(xié)議?;騇PLS技術(shù),即可實現(xiàn)IPv6報文穿越IPv4網(wǎng)絡(luò)的通信。
為解決上述技術(shù)問題,本發(fā)明提供方案如下一種建立IPv6隧道的方法,用于在IPv4邊緣設(shè)備間建立IPv6隧道,所述IPv4邊緣設(shè)備設(shè)置在IPv4網(wǎng)絡(luò)的邊緣,分別與IPv6網(wǎng)絡(luò)和IPv4網(wǎng)絡(luò)連接,并且IPv4邊緣設(shè)備之間通過IPv4網(wǎng)絡(luò)連接,該方法在本地IPv4邊緣設(shè)備上配置該IPv6隧道的至少一個遠端的IP地址信息。
本發(fā)明所述建立IPv6隧道的方法中,所述IPv6隧道為點到多點的IPv6隧道;所述配置該IPv6隧道的至少一個遠端的IP地址信息是在該IPv6隧道的各端點的IPv4邊緣設(shè)備上配置該端點的多個遠端的IP地址信息。
一種IPv6隧道通信方法,應(yīng)用于根據(jù)權(quán)利要求1所建立的IPv6隧道中,包括以下步驟A,IPv4邊緣設(shè)備接收到二層IPv6報文后,將所述二層IPv6報文封裝進IPv4報文中,并將封裝后的IPv4報文發(fā)送至其隧道遠端,所述二層IPv6報文為數(shù)據(jù)鏈路層上的IPv6報文,所述封裝后的IPv4報文中攜帶有用于指示其自身封裝有二層IPv6報文的指示信息;B,隧道遠端的IPv4邊緣設(shè)備對其接收到的包括有所述指示信息的IPv4報文進行解封裝,獲取所述二層IPv6報文后在本地轉(zhuǎn)發(fā)。
本發(fā)明所述IPv6隧道通信方法中,所述步驟A中,所述將封裝后的IPv4報文發(fā)送至其隧道遠端是,設(shè)置所述封裝后的IPv4報文的目的地址為其隧道遠端的IP地址,根據(jù)本地路由表將所述封裝后的IPv4報文轉(zhuǎn)發(fā)。
本發(fā)明所述IPv6隧道通信方法中,所述IPv6隧道為點到多點的IPv6隧道;所述步驟A中,所述將封裝后的IPv4報文發(fā)送至其隧道遠端是,將所述封裝后的IPv4報文發(fā)送到其點到多點的IPv6隧道的所有遠端。
本發(fā)明所述IPv6隧道通信方法中,所述步驟A中,所述IPv4邊緣設(shè)備接收到二層IPv6報文是,根據(jù)接收到二層報文的幀頭的類型字段,判斷該二層報文是否為二層IPv6報文。
本發(fā)明所述IPv6隧道通信方法中,所述步驟A中,所述將二層IPv6報文封裝進IPv4報文是,將所述二層IPv6報文封裝在IPv4報文的凈載荷區(qū)域。
本發(fā)明所述IPv6隧道通信方法中,所述步驟A中,所述指示信息是所述封裝后的IPv4報文的報頭中協(xié)議字段的一個預(yù)定值。
本發(fā)明所述IPv6隧道通信方法中,所述步驟B中,所述在本地轉(zhuǎn)發(fā)所述二層IPv6報文是在本地對所述二層IPv6報文進行泛洪。
本發(fā)明所述IPv6隧道通信方法中,所述步驟A中,在所述二層IPv6報文超過預(yù)定長度時,IPv4邊緣設(shè)備進一步對所述二層IPv6報文進行分片,將得到的所述二層IPv6報文的片段分別封裝進IPv4報文中并發(fā)送至其隧道遠端;所述步驟B中,隧道遠端的IPv4邊緣設(shè)備進一步對從所述封裝后的IPv4報文中獲取的二層IPv6報文的片段進行重組,得到所述二層IPv6報文。
本發(fā)明所述IPv6隧道通信方法中,IPv4邊緣設(shè)備從其隧道遠端學(xué)習MAC地址以及該MAC對應(yīng)的VLAN信息,并維護遠端MAC表項,所述遠端MAC表項中包括隧道信息、從該隧道遠端學(xué)到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系;所述步驟A中,IPv4邊緣設(shè)備接收到二層IPv6報文后,進一步根據(jù)所述二層IPv6報文的目的MAC地址查找其所維護的遠端MAC表項,如果其中存在所述目的MAC地址,則將所述封裝后的IPv4報文發(fā)送至所述目的MAC地址對應(yīng)的隧道遠端;否則,將所述封裝后的IPv4報文發(fā)送至所述IPv4邊緣設(shè)備的所有的隧道遠端。
本發(fā)明所述IPv6隧道通信方法中,IPv4邊緣設(shè)備從本地端口學(xué)習MAC地址及該MAC地址對應(yīng)的VLAN信息,并維護本地MAC表項,所述本地MAC表項中包括本地端口、從該本地端口學(xué)習到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系;
所述步驟B中,所述在本地轉(zhuǎn)發(fā)所述二層IPv6報文包括隧道遠端的IPv4邊緣設(shè)備根據(jù)所述二層IPv6報文的目的MAC地址查找其所維護的本地MAC表項,如果其中存在所述目的MAC地址,則將所述二層IPv6報文通過所述目的MAC地址對應(yīng)的本地端口進行轉(zhuǎn)發(fā);否則,根據(jù)所述二層IPv6報文的VLAN信息,在該VLAN對應(yīng)的所有本地端口上對所述二層IPv6報文進行泛洪。
一種IPv4邊緣設(shè)備,包括隧道建立單元,用于配置并保存該IPv4邊緣設(shè)備所屬IPv6隧道的至少一個遠端的IP地址信息。
本發(fā)明所述的設(shè)備,其中,所述隧道建立單元進一步用于配置并保存該IPv4邊緣設(shè)備所屬點到多點的IPv6隧道的多個遠端的IP地址信息。
本發(fā)明所述的設(shè)備,其中,其特征在于還包括隧道建立單元IPv6報文接收單元,用于接收二層IPv6報文,將接收到的二層IPv6報文封裝進IPv4報文,并在封裝后的IPv4報文中設(shè)置用于指示該IPv4報文中封裝有二層IPv6報文的指示信息,其中,所述二層IPv6報文為數(shù)據(jù)鏈路層上的IPv6報文;IPv4報文發(fā)送單元,用于根據(jù)所述隧道建立單元配置的IPv6隧道,將所述IPv6報文接收單元得到的所述封裝后的IPv4報文發(fā)送至隧道遠端。
本發(fā)明所述的設(shè)備,其中,所述IPv6報文接收單元,進一步用于將所述二層IPv6報文封裝在IPv4報文的凈載荷區(qū)域,并設(shè)置所述封裝后的IPv4報文的報頭中協(xié)議字段的一個預(yù)定值為所述指示信息。
本發(fā)明所述的設(shè)備,其中,隧道建立單元所述IPv4報文發(fā)送單元,進一步用于根據(jù)所述隧道建立單元配置的隧道遠端的IP地址,設(shè)置所述封裝后的IPv4報文的目的地址,并根據(jù)本地路由表將所述封裝后的IPv4報文轉(zhuǎn)發(fā)。
本發(fā)明所述的設(shè)備,其中,所述隧道建立單元進一步配置并保存該IPv4邊緣設(shè)備所屬點到多點的IPv6隧道的多個遠端的IP地址信息;所述IPv4報文發(fā)送單元,進一步用于將所述封裝后的IPv4報文發(fā)送到點到多點的IPv6隧道的所有遠端。
本發(fā)明所述的設(shè)備,其中還包括IPv4報文接收單元,用于接收來自隧道遠端的IPv4報文,并根據(jù)接收到的IPv4報文中是否攜帶有所述指示信息,判斷出所述封裝后的IPv4報文并進行解封裝,獲取其中的二層IPv6報文;IPv6報文轉(zhuǎn)發(fā)單元,用于在本地轉(zhuǎn)發(fā)所述IPv4報文接收單元獲取的所述二層IPv6報文。
本發(fā)明所述的設(shè)備,其中還包括遠端MAC表項維護單元,用于從隧道遠端學(xué)習MAC地址以及該MAC對應(yīng)的VLAN信息,并記錄隧道信息、從該隧道遠端學(xué)到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系;所述IPv4報文發(fā)送單元,進一步根據(jù)所述二層IPv6報文的目的MAC地址,查找所述遠端MAC表項維護單元,如果其中存在所述目的MAC地址,則將所述封裝后的IPv4報文發(fā)送至所述目的MAC地址對應(yīng)的隧道遠端;否則,將所述封裝后的IPv4報文發(fā)送至所述IPv4邊緣設(shè)備的所有的隧道遠端。
本發(fā)明所述的設(shè)備,其中還包括本地MAC表項維護單元,用于從本地端口學(xué)習MAC地址及該MAC地址對應(yīng)的VLAN信息,并記錄本地端口、從該本地端口學(xué)習到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系;所述IPv6報文轉(zhuǎn)發(fā)單元,進一步用于根據(jù)所述二層IPv6報文的目的MAC地址查找所述本地MAC表項維護單元,如果其中存在所述目的MAC地址,則將所述二層IPv6報文通過所述目的MAC地址對應(yīng)的本地端口進行轉(zhuǎn)發(fā);否則,根據(jù)所述二層IPv6報文的VLAN信息,在該VLAN對應(yīng)的所有本地端口上對所述二層IPv6報文進行泛洪。
從以上所述可以看出,本發(fā)明提供的建立IPv6隧道的方法、IPv6隧道通信方法及IPv4邊緣設(shè)備,將包括幀頭的二層IPv6報文封裝進IPv4報文后,通過IPv4網(wǎng)絡(luò)傳輸?shù)剿淼肋h端后,再提取其中的二層IPv6報文在本地轉(zhuǎn)發(fā),從而無需對網(wǎng)絡(luò)邊緣設(shè)備進行硬件升級,也無需為邊緣設(shè)備配置特定格式的IP地址,即可實現(xiàn)IPv6報文穿越IPv4網(wǎng)絡(luò)的通信。本發(fā)明還可建立點到多點的IPv6隧道,實現(xiàn)點到多點的通信。并且,本發(fā)明還提供了對超長IPv6報文的分片處理方法。
圖1為一種應(yīng)用本發(fā)明實施例所述IPv6隧道通信方法的網(wǎng)絡(luò)的結(jié)構(gòu)圖;圖2為本發(fā)明實施例所述IPv6隧道通信方法的流程圖;圖3為本發(fā)明實施例所述IPv4邊緣設(shè)備的結(jié)構(gòu)示意圖。
具體實施例方式
本發(fā)明提供了一種建立IPv6隧道的方法、IPv6隧道通信方法及IPv4邊緣設(shè)備,通過在IPv4網(wǎng)絡(luò)中透傳二層IPv6報文,從而無需IPv4邊緣設(shè)備支持IPv4/IPv6雙協(xié)議棧技術(shù)或MPLS技術(shù),即可實現(xiàn)IPv6終端通過IPv4網(wǎng)絡(luò)的通信。以下結(jié)合附圖通過具體實施例對本發(fā)明做詳細的說明。
圖1所示為一種應(yīng)用本發(fā)明實施例所述IPv6隧道通信方法的網(wǎng)絡(luò)的結(jié)構(gòu)圖。圖1中包括3個局部的IPv6網(wǎng)絡(luò)1~3和一個IPv4網(wǎng)絡(luò),在IPv6網(wǎng)絡(luò)與IPv4網(wǎng)絡(luò)的邊緣處有3個運行IPv4協(xié)議的IPv4邊緣設(shè)備A、B和C。其中,IPv6設(shè)備a1和a2屬IPv6網(wǎng)絡(luò)1,并分別與IPv4邊緣設(shè)備A連接;IPv6設(shè)備b1和b2屬于IPv6網(wǎng)絡(luò)2,并分別與IPv4邊緣設(shè)備B連接;IPv6設(shè)備c1和c2屬于IPv6網(wǎng)絡(luò)3,并分別與IPv4邊緣設(shè)備C連接。這里,為了方便說明,假設(shè)a1、a2、b1、b2、c1和c2的媒體訪問控制(MAC,Media Access Control)地址分別為0000-0000-00A1、0000-0000-00A2、0000-0000-00B1、0000-0000-00B2、0000-0000-00C1和0000-0000-00C2;A、B和C的IPv4地址分別為1.1.1.1、1.1.1.2和1.1.1.3。以下首先對建立IPv6隧道的方法進行說明本發(fā)明實施所述建立IPv6隧道的方法,通過在本地IPv4邊緣設(shè)備上配置該IPv6隧道的至少一個遠端的IP地址信息,在IPv4邊緣設(shè)備間建立IPv6隧道。與現(xiàn)有技術(shù)不同的是,本實施例中隧道兩端的IPv4邊緣設(shè)備無需支持MPLS轉(zhuǎn)發(fā)或IPv4/IPv6雙協(xié)議棧技術(shù)。這里,在運行IPv4協(xié)議的IPv4邊緣設(shè)備間建立隧道,隧道的兩端,即本地和遠端,都是IPv4邊緣設(shè)備。建立隧道時,需要在IPv4邊緣設(shè)備上配置其隧道遠端的IP地址信息。以圖1為例,在A、B之間建立隧道時,需要分別在A上配置其遠端B的IP地址1.1.1.2,和在B上配置其遠端A的IP地址1.1.1.1。
這里,還可以配置點到多點的IPv6隧道,通過點到多點隧道,報文可以同時到達多個遠端分別在需要建立點到多點隧道的各端點配置該端點所有遠端的IP地址信息,用以在該點到多點隧道的各端點之間建立全連接關(guān)系。以圖1為例,假設(shè)在A、B和C之間建立點到多點隧道,可以通過在A上配置該隧道遠端B和C的IP地址,在B上配置該隧道遠端A和C的IP地址,在C上配置該隧道遠端A和B的IP地址,從而形成A到(B和C)、B到(A和C),和C到(A和B)的點到多點的全連接關(guān)系。
以下結(jié)合圖1對本發(fā)明實施例所述的IPv6隧道通信方法進行說明,如圖2所示,本發(fā)明實施例所述IPv6隧道通信方法包括3個步驟步驟21,在IPv4邊緣設(shè)備間建立IPv6隧道,所述建立IPv6隧道包括在IPv4邊緣設(shè)備配置其隧道遠端的IP地址信息。
步驟22,IPv4邊緣設(shè)備接收到二層IPv6報文后,將所述二層IPv6報文封裝進IPv4報文中,并將封裝后的IPv4報文發(fā)送至其隧道遠端,所述封裝后的IPv4報文中攜帶有用于指示其自身封裝有二層IPv6報文的指示信息。
這里,所述二層IPv6報文是數(shù)據(jù)鏈路層上的IPv6報文,包括以太網(wǎng)幀頭和幀尾,其中幀頭中又包括目的MAC地址、源MAC地址,還可能包括虛擬局域網(wǎng)(VLAN,Virtual Local Area Network)信息(如VLAN標識ID)等。
這里,IPv4邊緣設(shè)備對于接收到的二層報文(以太網(wǎng)幀),可以根據(jù)該二層報文的幀頭的類型(Type)字段是否為0x86DD,判斷該二層報文是否為二層IPv6報文。IPv4邊緣設(shè)備將二層IPv6報文封裝進IPv4報文的凈載荷(Payload)區(qū)域,并設(shè)置所述封裝后的IPv4報文的報頭中協(xié)議(Protocol)字段為一個預(yù)定值,用于作為指示該IPv4報文中封裝有二層IPv6報文的指示信息,同時設(shè)置所述封裝后的IPv4報文的目的IP地址為隧道遠端的IP地址,通過本地路由表將所述封裝后的IPv4報文轉(zhuǎn)發(fā)。
這里,當所述IPv4邊緣設(shè)備被配置了點到多點的IPv6隧道時,所述封裝后的IPv4報文可以是被發(fā)送到該隧道的所有遠端。仍以圖1為例,如果A、B和C之間配置了點到多點的IPv6隧道,當A接收到一個2層IPv6報文時,將該報文封裝進IPv4報文后,分別發(fā)送至遠端B和C。
步驟23,隧道遠端的IPv4邊緣設(shè)備根據(jù)接收到的IPv4報文中是否攜帶有所述指示信息,判斷出所述封裝后的IPv4報文,并對所述封裝后的IPv4報文進行解封裝,獲取所述二層IPv6報文后在本地轉(zhuǎn)發(fā)。
這里,所述封裝后的IPv4報文在IPv4網(wǎng)絡(luò)中被路由到隧道遠端。隧道遠端的IPv4邊緣設(shè)備接收到的所述封裝后的IPv4報文后,只在本地進行轉(zhuǎn)發(fā),不再通過隧道發(fā)送至其它遠端設(shè)備。
隧道遠端的IPv4邊緣設(shè)備對所述封裝后的IPv4報文進行解封裝,獲取其中的二層IPv6報文后,可以進一步在本地所有端口上對所述二層IPv6報文進行泛洪。繼續(xù)以圖1為例,如果A和B之間配置了隧道,當A接收到一個2層IPv6報文時,便可以按照步驟22將該報文封裝進IPv4報文中,發(fā)送至B;B在接收到所述封裝后的IPV4報文后,解封裝獲取其中的2層IPv6報文,并在本地所有端口上進行泛洪。
需要指出的是,如果IPv4邊緣設(shè)備接收到一個超過預(yù)定長度的二層IPv6報文,在步驟22中則無法將該二層IPv6報文封裝進IPv4報文中。此時,可以對該二層IPv6報文進行分片,然后將各片段分別封裝進IPv4報文,并通過隧道發(fā)送到隧道遠端;在遠端IPv4邊緣設(shè)備上接收到這些IPv4報文后,獲取其中的二層IPv6報文的片段并進行重組,從而獲取完整的二層IPv6報文。
通過以上步驟,本實施例通過在IPv4網(wǎng)絡(luò)中透傳包括幀頭的二層IPv6報文,可以實現(xiàn)“IPv6島”之間的通信。當所述二層IPv6報文為二層廣播報文或二層組播報文時,本發(fā)明實施例所述IPv6隧道通信方法可以按照上述步驟進行;當所述二層IPv6報文為二層單播報文時,本發(fā)明實施例所述IPv6隧道通信方法中還可以進一步通過在隧道端點的IPv4邊緣設(shè)備上維護本地MAC表項和遠端MAC表項,根據(jù)所述二層IPv6報文的目的MAC地址有選擇的進行轉(zhuǎn)發(fā)封裝后的IPv4報文,以更加有效的通過IPv4網(wǎng)絡(luò)發(fā)送IPv6報文,以下對此進行說明。
首先,隧道端點上的IPv4邊緣設(shè)備學(xué)習隧道遠端的MAC地址和該MAC地址對應(yīng)的VLAN等信息,維護遠端MAC表項,所述遠端MAC表項如表1所示,用于記錄隧道信息(如隧道遠端的IP地址)、從該隧道遠端學(xué)到的MAC地址、該MAC地址對應(yīng)的VLAN信息(如VLAN ID)之間的對應(yīng)關(guān)系。同時,IPv4邊緣設(shè)備還通過從本地端口學(xué)習MAC地址及該MAC地址對應(yīng)的VLAN信息,維護本地MAC表項,所述本地MAC表項如表2所示,用于記錄本地端口、從該本地端口學(xué)習到的MAC地址、該MAC地址對應(yīng)的VLAN信息(如VLAN ID)之間的對應(yīng)關(guān)系。這里,還可以在所述遠端MAC表項和本地MAC表項中為學(xué)習到的MAC地址設(shè)置MAC地址老化時間Age,如果在老化時間內(nèi)未接收到源地址為該MAC地址的幀,則從所述表項中刪除該MAC地址的對應(yīng)信息。
表1
表2在步驟22中,IPv4邊緣設(shè)備接收到二層IPv6報文后,進一步學(xué)習所述二層IPv6報文的源MAC地址、對應(yīng)端口(接收到所述二層IPv6報文的本地端口)和該源MAC地址對應(yīng)的VLAN信息,并記錄在本地MAC表項中,同時查找其所維護的遠端MAC表項,判斷其中是否存在所述二層IPv6報文的目的MAC地址,如果存在,則將所述封裝后的IPv4報文發(fā)送至所述目的MAC地址對應(yīng)的隧道遠端;否則,將所述封裝后的IPv4報文發(fā)送至該IPv4邊緣設(shè)備的所有的隧道遠端。
這里,所述IPv4邊緣設(shè)備,還可以進一步查找并判斷其本地MAC表項中是否存在所述二層IPv6報文的目的MAC地址,如果存在,則表明所述二層IPv6報文不需通過隧道發(fā)送,只需在學(xué)習到該目的MAC地址的本地端口上轉(zhuǎn)發(fā);如果不存在,則根據(jù)所述二層IPv6報文的VLAN信息,在該VLAN對應(yīng)的所有本地端口上對所述二層IPv6報文進行泛洪。
在步驟23中,隧道遠端的IPv4邊緣設(shè)備通過解封裝所述封裝后的IPv4報文,獲取所述二層IPv6報文后,進一步學(xué)習所述二層IPv6報文的源MAC地址、對應(yīng)隧道信息(接收到所述封裝后的IPv4報文的隧道的遠端的IP地址)和VLAN信息,并記錄在遠端MAC表項中,同時,查找其所維護的本地MAC表項,判斷其中是否存在所述二層IPv6報文的目的MAC地址及對應(yīng)的端口,如果存在,則將所述二層IPv6報文通過所述目的MAC地址對應(yīng)的本地端口進行轉(zhuǎn)發(fā);否則,根據(jù)所述二層IPv6報文的VLAN信息,在該VLAN對應(yīng)的所有本地端口上對所述二層IPv6報文進行泛洪。
下面仍以圖1中的網(wǎng)絡(luò)舉例,對上述IPv6報文的轉(zhuǎn)發(fā)作更為具體的說明。
假設(shè)a1、a2、b1、b2、c1和c2都屬于VLAN ID為10的VLAN;在A、B和C之間配置了點到多點隧道,建立全連接關(guān)系;并且,A、B和C上都各自維護著本地MAC表項和遠端MAC表項。
第一個二層IPv6報文從a1進入A(通過A的端口G1/1/1),該二層IPv6報文的目的MAC地址是0000-0000-00B1(b1的MAC地址),源MAC地址是0000-0000-00A1(a1的MAC地址);A學(xué)習該二層IPv6報文的源MAC地址(0000-0000-00A1)、對應(yīng)端口(G1/1/1)和VLAN信息(VLAN ID10),并記錄在本地MAC表項中,如表3所示;A根據(jù)該二層IPv6報文的目的MAC地址查找其本地MAC表項和遠端MAC表項,由于此時本地MAC表項和遠端MAC表項中尚無相應(yīng)記錄,因此沒有找到對應(yīng)的MAC轉(zhuǎn)發(fā)表項,于是,A在VLANID為10的所有本地端口上對該二層IPv6報文進行泛洪,這里,由于a1和a2同一個VLAN,因此A將所述二層IPv6報文通過與a2連接的端口轉(zhuǎn)發(fā)給a2(由于所述二層IPv6報文的目的MAC地址并非a2的MAC地址,因此a2不對所述二層IPv6報文進行響應(yīng));同時,A還將所述二層IPv6報文封裝到IPv4報文的凈載荷區(qū)域中,并將封裝后的IPv4報文分別發(fā)送到其隧道遠端的B和C(所述封裝后的IPv4報文的目的IP地址為B或C的IP地址,并在所述封裝后的IPv4報文的報頭中協(xié)議字段攜帶所述指示信息)。
表3所述封裝后的IPv4報文在IPv4網(wǎng)絡(luò)中被路由到B和C。B接收到所述封裝后的IPv4報文后,根據(jù)其報頭攜帶的指示信息判斷出其攜帶有二層IPv6報文,因此解封裝出所述二層IPv6報文,并將所述二層IPv6報文中的源MAC地址、對應(yīng)隧道信息(隧道遠端A的IP地址1.1.1.1)和VLAN信息學(xué)習到B的遠端MAC表項中,如表4所示;同時,B根據(jù)所述二層IPv6報文的目的MAC地址查找其本地MAC表項,如果此時B的本地MAC表項尚無相應(yīng)記錄,則根據(jù)所述二層IPv6報文的VLAN信息,在VLAN ID為10的所有本地端口上對該二層IPv6報文進行泛洪,從而b1、b2都會收到所述二層IPv6報文。在C上對所述封裝后的IPv4報文的處理也與此類似,c1、c2也會收到所述二層IPv6報文,不再贅述。
表4通過以上過程,實現(xiàn)了在IPv4網(wǎng)絡(luò)中第一次透傳二層IPv6報文。在上述過程之后,如果b1需要對所述二層IPv6報文進行響應(yīng),b1發(fā)出二層IPv6響應(yīng)報文,所述二層IPv6響應(yīng)報文目的MAC是所述二層IPv6報文的源MAC地址(即a1的MAC地址)。B在接收到b1發(fā)出的二層IPv6響應(yīng)報文后,查找本地MAC表項和遠端MAC表項,發(fā)現(xiàn)在遠端MAC表項(表4)中有對應(yīng)的MAC地址及該MAC地址對應(yīng)的隧道遠端的IP地址(A的IP地址1.1.1.1),于是B封裝所述二層IPv6響應(yīng)報文到IPv4響應(yīng)報文中,所述IPv4響應(yīng)報文的目的IP地址為A的IP地址,然后將所述IPv4響應(yīng)報文單播發(fā)送給A;A接收到所述IPv4響應(yīng)后同樣通過解封裝,獲取其中的二層IPv6響應(yīng)報文,并根據(jù)該二層IPv6響應(yīng)報文的目的MAC地址查找本地MAC表項(表3),此次可以找到對應(yīng)MAC地址(a1的MAC地址),于是,A通過該MAC地址對應(yīng)的端口在本地轉(zhuǎn)發(fā)所述二層IPv6響應(yīng)報文到a1,從而再次實現(xiàn)了IPv6報文穿越IPv4網(wǎng)絡(luò)。
基于上述的IPv6隧道通信方法,本實施例還提供了一種IPv4邊緣設(shè)備,如圖3所示,該IPv4邊緣設(shè)備30包括隧道建立單元31、IPv6報文接收單元32、IPv4報文發(fā)送單元33、IPv4報文接收單元34和IPv6報文轉(zhuǎn)發(fā)單元35,其中,隧道建立單元31,用于為該IPv4邊緣設(shè)備30配置IPv6隧道。這里,配置IPv6隧道包括配置IPv6隧道遠端的IP地址信息。這里,所述隧道建立單元31還可以用于配置點到多點的IPv6隧道,并保存所述點到多點隧道所有遠端的IP地址信息。
其中,IPv6報文接收單元32,用于接收二層IPv6報文,將接收到的二層IPv6報文封裝進IPv4報文,并在封裝后的IPv4報文中設(shè)置用于指示該IPv4報文中封裝有二層IPv6報文的指示信息,其中,所述二層IPv6報文為數(shù)據(jù)鏈路層上的IPv6報文。這里,所述IPv6報文接收單元32,還可以進一步用于將所述二層IPv6報文封裝在IPv4報文的凈載荷區(qū)域,并設(shè)置所述封裝后的IPv4報文的報頭中協(xié)議字段的一個預(yù)定值為所述指示信息。
其中,IPv4報文發(fā)送單元33,用于根據(jù)所述隧道建立單元31配置的IPv6隧道,將所述IPv6報文接收單元得到的所述封裝后的IPv4報文發(fā)送至隧道遠端。這里,所述IPv4報文發(fā)送單元33,進一步用于根據(jù)所述隧道建立單元配置的隧道遠端的IP地址,設(shè)置所述封裝后的IPv4報文的目的地址,并根據(jù)本地路由表將所述封裝后的IPv4報文轉(zhuǎn)發(fā)。在所述隧道建立單元31配置了點到多點IPv6隧道時,所述IPv4報文發(fā)送單元33,還進一步用于將所述封裝后的IPv4報文發(fā)送到點到多點的IPv6隧道的所有遠端。
其中,IPv4報文接收單元34,用于接收來自隧道遠端的IPv4報文,并根據(jù)接收到的IPv4報文中是否攜帶有所述指示信息,判斷出所述封裝后的IPv4報文并進行解封裝,獲取其中的二層IPv6報文。
其中,IPv6報文轉(zhuǎn)發(fā)單元35,用于在本地轉(zhuǎn)發(fā)所述IPv4報文接收單元34獲取的所述二層IPv6報文。
這里,所述IPv4邊緣設(shè)備30還可以進一步包括遠端MAC表項維護單元36和本地MAC表項維護單元37。
其中,所述遠端MAC表項維護單元36,用于從隧道遠端學(xué)習MAC地址以及該MAC對應(yīng)的VLAN信息,并記錄隧道信息、從該隧道遠端學(xué)到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系。所述IPv4報文發(fā)送單元33,進一步根據(jù)所述二層IPv6報文的目的MAC地址,查找所述遠端MAC表項維護單元36,如果其中存在所述目的MAC地址,則將所述封裝后的IPv4報文發(fā)送至所述目的MAC地址對應(yīng)的隧道遠端;否則,將所述封裝后的IPv4報文發(fā)送至所述IPv4邊緣設(shè)備的所有的隧道遠端。
其中,本地MAC表項維護單元37,用于從本地端口學(xué)習MAC地址及該MAC地址對應(yīng)的VLAN信息,并記錄本地端口、從該本地端口學(xué)習到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系。所述IPv6報文轉(zhuǎn)發(fā)單元35,進一步用于根據(jù)所述二層IPv6報文的目的MAC地址查找所述本地MAC表項維護單元37,如果其中存在所述目的MAC地址,則將所述二層IPv6報文通過所述目的MAC地址對應(yīng)的本地端口進行轉(zhuǎn)發(fā);否則,根據(jù)所述二層IPv6報文的VLAN信息,在該VLAN對應(yīng)的所有本地端口上對所述二層IPv6報文進行泛洪。
綜上所述,按照本發(fā)明實施例所述的IPv6隧道通信方法及IPv6邊緣設(shè)備中,可以透傳包括幀頭的二層IPv6報文,無需IPv4邊緣設(shè)備支持IPv4/IPv6雙協(xié)議棧或MPLS技術(shù),即可實現(xiàn)穿越IPv4網(wǎng)絡(luò)的通信。并且,本發(fā)明還可以通過在IPv4邊緣設(shè)備間建立點到多點的IPv6隧道,實現(xiàn)點到多點的通信。
本發(fā)明所述的建立IPv6隧道的方法、IPv6隧道通信方法及IPv6邊緣設(shè)備,并不僅僅限于說明書和實施方式中所列運用,它完全可以被適用于各種適合本發(fā)明之領(lǐng)域,對于熟悉本領(lǐng)域的人員而言可容易地實現(xiàn)另外的優(yōu)點和進行修改,因此在不背離權(quán)利要求及等同范圍所限定的一般概念的精神和范圍的情況下,本發(fā)明并不限于特定的細節(jié)、代表性的設(shè)備和這里示出與描述的圖示示例。
權(quán)利要求
1.一種建立IPv6隧道的方法,用于在IPv4邊緣設(shè)備間建立IPv6隧道,所述IPv4邊緣設(shè)備設(shè)置在IPv4網(wǎng)絡(luò)的邊緣,分別與IPv6網(wǎng)絡(luò)和IPv4網(wǎng)絡(luò)連接,并且IPv4邊緣設(shè)備之間通過IPv4網(wǎng)絡(luò)連接,其特征在于,在本地IPv4邊緣設(shè)備上配置該IPv6隧道的至少一個遠端的IP地址信息。
2.如權(quán)利要求1所述的方法,其特征在于,所述IPv6隧道為點到多點的IPv6隧道;所述配置該IPv6隧道的至少一個遠端的IP地址信息是在該IPv6隧道的各端點的IPv4邊緣設(shè)備上配置該端點的多個遠端的IP地址信息。
3.一種IPv6隧道通信方法,應(yīng)用于根據(jù)權(quán)利要求1所建立的IPv6隧道中,其特征在于,包括以下步驟A,IPv4邊緣設(shè)備接收到二層IPv6報文后,將所述二層IPv6報文封裝進IPv4報文中,并將封裝后的IPv4報文發(fā)送至其隧道遠端,所述二層IPv6報文為數(shù)據(jù)鏈路層上的IPv6報文,所述封裝后的IPv4報文中攜帶有用于指示其自身封裝有二層IPv6報文的指示信息;B,隧道遠端的IPv4邊緣設(shè)備對其接收到的包括有所述指示信息的IPv4報文進行解封裝,獲取所述二層IPv6報文后在本地轉(zhuǎn)發(fā)。
4.如權(quán)利要求3所述的方法,其特征在于,所述步驟A中,所述將封裝后的IPv4報文發(fā)送至其隧道遠端是,設(shè)置所述封裝后的IPv4報文的目的地址為其隧道遠端的IP地址,根據(jù)本地路由表將所述封裝后的IPv4報文轉(zhuǎn)發(fā)。
5.如權(quán)利要求4所述的方法,其特征在于,所述IPv6隧道為點到多點的IPv6隧道;所述步驟A中,所述將封裝后的IPv4報文發(fā)送至其隧道遠端是,將所述封裝后的IPv4報文發(fā)送到其點到多點的IPv6隧道的所有遠端。
6.如權(quán)利要求3所述的方法,其特征在于,所述步驟A中,所述IPv4邊緣設(shè)備接收到二層IPv6報文是,根據(jù)接收到二層報文的幀頭的類型字段,判斷該二層報文是否為二層IPv6報文。
7.如權(quán)利要求3所述的方法,其特征在于,所述步驟A中,所述將二層IPv6報文封裝進IPv4報文是,將所述二層IPv6報文封裝在IPv4報文的凈載荷區(qū)域。
8.如權(quán)利要求3所述的方法,其特征在于,所述步驟A中,所述指示信息是所述封裝后的IPv4報文的報頭中協(xié)議字段的一個預(yù)定值。
9.如權(quán)利要求3所述的方法,其特征在于,所述步驟B中,所述在本地轉(zhuǎn)發(fā)所述二層IPv6報文是在本地對所述二層IPv6報文進行泛洪。
10.如權(quán)利要求3所述的方法,其特征在于,所述步驟A中,在所述二層IPv6報文超過預(yù)定長度時,IPv4邊緣設(shè)備進一步對所述二層IPv6報文進行分片,將得到的所述二層IPv6報文的片段分別封裝進IPv4報文中并發(fā)送至其隧道遠端;所述步驟B中,隧道遠端的IPv4邊緣設(shè)備進一步對從所述封裝后的IPv4報文中獲取的二層IPv6報文的片段進行重組,得到所述二層IPv6報文。
11.如權(quán)利要求3所述的方法,其特征在于,IPv4邊緣設(shè)備從其隧道遠端學(xué)習MAC地址以及該MAC對應(yīng)的VLAN信息,并維護遠端MAC表項,所述遠端MAC表項中包括隧道信息、從該隧道遠端學(xué)到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系;所述步驟A中,IPv4邊緣設(shè)備接收到二層IPv6報文后,進一步根據(jù)所述二層IPv6報文的目的MAC地址查找其所維護的遠端MAC表項,如果其中存在所述目的MAC地址,則將所述封裝后的IPv4報文發(fā)送至所述目的MAC地址對應(yīng)的隧道遠端;否則,將所述封裝后的IPv4報文發(fā)送至所述IPv4邊緣設(shè)備的所有的隧道遠端。
12.如權(quán)利要求3所述的方法,其特征在于,IPv4邊緣設(shè)備從本地端口學(xué)習MAC地址及該MAC地址對應(yīng)的VLAN信息,并維護本地MAC表項,所述本地MAC表項中包括本地端口、從該本地端口學(xué)習到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系;所述步驟B中,所述在本地轉(zhuǎn)發(fā)所述二層IPv6報文包括隧道遠端的IPv4邊緣設(shè)備根據(jù)所述二層IPv6報文的目的MAC地址查找其所維護的本地MAC表項,如果其中存在所述目的MAC地址,則將所述二層IPv6報文通過所述目的MAC地址對應(yīng)的本地端口進行轉(zhuǎn)發(fā);否則,根據(jù)所述二層IPv6報文的VLAN信息,在該VLAN對應(yīng)的所有本地端口上對所述二層IPv6報文進行泛洪。
13.一種IPv4邊緣設(shè)備,其特征在于,包括隧道建立單元,用于配置并保存該IPv4邊緣設(shè)備所屬IPv6隧道的至少一個遠端的IP地址信息。
14.如權(quán)利要求13所述的設(shè)備,其特征在于,所述隧道建立單元進一步用于配置并保存該IPv4邊緣設(shè)備所屬點到多點的IPv6隧道的多個遠端的IP地址信息。
15.如權(quán)利要求13所述的設(shè)備,其特征在于,其特征在于還包括隧道建立單元IPv6報文接收單元,用于接收二層IPv6報文,將接收到的二層IPv6報文封裝進IPv4報文,并在封裝后的IPv4報文中設(shè)置用于指示該IPv4報文中封裝有二層IPv6報文的指示信息,其中,所述二層IPv6報文為數(shù)據(jù)鏈路層上的IPv6報文;IPv4報文發(fā)送單元,用于根據(jù)所述隧道建立單元配置的IPv6隧道,將所述IPv6報文接收單元得到的所述封裝后的IPv4報文發(fā)送至隧道遠端。
16.如權(quán)利要求15所述的設(shè)備,其特征在于,所述IPv6報文接收單元,進一步用于將所述二層IPv6報文封裝在IPv4報文的凈載荷區(qū)域,并設(shè)置所述封裝后的IPv4報文的報頭中協(xié)議字段的一個預(yù)定值為所述指示信息。
17.如權(quán)利要求15所述的設(shè)備,其特征在于,隧道建立單元所述IPv4報文發(fā)送單元,進一步用于根據(jù)所述隧道建立單元配置的隧道遠端的IP地址,設(shè)置所述封裝后的IPv4報文的目的地址,并根據(jù)本地路由表將所述封裝后的IPv4報文轉(zhuǎn)發(fā)。
18.如權(quán)利要求15所述的設(shè)備,其特征在于,所述隧道建立單元進一步配置并保存該IPv4邊緣設(shè)備所屬點到多點的IPv6隧道的多個遠端的IP地址信息;所述IPv4報文發(fā)送單元,進一步用于將所述封裝后的IPv4報文發(fā)送到點到多點的IPv6隧道的所有遠端。
19.如權(quán)利要求15所述的設(shè)備,其特征在于還包括IPv4報文接收單元,用于接收來自隧道遠端的IPv4報文,并根據(jù)接收到的IPv4報文中是否攜帶有所述指示信息,判斷出所述封裝后的IPv4報文并進行解封裝,獲取其中的二層IPv6報文;IPv6報文轉(zhuǎn)發(fā)單元,用于在本地轉(zhuǎn)發(fā)所述IPv4報文接收單元獲取的所述二層IPv6報文。
20.如權(quán)利要求19所述的設(shè)備,其特征在于還包括遠端MAC表項維護單元,用于從隧道遠端學(xué)習MAC地址以及該MAC對應(yīng)的VLAN信息,并記錄隧道信息、從該隧道遠端學(xué)到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系;所述IPv4報文發(fā)送單元,進一步根據(jù)所述二層IPv6報文的目的MAC地址,查找所述遠端MAC表項維護單元,如果其中存在所述目的MAC地址,則將所述封裝后的IPv4報文發(fā)送至所述目的MAC地址對應(yīng)的隧道遠端;否則,將所述封裝后的IPv4報文發(fā)送至所述IPv4邊緣設(shè)備的所有的隧道遠端。
21.如權(quán)利要求19或20所述的設(shè)備,其特征在于還包括本地MAC表項維護單元,用于從本地端口學(xué)習MAC地址及該MAC地址對應(yīng)的VLAN信息,并記錄本地端口、從該本地端口學(xué)習到的MAC地址、該MAC地址對應(yīng)的VLAN信息之間的對應(yīng)關(guān)系;所述IPv6報文轉(zhuǎn)發(fā)單元,進一步用于根據(jù)所述二層IPv6報文的目的MAC地址查找所述本地MAC表項維護單元,如果其中存在所述目的MAC地址,則將所述二層IPv6報文通過所述目的MAC地址對應(yīng)的本地端口進行轉(zhuǎn)發(fā);否則,根據(jù)所述二層IPv6報文的VLAN信息,在該vLAN對應(yīng)的所有本地端口上對所述二層IPv6報文進行泛洪。
全文摘要
本發(fā)明提供了一種建立IPv6隧道的方法、IPv6隧道通信方法及IPv4邊緣設(shè)備。通過在IPv4網(wǎng)絡(luò)中透傳二層IPv6報文,實現(xiàn)了IPv6報文穿越IPv4網(wǎng)絡(luò)的通信。按照本發(fā)明的IPv6隧道通信方法及IPv4邊緣設(shè)備,無需網(wǎng)絡(luò)邊緣設(shè)備支持IPv4/IPv6雙協(xié)議?;騇PLS技術(shù),即可實現(xiàn)IPv6隧道通信。
文檔編號H04L1/00GK101094155SQ20071011988
公開日2007年12月26日 申請日期2007年8月2日 優(yōu)先權(quán)日2007年8月2日
發(fā)明者劉經(jīng)倫 申請人:杭州華三通信技術(shù)有限公司