移動(dòng)IPv6技術(shù)解析

相關(guān)專題: 無(wú)線 中國(guó)聯(lián)通

摘要 本文首先詳細(xì)分析了移動(dòng)IPv6技術(shù)的基本原理,關(guān)鍵過(guò)程以及安全考慮等。在此基礎(chǔ)上,就移動(dòng)IPv6目前存在的問(wèn)題作了深入探討。最后,介紹了移動(dòng)IPv6現(xiàn)狀并對(duì)其發(fā)展作了展望。

關(guān)鍵詞 移動(dòng)IPv6 移動(dòng)節(jié)點(diǎn)* 通信節(jié)點(diǎn)* 家鄉(xiāng)代理* 往返可路由過(guò)程

1、引言

  下一代網(wǎng)絡(luò)的發(fā)展方向之一是向多元化的無(wú)縫寬帶接入網(wǎng)絡(luò)演進(jìn),各種有線、無(wú)線接入方式對(duì)于用戶業(yè)務(wù)體驗(yàn)需要提供通用的移動(dòng)性,使用戶隨時(shí)隨地可以享受到統(tǒng)一的業(yè)務(wù)特性。

  移動(dòng)終端要在三層網(wǎng)絡(luò)切換的過(guò)程中保持通信暢通就必須保證移動(dòng)對(duì)于通信應(yīng)用的透明,即通信應(yīng)用的網(wǎng)絡(luò)層識(shí)別——IP地址保持不變;ヂ(lián)網(wǎng)路由模式是根據(jù)網(wǎng)絡(luò)層目的地址來(lái)進(jìn)行選路,并將數(shù)據(jù)包發(fā)送到該目的地址所在的網(wǎng)絡(luò),從而到達(dá)該目的地址所代表的節(jié)點(diǎn)。網(wǎng)絡(luò)層移動(dòng)必須解決對(duì)通信應(yīng)用全程使用不變IP地址的同時(shí),對(duì)于路由使用節(jié)點(diǎn)當(dāng)前所在網(wǎng)段可達(dá)的IP地址。移動(dòng)IPv6巧妙地解決了這個(gè)問(wèn)題。

2、移動(dòng)IPv6基本工作原理

  移動(dòng)IPv6對(duì)于實(shí)現(xiàn)通信在網(wǎng)絡(luò)層移動(dòng)過(guò)程中保持不斷的解決方案可以簡(jiǎn)單地歸納為三點(diǎn):

  (1)定義了家鄉(xiāng)地址,上層通信應(yīng)用全程使用家鄉(xiāng)地址保證了對(duì)應(yīng)用的移動(dòng)透明;

  (2)定義了轉(zhuǎn)交地址,從外地網(wǎng)絡(luò)獲得轉(zhuǎn)交地址,保證了現(xiàn)有路由模式下通信可達(dá);

  (3)家鄉(xiāng)地址與轉(zhuǎn)交地址的映射,建立了上層應(yīng)用所使用的網(wǎng)絡(luò)層標(biāo)識(shí)與網(wǎng)絡(luò)層路由所使用的目的標(biāo)識(shí)之間的關(guān)系。

  具體工作流程可簡(jiǎn)單歸納如下:

  當(dāng)移動(dòng)節(jié)點(diǎn)在家鄉(xiāng)網(wǎng)段中時(shí),它與通信節(jié)點(diǎn)之間按照傳統(tǒng)的路由技術(shù)進(jìn)行通信,不需要移動(dòng)IPv6的介入。

  當(dāng)移動(dòng)節(jié)點(diǎn)移動(dòng)到外地鏈路時(shí),移動(dòng)節(jié)點(diǎn)的家鄉(xiāng)地址保持不變,同時(shí)獲得一個(gè)臨時(shí)的IP地址(即轉(zhuǎn)交地址)。移動(dòng)節(jié)點(diǎn)把家鄉(xiāng)地址與轉(zhuǎn)交地址的映射告知家鄉(xiāng)代理。通信節(jié)點(diǎn)與移動(dòng)節(jié)點(diǎn)通信仍然使用移動(dòng)節(jié)點(diǎn)的家鄉(xiāng)地址,數(shù)據(jù)包仍然發(fā)往移動(dòng)節(jié)點(diǎn)的家鄉(xiāng)網(wǎng)段;家鄉(xiāng)代理截獲這些數(shù)據(jù)包,并根據(jù)已獲得的映射關(guān)系通過(guò)隧道方式將其轉(zhuǎn)發(fā)給移動(dòng)節(jié)點(diǎn)的轉(zhuǎn)交地址。移動(dòng)節(jié)點(diǎn)則可以直接和通信節(jié)點(diǎn)進(jìn)行通信。這個(gè)過(guò)程也叫做三角路由過(guò)程。

  移動(dòng)節(jié)點(diǎn)也會(huì)將家鄉(xiāng)地址與轉(zhuǎn)交地址的映射關(guān)系告知通信節(jié)點(diǎn),當(dāng)通信節(jié)點(diǎn)知道了移動(dòng)節(jié)點(diǎn)的轉(zhuǎn)交地址就可以直接將數(shù)據(jù)包轉(zhuǎn)發(fā)到其轉(zhuǎn)交地址所在的外地網(wǎng)段。這樣通信節(jié)點(diǎn)與移動(dòng)節(jié)點(diǎn)之間就可以直接進(jìn)行正常通信。這個(gè)通信過(guò)程也被稱作路由優(yōu)化后的通信過(guò)程。

