(1.常熟理工學院, 江蘇 常熟 215500;2.南京理工大學, 南京 210094)
摘要:在移動IP技術的基礎上提出了一種Anycast通信模型,此通信模型不僅解決了Anycast擴展局限性問題,同時也實現了Anycast組成員的動態加入與注銷,以及Anycast成員信息的分布式維護與處理,從而實現了均衡負載功能。深入分析和討論了該方案的可行性,并通過在IPv6模擬環境下的實驗結果論證此方案的有效性以及可靠性。關鍵詞:IPv6;Anycast;移動IP;轉交地址
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2008)11-3434-03
Communication model of solving Anycast scalability with mobile IPv6 technology
WANG Xiao-nan1,2,TANG Zhen-min2
(1.Changshu Institute of Technology,Changshu Jiangsu 215500, China;2.Nanjing University of Science Technology, Nanjing 210094, China)
Abstract:This paper proposed an Anycast communication model on the basis of the mobile IP technology. This Anycast communication model radically solved Anycast existing scalability problem and allowed Anycast members to leave and join Anycast group freely.In addition, this model accomplished the distributed maintenance and transaction of Anycast members’ information so it fulfilled the load balance. This paper deeply analyzed and discussed the feasibility of this communication model and according to the experimental data in IPv6 simulation.It also argues that this communication model is valid and reliable.
Key words:IPv6;Anycast;mobile IP;care-of address
Anycast是IPv6所提供的一種特殊網絡服務,它允許服務申請者訪問共享同一Anycast 地址所標志的一組接口中最近的一個(這里的最近是按路由協議的距離量度來計算的)。Anycast是一種非常有用的服務,它在許多應用領域都發揮著重要作用。隨著網絡新應用、新服務的不斷涌現,對它的需求也在不斷增長。由于Anycast地址所標志的是提供同一種服務的一組節點,RFC 2373對Anycast地址的分配作出如下限制:a)Anycast地址不可以作為IPv6數據包的源地址來使用;b)Anycast地址不能分配給IPv6主機使用,而只能分配給IPv6路由器。
由于以上限制,如果一個客戶要獲取Anycast服務,它要經過如下兩個步驟:a)客戶通過提供Anycast服務的Anycast地址首先獲取其所標志的一個Anycast服務器的Unicast地址;b)客戶再利用獲取的Unicast地址與Anycast服務器直接建立連接以獲取Anycast服務。
1移動IP技術
隨著Internet的飛速發展與移動計算機日益廣泛的應用,越來越多的移動客戶也希望自己能夠向臺式機客戶一樣共享Internet的資源和服務,而不是局限于某一個固定區域。IETF為了迎合這種需求,制定了移動IP協議,從而使Internet上的移動接入成為可能。
移動IP的工作原理可以描述如下:a)歸屬代理和外區代理不停地向網上發送代理通告(agent advertisement)消息,以聲明自己的存在。b)移動節點接到這些消息,確定自己是在歸屬網還是在外區網上。c)如果移動節點收到的是歸屬代理發來的消息,那么它會發現自己仍在歸屬網上,則不啟動移動功能。如果移動節點是從外區重新返回的,則向歸屬代理發出注冊取消的功能消息,聲明自己已回到歸屬網中。d) 當移動節點檢測到它移到外區網,它將獲得一個轉交地址。e)然后移動節點會發送一個binding meassage給所有與它通信的節點(correspondent node),通知它們新的轉交地址以便這些通信節點在此移動節點本身固有的Unicast地址以及轉交地址之間進行綁定。f)通信節點可以利用接收到的轉交地址與移動節點進行直接通信。
從以上的描述可以看出,客戶獲取Anycast服務與移動節點在外區同通信節點通信的過程類似,都需要一個地址轉換過程。所不同的是前者進行Anycast地址與Unicast地址之間的轉換,后者是移動節點本身Unicast地址與轉交地址之間的轉換。鑒于此,本文在充分研究了Anycast技術與移動IP技術之后提出了一種利用移動IP技術實現Anycast服務的通信模型,該模型彌補了現存實現Anycast服務方案的很多不足之處。
2通信模型
21整體框架
本模型遵從RFC 2373對Anycast地址分配所作出的限制:Anycast地址只能分配給路由器,而不能分配給主機。這樣,本模型定義支持某種Anycast服務的路由器被稱做支持此Anycast服務的Anycast組家鄉代理,而真正提供Anycast服務的主機稱做Anycast組成員或Anycast服務器。Anycast家鄉代理不僅具有標志Anycast服務的Anycast地址,同時它也具有自己的Unicast地址,如圖1所示。
在此模型中,一臺路由器可以支持多種Anycast服務,即作為多種Anycast服務的家鄉代理;同樣一種Anycast服務也可以由多個路由器來支持,即可以擁有幾個家鄉代理。這些Anycast家鄉代理遍布于整個網絡,而實際真正提供Anycast服務的Anycast組成員位于這些家鄉代理所在的本地網絡內,也是遍布整個網絡。本模型采用了移動IP技術,一個Anycast組對于客戶來說就相當于一個移動節點,而客戶獲取Anycast服務的過程就相當于通信節點與一個移動到外網的移動節點進行交互通信的過程。總結起來,它需要以下兩個步驟:a)客戶使用提供Anycast服務的Anycast地址與Anycast服務器建立連接(相當于通信節點使用移動節點的固定Unicast地址與位于外網的移動節點建立連接),請求獲得Anycast服務;b)距離客戶最近的支持此Anycast服務的Anycast家鄉代理接收到此建立連接請求之后,選取一個當前最優的Anycast服務器,并將請求轉發給此服務器,它將發送一個Anycast地址與其本身Unicast地址之間的綁定消息給客戶(相當于家鄉移動代理接收到此請求之后,將其轉發給位于外區的移動節點,然后移動節點發送一個其自身固有的Unicast地址與轉交地址之間的綁定消息給客戶),這樣,客戶就可以直接與Anycast服務器進行通信了(同樣的道理,通信節點可以直接與移動節點進行通信了)。
22Anycast組成員的加入和注銷
在本模型中,一臺主機可以自由地申請加入或者離開一個Anycast組。一臺主機申請加入一個Anycast組的過程可以描述如下:a)主機首先發送一個join消息。此消息包括本身的Unicast地址以及申請加入的Anycast地址,此消息的目的地址為其本地網絡的默認路由器的Unicast地址。b)默認路由器接收到此join消息之后,首先對此消息進行身份認證。如果認證通過,那么它將檢查本身是否已經具有此Anycast地址的相關記錄。如果有,那么它就將此移動節點的相關信息加入到該Anycast地址的相關記錄中;否則,它首先創建有關此Anycast地址的相關記錄,然后再將此主機的相關信息加入到新創建的Anycast地址的相關記錄中去,同時它更新自己的路由表并且通知其他路由器它現在已經具有此Anycast組家鄉代理的身份,以便其及時地更新anycast路由信息,如圖2所示。c)最后,默認路由器會發送一個Accept消息給該主機,此時,該主機具有了Anycast組成員的身份。至此,一臺主機申請成為一個Anycast組成員的過程結束。
下面再討論Anycast組成員如何從Anycast組注銷。一個Anycast組成員從某個Anycast組注銷的過程可以描述如下:a)Anycast組成員首先發送一個leave消息。此消息包括它本身的Unicast地址以及申請注銷的Anycast地址,此消息的目的地址為其Anycast家鄉代理的Unicast地址。b)Anycast家鄉代理接收到此leave消息之后,首先對此消息進行身份認證。如果認證通過,那么它將檢查本身是否已經具有此Anycast地址的相關記錄。如果有,則從其相關記錄中刪除此Anycast組成員的相關信息,并且檢查此時Anycast地址的相關記錄是否為空。如果為空,那么它更新自己的路由表并且通知其他路由器它現在已經不是此Anycast家鄉代理,以便其及時地更新Anycast路由信息。c)最后,Anycast家鄉代理會發送一個OK消息給Anycast組成員,此時,該Anycast組成員已經注銷了Anycast組成員的身份。至此,一個Anycast組成員從某個Anycast組注銷的過程結束。
上述Anycast組成員加入和注銷的過程可以通過增加新的消息類型來實現。但是,為了防止惡意攻擊,主機和路由器之間的信息交互要采用一些安全措施。
23路由過程
如圖3所示,客戶端1發出一個申請Anycast服務的數據包。它首先到達本地路由器2,路由器2根據自身路由表將其路由到路由器1,路由器1是Anycast組家鄉代理,它根據Anycast地址的相關記錄選取一個最優Anycast組成員1;同樣,客戶端2發出的申請Anycast服務的數據包首先到達本地路由器3,然后路由器3根據自身的路由表信息將其路由到路由器4,路由器4也是Anycast組家鄉代理,它根據Anycast地址的相關記錄選取一個最優Anycast組成員2。
最優Anycast組成員接收到申請Anycast服務的數據包之后,將發送一個Anycast地址與其本身Unicast地址之間的綁定消息給客戶。這樣,客戶就可以直接與Anycast服務器進行通信了。
本方案使用了MIPv6 route optimization技術,客戶接收到Anycast服務器發送的綁定信息之后,與Anycast服務器發送數據包進行通信時不僅作為它所發送數據包的源端,而且它還作為所發送數據包的第一個路由器,即源路由(source routing)。源路由的路由地址為Anycast組成員的Unicast地址。這樣,客戶發送的數據包首先被源路由到Anycast組成員,Anycast組成員處理完這個數據包之后,會發送一個響應數據包,其源地址為Anycast組成員地址,目的地址為客戶端的Unicast地址。此數據包中還包括一個家鄉代理地址頭部(home address option),它記錄著建立連接時所用的Anycast地址。這樣,客戶端在接收到此響應數據包之后,會將其家鄉代理地址頭部和源地址提交給上層處理,這樣做的好處就是所有Unicast地址之間的轉換對于上層都是透明的,而無須修改上層協議。通過這個過程,客戶端就可以與Anycast組成員進行正確的通信了,如圖4所示。
3性能分析
本文在IPv6模擬網絡中實現了此模型,并將此模型中獲取Anycast服務的TRT與IPv6網絡中現有模式下(RFC 1546定義)獲取Anycast服務的TRT進行了比較與分析。
在IPv6模擬移動網絡中,本文將24個節點連接到百兆以太網上,同時利用Modelnet來模仿廣域網物理拓撲結構。在本文的實驗中,每個節點都是一個路由器,并且都與若干臺(移動)主機相連,這些(移動)主機的處理能力都相同,它們可以自由地從一個網段移動到另外一個網段。設定一個Anycast組包括六個成員,路由器(代理)之間鏈路層通信能力為100 Mbps,客戶端與路由器以及Anycast移動組成員與路由器(代理)之間的鏈路層通信能力為45 Mbps。
在上述的實驗環境中,本文實現了本模型以及現有模式下的Anycast服務。在初始狀態下,本模型中的歸屬區域內包括六個Anycast移動組成員,這些組成員都是彼此的鏡像,它們都可以處理客戶的服務請求。在現有模式下,本文采用跳數作為距離度量單位,即把當前距離客戶最近(即跳數最小)的Anycast移動組成員作為最優Anycast移動組成員,路由表采用手動配置。
本模型的性能分析是通過在IPv6模擬環境下比較客戶在本模型以及現有模式中獲取同樣Anycast服務(如文件服務)的TRT值來實現的。因為從用戶角度來看,所提供服務的TRT值越小,用戶認為服務質量越好。這樣,本文得到如下的TRT性能分析圖(圖5):R=TRTnormal/ TRT。其中:R為客戶獲取在現有模式下以及本模型實現的Anycast服務的TRT比值;TRTnormal為在現有模式下實現Anycast服務的TRT值;TRT為測試數據在本模型實現Anycast服務的TRT值。
通過實驗數據表明,本模型所提供的Anycast服務的整體響應時間優于在現有模式下實現的Anycast服務的響應時間。
本文提出了一種利用移動IP技術實現Anycast服務的通信模型,本模型與已經存在的Anycast通信模型相比具有如下特點和優點:a)此模型解決了Anycast的擴展局限性問題,它允許Anycast組成員遍布整個網絡,而且允許Anycast組成員動態地加入和離開Anycast組。b)本模型中Anycast組成員的加入和注銷都是分布式處理的,并不是集中在某個固定設備上,這就有效地避免了由于瓶頸可能導致網絡阻塞或者某個設備由于超負載而宕機的情況。在本模型中,由于加入與注銷消息只是在本地局域網內傳輸,并且此類消息的數據傳輸量也非常小,它們對網絡性能基本沒有影響。c)本模型會將客戶發送的Anycast數據包路由到距離客戶最近的支持Anycast服務的路由器上,并由此路由器分配一個當前最優的Anycast組成員。通過這種方式,這些請求可以均衡分布在Anycast組成員之間得到高效處理,從而實現了網絡負載均衡。d)本模型中的Anycast組成員信息是采用分布式管理與維護的,即每個Anycast組家鄉代理負責管理和維護其本地網絡區域內的Anycast組成員的路由信息,這就有效地解決了由于瓶頸可能導致網絡阻塞的問題。e)本模型的實現不需要對Internet的基礎框架作任何修改,因為mobile IPv6是Internet的一個標準協議,它已經應用到很多領域內,所以本模型很容易實施。
4結束語
Anycast服務與移動IP技術都是IPv6的新特性,它們可以支持許多服務。本文在IPv6的模擬環境下,提出了一種利用移動IP技術實現Anycast服務的通信模型,該模型可以實現高質量以及響應時間短的Anycast服務。由于Anycast服務以及移動IP技術的研究還處于初級階段,它們都存在著一些問題,有待進一步探討和研究。
參考文獻:
[1]
CASTRO M,DRUSCHEL P,KERMARREC A M,et al.Scalable application-level Anycast for highly dynamic groups[C]//Proc of the Networked Group Communication (NGC 2003).Munich: Prentice Hall,2003:47-57.
[2]DOI S,ATA S,KITAMURA H,et al.Protocol design for Anycast communication in IPv6 network[C]//Proc of 2003 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PACRIM’03).Victoria:IEEE,2003:470-473.
[3]DOI S,ATA S,KITAMURA H,et al.IPv6 Anycast for simple and effective communications[J].IEEE Communications Magazine,2004,42(5):163-171.
[4]AFERGAN M,WEIN J,LaMEYER A.Experience with some principles for building an Internet-scale reliable systems[C]//Proc of the 2nd Workshop on Real, Large Distributed Systems.San Francisco:ACM,2005.
[5]BALLANI H,FRANCIS P.Towards a global IP Anycast service[C]//Proc of the 2005 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications.Philadelphia:ACM,2005:301-312.
[6]王曉楠,錢煥延.IPv6中實現Anycast服務的一種通信模型[J].南京理工大學學報,2006,31(3):375-379.
[7]DILLEY J,MAGGS B,PARIKH J,et al.Globally distributed content delivery[J].IEEE Internet Computing,2002,6(5):50-58.
[8]DOI S,ATA S,KITAMURA H,et al.Design, implementation and evaluation of routing protocols for IPv6 Anycast communication[C]//Proc of the 19th International Conference on Advanced Information Networking and Applications.Osaka:IEEE,2005:833-838.