中圖分類號:TN915.04 文獻標識碼:A 文章編號:1009(2002)03-24-04
摘要:
文章簡介了當前移動IPv4和IPv6的研究情況,著重討論在一個純IPv6的環(huán)境下移動IPv6協(xié)議軟件設計中的幾個問題。
關鍵詞:
移動IPv6;本地代理;移動節(jié)點;切換
ABSTRACT:
The advances of studies on mobile IPv4 and mobile IPv6 technologies are outlined, and some problems in the design of mobile IPv6 protocols under pure Linux are discussed.
KEY WORDS:
Mobile IPv6; Home agent; Mobile node; Handover
互聯(lián)網(wǎng)經(jīng)過近20年的發(fā)展,現(xiàn)有的IPv4(互聯(lián)網(wǎng)協(xié)議版本4)協(xié)議面臨著一些難以解決的問題,同時各類應用的擴展對IP協(xié)議也提出了新的要求。
IPv6的主要技術特征表現(xiàn)在:全新的IPv6地址管理方案;對安全性的特別支持;對移動性提供了內(nèi)在的支持;對服務質(zhì)量的擴展支持;定義了流的優(yōu)先級,分別支持不同的業(yè)務需求等。與IPv4比較,IPv6徹底解決了地址空間耗盡和路由表爆炸等問題,而且使支持安全、主機移動以及多媒體成為IP協(xié)議的有機組成部分。該協(xié)議可使路由器處理報文更加簡便,擴展性也更好。目前,IPv6的實驗網(wǎng)6Bone已在全球擴展,IP協(xié)議從IPv4過渡到IPv6的輪廓已經(jīng)越加清晰。
1 新業(yè)務對移動性的需求
目前先進的高速數(shù)據(jù)傳輸網(wǎng)絡正在建設中,用不了多久就會有大量新穎而有趣的服務供移動用戶選擇。這些新服務的出現(xiàn)必將大量增加對IP地址的需求,不僅移動電話和其他個人電子設備需要IP地址,那些需要通過互聯(lián)網(wǎng)交換信息的設備,如汽車、自動售貨機、家用電器和其他機器設備等都必須有IP地址。
IPv6擴展了地址空間,它的128位地址與IPv4的32位地址相比,幾乎可以無限制地提供新IP地址。除外,IPv6還具備其他重要的優(yōu)點,如支持規(guī)模更大的網(wǎng)絡結構,改進了數(shù)據(jù)的安全性和完整性,具有自動配置、移動計算、數(shù)據(jù)組播和更有效的網(wǎng)絡路由聚合等功能?,F(xiàn)有因特網(wǎng)的連接范圍和對象有了極大的擴展,特別是移動性主機所占比例的逐步增加,給IP協(xié)議提出了新的要求。IPv4對移動IP提供支持,一般是通過本地代理(Home Agent)和外地代理(Foreign Agent)的相互作用實現(xiàn)的。移動主機到達新的子網(wǎng)后,尋找外地代理,并通過外地代理向本地代理進行位置更新。本地代理解析移動主機的地址,把其他主機發(fā)給移動主機的報文通過本地代理和外地代理間的隧道傳送給移動主機。這種解決方案在處理迂回路由和小區(qū)移動時存在困難。
IPv6對移動性提供了內(nèi)在的支持。首先,路由器在多播路由器廣告報文時,指示了它是否能擔任本地代理。同一個子網(wǎng)內(nèi)允許多個本地代理存在,移動主機可以向任意一個本地代理注冊。本地代理中保存有移動主機的固有地址和轉(zhuǎn)交地址(Care-of Address)的對照表,收到發(fā)送給移動主機的報文后,根據(jù)對照表把報文轉(zhuǎn)發(fā)給移動主機。其次,每當移動主機收到其他主機發(fā)來的報文后,在響應報文中以現(xiàn)有地址作為源地址,并要附帶上移動主機的固有地址。其他主機的后續(xù)報文以移動主機的現(xiàn)有地址為目的地址,但是要附帶源路由選擇頭,報頭內(nèi)容為移動主機的固有地址。使用這種機制的目的是保證移動主機在移動過程中也不會丟失報文。最后,IPv6中定義了重定向過程。當移動主機在小區(qū)間切換時,移動主機重新登記成功后,基站應該向原來的基站發(fā)重定向包文,使切換過程中路由有偏差的報文重新找到移動主機。
2 目前移動IPv4以及移動
IPv6的研究狀況
移動IP于1996年6月由IESG(Internet Engineering Steering Group)通過,并于1996年11月公布為Proposed Standard。對于移動IPv4,IETF的移動IP工作組(IP Routing for Wireless/Mobile Hosts)制訂了一系列標準。但是,到目前為止移動IPv6的標準仍在制訂的過程中,其中的建議正作為Internet-Draft在激烈討論之中,并經(jīng)歷了多次版本的更新,到目前為止最新的草案(Draft)為第16版本的Mobility Support in IPv6 (http://www.ietf.org/internet- drafts/draft- ietf- mobileip-ipv6-16.txt)。
目前世界上有很多組織或者機構在對移動IPv4和移動IPv6進行研究,并且有一些在不同操作系統(tǒng)上開發(fā)出來的實驗系統(tǒng)。下面按照不同的操作系統(tǒng)來分別介紹。
2.1 Linux系統(tǒng)下的實驗系統(tǒng)
(1)MosquitoNet Mobile IP Implementation:該系統(tǒng)是由MosquitoNet小組研制開發(fā)的移動IPv4的軟件。MosquitoNet小組屬于美國斯坦福大學計算機科學和電子工程系的計算機系統(tǒng)實驗室。MosquitoNet移動IP依照的是RFC 2002標準。小組開發(fā)的目的有兩個:一是作為移動計算試驗床的一個組成部分,提供透明的移動功能;二是尋找移動IP的應用方法。
(2)Dynamics Mobile IP System:該系統(tǒng)是由芬蘭赫爾辛基技術大學通信與軟件工程學院的成員研究開發(fā)。該移動IP系統(tǒng)是一個分級系統(tǒng),主要考慮應用于無線環(huán)境下,其802.11 b Dynamics系統(tǒng)主要用于Linux系統(tǒng),但是它的移動節(jié)點(MN)的功能部分可以運用于Windows操作系統(tǒng)(如Win98,Win Me,Win NT4等)。
(3)Lancaster Mobile IPv6 Package:該系統(tǒng)是由英國蘭卡斯特大學(Lancaster University)的計算機系的IPv6小組開發(fā)的,但是從1998年3月6日以來該項目就一直未更新。
(4)MIPL Mobile IPv6 for Linux:該系統(tǒng)最早是由芬蘭赫爾辛基技術大學的HUT Software Project項目開發(fā),現(xiàn)在由赫爾辛基大學的通信與多媒體實驗室的GO/Core項目組負責后續(xù)的開發(fā)工作。MIPL項目更新速度快,并且支持最新的Linux內(nèi)核版本。該項目基于GNU GPL(通用公共許可證)的條款發(fā)行最新版本。
2.2 BSD系統(tǒng)下的實驗系統(tǒng)
(1)Monarch Project Implementation:Monarch Project項目屬于美國卡耐基梅隆大學的計算機科學學院。項目主要集中研究支持無線和移動主機的網(wǎng)絡,內(nèi)容包括協(xié)議設計、實現(xiàn)、性能評估等等。移動IP是該項目的一個子項目,已經(jīng)發(fā)行了移動IPv4軟件包和移動IPv6軟件包。
(2)Secure Mobile Networking Project:該項目屬于美國波特蘭州立大學,開始于1995年7月,最初由DARPA資助。其主要目的是開發(fā)高性能的安全移動網(wǎng)絡。該項目將IPSec與Mobile IP集成起來,使移動無線節(jié)點收發(fā)的所有包都在IPSec的保護之下。
(3)KAME Project:這是由日本W(wǎng)IDE(Widely Integrated Distributed Environment)組織從事IPv6/IPSec協(xié)議棧開發(fā)的項目組開發(fā)的。目前協(xié)議棧中移動IPv6的功能正在開發(fā)之中。
2.3 Unix系統(tǒng)下的實驗系統(tǒng)
Solaris:SUN公司一直從事Mobile IP技術的研究,并且積極參與IETF關于IPv6標準的制訂工作。目前發(fā)布的Solaris 8已經(jīng)支持IPv6。SUN公司的Mobile IP Implementation是基于Solaris操作系統(tǒng)的,但不支持移動IPv6,但是SUN公司已經(jīng)表示要在后續(xù)版本中支持移動IPv6。
2.4 Windows系統(tǒng)下的實驗系統(tǒng)
(1)University of Bucharest Implementation:該項目是羅馬尼亞布加勒斯特理工大學(POLITEHNICA University of Bucharest)控制與工業(yè)信息學系和柏林開放通信研究院的一個聯(lián)合項目,所實現(xiàn)的移動IP采用Windows驅(qū)動程序編程。
(2)Microsoft MIPv6 Project:微軟公司一直積極參與IPv6協(xié)議棧的研發(fā)工作,繼2001年發(fā)布IPv6的協(xié)議棧軟件包后,微軟公司在最新的Windows XP操作系統(tǒng)中已經(jīng)內(nèi)置支持IPv6。在移動IPv6的研究上,微軟和英國蘭卡斯特大學合作,在LandMARC Project的基礎上推出了基于Win2000的移動IPv6軟件。
下面以我們自己開發(fā)的BMTS系統(tǒng)為例,說明Linux系統(tǒng)下移動IPv6的實現(xiàn)。圖1為開發(fā)測試環(huán)境示意。
3 移動IPv6 BMTS系統(tǒng)簡介
該系統(tǒng)的設計目的是在一個純IPv6環(huán)境下,設計并實現(xiàn)移動IPv6協(xié)議軟件,使計算機設備可以在物理空間自由移動(具體實現(xiàn)時可以模擬為將它的網(wǎng)線連接到另外一個子網(wǎng)),并且不用手工配置任何網(wǎng)絡信息(如IP地址、網(wǎng)絡號、路由器等)就能夠繼續(xù)通信,且保持網(wǎng)絡連接不中斷。
BMTS實驗系統(tǒng)的硬件平臺包括:3臺主機——一臺作為本地網(wǎng)(Home Subnet)的本地移動代理,一臺作為移動主機,一臺是與移動主機通信的固定主機;3個IPv6子網(wǎng)——一個是移動主機所屬的本地網(wǎng),一個是移動主機漫游到的外網(wǎng)(Outer Subnet),一個是固定主機所在的固定網(wǎng)絡;一臺IPv6路由器,用來連接3個網(wǎng)絡,可以用本地移動代理主機和固定主機兼作路由器。
BMTS系統(tǒng)的軟件平臺包括操作系統(tǒng)和IPv6協(xié)議棧,選用Linux操作系統(tǒng)作為開發(fā)環(huán)境(具體選用產(chǎn)品為Redhat Linux 7.1)。這是因為,目前Linux已經(jīng)在操作系統(tǒng)內(nèi)核中支持IPv6協(xié)議棧;Linux操作系統(tǒng)具有完全開放的源代碼以及大量的網(wǎng)絡資源;內(nèi)核代碼TCP/IPv6協(xié)議棧部分結構清晰,便于理解。支持IPv6的網(wǎng)絡應用軟件Redhat Linux 7.1操作系統(tǒng)中已經(jīng)包含了ping6命令,可以測試各個主機間IPv6的連通性。另外在Linux系統(tǒng)上有支持IPv6協(xié)議的FTP軟件和TELNET軟件,這兩個軟件都能保持長時間的TCP連接,有利于測試設備的移動性。最新版本的Apache web服務器(Apache 2.0.32 Beta)也支持IPv6,可測試移動環(huán)境中對HTTP協(xié)議以及多媒體業(yè)務的支持。
4 BMTS系統(tǒng)實現(xiàn)中的幾個問題
在系統(tǒng)選型時,我們通過對BMTS系統(tǒng)結構和幾種操作系統(tǒng)內(nèi)核的分析,決定在Linux Netfilter的基礎上開展研究和開發(fā)工作。下面簡要介紹其工作機制。
4.1 Netfilter 框架簡介
Netfilter是由Paul Russell提出的一個新型的分析處理特定協(xié)議數(shù)據(jù)包框架。在該框架的基礎上,Paul Russell在Linux系統(tǒng)上構造了一個非常精簡、高效、易于擴展的包過濾系統(tǒng)IPtables,它克服了以往ipfwadm和ipchains等兩種包過濾系統(tǒng)的一些弊病,為構筑安全的防火墻和進一步開發(fā)安全系統(tǒng)提供了支持。
Netfilter是不同于通常的Berkeley套接字接口的協(xié)議數(shù)據(jù)包處理框架。它的主要思想是:Netfilter在每種協(xié)議的處理過程中定義了一些檢查點(稱作hook),目前已經(jīng)支持IPv6協(xié)議。在每個檢查點協(xié)議以數(shù)據(jù)包和hook號為參數(shù)來調(diào)用執(zhí)行Netfilter框架;部分內(nèi)核程序可以注冊監(jiān)聽每個協(xié)議的不同hook。這樣,當一個數(shù)據(jù)包被傳送到Netfilter框架后,它檢查是否有程序在注冊監(jiān)聽這種協(xié)議的數(shù)據(jù)包,并進一步執(zhí)行相關的檢查和處理。
Netfilter是在協(xié)議棧中不同點上建立一系列的hook。當數(shù)據(jù)傳輸時,數(shù)據(jù)包到達系統(tǒng)后經(jīng)過了簡單的完整性檢查,如數(shù)據(jù)包是否應被截取,IP 檢查和正確否,是否混雜模式等;然后將數(shù)據(jù)包傳遞給Netfilter的NF_IP_PRE_ROUTING模塊;接著數(shù)據(jù)包進入路由選擇模塊,由路由代碼來判定它們是要轉(zhuǎn)發(fā)給另一接口還是要發(fā)送給本地進程,并丟掉不能路由的數(shù)據(jù)包。基于Netfilter軟件的開放結構,我們構造了本課題所要求的移動IPv6 BMTS系統(tǒng)。實現(xiàn)移動IPv6系統(tǒng)最關鍵的一點就是能夠正確攔截并修改與移動IPv6相關的IP包,而對于其他正常的IP包不作任何改動。Netfilter框架正好提供了這種能力。
4.2 在Netfilter框架上實現(xiàn)移動IPv6協(xié)議
Netfilter的設計開發(fā)者在Linux內(nèi)核中實現(xiàn)了IPv4以及IPv6協(xié)議的Netfilter框架。在這個框架之上,Netfilter的設計實現(xiàn)者可以實現(xiàn)功能很豐富的包處理軟件。利用Netfilter框架,對于從本機發(fā)出去的IPv6包,可以用NF_LOCAL_OUT hook來攔截它們,并判斷是否屬于移動IPv6協(xié)議的包。如果不是,則不作任何改動,將這些包發(fā)送出去;如果是移動IPv6協(xié)議的包,則將它們遞交到相應的移動IPv6處理模塊。該模塊按照移動IPv6協(xié)議規(guī)范,或者改動包的內(nèi)容將其重新放入內(nèi)核協(xié)議棧后發(fā)送出去,或者是從該包中獲取需要的信息后將其丟棄。同樣,對于從網(wǎng)絡中接收到的IPv6包,操作基本相同,只不過包的流動方向相反。即使用Netfilter框架的NF_PRE_ROUTING hook攔截收到的IPv6包,判斷并遞交到移動IPv6處理模塊進行處理,然后重新放入?yún)f(xié)議棧,交給相應的上層應用軟件。
4.3 基于Linux系統(tǒng)的幾個關鍵技術
通過實驗,本系統(tǒng)解決了在移動IPv6環(huán)境中如何收發(fā)IPv6_in_IPv6 Tunnel包;本地代理如何攔截發(fā)給移動節(jié)點的包;如何實現(xiàn)移動檢測;如何讓移動節(jié)點正確發(fā)送IPv6包;在離家時發(fā)送包;在離家時接受通信數(shù)據(jù)包;移動檢測;發(fā)送綁定更新;接收綁定確認;接收綁定請求等細節(jié),并達到了預定的目標,組建了演示系統(tǒng)。圖2表示了移動節(jié)點處理接收BRO消息的流程。
5 展望
移動IPv6是一個龐雜的協(xié)議,包含的內(nèi)容非常多,而且目前還在繼續(xù)發(fā)展。我們項目組的研究目標不僅僅是在Linux操作系統(tǒng)上開發(fā)一個移動IPv6的演示系統(tǒng)。由于課題、人力資源和時間的限制,系統(tǒng)在實現(xiàn)的時候作了較大的簡化,不少移動IPv6系統(tǒng)在部屬時候要求的功能沒有在這一期的研究工作中包含進去。下面是以后的工作中我們應予以關注的幾個方面:
(1)DHAAD:動態(tài)的本地代理地址發(fā)現(xiàn)(DHAAD)技術在實際部署移動IPv6系統(tǒng)時非常有用。
(2)注冊安全:目前移動IPv6面臨的最大問題就是安全問題。
(3)與路由器的完美結合:目前的系統(tǒng)是利用一臺獨立的主機作為本地代理,該代理與網(wǎng)絡中別的主機是平等的。實際上本地代理最好能夠作為路由器軟件的一部分存于路由器中。下一步應考慮如何將本地代理的功能移植到路由器軟件中。
(4)網(wǎng)絡快速切換:本系統(tǒng)目前是利用路由器宣告的消息作移動發(fā)現(xiàn)處理,這樣做簡單、方便,缺點是速度慢,可靠性需進一步改進。在一些關鍵應用中,秒級的延遲都可能是不被容許的。
雖然如此,移動IPv6又是一個設計精巧的協(xié)議,雖然目前還有一些缺陷,但我們可以看到,移動IPv6協(xié)議的前景是非常光明的。在可以預見的未來,我們將可以充分享受移動IPv6給我們帶來的便捷,自由徜徉在移動信息社會里。□
參考文獻
1 Postel J.Internet Protocol.RFC791, 1981
2 Postel J.Internet Control Message Protocol. RFC792, 1981
3 Postel J.Transmission Control Protocol. RFC793, 1981
4 Postel J.User Datagram Protocol. RFC 768, 1980
5 Hinden R, Deering S. IP Version 6 Addressing Architecture. RFC 2373, 1998
6 Deering S, Hinden R. Internet Protocol, Version 6 (IPv6) Specification. RFC2460, 1998
7 Narten T, Nordmark E, Simpson W. Neighbor Discovery for IP Version 6. RFC 2461, 1998
8 Thomson S, Narten T. IPv6 Stateless Address Autoconfiguration. RFC 2462, 1998
9 Conta A, Deering S. Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification. RFC2463, 1998
10 Conta A, Deering S. Generic Packet Tunneling in IPv6 Specification. RFC 2473, 1998
11 Perkins C, David B J. Route Optimization in Mobile IP. Internet draft, 2000
12 David B J, Perkins C. Mobility Support in IPv6. Internet draft, 2000
13 Perkins C. IP Mobility Support. RFC 2002, 1996
14 James D S. Mobile IP: The Internet Unplugged[M]. Prentice Hall, 1999
15 Christian Huitema.新因特網(wǎng)協(xié)議 IPv6.陶文星,等譯.北京:清華大學出版社,1999
16RustyRussell.NetfilterHackingHOWTO,1999. http://www.mattgillen.net/netfilter/netfilter- hacking- HOWTO.html
17 Rusty Russell. Iptables HOWTO 1999.http://www.telematik.informatik.uni-karlsruhe.de/lehre/seminare/LinuxSem/downloads/netfilter/iptables- HOWTO.html
18 Ori Pomerantz. Linux Kernel Module Programming Guide. iUniverse.com, 1999
(收稿日期:2002-04-13)
作者簡介
代剛,北京郵電大學信息網(wǎng)絡中心計算機應用專業(yè)碩士生。
馬嚴,北京郵電大學信息網(wǎng)絡中心教授。研究領域為IPv6技術、移動IP相關技術。已出版專著3本,發(fā)表論文30多篇。