一種基于SDN的IPv4和IPv6網(wǎng)絡(luò)互連方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,確切地說涉及一種基于SDN的IPv4和IPv6網(wǎng)絡(luò)互連方法。
【背景技術(shù)】
[0002]IP協(xié)議于70年代中期誕生,IPv4是IP協(xié)議的第4個(gè)版本,也是目前使用最廣泛的IP層協(xié)議。IPv4對internet的發(fā)展起到了關(guān)鍵的作用。然而由于有限的地址空間和分配的不當(dāng),IPv4的地址空間已經(jīng)耗盡。根據(jù)IANA的統(tǒng)計(jì)報(bào)告,截止2011年2月3號IPv4地址已經(jīng)全部分配出去。隨著IPv4的耗盡,研宄者們越來越關(guān)注于IPv6技術(shù)的發(fā)展。IPv6是由IETF為了徹底解決IPv4地址不足問題而提出的一種新的IP協(xié)議,它采用128位的地址空間,解決了 IPv4地址不足和其他問題,并在諸多方面進(jìn)行改進(jìn)。這些改進(jìn)主要包括簡化的報(bào)頭格式、支持?jǐn)U展首部和選項(xiàng)、支持自動(dòng)配置、增強(qiáng)服務(wù)質(zhì)量QoS、支持任播等。
[0003]自從IPv6被提出來以后,由于IPv6與IPv4的不兼容性,使得IPv4能否向IPv6過渡成為IPv6能否成功的關(guān)鍵。因此一開始研宄者們就在尋找IPv4向IPv6平穩(wěn)過渡的方案??上е钡侥壳盀橹惯€沒有很好的方案能完全解決這個(gè)問題。目前IPv4和IPv6互通的方案主要有三種:雙棧技術(shù)、隧道技術(shù)、翻譯技術(shù)。所謂的雙棧技術(shù),就是終端/主機(jī)包含IPv4和IPv6兩個(gè)協(xié)議棧,主機(jī)根據(jù)IP地址來決定采用哪個(gè)IP協(xié)議棧發(fā)送數(shù)據(jù)包。這種方式的缺點(diǎn)是舊的無法升級的設(shè)備無法使用,而且每個(gè)節(jié)點(diǎn)必須配置兩個(gè)協(xié)議棧。隧道技術(shù)把報(bào)文進(jìn)行封裝,在IPv6報(bào)文前面加上IPv4的首部。使得IPv6的報(bào)文在IPv4網(wǎng)絡(luò)里“看起來”是IPv4報(bào)文,到達(dá)IPv6網(wǎng)絡(luò)后再解封裝,還原成IPv6報(bào)文進(jìn)行轉(zhuǎn)發(fā)。采用隧道方式的有6rd、A+P方案。這種方案只要求在封裝/解封裝節(jié)點(diǎn)安裝雙協(xié)議棧,實(shí)行起來比較方便。翻譯技術(shù)主要包括IPv4和IPv6協(xié)議層的翻譯、應(yīng)用的翻譯,協(xié)議層的翻譯一般采用NAT-PT技術(shù),應(yīng)用的翻譯一般通過應(yīng)用代理網(wǎng)關(guān)ALG來完成。翻譯技術(shù)不需要改造節(jié)點(diǎn),但是翻譯方法比較復(fù)雜、地址轉(zhuǎn)換和協(xié)議轉(zhuǎn)換的開銷比較大。
[0004]SDN最早起源于斯坦福大學(xué)的一個(gè)叫做clean slate的校園項(xiàng)目。它是一種創(chuàng)新型的網(wǎng)絡(luò)體系架構(gòu),其核心思想是把轉(zhuǎn)發(fā)平面和控制平面進(jìn)行分離。通過集中式的SDN控制器cont1ller使用標(biāo)準(zhǔn)的接口來對各種不同的網(wǎng)絡(luò)設(shè)備進(jìn)行配置和管理,使得對網(wǎng)絡(luò)的管理更加集中化、精細(xì)化。OpenFlow作為SDN的原型實(shí)現(xiàn)模式,充分體現(xiàn)了 SDN的這種管控分離思想。因此通常人們把OpenFlow作為SDN的通信標(biāo)準(zhǔn),就像TCP/IP協(xié)議作為互聯(lián)網(wǎng)的通信標(biāo)準(zhǔn)一樣。
[0005]經(jīng)檢索,在國家專利局網(wǎng)站和國外專利局網(wǎng)站上沒有與本申請技術(shù)方案較為接近的技術(shù)方案申請過專利,也沒有與本申請技術(shù)方案較接近的期刊文件,僅有一篇會(huì)議文檔“DevOps Migrat1n to IPv6 Powered by SDN”米用 SDN作為 IPv6 的過渡技術(shù),同時(shí),公開號為CN104135446A,公開日為2014年11月5日的中國專利文獻(xiàn)公開了一種基于SDN實(shí)現(xiàn)IPv4向IPv6過渡的系統(tǒng)及方法,涉及SDN領(lǐng)域,該系統(tǒng)的硬件包括控制器和交換機(jī),該系統(tǒng)的軟件模塊均在Iinux操作系統(tǒng)的應(yīng)用層開發(fā),控制器包括第一 OpenFlow接口模塊、第一配置管理模塊、第一流表管理模塊和第一地址管理模塊;交換機(jī)包括第二 OpenFlow接口模塊、第二配置管理模塊、第二流表管理模塊、第二地址管理模塊、隧道模塊和網(wǎng)絡(luò)地址轉(zhuǎn)換NAT模塊。該發(fā)明能靈活、簡單地設(shè)置交換機(jī)從IPv4向IPv6過渡的技術(shù),實(shí)現(xiàn)網(wǎng)絡(luò)流量的靈活控制,支持傳統(tǒng)交換機(jī),方便擴(kuò)展,移植性好,再次開發(fā)容易。
[0006]但是,無論是上述會(huì)議文檔,還是上述中國專利文獻(xiàn),其實(shí)現(xiàn)的技術(shù)方案和本申請的技術(shù)方案有很大不同。從文檔中可以看出該技術(shù)不關(guān)心協(xié)議的轉(zhuǎn)換,SDN做的只是簡單的添加流表、查表轉(zhuǎn)發(fā),因此無法支持非雙協(xié)議棧的IPv4、IPv6和SDN的互通。從專利文件中可以看出該方法需要交換機(jī)具有兩個(gè)OpenFlow接口模塊和兩個(gè)OpenFlow流表模塊,需要在penFlow交換機(jī)上增加隧道模塊,從而必須在現(xiàn)有的OpenFlow交換機(jī)上進(jìn)行硬件改變增加新功能,并且導(dǎo)致SDN網(wǎng)絡(luò)工作流程復(fù)雜化。
【發(fā)明內(nèi)容】
[0007]本發(fā)明旨在針對上述DevOps技術(shù)無法實(shí)現(xiàn)SDN、IPv4和IPv6網(wǎng)絡(luò)的全互通的技術(shù)問題,提出一種基于SDN的IPv4和IPv6網(wǎng)絡(luò)互連方法。該方法能夠解決協(xié)議的轉(zhuǎn)換、地址的映射問題,實(shí)現(xiàn)全網(wǎng)的互聯(lián)互通。
[0008]本發(fā)明是通過采用下述技術(shù)方案實(shí)現(xiàn)的:
一種基于SDN的IPv4和IPv6網(wǎng)絡(luò)互連方法,其特征在于:
步驟1,網(wǎng)絡(luò)初始化時(shí),SDN控制器通過探測獲得SDN全局網(wǎng)絡(luò)拓?fù)湫畔ⅲ?br>步驟2,通過拓?fù)涔芾砟K和IPv4網(wǎng)絡(luò)或者IPV6網(wǎng)絡(luò)的BGP消息交互,SDN控制器獲得IPv6網(wǎng)絡(luò)和IPv4網(wǎng)絡(luò)的可達(dá)性信息,分別存入不同的表中,供步驟5尋找路由使用;步驟3,當(dāng)IPv4或者IPv6網(wǎng)絡(luò)中的主機(jī)以域名方式要訪問非IPv4或者IPv6網(wǎng)絡(luò)時(shí),主機(jī)首先查詢本地DNS緩存表,如果有匹配的條目,轉(zhuǎn)步驟11 ;否則發(fā)送DNS請求給主機(jī)配置的源DNS服務(wù)器;
步驟4,源DNS服務(wù)器解析該域名,如果解析成功,返回解析后得到的IP地址給主機(jī),轉(zhuǎn)步驟11,否則轉(zhuǎn)步驟5;
步驟5,源DNS服務(wù)器發(fā)送該域名的DNS請求到SDN ;
步驟6,SDN網(wǎng)絡(luò)的SDN控制器調(diào)用域名解析模塊進(jìn)行處理,域名解析模塊首先查找SDN是否有匹配的條目,如果有轉(zhuǎn)步驟10,否則轉(zhuǎn)步驟7 ;
步驟7,域名解析模塊根據(jù)請求的IP地址判斷生成DNS請求報(bào)文發(fā)送至IPv4或者IPv6網(wǎng)絡(luò)的DNS服務(wù)器;
步驟8,對應(yīng)IP網(wǎng)絡(luò)中的DNS服務(wù)器進(jìn)行解析,把解析后的IP地址發(fā)給SDN ;
步驟9,域名解析模塊收到DNS響應(yīng)報(bào)文,調(diào)用地址轉(zhuǎn)換模塊或者臨時(shí)地址池管理模塊產(chǎn)生“域名-1Pv4-1Pv6”的條目添加到映射模塊;
步驟10,域名解析模塊產(chǎn)生包含IPv4地址或者IPv6地址的DNS響應(yīng)報(bào)文發(fā)送給源請求DNS,源請求DNS服務(wù)器再轉(zhuǎn)發(fā)給源請求主機(jī);
步驟11,源請求主機(jī)以該IP地址進(jìn)行通信,數(shù)據(jù)包經(jīng)過SDN的時(shí)候,域名解析模塊調(diào)用翻譯模塊進(jìn)行IPv4數(shù)據(jù)包和IPv6數(shù)據(jù)包的相互翻譯;所述步驟11的翻譯模塊用來進(jìn)行報(bào)頭和報(bào)文的翻譯。
[0009]所述步驟I的“探測”是指SDN控制器通過周期性地發(fā)送LLDP數(shù)據(jù)包來探測SDN網(wǎng)絡(luò)中節(jié)點(diǎn)的活躍狀態(tài),進(jìn)而維持SDN網(wǎng)絡(luò)的活躍拓?fù)洹?br>[0010]所述步驟2的可達(dá)性信息是通過BGP協(xié)議的交互獲得的。
[0011]所述步驟5的域名請求發(fā)送過程具體是源DNS服務(wù)器把源IP地址設(shè)為自己的IP地址,把目的IP地址設(shè)為SDN控制器的IP地址,把源請求主機(jī)的DNS請求內(nèi)容作為新的DNS請求內(nèi)容;DNS請求的整個(gè)處理過程對于源請求主機(jī)來說是透明的。
[0012]所述步驟6的“查找”包括SDN的域名表的查找和映射模塊的查找兩個(gè)部分,前者代表請求的域名是在SDN網(wǎng)絡(luò)中,后者則代表請求的域名在別的IP網(wǎng)絡(luò)中,但是已經(jīng)有緩存。
[0013]所述步驟7進(jìn)一步包括:
如果是在多個(gè)SDN網(wǎng)絡(luò)、多個(gè)IPv4網(wǎng)絡(luò)和多個(gè)IPv6網(wǎng)絡(luò)互連的系統(tǒng)中,域名解析模塊要分別發(fā)送DNS請求到非本身網(wǎng)絡(luò)和源DNS請求所在網(wǎng)絡(luò)的其他網(wǎng)絡(luò),直到某一個(gè)網(wǎng)絡(luò)的DNS服務(wù)器解析成功為止。
[0014]所述步驟9的地址轉(zhuǎn)換模塊用來根據(jù)規(guī)則把IPv4地址轉(zhuǎn)換成IPv6地址,地址轉(zhuǎn)換采用的規(guī)則是把IPv4地址作為IPv6地址的一部分組成一個(gè)新的IPv6地址,該IPv6地址由前綴、IPv4地址、后綴組成;具體采用的規(guī)則參考RFC文檔“IPv6 Addressing of IPv4/IPv6 Translators” (RFC6052)。
[0015]所述步驟9的臨時(shí)地址池管理模塊用來管理臨時(shí)地址的分配和回收,當(dāng)域名解析需要使用臨時(shí)IPv4地址時(shí),從臨時(shí)地址池中取出一個(gè)未分配的IPv4地址,并根據(jù)映射模塊的過期機(jī)制對已經(jīng)分配出去的IPv4地址的回收;所述步驟9的映射模塊用來維持域名和IP地址的映射表,存儲域名和IPv4地址、IPv6地址的映射關(guān)系,并且提供過期機(jī)制;映射模塊的過期機(jī)制具體指當(dāng)某一個(gè)映射關(guān)系一段時(shí)間未使用時(shí),刪除該映射關(guān)系,并通知臨時(shí)地址管理模塊回收該映射關(guān)系的臨時(shí)IPv4地址。
[0016]所述步驟11進(jìn)一步包括!IPv4數(shù)據(jù)包和IPv6數(shù)據(jù)包的相互翻譯,主要采用SIIT(Stateless IP/1CMP Translat1n)技術(shù),進(jìn)行兩者之間IP報(bào)頭的翻譯,如果是ICMP報(bào)文,進(jìn)行ICMP-1CMPv6的翻譯,如果是TCP/UDP,重新計(jì)算校驗(yàn)和。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明所達(dá)到的有益效果如下:
1、本技術(shù)方案可以實(shí)現(xiàn)SDN、IPv4和IPv6的全互通,無論是IPv4訪問IPv4、IPv6訪問IPv6、IPv4訪問IPv6,還是IPv6訪問IPv4,或者是SDN訪問IP網(wǎng)絡(luò),本技術(shù)方案都能保證混合網(wǎng)絡(luò)的主機(jī)之間的正常通信。
[0018]2、本技術(shù)方案對傳統(tǒng)網(wǎng)絡(luò)的改動(dòng)很少,僅僅需要在DNS服務(wù)器上添加一條到SDN網(wǎng)絡(luò)的SDN控制器的路由表項(xiàng)。對于網(wǎng)絡(luò)中的其余主機(jī)、路由器和交換機(jī)等節(jié)點(diǎn)不做任何變動(dòng),這使得本方案通過簡單的配置就可以很好地用到當(dāng)前網(wǎng)絡(luò)中。
[0019]3、本技術(shù)方案有很強(qiáng)的透明性。對于IPv4或者IPv6網(wǎng)絡(luò)的主機(jī)來說,它們不用關(guān)心域名對應(yīng)的地址是IPv4還是IPv6,只需要輸入域名就可以訪問服務(wù)了。對于中間龐雜的轉(zhuǎn)換環(huán)節(jié),主機(jī)完全不知道也不需要知道,這種特性對于平滑過渡有很重要的意義。
[0020]4、與會(huì)議文檔 “DevOps Migrat1n to IPv6 Powered by SDN” 相比,本申請所具有的特別的技術(shù)效果關(guān)注IPv4-1Pv6從IP層到應(yīng)用層的協(xié)議轉(zhuǎn)換,支持非雙協(xié)議棧的IP網(wǎng)絡(luò)和SDN網(wǎng)絡(luò)的互通。
[0021]5、與公開號為CN104135446A中國專利文件相比,本申請所具有的特別的技術(shù)效果是對原有網(wǎng)絡(luò)設(shè)備的改動(dòng)很少,所做的改動(dòng)集中在可軟件編程的控制器上,這有利于本方法在具體網(wǎng)絡(luò)環(huán)境中的實(shí)施和部署。
【附圖說明】
[0022]下面將結(jié)合說明書附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步的詳細(xì)說明,其中:
圖1為本發(fā)明基于SDN的IPv4和IPv6網(wǎng)絡(luò)互連方法的模塊圖。
[0023]圖2為本發(fā)明實(shí)施例1Pv4主機(jī)訪問IPv6服務(wù)器流程圖。
[0024]圖3為本發(fā)明實(shí)施例1Pv6主機(jī)訪問IPv4服務(wù)器流程圖。
【具體實(shí)施方式】
[0025]實(shí)施例1
作為本方法的最佳實(shí)施方式,參照圖1和圖2,本實(shí)例以IPv4的主機(jī)Hl訪問IPv6的服務(wù)器Server (www.aaa6.com)為例,簡要描述其通信過程,具體步驟如下:
步驟1,當(dāng)IPv4網(wǎng)絡(luò)中有一臺主機(jī)Hl要訪問域名www.aaa6.com,其默認(rèn)的DNS服務(wù)器DNS-1Pv4解析不到該域名,會(huì)將該DNS請求轉(zhuǎn)發(fā)給SDN網(wǎng)絡(luò);
步驟2,SDN網(wǎng)絡(luò)的SDN控制器接收到該域名解析請求后交給域名解析模塊處理。它將首先查找相關(guān)模塊看是否有匹配條目存在,如果有,直接根據(jù)匹配條目生成DNS響應(yīng)報(bào)文,轉(zhuǎn)步驟6