陳立秋
(杭州師范大學錢江學院 計算機科學與技術,浙江 杭州 310012)
即使一些網絡或聯網世界的其余部分己升級為IPv6,在很長時間內,IPv4 仍將存在。到那時,升級系統將需要保持與IPv4 系統的互操作能力。隨著時間的推移,互操作的負擔將由早期的實現者承擔轉為由傳統系統的維護者來承擔。任何情況下,同時支持IPv4 和IPv6 的系統都是必要的。
IPv4 和IPv6 協議是功能非常相同的處于網絡層的協議,對于兩個協議來說,其都是基于相同的平臺。對比計算機網絡中的TCP/IP 體系結構來看。如果網絡中一臺計算機能支持IPv6協議又同時兼容IPv4 協議,那么該主機就可以既能與支持IPv4 協議的主機通信,又能與支持IPv6 協議的主機進行通信,雙協議棧技術的工作機理就在于此。
2.2.1 Limited Dual Stack Model
在這種模型下,服務器和路由器仍然是雙棧的,而不是服務器的主機只需要支持IPv6 協議。
2.2.2 Dual Stack Model
Dual Stack Model 模型下,網絡中的任意節點都必須是雙棧的,因此,就不存在IPv6 和IPv4 之間的通信問題,這種方法不能解決IPv4地址資源不足的問題。
對于目前的網絡環境來說,實現完全的雙協議棧網絡不需特殊配置,業務開展非常方便,對于IPv6 的試驗應用和業務也很有利,是目前開展IPv6網絡試驗的重點之一。但是,完全雙協議棧的網絡結構的投入很大,特別是目前的接入網設備大部分僅僅支持IPv4 協議棧,而這些設備的升級很可能需要完全替換,投資壓力很大。為了順利進行試驗,可考慮有限的雙協議棧網絡結構,部分新增用戶僅支持IPv6。在解決過渡問題時,科學的選擇雙協議棧技術應用模型,有利于保證IPv4/IPv6 的平穩過渡。針對以上兩種模型的特點,以及綜合考慮校園網的網絡規模、應用特點,我們最終選擇了Limited Dual Stack Model 作為解決過渡問題的基本模型,實現了應用技術與實現代價的有效均衡。
BIS 機制允許在IPv4 節點運行的不支持IPv6 的應用程序能夠與純IPv6 節點進行通信,要求在IPv4 協議棧中插入三個特殊的擴展模塊:域名解析模塊、地址映射模塊和報頭翻譯模塊。其基本思想是當IPv4 應用程序與純IPv6 節點通信時,將節點的IPv6 地址映射成一個備用IPv4 地址池中的IPv4 地址。可以認為BIS 是NAT-PT 在主機節點IP 協議棧的特例實現。
TRT 機制和NAT-PT 類似,但它是在傳輸層將一個IPv4 的TCP 或UDP 連接與一個IPv6的TCP 或UDP 連接聯系起來,也就是說是在傳輸層實現協議轉換,而不是在網絡層。TRT 機制的每個連接都是真正的IPv4 或IPv6 連接,因此可以避免IP 分組分片和ICMP 報文轉換帶來的問題,但對一些存在內嵌地址信息的高層協議(如FTP),同樣需要和應用層的網關協作來完成協議轉換。
DSTM 機制用于實現支持雙協議棧但沒有分配全球唯一IPv4 地址的節點與純IPv4 節點的相互通信。其基本思想是當支持雙協議棧的節點需要IPv4 地址時,可以通過與DSTM 服務器進行基于IPv6 的通信 (可采用擴展的DHCPv6)臨時得到一個IPv4 地址并反映到DNS 中。對于沒有IPv4 內部路由體系的情況,支持雙協議棧的節點使用IPv6 路由體系,IPv4的數據報將會被封裝到IPv6 數據報中在節點內傳輸。
ALG 機制是應用層網關,在IPv4 中就已經廣泛應用,典型的有HTTP 協議的代理。顯然,當一個ALG 同時支持IPv4 和IPv6 協議棧時,就可以作為IPv4 和IPv6 的協議轉換網關。ALG提供的每個服務都是單獨的IPv4 和IPv6 連接,可以完全避免在IP 層進行IP 頭標轉換帶來的一些問題,但ALG 機制要求對每個應用編寫單獨的ALG 代理,而且代理必須同時支持IPv4 和IPv6 兩種協議,因此缺乏靈活性。
IPv6 節點,具備IPv6 協議通信的同時,具備完全的IPv4 協議通信,我們稱之為“IPv4/IPv6節點”,即雙協議棧節點,簡稱雙棧節點。該節點既可以是主機節點也可以是路由器或其它通信節點。這里應該明確,雙棧節點是為解決IPv6節點在IPv4網絡環境中通信(或為保留IPv4 協議功能)的問題,因而以節點具備IPv6 協議通信作為先決條件。根據雙棧節點是否用于隧道協議通信,分為以下三類:(1)純雙棧節點,不具備隧道協議功能 (2)雙棧節點,只具備配置隧道功能 (3)雙棧節點,具有配置隧道、自動隧道功能。
當節點為純雙棧節點時,對其分配的IPv4,IPv6 地址沒有特別的要求,符合各自的網絡規定即可;當節點具有自動隧道功能的時候,應該為其分配IPv4 兼容的IPv6 地址。
雙棧節點與其它類型的多棧節點的工作方式相同。鏈路層接收到數據段,拆開并檢查包頭。如果IPv4/IPv6 頭中的第一個字段,即IP 數據包的版本代碼是4,則該數據包就由IPv4 協議棧來進行相關操作;相應的,版本代碼如果是6,則交給IPv6 協議棧處理。如果建立了自動隧道機制,則采用相應的技術將數據包重新整合為IPv6 數據包,由IPv6 棧來處理。
由于雙棧主機同時支持IPv4 和IPv6 兩種協議,所以當其在網絡中通信的時候需要根據情況確定使用其中的一種協議棧進行通信,這就需要制定雙協議棧的工作方式。在網絡通信過程中,目的地址是作為路由選擇的主要參數,因而,根據應用程序所使用的目的地址的協議類型對雙協議棧的工作方式作出如下規定。
若應用程序使用的目的地址為IPv4 地址,則使用IPv4 協議;假設節點A 與節點B 通信,A為雙棧節點,節點B 支持IPv4 協議。則雙棧節點A 工作方式,使用IPv4 協議與節點B 通信。
若目的地址為IPv6 地址,且為本地在線網絡,則使用IPv6 協議。IPv6 使用鄰居發現機制確定是否為本地在線網絡。
若應用程序使用的目的地址為IPv4 兼容的IPv6 地址,并且非本地在線網絡,則使用IPv4 協議,此時的IPv6 將封裝在IPv4 中。
若應用程序使用域名作為目標地址,則先從域名(DNS)服務器得到相應的IPv4/IPv6 地址,然后根據地址情況進行相應的處理。
隨著IPv6網絡規模的不斷擴大,這些工作方式必將不斷相應的得到修改和有效補充。
[1]張鴻.IPv6 時代的域名系統.CNNIC 研究開發部.2002.
[2]杜根遠,邱穎豫.基于隧道技術的IPv6 遷移策略.中國有線電視,2004.