[摘要]主要探討基于移動IP的網絡移動性的實現方法,重點研究移動網絡的路由機制,分析在不同情況下路由的實現,并且進一步探討路由的優化方法和嵌套移動網絡的問題。
[關鍵詞]移動網絡移動路由器路由優化嵌套移動網絡
中圖分類號:TN915文獻標識碼:A文章編號:1671-7597(2009)1210085-02
一、問題的提出
設想一個存在于輪船、火車或者飛機上的計算機網絡,如果這些交通工具在行進之中,那么這時就出現了整個網絡移動的問題。而它們上面的用戶又想上因特網,這時就不是普通的移動主機的問題,因為整個網絡都在移動,因此也不能用普通的設定主機的家鄉代理和外地代理的方法來實現移動性。這時必須引入移動路由器(MR)的概念,因為這時這些交通工具上的網絡路由器相對于固定的因特網都是移動的。
二、移動網絡中的路由問題的解決
引入了移動路由器的概念后,移動網絡中的相對于移動路由器來說固定的主機的路由問題就比較容易解決了。這時移動路由器和移動結點一樣都有一個家鄉地址(HoA),移動路由器的家鄉地址的網絡前綴與它的家鄉鏈路的網絡前綴很可能相等。當連在家鄉鏈路上的時候,移動路由器和家鄉代理只是相鄰的路由器,根據動態路由協議,它們將交換路由更新信息。當移動路由器連接在外地鏈路上時,路由器之間將仍然互相交換路由更新信息,但是這時是通過一條雙向的隧道。
具體的分析有兩種情況,第一種情況就是當移動路由器在家鄉鏈路上時,見圖1,這里給出了一個只包含一條鏈路的移動網絡,這條鏈路的移動網絡前綴(MNP)為7.7.7,一個連接在這條鏈路上的主機具有IP地址7.7.7.1,而移動路由器的家鄉地址為6.6.6.1,它的家鄉代理(HA)的IP地址為6.6.6.2,移動路由器廣播了對7.7.7的可達性,而家鄉代理廣播了對其他地址的可達性。這時移動路由器就和其它固定路由器一樣工作,此時的移動路由器和家鄉代理是鄰接的路由器,它們之間互相轉發數據包,并交換路由信息。所以當移動路由器連接在它的家鄉鏈路上時,這些數據包只是簡單地在家鄉代理和移動路由器之間轉發,不需要隧道,就像在固定的路由器中一樣。
圖1家鄉鏈路
圖2外地鏈路
第二種情況就是當移動路由器連接在外地鏈路上時,如圖2,移動路由器和家鄉代理仍然交換路由更新信息并轉發數據包,但這時是通過一條雙向的隧道。這時,送往移動網絡上的主機的數據包被通過隧道送到移動路由器的轉交地址(CoA),在那里被拆封,并轉發到移動網絡上的主機。移動路由器可以采用配置轉交地址或者外地代理(FA)轉交地址,只是這時要求家鄉代理采用多重封裝。在相反的方向上,移動路由器可以將外地代理作為移動網絡上的主機產生的數據包的缺省路由器。
現在,我們再來研究移動路由器連接在不同鏈路上時,家鄉代理和移動路由器的路由表,也分兩種情況。第一種情況就是當移動路由器在家鄉鏈路上時,如圖1。此時家鄉代理的路由表項是:(1)去往6.6.6.0/24(家鄉鏈路上的所有結點),通過無線端口a直接相連;(2)去往7.7.7.0/24(移動網絡上的所有結點),通過無線端口a經6.6.6.1(移動路由器)到達;(3)去往5.5.5.0/24(外地代理的無線鏈路),通過有線端口b經4.4.4.1(外地代理)到達。
相似的,在移動路由器的路由表中,到家鄉鏈路上的所有結點和移動網絡中所有的結點也有直接路由和網絡前綴路由。移動路由器還有一個通過家鄉代理到達所有結點的缺省路由,此時移動路由器的路由表項是:(1)去往6.6.6.0/24(家鄉鏈路上的所有結點),通過無線端口a直接相連;(2)去往7.7.7.0/24(移動網絡上的所有結點),通過以太網端口b直接到達;(3)去往0.0.0.0/0(其他),通過無線端口a經6.6.6.2(家鄉代理)到達。
當一個要去往7.7.7.1的移動網絡上的數據包到達家鄉代理時,家鄉代理在其路由表中的表項②找到一條匹配的路由,并將該數據包通過無線的家鄉鏈路送給移動路由器,移動路由器收到這個數據包,在自己的路由表中的表項②找到一條匹配的路由,然后將數據包通過物理端口“b”送到目的主機。
在相反的方向上,由移動網絡上產生的數據包,要去往不在移動網絡上的結點,這些數據包先被轉發到移動路由器上。移動路由器根據包的目的地址,對送往家鄉鏈路上的結點的包采用網絡前綴路由,或通過缺省路由通過家鄉代理將這些數據包轉發到最終目的地。
第二種情況就是當移動路由器離開家鄉鏈路時,如圖2。此時的移動路由器連在外地鏈路上,情況就復雜了。我們假設移動路由器向家鄉代理注冊了IP地址5.5.5.1為配置轉交地址,當注冊成功后,家鄉代理和移動路由器必須改變它們的路由表,以完成雙向隧道。此時家鄉代理的路由表項是:(1)去往6.6.6.0/24(家鄉鏈路上的所有結點),通過無線端口a直接相連;(2)去往6.6.6.1/32(移動路由器),通過α(隧道虛擬端口)經5.5.5.1(轉交地址)到達;(3)去往7.7.7.0/24(移動網絡上的所有結點),通過α(隧道虛擬端口)經5.5.5.1(轉交地址)到達;(4)去往5.5.5.0/24(外地代理的無線鏈路),通過有線端口b經4.4.4.1(外地代理)到達。可以看到,與移動主機時的情況相似,家鄉代理將增加一條通過轉交地址和虛擬端口到達移動路由器的特定主機路由。另外,家鄉代理必須改變那些下一跳為移動路由器的表項,將它們修改成指向移動路由器的轉交地址和虛擬端口。
類似的,此時移動路由器也必須改變它的一些表項。移動路由器將把以前指向家鄉鏈路的路由改成通過隧道到達家鄉代理。另外,移動路由器必須增加一條到達家鄉代理的特定主機路由,這條路由通過外地代理(本文例子設為5.5.5.2)在外地鏈路上的物理端口(本文例子設為無線端口a),再經過外地代理到達。所以此時移動路由器的路由表項是:(1)去往6.6.6.0/24(家鄉鏈路上的所有結點),通過α(隧道虛擬端口)經6.6.6.2(家鄉代理)到達;(2)去往6.6.6.2/32(家鄉代理),通過a(無線端口)經5.5.5.2(外地代理)到達;(3)去往7.7.7.0/24(移動網絡上的所有結點),通過以太網端口b直接到達;(4)去往0.0.0.0/0(其他),通過α(隧道虛擬端口)經6.6.6.2(家鄉代理)到達。
當一個要去往7.7.7.1的移動網絡上的結點的數據包到達家鄉代理時,具體的步驟如下:
1.家鄉代理在其路由表中發現一條匹配的路由表項(3),于是將數據包進行封裝送入移動路由器的轉交地址。封裝后的數據包的目的IP地址為5.5.5.1。
2.外地代理發現數據包是送往5.5.5.1的,這是一個在外地鏈路上的地址,于是將包轉發給移動路由器。
3.經過封裝的數據包經過無線鏈路到達移動路由器,在這里數據包被拆封,移動路由器檢查內層的目的IP地址,然后根據自己的路由表指示的路由表項(3)將數據包轉發到目的主機。
在相反的方向上,移動網絡上產生的數據包,如果是送往不在移動網絡上的結點,這個數據包也將被送到移動路由器上。假設數據包不是送往家鄉代理的,那么移動路由器將用它的路由表中的表項(1)或表項(4)來轉發數據包。這時移動路由器應將數據包封裝進一個新包中,該新包的目的IP地址為家鄉代理的地址。然后移動路由器再采用它的路由表中的表項(2)的特定主機路由將經過封裝的數據包通過外地鏈路送給外地代理,外地代理將經過封裝的包轉發給家鄉代理,在那里,數據包被拆封,然后路由到它的最終目的地。
三、進一步研究
從上面的分析,我們已經看到移動網絡的復雜性,盡管我們還沒有考慮網絡路由的優化。對于移動網絡來說,還存在一個更加復雜的問題:嵌套移動網絡的問題。主要指當一個移動網絡接入一個另一個較大的移動網絡時,集成在一起分層化的多級移動網絡。此時簡單的雙向隧道機制并不合適,IETF的移動網絡工作組(NEMO)提出了ARO方法來支持擴展網絡移動。
ARO(Access Router Option):增加了一個新的移動頭選項,即接入路由器選項,允許移動結點通知HA或者CN其當前接入的路由器的家鄉地址,從而消除移動網絡中的嵌套隧道。如圖3所示,MR2-發送的路由器通告中包含路由器全球地址項,用于攜帶MR2的HoA。MR1-在接收到MR2的路由器通告后,獲得MR2的HoA和MR1的新CoA,MR1-發送綁定更新給HA1,在ARO選項中攜帶MR2的HoA以通知HA1它當前的接入路由器。HA1利用擴展的第二類路由頭RH2,通過MR2的HoA向MR1返回綁定確認消息。HA2攔截該BA,通過HA2MR2隧道發給MR2的CoA。MR2-處理擴展RH2頭,了解到HA1還沒有緩存MR2的CoA,發送綁定更新給HA1。于是HA1與MR1之間建立了MR1-MR2-HA1的通路,而無須再經過MR2HA2隧道。由分析可知,ARO支持嵌套網絡和路由優化。
圖3ARO綁定過程
四、總結
目前的MIP(IPv4和IPv6)都能很好的支持結點的移動性,進行一些改進以后對于網絡的移動性也同樣可以支持,但是對于一些具體的問題還有待于進一步的研究改善。
參考文獻:
[1]James D.Solomon:Mobile IP:The Internet Unplugged,Prentice Hall.
[2]Devarapalli V.Network Mobility Basic Support Protocol,draft-ietf-nemo-basic-support-03.txt,Jun 2004.
[3]楊豐瑞、李方偉等著,《移動IP》,人民郵電出版社.
作者簡介:
陳金權(1970-),南京郵電學院通信工程專業碩士畢業,江蘇海事職業技術學院副教授,主要研究方向為:無線數據,移動計算網絡,IMS等。