3、移動(dòng)IPv6的安全考慮

  上述移動(dòng)IPv6的基本工作過(guò)程只是針對(duì)于理想狀態(tài)的互聯(lián)網(wǎng),并沒(méi)有考慮安全方面的問(wèn)題。實(shí)際的網(wǎng)絡(luò)中,會(huì)存在各種對(duì)報(bào)文的竊聽或者篡改等攻擊。如果攻擊者截取了綁定報(bào)文,并且修改內(nèi)容中轉(zhuǎn)交地址為攻擊者的地址,然后再繼續(xù)發(fā)送給HA或者CN,那么攻擊者就會(huì)截取到發(fā)往移動(dòng)節(jié)點(diǎn)的通信數(shù)據(jù)。同樣對(duì)于移動(dòng)IPv6中目的選項(xiàng)或者路由報(bào)頭的攻擊,也會(huì)影響到通信的安全。要保證移動(dòng)IPv6的通信安全,就必須保證移動(dòng)IPv6的協(xié)議消息的真實(shí)性和完整性。

  MN與CN的關(guān)系帶有任意性,不適合需要預(yù)先建立安全關(guān)聯(lián)的方式,因此IPSec在MN與CN之間不適用。為保證MN與CN的之間的安全性,引入了往返可路由過(guò)程。

  MN與CN之間的移動(dòng)IPv6協(xié)議消息包括:MN發(fā)往CN的綁定消息,CN發(fā)往MN的綁定確認(rèn)。往返可路由過(guò)程的目的是要確保綁定消息中的家鄉(xiāng)地址和轉(zhuǎn)交地址都是真實(shí)可達(dá)的,都屬于移動(dòng)節(jié)點(diǎn)。

  MN與HA之間的關(guān)系相對(duì)固定,便于預(yù)先建立安全關(guān)聯(lián),因此對(duì)于MN和HA之間的協(xié)議消息使用IPSec進(jìn)行保護(hù),具體的操作可以參考RFC3776,本文不再贅述。

