林勇 福建省郵電規(guī)劃設計院
摘要:本文主要介紹移動IPv4技術的基本工作原理及代理發(fā)現(xiàn)、注冊、隧道技術和路由選擇等,并簡單介紹移動IPv6中出現(xiàn)的技術新特點,最后展望其美好前景。
關鍵詞:移動節(jié)點;本地代理;本地地址;轉(zhuǎn)交地址
1 引言
當今世界,因特網(wǎng)的網(wǎng)絡規(guī)模正以驚人的速度不斷擴大,同時移動通信也在突飛猛進的向前發(fā)展。越來越多的移動用戶都希望能夠以更加靈活的方式接入到因特網(wǎng)中去,而不受到時空的限制。移動IP技術正是適應這種需求而產(chǎn)生的一種新的支持移動用戶和因特網(wǎng)連接的互連技術,它能夠使移動用戶在移動自己位置的同時無需中斷正在進行的因特網(wǎng)網(wǎng)絡通信,因此成為當前業(yè)界研究的熱點問題。
2 基本工作原理
傳統(tǒng)的IP技術是針對固定節(jié)點之間的相互通信而言的,不再適用于移動節(jié)點,因此IETF的網(wǎng)絡工作組在1996年10月提出了RFC2002標準,其中較為詳細地闡述了移動IP的原理、實現(xiàn)以及各種細節(jié)問題。簡單地講,移動IP就是能讓網(wǎng)絡節(jié)點在移動的同時不斷開連接,并且還能正確收發(fā)數(shù)據(jù)包。
。1)功能實體
在移動IP中定義了三種功能實體:
*移動節(jié)點:是指一個主機或路由器,當它在切換鏈路時可以不改變IP地址而仍能保持正在進行的通信。
*本地代理:是指一個連接到移動節(jié)點本地網(wǎng)絡的主機或路由器,它保存有移動節(jié)點的位置信息,當移動節(jié)點離開本地網(wǎng)絡時能夠?qū)l(fā)往移動節(jié)點的數(shù)據(jù)包傳給移動節(jié)點。
*外地代理:是指移動節(jié)點當前的所在的外地網(wǎng)絡上的一個主機或路由器,它能夠把由本地代理送來的數(shù)據(jù)包轉(zhuǎn)發(fā)給移動節(jié)點。
。2)工作機制
在移動IP協(xié)議中,每一個移動節(jié)點都有一個唯一的本地地址,當移動節(jié)點移動時它的本地地址是不變的,在本地網(wǎng)絡鏈路上每一個本地節(jié)點還必須有一個本地代理來為它維護當前的位置信息,這就需要引入轉(zhuǎn)交地址。當移動節(jié)點連接到外地網(wǎng)絡鏈路上時,轉(zhuǎn)交地址就用來標識移動節(jié)點現(xiàn)在所處的位置,以便進行路由選擇。移動節(jié)點的本地地址與當前轉(zhuǎn)交地址的聯(lián)合稱做移動綁定或簡稱綁定。當移動節(jié)點得到一個新的轉(zhuǎn)交地址時,通過綁定向本地代理進行注冊,以便讓本地代理即時了解移動節(jié)點的當前位置。
當移動節(jié)點連接在本地網(wǎng)絡鏈路上時,移動節(jié)點的工作機制和固定節(jié)點一樣,不運用移動IP功能。當移動節(jié)點到外地網(wǎng)絡鏈路上時,它通常情況下使用一個稱做“代理發(fā)現(xiàn)”的規(guī)程在外地鏈路上發(fā)現(xiàn)一個外地代理,并向這個外地代理進行注冊,把這個外地代理的IP地址作為自己的轉(zhuǎn)交地址,移動節(jié)點通過這種方式獲得轉(zhuǎn)交地址的情況較為普遍。但在有些子網(wǎng)中可能沒有配備代理節(jié)點,這時就需要采用其它方法如DHCP(動態(tài)主機配置協(xié)議)或是手工配置的方法在外地鏈路上獲得一個臨時IP地址作為自己的轉(zhuǎn)交地址。移動節(jié)點通過上述兩種方法獲得轉(zhuǎn)交地址后,再通過注冊規(guī)程把自己的轉(zhuǎn)交地址告訴本地代理。這樣當有發(fā)往移動節(jié)點本地地址的數(shù)據(jù)包時,本地代理便截取該數(shù)據(jù)包,并根據(jù)注冊的轉(zhuǎn)交地址,通過隧道將數(shù)據(jù)包傳送給移動節(jié)點。但是由移動節(jié)點發(fā)出的數(shù)據(jù)包是可以直接選路到目的的節(jié)點上的,無需隧道技術。
3代理發(fā)現(xiàn)
移動IP是使用擴展的“ICMP路由器發(fā)現(xiàn)”機制作為代理發(fā)現(xiàn)的主要機制。代理發(fā)現(xiàn)機制能夠使移動節(jié)點檢測出它是在本地網(wǎng)絡鏈路上還是外地網(wǎng)絡鏈路上,并且當移動節(jié)點移動到一個新的網(wǎng)絡鏈路上時,代理發(fā)現(xiàn)機制還能為它找到一個合適的外地代理。代理發(fā)現(xiàn)有兩種消息:一種是代理發(fā)送的周期性的代理廣告消息,另一種是移動節(jié)點發(fā)送的代理請求消息。
本地代理和外地代理在自己所連接的網(wǎng)絡上周期性地廣播代理廣告消息,以聲明自己的存在。移動節(jié)點監(jiān)聽到這些消息后,就可以判斷自己是在本地網(wǎng)絡上還是在外地網(wǎng)絡上,并且判斷有哪些本地代理或是外地代理連接在它目前所在的網(wǎng)絡上,如果移動節(jié)點發(fā)現(xiàn)自己仍在本地網(wǎng)絡上,即收到本地代理發(fā)來的代理廣告消息,則不啟動移動IP功能。如果是從外地網(wǎng)絡返回本地網(wǎng)絡,則向本地代理進行注冊。如果移動節(jié)點檢測到它已移動到一個新的外地網(wǎng)絡上,則通過注冊獲得轉(zhuǎn)交地址,移動節(jié)點得到這人轉(zhuǎn)交地址后再通過綁定向本地代理進行注冊,以便讓本人代理存儲移動節(jié)點的當前位置。
如果移動節(jié)點在一段時間內(nèi)沒有收到相應的代理廣告消息,則應向它所在的網(wǎng)絡發(fā)送代理請求消息,以便讓鏈路上的所有代理立即廣播代理廣告消息。
4注冊
移動IP的注冊過程一般是在代理發(fā)現(xiàn)機制完成之后進行的。一旦移動節(jié)點發(fā)現(xiàn)它的網(wǎng)絡接入點從一條鏈路切換到另一條鏈路時,它就要進行注冊。另外,由于注冊信息有一定的生存時間,所有即使移動節(jié)點沒有發(fā)生移動也要進行注冊。
移動IP的注冊功能有:1、移動節(jié)點通過注冊可以得到外地鏈路上外地理代理的路由服務;2、移動節(jié)點通過注冊可以把它的轉(zhuǎn)交地址通知本地代理;3、移動節(jié)點通過注冊可以使一個要過期的注冊重新生效;4、在先前不知道本地代理的情況下,移動節(jié)點可以通過注冊動態(tài)地得到本地代理的地址;5、移動節(jié)點可以同時注冊多個轉(zhuǎn)交地址,此時本地代理將把發(fā)往移動節(jié)點本地地址的數(shù)據(jù)包通過隧道發(fā)往移動節(jié)點的每個轉(zhuǎn)交地址。
移動IP注冊包括兩種注冊消息:注冊請求和注冊應答。注冊消息放在UDP的數(shù)據(jù)部分,UDP數(shù)據(jù)段則放在IP包的凈荷中。
移動IP的注冊過程是用于通知本地代理通過隧道向移動節(jié)點發(fā)送數(shù)據(jù)包的。如果不采用安全保障措施,又有一個惡意主機用戶故意發(fā)送一條假注冊請求消息給本地代理,那么所有的數(shù)據(jù)包就有可能全部送到惡意用戶那里。因此安全性問題就成為移動IP技術中的重要組成部分,它通過注冊消息結構中的擴展字段對注冊消息進行安全認證。
5隧道技術
隧道技術是移動IP技術中的重要內(nèi)容,隧道技術有三種:IP的IP封裝、IP的最小封裝和通用路由封裝。
IP的IP封裝由RFC2003定義,用于將整個原始IPv4數(shù)據(jù)包放在另一個IPv4數(shù)據(jù)包凈荷部分中。它在原始IPv4數(shù)據(jù)包的現(xiàn)有報頭前插入了一個外層IP報頭,外層報頭中的源地址和目的地址分別標識隧道中的兩個邊界節(jié)點。內(nèi)層IP報頭(即原始IPv4數(shù)據(jù)包報頭)中的源地址和目的地址則分別標識原始數(shù)據(jù)包的發(fā)送節(jié)點和接收節(jié)點。移動IP要求本地代理和外地代理實現(xiàn)IP的IP封裝,以實現(xiàn)從本地代理至轉(zhuǎn)交地址的隧道。
IP的最小封裝由RFC2004定義,是移動IP中可選的隧道方式。它通過將IP的IP封裝中內(nèi)層IP報頭和外層IP報頭的冗余部分去掉,以減少實現(xiàn)隧道所需的額外字節(jié)數(shù)。但使用這種封裝技術有一個前提,就是原始的數(shù)據(jù)包不能已經(jīng)被分片,因為IP的最小封裝技術在新的IP報頭和凈荷之間插入了一個最小轉(zhuǎn)發(fā)報頭,它不保存有關分片的情況。
通用路由封裝由RFC1701定義,是移動IP采用的最后一種隧道技術。除了IP協(xié)議,它還可以支持其它網(wǎng)絡層協(xié)議,它允許一種協(xié)議的數(shù)據(jù)包封裝在另一種協(xié)議數(shù)據(jù)包的凈荷中。
6路由選擇
通過以上的介紹,我們已經(jīng)知道移動IP的路由選擇方式。當一個移動節(jié)點移動到外地網(wǎng)絡上時收發(fā)數(shù)據(jù)的情況:
1)首先通信節(jié)點發(fā)送數(shù)據(jù)包到移動節(jié)點的本地代理。
2)本地代理根據(jù)轉(zhuǎn)交地址將數(shù)據(jù)包經(jīng)隧道轉(zhuǎn)發(fā)到移動節(jié)點的外地代理;
3)最后外地代理將數(shù)據(jù)包交給移動節(jié)點;
4)由移動節(jié)點發(fā)出的數(shù)據(jù)包發(fā)送到外地代理;
5)外地代理直接將數(shù)據(jù)包路由到通信節(jié)點。
但是我們不難發(fā)現(xiàn),如果通信節(jié)點和移動節(jié)點都在同一個外地網(wǎng)絡上時,通信節(jié)點發(fā)出的數(shù)據(jù)包就要繞一個大彎,因此要進行網(wǎng)絡路由的優(yōu)化。采用路由優(yōu)化的主要障礙是安全問題,如果移動節(jié)點直接將轉(zhuǎn)交地址告訴通信節(jié)點,而沒有進行有力的安全認證,那么很容易遭到簡單的拒絕服務。因此IETF的移動IP工作組在IPv6中對各個方面進行了補充和完善。
7移動IPv6技術
移動IPv6技術是在IPv4的基礎上發(fā)展起來的,因此它有許多新的特點。
移動IPv6在協(xié)議中定義了三種操作實體:移動節(jié)點、通信節(jié)點和本地代理,不再有外地代理的概念。當移動節(jié)點離開本地鏈路時,可利用IPv6的增強功能來所訪問的外地鏈路的子網(wǎng)前綴。移動節(jié)點的本地代理得到轉(zhuǎn)交地址后,使用IP得到轉(zhuǎn)交地址。轉(zhuǎn)交地址是在移動節(jié)點訪問外地鏈路時獲得的IP地址,它的子網(wǎng)前綴就是它所訪問的外地鏈路的子網(wǎng)前綴。移動節(jié)點的本地代理得到轉(zhuǎn)交地址后,使用IPv6的“鄰居發(fā)現(xiàn)”機制來截獲發(fā)往移動節(jié)點的數(shù)據(jù)包。它在本地鏈路上廣播無理由的鄰居廣播消息,接收到這個消息的其它節(jié)點就要修改自己的鄰居緩存,使移動節(jié)點的轉(zhuǎn)交地址與本地代理的鏈路層地址進行關聯(lián),這樣將來發(fā)往移動節(jié)點的數(shù)據(jù)包就可以直接被路由到移動節(jié)點上,而不再發(fā)向移動節(jié)點的本地代理,因此可以減輕網(wǎng)絡的負擔,也解決了IPv4協(xié)議中存在的路由迂回問題。
移動IPv6中還新增了四種目的地選項:綁定更新、綁定認可、綁定請示和本地地址。當移動節(jié)點離開本地鏈路時,它要向本地鏈路上的一個路由器注冊自己的一個轉(zhuǎn)交地址,并把它作為自己的本地代理。進行注冊時,移動節(jié)點先向本地代理發(fā)送綁定更新消息。綁定更新消息中的轉(zhuǎn)交地址就是移動節(jié)點的數(shù)據(jù)包利用IPv6封裝協(xié)議來封裝時,IPv6封裝的外部報頭的目的地址就是移動節(jié)點的主轉(zhuǎn)交地址。當通信節(jié)點需要更新某個綁定時,還可以發(fā)送一個綁定請求消息到移動節(jié)點,移動節(jié)點再返回一個綁定更新消息。如果移動節(jié)點離開本地鏈路時,原來作為它本地代理的路由器被別的路由器替換,這時移動節(jié)點就要利用IPv6中的“動態(tài)本地代理地址發(fā)現(xiàn)”機制動態(tài)地在本地鏈路上發(fā)現(xiàn)一個新的本地代理的IP地址。當移動節(jié)點在外地鏈路上發(fā)送數(shù)據(jù)包時,它就把當前的轉(zhuǎn)交地址作為數(shù)據(jù)包報頭中的源地址,并在數(shù)據(jù)包中增加本地地址這個目的地選項。這樣由于轉(zhuǎn)交地址與外地鏈路具有相同的子網(wǎng)前綴,移動節(jié)點發(fā)送的數(shù)據(jù)包就可以順利通過具有入口濾功能的路由器。當通信節(jié)點接收包含這一選項的數(shù)據(jù)包時,能夠自動地把源地址替換成本地地址目的選項中的本地地址,這樣就可以保證移動節(jié)點位置的透明性。
8結束語
目前移動IP技術還處在發(fā)展階段,還有許多需要完善的地方。但是它的出現(xiàn)將無疑帶來一次新的通信領域的革新,它帶給人們的將是無所不在無時不有的網(wǎng)絡通信服務,因此它的發(fā)展前景相當樂觀。
摘自《移動通信》2001.8