雙協定棧

雙協定棧

雙協定棧技術就是指在一台設備上同時啟用IPv4協定棧和IPv6協定棧。這樣的話,這台設備既能和IPv4網路通信,又能和IPv6網路通信。如果這台設備是一個路由器,那么這台路由器的不同接口上,分別配置了IPv4地址和IPv6地址,並很可能分別連線了IPv4網路和IPv6網路。如果這台設備是一個計算機,那么它將同時擁有IPv4地址和IPv6地址,並具備同時處理這兩個協定地址的功能。

基本介紹

  • 中文名:雙協定棧
  • 外文名:Dual Stack
  • 對象:通信端節點
  • 種類:IPv4和IPv6
雙協定棧 ( Dual Stack) 採用該技術的節點上同時運行IPv4和IPv6兩套協定棧。這是使IPv6節點保持與純IPv4節點兼容最直接的方式,針對的對象是通信端節點(包括主機路由器)。這種方式對IPv4和IPv6提供了完全的兼容,但是對於IP位址耗盡的問題卻沒有任何幫助。由於需要雙路由基礎設施,這種方式反而增加了網路的複雜度。
一、雙協定棧的工作方式
雙協定棧是指在單個節點同時支持IPv4和IPv6兩種協定棧。由於IPv6和IPv4是功能相近的網路層協定, 兩者都基於相同的物理平台, 而且載入於其上的傳輸層協定TCP和UDP也基本沒有區別, 因此, 支持雙協定棧的節點既能與支持IPv4協定的節點通信, 又能與支持IPv6協定的節點通信。可以相信, 網路中主要服務商在網路全部升級到IPv6協定之前必將支持雙協定棧的運行。
1 . 接收數據包
雙棧節點與其它類型的多棧節點的工作方式相同。鏈路層接收到數據段, 拆開並檢查包頭。如果IPv4/IPv6頭中的第一個欄位, 即IP包的版本號是4, 該數據包就由IPv4棧來處理; 如果版本號是6, 則由IPv6棧處理; 如果建立了自動隧道機制, 則採用相應的技術將數據包重新整合為IPv6數據包, 由IPv6棧來處理。
2 . 傳送數據包
由於雙棧主機同時支持IPv4和IPv6兩種協定, 所以當其在網路中通信的時候需要根據情況確定使用其中的一種協定棧進行通信, 這就需要制定雙協定棧的工作方式。在網路通信過程中, 目的地址是作為路由選擇的主要參數, 因而根據應用程式所使用的目的地址的協定類型對雙協定棧的工作方式做出如下約定:
( 1) 若應用程式使用的目的地址為IPv4地址, 則使用IPv4協定;
假設節點A與節點B通信, A為雙棧節點, 節點B支持IPv4協定( 目的地址為IPv4地址) 。則雙棧節點A工作方式:
使用IPv4協定與節點B通信。
完備性證明: 節點A有兩種選擇, 使用IPv4協定或者IPv6協定與主機B通信。根據給定條件, A, B節點均支持
IPv4協定, 所以選擇IPv4協定可以保證通信正常進行, 故約定是充分的。如果使用IPv6協定進行通信, 因為不能確定B是否為雙棧節點( 給定條件僅是目的地址為IPv4地址) , 所以當B節點不支持IPv6協定時不能保證通信正常進行, 故約定是必要的。至此可以認為約定( 1) 是完備的。
( 2) 若目的地址為IPv6地址, 且為本地線上網路, 則使用IPv6協定。
( 3) 若應用程式使用的目的地址為IPv4兼容的IPv6地址, 並且非本地線上網路, 則使用IPv4協定, 此時的IPv6將
封裝在IPv4中。IPv4兼容的IPv6地址, 是IPv6協定規範中提供的特殊地址。這類地址高階96位均為0, 低價32位包含IPv4地址。IPv4兼容地址被節點用於通過IPv4路由器以隧道方式傳送IPv6包,這些節點既理解IPv4又理解IPv6。能夠自動將IPv6包以隧道方式在IPv4網路中傳送的IPv4/IPv6雙棧節點將使用這些地址。根據IPv6協定地址規範以及( 3) 假定的條件, 可以確定目的節點B同樣是一個雙棧節點, 而結合IPv4/IPv6過渡時期網路的基本狀況, 節點A與節點B的通信將跨越IPv4網路,所以使用IPv4協定是可行的。當然, 也可以使用IPv6協定進行通信, 但在過渡初期, ( 3) 的約定將優於使用IPv6協定通信。
( 4) 若應用程式使用的目的地址是非IPv4兼容的IPv6地址, 非本地線上網路, 則使用IPv6協定。類似約定( 2) , 使用IPv6協定能夠保證通信正常進行,而如果是跨越純IPv4網路的通信, 將採用隧道等機制實現通信; 而如果通過本地網路, 則無須隧道機制即可完成通信。
( 5) 若應用程式使用域名作為目標地址, 則先從域名伺服器得到相應的IPv4/IPv6地址, 然後根據地址情況進行相應的處理。
以上( 1) 至( 5) 是雙協定棧的工作方式, 隨著IPv6網路規模的不斷擴大, 這些工作方式必將做相應的修改和補充,這將取決於過渡的進程與IPv6網路的不斷演進。
二、基於雙協定棧的套用服務
1 . 基於雙協定棧的域名服務域名系統( 簡稱: DNS) 的主要功能是通過域名和IP位址之間的相互對應關係, 來精確定位網路資源, 即根據域名查詢IP位址, 反之亦然。DNS是Internet的基礎架構, 眾多的網路服務都是建立在DNS體系基礎之上的。因此, DNS的重要性不言而喻。
IPv4地址正向解析的資源記錄是“A”記錄。IPv6地址解析目前有兩種資源記錄, 即“AAAA” 和“A6” 記錄。“A6”記錄支持一些“AAAA”所不具備的新特性, 如地址聚合, 地址更改( Renumber) 等。
在DNS伺服器中同時存在“A” 記錄和“AAAA” ( 或“A6”) 記錄。由於節點既可以處理IPv4協定, 也可以處理IPv6協定, 因此無需DNS ALG等轉換設備。無論DNS伺服器回答“A”記錄還是“AAAA”記錄, 都可以進行通信。
2 . 基於雙協定棧的BBS服務
BBS是網際網路上交流的平台, 在網路服務中起著重要的作用, 隨著IPv4向IPv6的平滑過渡, 創建基於雙協定棧的
BBS服務系統就顯得很有必要。根據“ 基本的支持IPv6的socket ( 套接字) 接口擴展”, 修改相關部分代碼, 就可實現兼容IPv6和IPv4的BBS系統。
( 1) IPv6套接口地址結構
在〈sys/socket.h〉中定義了IPv6的地址族———AF_INET6和協定族———PF_INET6, 或者將新的sockaddr_in6數據結構同原來的sockaddr_in數據結構區分開, 後者將在創建socket時使用。
( 2) IPv6的幾種特殊地址在構造支持IPv6的BBS系統時, 要用到以下兩種IPv6的特殊地址。①IPv4地址映射的IPv6地址。②IPv6通配地址。
( 3) 如何使程式兼容IPv4/IPv6大部分現有的網路應用程式是為IPv4編寫的, 從上述原理可看出, 除了一些同IPv4的特性緊密相關的程式( 如使用多播、IP選項或原始套接口的程式) , 大部分IPv4應用程式若要轉換成兼容IPv4/IPv6應用程式並不是很困難的。基於這種思想, 根據Socket API對IPv4和IPv6兼容所做的支持, 對現有的BBS系統( 基於IPv4的應用程式系統) 進行一系列的修改, 構造一個支持IPv6的BBS系統。採取以下主要步驟:
①構造一個雙協定棧( Dual Stack) BBS伺服器, 分別賦予IPv4和IPv6地址, 使得其上運行的BBS服務既能處理使用IPv4的客戶, 又能處理使用IPv6的客戶。
②對原來的IPv4套接字地址部分進行修改, 創建基於IPv6 套接字。
③將IPv6套接字綁定到IPv6通配地址和23號監聽連線埠。
④採用兼容IPv4/IPv6的地址轉換函式代替只支持IPv4的地址轉換函式。
⑤修改程式中有關IP位址顯示格式的代碼, 以足夠長度
支持IPv6地址的顯示。
3 . IPv6校園網過渡方案
在過渡過程中, IPv6網段作為孤島接入IPv4網路, 為實現IPv6網段之間以及IPv4、IPv6網段之間的互通, 必須綜合各種過渡技術, 最佳化網路結構, 在保證網路安全可靠運行以及逐步過渡、節約投資的前提下, 設計過渡方案。根據以上基本原則以及網路運行狀況, 對於校園網路的初期過渡方案
規劃如下:
( 1) 跨IPv4網路的IPv6間通信採用隧道技術實現;
( 2) 基於IPv4的伺服器逐步升級為雙協定棧節點伺服器;
( 3) IPv4/IPv6客戶端互通則可以採用NAT- PT技術實現;
( 4) 本地IPv6網段聯出口路由器接入上級IPv6網路。
在開展IPv6套用的初期, 應該儘量保證原有網路系統安全、穩定運行, 所以對於新增的IPv6網段, 應該以獨立鏈路接入上級IPv6網路。選擇雙協定棧路由器作為IPv6網段的接入節點, 以保證新建IPv6網段能同時使用本地網路服務

相關詞條

熱門詞條

聯絡我們