4、移動(dòng)IPv6的關(guān)鍵過(guò)程

  移動(dòng)IPv6的協(xié)議中,從三角路由到路由優(yōu)化的通信過(guò)程包含了移動(dòng)檢測(cè),獲取轉(zhuǎn)交地址,轉(zhuǎn)交地址注冊(cè),隧道轉(zhuǎn)發(fā)等機(jī)制,往返可路由等信令過(guò)程等。

  4.1 移動(dòng)檢測(cè)

  移動(dòng)檢測(cè)分為二層移動(dòng)檢測(cè)以及三層移動(dòng)檢測(cè)。不論二層移動(dòng)檢測(cè)采用什么方法,移動(dòng)IPv6中依靠路由通告來(lái)確定是否發(fā)生了三層移動(dòng)。移動(dòng)節(jié)點(diǎn)在家鄉(xiāng)網(wǎng)段的時(shí)候,在規(guī)定的時(shí)間間隔內(nèi)能夠周期性收到路由前綴通告;移動(dòng)節(jié)點(diǎn)從家鄉(xiāng)網(wǎng)絡(luò)移動(dòng)到外地網(wǎng)絡(luò)的時(shí)候,在規(guī)定的時(shí)間間隔內(nèi)不會(huì)再收到家鄉(xiāng)網(wǎng)段的路由通告,移動(dòng)節(jié)點(diǎn)認(rèn)為發(fā)生了網(wǎng)絡(luò)層移動(dòng)。

  4.2 獲取轉(zhuǎn)交地址

  當(dāng)移動(dòng)節(jié)點(diǎn)監(jiān)測(cè)到發(fā)生了網(wǎng)絡(luò)切換時(shí),就需要分配當(dāng)前網(wǎng)段可達(dá)的轉(zhuǎn)交地址。獲得轉(zhuǎn)交地址的方式可以是任何傳統(tǒng)的IPv6地址分配方式,如無(wú)狀態(tài)自動(dòng)配置方式,或者是有狀態(tài)分配方式。最簡(jiǎn)單的方式之一就是無(wú)狀態(tài)自動(dòng)配置方式,利用所接收到外地網(wǎng)絡(luò)的路由前綴,與移動(dòng)節(jié)點(diǎn)的接口地址合成轉(zhuǎn)交地址。

  4.3 轉(zhuǎn)交地址注冊(cè)

  移動(dòng)節(jié)點(diǎn)獲得轉(zhuǎn)交地址后需要將轉(zhuǎn)交地址與家鄉(xiāng)地址的綁定關(guān)系分別通知給家鄉(xiāng)代理以及正在與移動(dòng)節(jié)點(diǎn)通信的通信節(jié)點(diǎn),這個(gè)過(guò)程分別稱為家鄉(xiāng)代理注冊(cè)以及通信節(jié)點(diǎn)注冊(cè)。轉(zhuǎn)交地址的注冊(cè)主要通過(guò)綁定更新/確認(rèn)消息來(lái)實(shí)現(xiàn)。

  4.4 隧道轉(zhuǎn)發(fā)機(jī)制/三角路由

  移動(dòng)節(jié)點(diǎn)已經(jīng)完成家鄉(xiāng)代理注冊(cè)但是還沒(méi)有向通信節(jié)點(diǎn)注冊(cè)時(shí),通信節(jié)點(diǎn)發(fā)往移動(dòng)節(jié)點(diǎn)的數(shù)據(jù)在網(wǎng)絡(luò)層仍然使用移動(dòng)節(jié)點(diǎn)的家鄉(xiāng)地址。家鄉(xiāng)代理會(huì)截取這些數(shù)據(jù)包,并根據(jù)已知的移動(dòng)節(jié)點(diǎn)轉(zhuǎn)交地址與家鄉(xiāng)地址的綁定關(guān)系,通過(guò)IPv6 in IPv6隧道將數(shù)據(jù)包轉(zhuǎn)發(fā)到移動(dòng)節(jié)點(diǎn)。移動(dòng)節(jié)點(diǎn)可以直接回復(fù)給通信節(jié)點(diǎn)。這個(gè)過(guò)程也叫做三角路由。

  4.5 往返可路由過(guò)程

  往返可路由過(guò)程主要目的在于保證通信節(jié)點(diǎn)接收到綁定更新的真實(shí)性和可靠性,由兩個(gè)并發(fā)過(guò)程組成:家鄉(xiāng)測(cè)試過(guò)程和轉(zhuǎn)交測(cè)試過(guò)程。

  家鄉(xiāng)測(cè)試過(guò)程首先由移動(dòng)節(jié)點(diǎn)發(fā)起家鄉(xiāng)測(cè)試初始化消息,通過(guò)隧道經(jīng)由家鄉(xiāng)代理轉(zhuǎn)發(fā)給通信節(jié)點(diǎn),以此告知通信節(jié)點(diǎn)啟動(dòng)家鄉(xiāng)測(cè)試所需的工作。通信節(jié)點(diǎn)收到家鄉(xiāng)測(cè)試初始化消息后,會(huì)利用家鄉(xiāng)地址及兩個(gè)隨機(jī)數(shù)Kcn與nonce,進(jìn)行運(yùn)算生成home keygen token,然后會(huì)利用返回給移動(dòng)節(jié)點(diǎn)的家鄉(xiāng)測(cè)試消息把home keygen token*以及nonce索引號(hào)告訴移動(dòng)節(jié)點(diǎn);

  轉(zhuǎn)交測(cè)試首先是移動(dòng)節(jié)點(diǎn)直接向通信節(jié)點(diǎn)發(fā)送轉(zhuǎn)交測(cè)試初始化消息,通信節(jié)點(diǎn)會(huì)將消息中攜帶的轉(zhuǎn)交地址與ken和nonce進(jìn)行相應(yīng)運(yùn)算生成care-of keygen token*,然后在返回移動(dòng)節(jié)點(diǎn)的轉(zhuǎn)交測(cè)試息中攜帶care-ofkeygen token以及nonce索引號(hào)。

  移動(dòng)節(jié)點(diǎn)利用home keygen token和care-ofkeygen token生成綁定管理密鑰Kbm,再利用kbm和綁定更新消息進(jìn)行相應(yīng)運(yùn)算生成驗(yàn)證碼1,攜帶在綁定更新消息中。通信節(jié)點(diǎn)收到綁定更新消息后利用home keygen token,care-ofkeygen token以及nonce數(shù),與綁定消息進(jìn)行相應(yīng)運(yùn)算,得出驗(yàn)證碼2。比較兩個(gè)驗(yàn)證碼,如果相同,通信節(jié)點(diǎn)就可以判斷綁定消息真實(shí)可信,否則,將視為無(wú)效。

  4.6 動(dòng)態(tài)家鄉(xiāng)代理地址發(fā)現(xiàn)過(guò)程

  通常家鄉(xiāng)網(wǎng)絡(luò)的前綴和家鄉(xiāng)代理的地址是固定的,但是也可能因?yàn)楣收匣蚱渌虺霈F(xiàn)重新配置。當(dāng)家鄉(xiāng)網(wǎng)絡(luò)配置改變時(shí),身在外地的移動(dòng)節(jié)點(diǎn)需要依靠動(dòng)態(tài)家鄉(xiāng)代理地址發(fā)現(xiàn)過(guò)程發(fā)現(xiàn)家鄉(xiāng)代理的地址。這主要借助于目的地為一個(gè)特殊anycast地址的ICMP特別消息。據(jù)了解,目前這個(gè)過(guò)程并沒(méi)有設(shè)備實(shí)現(xiàn),因此也不做過(guò)多介紹,進(jìn)一步了解可以參考RFC3775。

  圖1示出了移動(dòng)IPv6的過(guò)程。

圖1 移動(dòng)IPv6過(guò)程圖解*

5、移動(dòng)IPv6所面臨的問(wèn)題

  5.1 安全

  MIPv6中規(guī)定了以IPSec來(lái)進(jìn)行MN與HA之間協(xié)議消息保護(hù),此外對(duì)于數(shù)據(jù)消息也可以用IPSec進(jìn)行保護(hù)。但是在IPv6中真正啟用IPSec的很少,MIPv6中應(yīng)用IPSec就更少了。一方面是由于各系統(tǒng)對(duì)IPSec for IPv6的支持還不到位,另一方面IPSec的應(yīng)用主要適用于IPSec VPN之類的公司用戶應(yīng)用。對(duì)于個(gè)人用戶,IPSec的配置還是比較繁瑣。如何能使IPSec易于配置,廣泛應(yīng)用起來(lái),這也是移動(dòng)IPv6要解決的一個(gè)問(wèn)題。此外,對(duì)于如何驗(yàn)證MN與HA之間的協(xié)議消息,已經(jīng)提出了其他的草案。安全問(wèn)題仍然是MIPv6的研究熱點(diǎn)之一。

  5.2 快速切換

  移動(dòng)IPv6的目的是為了使在移動(dòng)過(guò)程中通信仍然能夠保持和流暢,這就意味著在網(wǎng)絡(luò)切換的過(guò)程對(duì)丟包和時(shí)延的要求比較苛刻。對(duì)于交互式語(yǔ)音通信,可以接受的雙向時(shí)延小于300ms,丟包率小于3%。但是目前MIPv6實(shí)現(xiàn)的試驗(yàn)結(jié)果并不理想,切換速度一般在3-4s。

  為了減小切換的時(shí)延,RFC3775中規(guī)定了在實(shí)現(xiàn)MIPv6網(wǎng)絡(luò)中各網(wǎng)段的接入接入路由器的路由前綴通告的間隔范圍:min=0.03ms,max=0.07ms。而普通的IPv6網(wǎng)絡(luò)中,這個(gè)參數(shù)的值在min=(3s,0.75*max),max=(4s,600s)。頻繁的路由通告可以使移動(dòng)節(jié)點(diǎn)快速檢測(cè)到網(wǎng)段遷移,啟動(dòng)移動(dòng)IPv6的后續(xù)過(guò)程;但是頻繁的路由通告也使MIPv6的通信效率有所降低。此外,業(yè)界針對(duì)快速切換還提出了層次化移動(dòng)IPv6的概念。所有的這些措施,都還需要進(jìn)一步的評(píng)估檢驗(yàn)。

  5.3 實(shí)現(xiàn)

  目前,Linux系統(tǒng)中對(duì)IPv6的支持是基于2.4系列內(nèi)核的,已經(jīng)基本實(shí)現(xiàn)對(duì)RFC3775的支持,但是由于沒(méi)有支持IPSec for IPv6,Linux系統(tǒng)的MN/HA并不能使用IPSec保護(hù)MIPv6的通信安全。不過(guò),Linux現(xiàn)在正在進(jìn)行2.6系列內(nèi)核的操作系統(tǒng)中對(duì)MIPv6的支持,屆時(shí),Linux MIPv6將可以使用IPSec功能。

  Cisco,Nokia等廠家的網(wǎng)絡(luò)設(shè)備也實(shí)現(xiàn)了對(duì)MIPv6提供了基本的支持。

  5.4 應(yīng)用

  移動(dòng)IPv6與IPv6共同描繪出一個(gè)美好的移動(dòng)數(shù)據(jù)應(yīng)用的未來(lái)。各種家用電器、手持設(shè)備、車載系統(tǒng)、以及傳感系統(tǒng)、通信終端等都可以通過(guò)網(wǎng)絡(luò)進(jìn)行任何時(shí)間,任何地點(diǎn),保持豐富的信息傳送。但是移動(dòng)IPv6從提出到現(xiàn)在近10年的時(shí)間里,還沒(méi)有過(guò)真正的商業(yè)部署。一方面,IPv6的網(wǎng)絡(luò)和應(yīng)用并沒(méi)有大規(guī)模鋪開。另一方面,移動(dòng)IPv6的應(yīng)用很多都是面向未來(lái)的,比如日本在研究的AD HOC的ITS系統(tǒng),不是近2~3年內(nèi)就能夠?yàn)橥茝V應(yīng)用的,也就是說(shuō)一些移動(dòng)IPv6的應(yīng)用是以IPv6數(shù)字生活為前提的。

  至于何時(shí)移動(dòng)IPv6所描繪出來(lái)的無(wú)所不在的流暢通信時(shí)代才能走進(jìn)千家萬(wàn)戶,還很難給出一個(gè)確切的估計(jì),但是很明確的是這中間還有很多方面需要努力。

6、結(jié)束語(yǔ)

  移動(dòng)IPv6真正推廣,一方面需要借助下一代網(wǎng)絡(luò)的快速發(fā)展需求,如多模終端的應(yīng)用,IPv6業(yè)務(wù)的普及等。另一方面也需要克服目前存在的一些問(wèn)題,具體而言,移動(dòng)IPv6的發(fā)展需要先解決當(dāng)前業(yè)務(wù)研究方向中遇到的技術(shù)問(wèn)題(便于配置和部署的信令安全方案;快速和平滑的切換方案;移動(dòng)過(guò)程中保持統(tǒng)一的AAA策略的解決方案;移動(dòng)過(guò)程中保持統(tǒng)一QoS策略的解決方案;動(dòng)態(tài)域名解決方案等),然后才能做好業(yè)務(wù)解決方案。

  此外,移動(dòng)IPv6為特色的業(yè)務(wù)普及還需要一個(gè)成熟的技術(shù)和業(yè)務(wù)環(huán)境條件,包括:異質(zhì)接入網(wǎng)絡(luò)的融合,包括各種有線、無(wú)線接入方式之間的切換;統(tǒng)一的或者良好互通的后臺(tái)管理系統(tǒng);多模終端的應(yīng)用;IPv6網(wǎng)絡(luò)的部署以及業(yè)務(wù)的普及應(yīng)用;NGI移動(dòng)數(shù)據(jù)業(yè)務(wù)廣泛應(yīng)用等。

  如果失去了這些前提條件,移動(dòng)IPv6的技術(shù)將失去發(fā)展的空間。移動(dòng)IPv6的標(biāo)準(zhǔn)歷經(jīng)至少24版RFC Draft,于2004年6月終于標(biāo)準(zhǔn)化成為RFC3775。2005年6月,日本的IPv6促進(jìn)協(xié)會(huì)啟動(dòng)了“IPv6 Ready”二期認(rèn)證,主要是增加了對(duì)MIPv6和IPSec的認(rèn)證,這將有利于推動(dòng)移動(dòng)IPv6的發(fā)展。期待在不久的將來(lái)結(jié)合移動(dòng)IPv6,將有更豐富的移動(dòng)數(shù)據(jù)業(yè)務(wù)或者業(yè)務(wù)特性提供給用戶體驗(yàn)。

  注:*移動(dòng)節(jié)點(diǎn):指發(fā)生網(wǎng)絡(luò)切換的網(wǎng)絡(luò)節(jié)點(diǎn)。

  *通信節(jié)點(diǎn):指與移動(dòng)節(jié)點(diǎn)進(jìn)行通信的對(duì)端網(wǎng)絡(luò)節(jié)點(diǎn)。

  *家鄉(xiāng)代理:指能夠接受移動(dòng)節(jié)點(diǎn)的綁定消息并且能夠截取發(fā)往移動(dòng)節(jié)點(diǎn)家鄉(xiāng)地址的數(shù)據(jù)包然后將這些數(shù)據(jù)包轉(zhuǎn)發(fā)給移動(dòng)節(jié)點(diǎn)的路由器。

  *home keygen token:home keygen token=First(64,HMAC_SHA1(Kcn,(home address|nonce|0)))

  *care-of keygen token:First(64,HMAC_SHA1(Kcn,(care-ofaddress|nonce|1)))

  *左邊的側(cè)括號(hào)標(biāo)明的是信令過(guò)程,右邊的側(cè)括號(hào)標(biāo)明的是數(shù)據(jù)過(guò)程。淺字體的表示為信令消息,深字體為數(shù)據(jù)消息。很多時(shí)候,信令消息是攜帶在數(shù)據(jù)消息中的。

作者:張榮 來(lái)源:中國(guó)聯(lián)通網(wǎng)站


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料

本周熱點(diǎn)本月熱點(diǎn)

 

  最熱通信招聘

  最新招聘信息