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