移動IPv6
移動IPv6
是移動節點用來通知其它節點自己新的轉交地址的。移動IPv6使用迂迴路由(RR)機制實現移動節點對家鄉地址和轉交地址所有權的證明。 (2)同時移動節點從轉交地址直接發送個CoTI報文到通信節點。
它是IPv6重要的研究和應用方向之一。
移動終端要在三層網路切換的過程中保持通信暢通就必須保證移動對於通信應用的透明,即通信應用的網路層識別——IP地址保持不變。網際網路路由模式是根據網路層目的地址來進行選路,並將數據包發送到該目的地址所在的網路,從而到達該目的地址所代表的節點。網路層移動必須解決對通信應用全程使用不變IP地址的同時,對於路由使用節點當前所在網段可達的IP地址。移動IPv6巧妙地解決了這個問題。
移動IPv6對於實現通信在網路層移動過程中保持不斷的解決方案可以簡單地歸納為三點:
(1)定義了家鄉地址,上層通信應用全程使用家鄉地址保證了對應用的移動透明;
(2)定義了轉交地址,從外地網路獲得轉交地址,保證了現有路由模式下通信可達;
(3)家鄉地址與轉交地址的映射,建立了上層應用所使用的網路層標識與網路層路由所使用的目的標識之間的關係。
具體工作流程可簡單歸納如下:
當移動節點在家鄉網段中時,它與通信節點之間按照傳統的路由技術進行通信,不需要移動IPv6的介入。
當移動節點移動到外地鏈路時,移動節點的家鄉地址保持不變,同時獲得一個臨時的IP地址(即轉交地址)。移動節點把家鄉地址與轉交地址的映射告知家鄉代理。通信節點與移動節點通信仍然使用移動節點的家鄉地址,數據包仍然發往移動節點的家鄉網段;家鄉代理截獲這些數據包,並根據已獲得的映射關係通過隧道方式將其轉發給移動節點的轉交地址。移動節點則可以直接和通信節點進行通信。這個過程也叫做三角路由過程。
移動節點也會將家鄉地址與轉交地址的映射關係告知通信節點,當通信節點知道了移動節點的轉交地址就可以直接將數據包轉發到其轉交地址所在的外地網段。這樣通信節點與移動節點之間就可以直接進行正常通信。這個通信過程也被稱作路由優化后的通信過程。
返迴路由過程使得通信節點可以獲得關於移動節點在它聲明的主轉交地址和家鄉地址之間實際可達性的保證。
(2)Care-of test init用於把移動節點的轉交地址和轉交初始測試cookie通知給通信節點,源地址是移動節點的轉交地址,目的地址是通信節點的口地址。
(3)Home Test是通信節點對Home init消息的響應,源地址是通信節點的IP地址,目的地址是移動節點的家鄉地址。
(4)Care-ofTest是通信節點對Care oftest init消息的響應,源地址是通信節點的IP地址,目的地址是移動節點的轉交地址。
第二類路由頭是為移動IPv6協議定義的新的路由報頭,也是一個新的IPv6擴展報頭。通信節點使用它直接發送分組到移動節點,把移動節點的主轉交地址放在IPv6報頭的目的地址欄位,而把移動節點的家鄉地址放在第二類路由頭中。當分組到達主轉交地址時,移動節點從第二類路由頭中提取出家鄉地址,作為這個分組的最終目的地址。第二類路由頭只能攜帶一個IPv6地址,所有處理它的節點必須確認該地址是節點自身的家鄉地址,並防止該分組被轉發出去。
移動IPv6協議允許通信對端發出的分組直接路由給移動節點,不必通過家鄉代理進行轉發,解決了在移動IPv4協議中存在的三角路由問題。該機製得以實現的原因是當移動節點發生移動后,向家鄉代理髮送綁定更新消息的同時也向通信對端發送綁定更新消息,以告知通信對端自己當前的地址,通信對端獲知該地址后使用上面提到的第二類路由頭來攜帶新地址,直接向移動節點當前地址發送數據分組,避免三角路由過程,實現路由優化。
1.綁定更新請求消息
用於向移動節點請求此移動節點的綁定信息
2.家鄉測試初始消息
該消息用於啟動返迴路徑過程,並向其通信節點請求一個家鄉Cookie.
3.轉交測試初始消息
該消息用於啟動返迴路徑過程,並向其通信節點請求一個轉交Cookie.
4.家鄉測試消息
是對家鄉測試初始消息的響應,由通信節點發送給移動節點。
5.轉交測試消息
是對轉交測試初始消息的響應,由通信節點發送給移動節點。
6.綁定更新消息
是移動節點用來通知其它節點自己新的轉交地址的。
7.綁定應答消息
用來認可一個綁定更新消息的接受。
8.綁定錯誤消息
由通信節點用於發出關於移動出錯的信號。
從目前的移動主機切換技術上看主要有以下幾種類型:
1.硬切換或叫數據包的非轉發方式,這個方式是移動主機在切換到新的AP時,停止從舊的AP接受數據,立即從新的AP進行數據收發。這樣,在切換期間發往舊的AP的數據包就有可能丟失,特點是切換延遲小,丟包率大;
2.平滑切換或者稱為數據包的轉發方式,其過程是移動主機切換到新的AP時,新AP立即通告舊AP,然後舊AP把自己緩存的發向該移動主機的數據包轉發給新的AP,由新的AP轉發給移動主機。同時新AP向通信對端主機發出通告,之後數據按新的路徑傳送數據。這種方式的特點是丟失率低但切換延遲高。
3.半軟切換方式,該方式是主機移動到兩個AP小區重疊區域發生切換時,可同時與兩個AP通信,直到完全進入新的AP時才停止從舊的AP接受數據,特點是相對前兩種方式,丟包率和切換延遲低。另外這種方式主要應用於CDMA系統,對目前的WLAN技術來說理論上也可行,但實現起來困難。
1) MN 在外地鏈路上收到路由器的廣播,通過有狀態或者無狀態自動配置,獲得轉交地址。為了保證獲得的 CoA 正常可用,MN 還需要進行重複地址檢測(Duplicate Address Detection: DAD)。
2) MN 向 HA 發送綁定更新消息,在該消息中設置了家鄉註冊和確定標誌。
3) HA 返回一個綁定確認消息
4) 為了保證安全性,MN 必須進行返迴路由可達過程測試。如圖 2-7 所示,MN 使用隧道經由 HA 將家鄉測試初始(HoTI)消息發到 CN;MN 直接發送轉交測試初始(CoTI)至 CN;CN 回應家鄉測試(HoT)消息響應 HoTI;CN 回應轉交測試(CoT)消息響應 CoTI。如果 MN 是由外地鏈路移動到一條新的外地鏈路,由於只是與轉交地址相關的路徑發生了改變,所以在返迴路由可達過程中只需要交換 CoTI和 CoT 消息。
5) 返迴路由可達過程成功后,MN 向 CN 發送綁定更新
6) CN 向 MN 發送綁定確認。
實際的網路中,會存在各種對報文的竊聽或者篡改等攻擊。如果攻擊者截取了綁定報文,並且修改內容中轉交地址為攻擊者的地址,然後再繼續發送給HA或者CN,那麼攻擊者就會截取到發往移動節點的通信數據。同樣對於移動IPv6中目的選項或者路由報頭的攻擊,也會影響到通信的安全。要保證移動IPv6的通信安全,就必須保證移動IPv6的協議消息的真實性和完整性。
MN與CN的關係帶有任意性,不適合需要預先建立安全關聯的方式,因此IPSec在MN與CN之間不適用。為保證MN與CN的之間的安全性,引入了往返可路由過程。
MN與CN之間的移動IPv6協議消息包括:MN發往CN的綁定消息,CN發往MN的綁定確認。往返可路由過程的目的是要確保綁定消息中的家鄉地址和轉交地址都是真實可達的,都屬於移動節點。
MN與HA之間的關係相對固定,便於預先建立安全關聯,因此對於MN和HA之間的協議消息使用IPSec進行保護,具體的操作可以參考RFC3776。
移動 IPv6 提供了移動節點與家鄉代理之間的認證機制,以防止非法移動節點發起的會話竊取和 DoS 攻擊。公開密鑰加密和數字簽名可以用於提供家鄉代理、移動節點之間的信任關係,實現認證。
移動 IPv6 使用的默認認證演演算法是增強的 MD5 演演算法,採用前綴加後綴的模式。密鑰(通常為 128 位)放在要求認證的數據前面和後面,通過認證演演算法產生數據的一個 128位哈希值,加在認證擴展的後面,發送給認證方。如果接收方共享發送方的密鑰,只需重新計算哈希值,得到的結果與請求認證方發送的數據進行比較,如果匹配則認證成功。為了滿足對用戶數據流和機密性保護的要求,IPSec 可以用來加密家鄉代理和移動節點之間的 IP 分組。
IETF 建議兩種方法對註冊請求進行抵抗重放攻擊:時間戳和 nonce。時間戳是強制的而 nonce 是可選的。時間戳重放保護的基本原理是發送方在消息中插入當前時間,接收方檢驗時間是否足夠接近它自己的日期時間,因此要求通信雙方的時鐘必須保持同步。當使用時間戳時,移動節點發出的註冊請求中的標識號必須大於任何前面註冊請求中使用的編號;當收到具有認證擴展的註冊註冊請求時,家鄉代理必須檢查標識號的有效性。標識號中的時間戳必須足夠接近家鄉代理的日期時間。
使用 nonce 來實現重放保護的基本原理為:節點 A 在發往節點 B 的每一個消息中包含一個新的隨機數,並且檢查節點 B 是否在下一個發給 A 的消息中返回相同的數。兩個消息都使用認證編碼來保護數據不被攻擊者篡改。偽隨機數是產生 nonce 的一種方法。
移動 IPv6 中除了使用 IPSec 來完成認證和加密任務之外,還採用了返迴路由可達過程(Return Routability Procedure: RRP)來加強對通信對端綁定更新的保護。RRP 分為Home RRP 和 care of RRP。Home RRP 用來判斷 CN 是否可以通過 HA 與 MN 的 HoA進行通信,並且產生互相認同的 home cookie;care of RRP 用來判斷 CN 是否可以直接與 CN 的 CoA 進行通信,並且產生互相認同的 care of cookie。
移動IPv6的協議中,從三角路由到路由優化的通信過程包含了移動檢測,獲取轉交地址,轉交地址註冊,隧道轉發等機制,往返可路由等信令過程等。
1. 移動檢測
移動檢測分為二層移動檢測以及三層移動檢測。不論二層移動檢測採用什麼方法,移動IPv6中依靠路由通告來確定是否發生了三層移動。移動節點在家鄉網段的時候,在規定的時間間隔內能夠周期性收到路由前綴通告;移動節點從家鄉網路移動到外地網路的時候,在規定的時間間隔內不會再收到家鄉網段的路由通告,移動節點認為發生了網路層移動。
2. 獲取轉交地址
當移動節點監測到發生了網路切換時,就需要分配當前網段可達的轉交地址。獲得轉交地址的方式可以是任何傳統的IPv6地址分配方式,如無狀態自動配置方式,或者是有狀態分配方式。最簡單的方式之一就是無狀態自動配置方式,利用所接收到外地網路的路由前綴,與移動節點的介面地址合成轉交地址。
3. 轉交地址註冊
移動節點獲得轉交地址后需要將轉交地址與家鄉地址的綁定關係分別通知給家鄉代理以及正在與移動節點通信的通信節點,這個過程分別稱為家鄉代理註冊以及通信節點註冊。轉交地址的註冊主要通過綁定更新/確認消息來實現。
4. 隧道轉發機制/三角路由
移動節點已經完成家鄉代理註冊但是還沒有向通信節點註冊時,通信節點發往移動節點的數據在網路層仍然使用移動節點的家鄉地址。家鄉代理會截取這些數據包,並根據已知的移動節點轉交地址與家鄉地址的綁定關係,通過IPv6 in IPv6隧道將數據包轉發到移動節點。移動節點可以直接回復給通信節點。這個過程也叫做三角路由。
5. 往返可路由過程
往返可路由過程主要目的在於保證通信節點接收到綁定更新的真實性和可靠性,由兩個併發過程組成:家鄉測試過程和轉交測試過程。
家鄉測試過程首先由移動節點發起家鄉測試初始化消息,通過隧道經由家鄉代理轉發給通信節點,以此告知通信節點啟動家鄉測試所需的工作。通信節點收到家鄉測試初始化消息后,會利用家鄉地址及兩個隨機數Kcn與nonce,進行運算生成home keygen token,然後會利用返回給移動節點的家鄉測試消息把home keygen token以及nonce索引號告訴移動節點;
轉交測試首先是移動節點直接向通信節點發送轉交測試初始化消息,通信節點會將消息中攜帶的轉交地址與ken和nonce進行相應運算生成care-of keygen token,然後在返回移動節點的轉交測試息中攜帶care-ofkeygen token以及nonce索引號。
移動節點利用home keygen token和care-ofkeygen token生成綁定管理密鑰Kbm,再利用kbm和綁定更新消息進行相應運算生成驗證碼1,攜帶在綁定更新消息中。通信節點收到綁定更新消息后利用home keygen token,care-ofkeygen token以及nonce數,與綁定消息進行相應運算,得出驗證碼2。比較兩個驗證碼,如果相同,通信節點就可以判斷綁定消息真實可信,否則,將視為無效。
6. 動態家鄉代理地址發現過程
通常家鄉網路的前綴和家鄉代理的地址是固定的,但是也可能因為故障或其他原因出現重新配置。當家鄉網路配置改變時,身在外地的移動節點需要依靠動態家鄉代理地址發現過程發現家鄉代理的地址。這主要藉助於目的地為一個特殊anycast地址的ICMP特別消息。據了解,目前這個過程並沒有設備實現,因此也不做過多介紹,進一步了解可以參考RFC3775。
移動IPv6使用迂迴路由(RR)機制實現移動節點對家鄉地址和轉交地址所有權的證明。主要包括以下幾點:
(1)移動節點通過家鄉代理隧道發送HOTI報文到通信節點請求它對自己的家鄉地址進行測試。
(2)同時移動節點從轉交地址直接發送個CoTI報文到通信節點。
(3)通信節點接收到家鄉代理轉發的HoTI報文後會產生一個家鄉密鑰產生令牌Ka=Hkcn(HoA,Nj,0)。
(4)通信節點接收到COTI報文後產生一個轉交密鑰產生令牌Kc=Hkcn(CoA,Ni,1)。
(5)接收到HoT報文和CoT報文後.移動節點產生一個綁定管理密鑰Km=H(Ka,Kc)。任何情況下轉交地址都應該被用在CoTI報文的源地址域中。否則當通信節點接收到綁定更新報文後就可能會用錯誤的轉交密
鑰產生令牌構建Km。
隨著移動IPv6標準的制定,對基於移動IPv6的Qos的需求也日益增長。目前國際上對這方面的研究主要集中在以下幾個方面:
要考慮移動IPv6下,網路中的各個網路節點/網路功能部件的部署以及它們之間的信息交互;
主要研究移動IPv6條件下的移動節點的身份驗證、訪問控制以及相關的計費策略。這中間涉及到的訪問控制中也涵蓋了部分的Qos控制。
IETF專門為優化切換而成立了seamoby工作組,目前關於快速切換、內容轉移等方面的研究也比較活躍。
針對移動IPv6的特色,而提出適用於該環境的QoS控制信令。
移動報頭是移動IPv6定義的一個新的擴展報頭,移動節點、通信節點和家鄉代理在創建和管理綁定消息時都會用到。移動IPv6在進行通信時,為了管理其移動性,需要比IPv6交換更多的消息。所有這些消息都是封裝在IPv6的擴展報頭一移動報頭之中進行傳送的。移動報頭的格式如圖2.1所示。
移動IPv6為目的擴展報頭擴展了一個新的選項,即家鄉地址(HA)選項。其功能是:當移動節點移動到外地網路時,它與通信對端進行通信都是使用當前轉交地址,而通信對端所發出的報文也是使用的轉交地址,但運行於移動節點和通信對端上層的應用程序使用的足移動節點的家鄉地址,因此,必須在移動節點端進行地址翻轉才能保證節點的移動對上層應用透明,因此,可以利用家鄉地址選項來實現這一過程,在中繼過程中使用移動節點的轉交地址,在端系統中使用移動節點的家鄉地址。同時,家鄉地址消息還可以實現對入境過濾的支持。
為了支持家鄉代理地址的自動發現和移動配置,移動IPv6也引入了一些新的Internet控制管理協議(Intemet Control Management Protocol,ICMP)消息,包括:
1)ICMP家鄉代理地址發現請求消息和ICMP家鄉代理地址發現應答消息:用於移動節點動態發現家鄉代理的地址。
2)ICMP移動前綴請求消息和ICMP移動前綴應答消息:用於網路的重新編號和移動配置機制。
移動選項位於移動報頭的消息數據部分,跟在移動報頭的固定部分之後,它的存在與否以及數目都可以通過計算移動報頭的長度欄位得到。使用移動選項的目的是為了增加靈活性,允許某些消息的必要選項不出現在其他任何消息中。另外,也提供了按需增減移動選項的機制,既控制了移動報頭的大小,又方便了以後的擴展。
移動IPv6定義的第二類路由頭是一個新的路由頭類型,也是一個新的IPv6擴展報頭。通信對端使用第二類路由頭直接發送分組到移動節點,把移動節點的轉交地址放在IPv6報頭的目的地址欄位,而把移動節點的家鄉地址放在第二類路由頭中。當分組到達轉交地址時,移動節點從第二類路由頭提取家鄉地址,作為這個分組的最終目的地址。
1.移動IPv6不需要外地代理的支持
2.移動IPv6支持路由優化
3.移動IPv6路由優化不需要預先指定的安全機制
4.移動IPv6允許路由優化使得路由器兼顧效率和“入口過濾”
5.移動IPv6在移動節點不在本地網路時通過IPv6路由頭部而不是隧道來路由
6.移動IPv6不需要使用ARP,這也增加了其健壯性
7.移動IPv6不需要維持隧道軟狀態
8.移動IPv6的動態本地代理地址發現機制返回單獨一個回應。而移動IPv4中採用廣播的方法,這時本地網路中的所有本地代理都會分別返回回應。
IETF對於移動IPv6的研究主要分為兩個工作組:Mobility for IPv6(mipv6)工作組和MIPv6 Signaling and Handoff Optimization(mipshop)工作組。目前,mipv6工作組已經提交了9份RFC,而其他的研究工作還都在草案狀態中:mipshop工作組也已經提交了3份RFC。
目前,IETF是IPv6標準制定工作的主體,在近期這種狀況不會改變。IETF的IPv6研究熱點在於移動IPv6、流標籤、定址、DNS、DNS發現、多連接子網、Multhoming、源地址和目的地址選擇、IPv6MIB等領域。但是,鑒於IPv6的重要性和對下一代網路的巨大影響,越來越多的國際標準化組織加入1Pv6標準的制定工作。對於IPv6標準,3GPP和ITU.T也成立了相應的工作組,其中尤其需要關注的是3GPP。從傳統意義上來說,網際網路和移動通信是兩個不同的行業,但隨著IP技術的發展,尤其是第三代移動通信全IP解決方案的提出,IPv6成為網際網路和移動通信網的公用基本協議。因而,儘管IPv6標準發源於網際網路行業,但是從商業意義上來講,移動通信行業可能是最早和最大的受益方之一。因此,IETF和3GPP聯合組成了一個工作組來協調IPv6標準在第三代移動通信系統中的應用。
(1)移動節點(M0bile Node,MN):具備移動功能並且能夠從一個網路鏈路移動到另一個網路鏈路而仍保持通信的節點;
(2)家鄉地址mome Addfess):移動節點在本節點從屬網路上分配得到的IP地址;
(3)家鄉子網前綴:對應於移動節點家鄉地址的IP子網前綴;
(4)家鄉網路阻omeNetwork):定義移動節點家鄉子網前綴的網路。標準IP路由機制將發往移動節點的家鄉地址的數據包發送到移動節點的家鄉鏈路。
(5)外地網路(foreign network):對應於移動節點除了家鄉網路以外的網路;
(6)轉交地址(Care_of address,coA):由於移動節點的移動性,要想使通信順利進行,移動節點還必須綁定另一個IP地址,這就是轉交地址。發往移動節點的數據包由這個地址來轉交。轉交地址可以被認為是移動節點拓撲結構意義上的地址。轉交地址的前綴是外地子網前綴。
(7)綁定(binding):移動節點在外地網路中的家鄉地址與轉交地址的關聯,在每個綁定中還有這個關聯所剩餘的“生存時間”等欄位。
(8)家鄉代理(home agent):移動節點家鄉鏈路上的一個路由器,移動節點向其註冊了當前的轉交地址。當移動節點不在家鄉時,家鄉代理截獲家鄉鏈路上發往移動節點的數據包,進行封裝后。通過隧道發送給移動節點註冊的轉交地址;
(9)通信對端(Correspondent Node,CN):與移動節點進行通信的對端節點,該節點既可以是靜止的,也可以是移動的。
(10)回返路由過程(Return Routability Procedure):該過程通過使用密鑰標記交換來授權綁定過程:這個過程使通信對端節點可以獲得某種程度上的保證:移動節點在它宣稱的轉交地址以及家鄉地址上都是可達的。只有得到這種保證后,通信對端:霄點才能夠接受從移動節點來的綁定更新,然後指示通信對端把數據報文轉發到移動節點宣稱的轉交地址。這是通過測試發送到這兩個宣稱地址的報文能否到達移動節點來完成的。只有移動節點提供了收到了確定的證據后才能夠通過這項測試:
(11)綁定管理密鑰(Binding Management Key,Kbm):用於授權綁定緩存管理消息的密鑰。回返路由測試提供了創建綁定管理密鑰的一種方法;
(12)生成密鑰標記(Keygen Token):由通信對端節點在回返路由測試過程中提供的一個數字,該數字可以使移動節點來計算必要的綁定管理密鑰來授權一個綁定更新;