• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    最新廣告
    關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
    工業(yè)智能邊緣計算2025年會
    CAIAC 2025
    2025工業(yè)安全大會
    OICT公益講堂
    當前位置:首頁 >> 案例 >> 案例首頁

    案例頻道

    IPv4過渡到IPv6的三種遷移機制
    • 企業(yè):     領(lǐng)域:電源    
    • 點擊數(shù):2771     發(fā)布時間:2005-08-23 14:29:26
    • 分享到:
    介紹了IPv4過渡到IPv6的三種遷移機制,并舉例說明。
     



    1  前言

        隨著互聯(lián)網(wǎng)用戶的不斷增多以及他們對網(wǎng)絡(luò)服務(wù)要求的不斷提高,IPv4固有的一些缺陷使得它已經(jīng)不能滿足這種日漸增長的需要。IPv6正是為解決這個問題而出現(xiàn)的,同時它的新特性為下一代互聯(lián)網(wǎng)的應(yīng)用提供了更好的支持。
        互聯(lián)網(wǎng)的普及使IPv4向IPv6的過渡不可能一蹴而就,它需要很長一段時間才能完成。IPv6也不僅僅是對IPv4的簡單升級,因為頭部特征和配址機制的不同,這兩種協(xié)議是互不兼容的。因此,IPv4如何漸近、平滑的過渡到IPv6是必須解決的一個問題。
        IETF的Ngtrans工作組提出了從IPv4過渡到IPv6的3種主要遷移機制:雙協(xié)議、協(xié)議翻譯A、隧道。

    2  雙協(xié)議



    圖1  雙協(xié)議(棧)節(jié)點的網(wǎng)絡(luò)分層模型


        如圖1(a)所示,雙協(xié)議節(jié)點(包括主機和路由器)同時實現(xiàn)了IPv4和IPv6協(xié)議,可以和IPv4或IPv6主機建立通信。主機根據(jù)目的IP地址來決定采用IPv4還是IPv6協(xié)議發(fā)送或接收數(shù)據(jù)包。在理想的網(wǎng)絡(luò)分層模型中,傳輸層和網(wǎng)絡(luò)層是獨立的,IP層的改變并不會影響傳輸層協(xié)議的運行,但實際上TCP和UDP協(xié)議在校驗碼計算中都采用包含了源和目的IP地址的偽頭部,所以在LINUX、WINDOWS等操作系統(tǒng)的IPv6協(xié)議實現(xiàn)中,作為IPv6上層協(xié)議的TCP/UDP代碼是獨立于IPv4上的TCP/UDP而實現(xiàn)的,如圖1(b)所示,因此稱之為雙棧節(jié)點更合適。
        目前雙棧是運行最廣泛的遷移機制。不過雙棧只允許相同IP版本之間的通信,即IPv4和IPv4之間的通信,或IPv6和IPv6之間的通信。不同版本IP之間的通信需要通過協(xié)議翻譯來完成。
        在IPv4到IPv6的過渡初期,絕大多數(shù)終端或路由器都是純IPv4節(jié)點(只實現(xiàn)了IPv4協(xié)議棧的節(jié)點)或雙棧節(jié)點,在過渡中期,雙棧節(jié)點或純IPv6節(jié)點將是主要的通信實體,到過渡后期,所有接入互聯(lián)網(wǎng)的設(shè)備基本上都是純IPv6節(jié)點(只實現(xiàn)了IPv6協(xié)議棧的節(jié)點)。

    3  協(xié)議翻譯

        協(xié)議翻譯用來將IPv4(IPv6)數(shù)據(jù)包轉(zhuǎn)換成IPv6(IPv4)數(shù)據(jù)包,這種轉(zhuǎn)換對上層協(xié)議是透明的。利用協(xié)議翻譯可以在純IPv6節(jié)點和純IPv4節(jié)點之間建立通信,而不需要修改應(yīng)用軟件。但在IPv4數(shù)據(jù)包轉(zhuǎn)換成IPv6數(shù)據(jù)包的過程中,由于IPv6頭部含有擴展頭部以及諸如流標簽等新字段而引起的不適當?shù)姆g,可能會導致傳輸性能的下降。另外,協(xié)議翻譯如NAT一樣會潛在的破壞端到端的服務(wù)(比如IPSec)。
        Bump-In-the-Stack(BIS)和Bump-In-the-API(BIA)機制可以使IPv4主機上的應(yīng)用軟件和純IPv6主機進行通信,當應(yīng)用軟件向純IPv6主機發(fā)送數(shù)據(jù)包時,IPv6地址被映射成一個臨時的IPv4地址,然后根據(jù)SIIT(Stateless IP/ICMP)將IPv4數(shù)據(jù)包轉(zhuǎn)換成IPv6數(shù)據(jù)包。協(xié)議轉(zhuǎn)換是一個十分消耗資源的過程,考慮到擴展性的問題,協(xié)議翻譯器應(yīng)該處于網(wǎng)絡(luò)邊緣的位置。目前最有名的協(xié)議翻譯機制是NAT-PT(Network Address Translator-Protocol Translator)。



    圖2  純IPv6主機和純IPv4主機通過NAT-PT通信



        NAT-PT為IPv6主機提供臨時使用的IPv4地址,并根據(jù)SIIT對IPv4數(shù)據(jù)包和IPv6數(shù)據(jù)包進行相互轉(zhuǎn)換,從而解決純IPv6主機和純IPv4主機之間的通信問題。如圖2所示,NAT-PT維護一個IPv4地址池,這些地址供IPv6主機和IPv4主機通信時臨時使用。IPv6主機首先通過DNS獲得通信對方的IPv6地址,圖2中為PREFIX:202.106.185.250,其中PREFIX是NAT-PT所在IPv6域規(guī)定的96位前綴。當NAT-PT收到來自IPv6主機的數(shù)據(jù)包后,根據(jù)SIIT將它轉(zhuǎn)換成IPv4數(shù)據(jù)包,目的地址轉(zhuǎn)換成202.106.185.250,源地址轉(zhuǎn)換成159.226.39.110,該地址取自NAT-PT維護的IPv4地址池。在通信過程中,NAT-PT需要維護IPv6地址(2001:250:f006:1::8)和轉(zhuǎn)換后的IPv4地址(159.226.39.110)之間的映射關(guān)系,以便對返回的IPv4數(shù)據(jù)包進行反向轉(zhuǎn)換。
        NAT-PT還可以支持應(yīng)用層網(wǎng)關(guān)的功能,對IPv4或IPv6的DNS請求和應(yīng)答包以及FTP數(shù)據(jù)包進行轉(zhuǎn)換。由于IPv4地址的匱乏,NAT廣泛運行于目前的IPv4互聯(lián)網(wǎng),將NAT升級成NAT-PT,使得IPv4和IPv6網(wǎng)絡(luò)互連,可以實現(xiàn)IPv4向IPv6的平滑過渡。

    4  隧道

        被不兼容的網(wǎng)絡(luò)分離的兩個相同版本IP主機之間的通信可以通過隧道方式進行。在過渡前期,IPv4網(wǎng)絡(luò)占主導地位,IPv6網(wǎng)絡(luò)好比是整個IPv4汪洋中的孤立島嶼,這些島嶼之間的通信可采用IPv6-over-IPv4隧道來實現(xiàn)。過渡后期,IPv6網(wǎng)站占統(tǒng)治地位,類似地,各個孤立IPv4島嶼之間的通信可采用IPv4-over-IPv6隧道來實現(xiàn)。



    圖3  IPv6-over-IPv4隧道



        隧道的實質(zhì)就是對數(shù)據(jù)包的封裝,如圖3所示,IPv6-over-IPv4(IPv4-over-IPv6)隧道就是將IPv6(IPv4)分組封裝在IPv4(IPv6)分組中,利用已有的IPv4(IPv6)網(wǎng)絡(luò)進行傳輸,從而解決IPv6(IPv4)站點或主機之間相互通信的問題。由于隧道的端節(jié)點需要對IPv6數(shù)據(jù)包進行封裝、對IPv4數(shù)據(jù)包進行解封裝,因此它必須是雙棧節(jié)點。
        在IPv6-over-IPv4數(shù)據(jù)包的IPv4頭部,其協(xié)議類型字段取值41,表示這是一個封裝了IPv6報文的IPv4數(shù)據(jù)包。源和目的地址字段分別是隧道首尾端節(jié)點的IPv4地址,如果是配置隧道,那么目的IPv4地址是由隧道首節(jié)點的配置信息決定的;如果是自動隧道,那么目的IPv4地址通常是目的IPv6地址中嵌套的IPv4地址。
        一般情況下,路由器和路由器之間的隧道通常是配置隧道,隧道接口的配置參數(shù)即隧道兩端的IPv4地址是手工配置的,目前6Bone網(wǎng)絡(luò)采用的隧道大多是配置隧道,配置隧道的不足之處在于它的建立通常不符合IPv6路由體系是分層、簡化的指導思想,因此導致路由效率的低下,而且它的維護和運行都有一定的復雜性。自動隧道不需要手工配置,它的端節(jié)點IPv4地址可從數(shù)據(jù)包的IPv6地址中獲得,因此自動隧道的建立和維護相對簡單,也更靈活。
        針對不同的應(yīng)用場景,目前提出了多種隧道技術(shù),如6to4、ISATAP、Teredo、6over4、DSTM、Tunnel Broker等。

    (1)  6to4
        6to4用于連接被IPv4網(wǎng)絡(luò)分離的各個孤立的IPv6站點,隧道的端點是孤立IPv6站點的出口路由器。



    圖4  IPv6站點通過6to4隧道通信


        6to4隧道協(xié)議定義了3種通信實體:6to4主機、6to4路由器、6to4中繼路由器。6to4主機指孤立IPv6站點中的純IPv6主機,6to4路由器指IPv6站點中的出口路由器。6to4主機使用全球地址前綴2002:AABB:CCDD::/48,其中AABB:CCDD是出口路由器的IPv4地址(該地址必須是公有地址)的十六進制表示,它作為全球IPv6地址中的NLA(Next Level Aggregator)ID。完整的6to4地址是2002:AABB:CCDD:SLA (Site Level Aggregator) ID:Interface ID。
        以圖4為例,6to4主機之間的通信過程如下:站點1的6to4主機在獲得站點2的6to4主機地址后向其發(fā)送數(shù)據(jù)包,該數(shù)據(jù)包被路由至本站點的6to4路由器A,路由器A發(fā)現(xiàn)數(shù)據(jù)包的目的地址含有6to4前綴2002,于是從數(shù)據(jù)包的IPv6源地址和目的地址中提出隧道兩端的IPv4地址(也就是IPv6地址中的NLA部分),然后用IPv4頭部封裝數(shù)據(jù)包,封裝后的報文其目的地址為站點2的6to4路由器B的IPv4地址,從而建立一條從A到B的隧道。作為隧道端點的路由器B收到數(shù)據(jù)包后對其進行解封裝,去掉IPv4頭部,得到一個IPv6數(shù)據(jù)包,然后發(fā)送,直到數(shù)據(jù)包最后到達站點2的6to4主機。
        6to4中繼路由器通常位于IPv6主干網(wǎng),除了具有6to4路由器的功能外,它還負責向IPv6主干網(wǎng)宣告它對其他6to4站點的可達性,同時向其他6to4路由器宣告它對主干網(wǎng)內(nèi)各站點的可達性。6to4中繼路由器用于6to4主機和一般IPv6主機之間的通信,以圖4為例,站點1的6to4主機獲得主干網(wǎng)上某個IPv6主機的地址后向其發(fā)送數(shù)據(jù)包,該數(shù)據(jù)包被路由至本站點的6to4路由器A,路由器A通過查找路由表得到下一跳的IPv6地址為中繼路由器C的6to4地址,從該地址從提出C的IPv4地址,以此作為目的IPv4地址對數(shù)據(jù)包封裝,建立一條從A到C的隧道。C收到數(shù)據(jù)包后解封裝,得到一個IPv6數(shù)據(jù)包并發(fā)往主干網(wǎng),直至最終到達目的IPv6主機。
        6to4隧道容易管理,所以是目前最重要的自動隧道技術(shù)之一。而且它根據(jù)IPv4地址自動能產(chǎn)生一個48位的前綴,所以不必向互聯(lián)網(wǎng)注冊機構(gòu)申請IPv6地址就可運行。與此同時,這種配址方式也導致了對IPv6路由體系層次化的破壞。

    (2)  ISATAP
        ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)意為域內(nèi)自動隧道配址協(xié)議,顧名思義,它指某個IPv4域內(nèi)的雙棧主機相互之間可通過該隧道進行通信。



    圖5  IPv4網(wǎng)絡(luò)上的雙棧主機通過ISATAP隧道通信


        如圖5所示,雙棧主機首先向ISATAP服務(wù)器發(fā)送路由請求,得到一個64位的IPv6地址前綴,再加上64位的接口標識符::0:5EFE:a.b.c.d,構(gòu)成一個ISATAP地址,這里的a.b.c.d是雙棧主機的IPv4單播地址,該地址可以是公有的,也可以是私有的。雙棧主機配置了ISATAP地址后,就成為一個ISATAP客戶機,可以和IPv4域內(nèi)的其他ISATAP客戶機進行通信了。通信過程如下:雙棧主機1獲得雙棧主機2的ISATAP地址后向其發(fā)送數(shù)據(jù)包,根據(jù)目的地址該數(shù)據(jù)包被交給ISATAP接口進行發(fā)送,ISATAP從數(shù)據(jù)包的IPv6源地址和目的地址從提出相應(yīng)的IPv4源和目的地址,并對該數(shù)據(jù)包用IPv4頭部進行封裝,封裝后數(shù)據(jù)包的目的地址為雙棧主機2的IPv4地址,這樣就建立了一條從主機1到主機2的隧道。數(shù)據(jù)包最后到達主機2,主機2對其解封裝,得到一個IPv6數(shù)據(jù)包。
        ISATAP隧道的優(yōu)點是它不要求隧道端節(jié)點必須具有全球唯一的IPv4地址,因此可用于內(nèi)部私有網(wǎng)中各雙棧主機之間進行IPv6通信。和6to4隧道技術(shù)相結(jié)合,還可以使內(nèi)部網(wǎng)的雙棧主機接入IPv6主干網(wǎng)。

    (3)  Teredo
        位于NAT后的IPv6節(jié)點采用一般的隧道技術(shù)(IPv6-over-IPv4)是不能和NAT域外的IPv6節(jié)點進行通信的,因為目前的NAT一般不支持協(xié)議類型為41(也就是IPv6-over-IPv4)的數(shù)據(jù)包。Teredo隧道有別于一般的IPv6-over-IPv4隧道,確切的講,它是一種IPv6-over-UDP隧道。數(shù)據(jù)包通過被封裝在UDP載荷中的方式穿過NAT,這是Teredo隧道的基本思想。
    Teredo協(xié)議定義了4中通信實體: Client、Server、Relay、Host-specific Relay。其中Client指位于NAT域內(nèi)的雙棧主機,Server負責為Client分配Teredo地址,Relay負責轉(zhuǎn)發(fā)Client和一般IPv6節(jié)點通信時的數(shù)據(jù)包,Host-specific Relay指不通過Relay可直接和Client進行通信的IPv6主機。這些通信實體都同時支持IPv6/IPv4協(xié)議。Teredo還為Client之間的通信進行了優(yōu)化,可大幅度提高傳輸性能。
        Teredo可使NAT域內(nèi)的IPv6節(jié)點獲得全球性的IPv6連接,在因IPv4地址匱乏而廣泛運行NAT的地區(qū)尤其是在我國,Teredo隧道無疑具有較好的應(yīng)用前景。但Teredo的運行需要Relay的支持,并且它不支持隧道中間存在Symmetric NAT,Teredo地址采用規(guī)定格式的前綴也不符合IPv6路由分等級的思想,這些不足在一定程度上也將影響Teredo的部署。

    (4)  6over4
        6over4是一種IPv4組播隧道機制,通過將IPv6數(shù)據(jù)包封裝在IPv4中的方式連接互相分離的IPv6主機。6over4主機的IPv6地址由64位的單播地址前綴和規(guī)定格式的64位接口標識符::AABB:CCDD組成,其中AABB:CCDD是其IPv4地址a.b.c.d的十六進制表示。6over4將IPv4網(wǎng)絡(luò)當做具有組播功能的一條鏈路,通過IPv6組播地址和IPv4組播地址的映射關(guān)系實現(xiàn)IPv6協(xié)議的鄰居發(fā)現(xiàn)功能,以此,它要求IPv4網(wǎng)絡(luò)支持組播功能。實際網(wǎng)絡(luò)很少支持組播功能,所以6over4極少使用。

    (5)  DSTM
        如果一個雙棧主機沒有配置IPv4地址,但想和另一個IPv4主機通信的話,可以采用DSTM也就是雙棧轉(zhuǎn)換機制來實現(xiàn)。雙棧主機首先向DSTM服務(wù)器申請得到一個臨時的IPv4地址和DSTM邊緣路由器的地址,然后IPv4數(shù)據(jù)包被封裝在IPv6載荷中進行傳輸,所以它是一種IPv4-over-IPv6隧道。在過渡后期,IPv6網(wǎng)絡(luò)占據(jù)主導地位,IPv4網(wǎng)絡(luò)反過來成為IPv6網(wǎng)路汪洋中孤立的小島,當IPv6主機想訪問IPv4資源的時候,DSTM將發(fā)揮作用。

    (6)  Tunnel Broker
        Tennel Broker也就是隧道代理相當于一個虛擬的IPv6服務(wù)提供商,它通過IPv6-over-IPv4隧道的方式為IPv4網(wǎng)絡(luò)中的雙棧主機提供全球性的IPv6連接。隧道代理通過web方式為用戶分配IPv6地址、建立隧道以提供和其他IPv6站點之間的通信。目前已有不少提供隧道代理的網(wǎng)站。隧道代理的特點是靈活、可操作性強,針對不同用戶可提供不同的隧道配置。

    熱點新聞

    推薦產(chǎn)品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細的需求:
    姓名:
    單位:
    電話:
    郵件: