侯金剛
摘要:探討了因特網業(yè)務提供商(ICP)如何綜合應用雙棧、應用網關、地址翻譯等技術推動IPv6的演進。基于不同型態(tài)、不同質量的應用將導致IPv6改造采用的技術方案、實施的復雜性不同,提出了準備-試點-梳理-實施4步走的路線圖,以幫助控制IPv6演進的風險,使演進過程有序進行。
關鍵詞: IPv6協(xié)議;互聯(lián)網業(yè)務提供商;雙棧;應用網關
Abstract: In this paper, we discuss how Internet content providers use technologies such as dual stack, application gateway, and network address translation to improve IPv6 migration. The range of applications and application qualities may complicate IPv6 migration solutions and their implementations. In this paper, we propose a solution that has four steps: preparation, trial, brush, and implementation. This solution helps control risks during IPv6 migration and can be used for smooth IPv6 transition.
Key words: IPv6 protocol; ICP; dual stack; application gateway
1 IPv6是下一代互聯(lián)網的
核心
互聯(lián)網行業(yè)在全球以及中國一直處于高速發(fā)展的階段,也面臨著一系列新的挑戰(zhàn)和機會。歸結起來,互聯(lián)網應用有三大的發(fā)展趨勢:移動化、社區(qū)化、個性化。簡單總結為SoLoMo(Social+Localize+Mobility),也即隨著3G/4G移動網絡的發(fā)展,互聯(lián)網應用基于的終端從PC越來越多地變成手機及各種Pad設備,而且個性化以及基于當時用戶場景和位置信息的應用需求越來越多。用戶習慣的改變,以及應用模式的革新對底層的傳統(tǒng)的支撐網絡提出了新的要求:
·網絡需要更扁平,更普遍可達,以支持遠比今天的PC終端數量更大的設備的接入。
·網絡支持通過不同終端進行互聯(lián)網訪問的用戶的身份和位置信息的識別與區(qū)分。
·網絡更靈活的支持用戶間的SIP類、P2P類互訪,而不單單是用戶到服務器的單一訪問模式。
然而,以IPv4作為地址標識的當今的互聯(lián)網存在著很多的局限,越來越阻礙著新一代互聯(lián)網應用的部署:
·IPv4的公網地址已經分配殆盡,無法進一步提供給各互聯(lián)網應用的服務,更不用說呈幾何級數增長的終端設備;2011年2月3日,ICANN宣布全球IPv4地址分配殆盡,接著APNIC也在4月15日宣布可正常分配的IPv4地址塊也沒有了。
·傳統(tǒng)的IPv4網絡在不同的區(qū)域,用戶接入、移動終端等地方采用了不能全局路由的私網地址,并輔以網絡地址轉換(NAT)、代理服務器(Proxy)等轉換技術,造成用戶信息的不完整,帶來如性能差而難以定位等問題。
·IPv4網絡沒有很好地提供端到端服務質量的保障,對于互聯(lián)網應用中采用類似P2P機制的存在諸多限制,影響用戶訪問體驗。
而下一代地址編碼IPv6則采用128比特編碼,比采用32比特編碼的IPv4地址空間大的多,理論上可以支撐地球上所有對象的地址標識需要,因此完全可以做到接入互聯(lián)網的任何對象的全局唯一地址,無論是PC終端、移動終端,甚至是物聯(lián)網下的任何物體;采用IPv6對互聯(lián)網下的對象進行全局唯一標識,也就為互聯(lián)網應用識別用戶身份、提供端到端的服務質量保證創(chuàng)造了條件。因此,理論上IPv6比IPv4可以更好的支持新型互聯(lián)網應用的持續(xù)不斷發(fā)展,為用戶體驗的改善提供更好的支撐[1-6]。
2 IPv6演進中存在著諸多
挑戰(zhàn)和問題
IPv4和IPv6用戶數發(fā)展預測如圖1所示。IPv4往IPv6演進是大勢所趨,然而這個過程不會一蹴而就,需要解決諸多技術難題以及非技術因素,而且這個演進過程必將是漫長的和復雜的。
首先,用戶端可能只支持IPv4、IPv6或二者都支持,網絡也是IPv4的網絡與IPv6的網絡并存,這必然帶來互聯(lián)網的應用為了兼容性的考慮,不得不同時支持IPv4與IPv6。
第二,Web 2.0時代中互聯(lián)網應用并不都是用戶端同服務器端的通信,也存在著大量的用戶端間的直接的訪問,如文件傳輸、內容下載、語音與視頻通信等等;在純的IPv4網絡或者純的IPv6網絡里,用戶端間直接建立網絡連接進行通信并不存在問題,但IPv4與IPv6的用戶如何通信就是一個非常值得探討的事情,這是現(xiàn)實業(yè)務改造中面臨的諸多技術難題之一。
第三,也是最主要的一個問題,很多的互聯(lián)網應用都是歷經多年、多人開發(fā)完成的,其間很少考慮到IPv6,所采用的程序并不都用域名或其他的名字服務,支持的地址標識字段也僅僅適合IPv4而不適合IPv6,如果把這些應用的代碼重新梳理一遍并改造使之支持IPv6,跟重寫所帶來的工作量也差不了多少。騰訊幾年前為了讓QQ支持的注冊用戶數突破21億,即把其中的32位整數改為僅支持正數,就修改了500多個功能模塊,130多萬行代碼,涉及到2 000多名程序員,耗時15個多月[2]。而如果讓QQ支持IPv6,把其中的IP地址字段進行修改,同時相關模塊支持IPv6地址的管理,這個工作量將比前者更大,復雜性也更高!
第四,互聯(lián)網應用依賴的基礎設施,服務器、操作系統(tǒng)、網絡設備、防火墻、四層交換機、域名服務器(DNS)等過去只是為了支持IPv4而用,如果要把它們全部升級改造成支持IPv6將也是一項耗時巨長、投資巨大的工作。
第五,除了編碼外,IP地址在互聯(lián)網應用中也被用來識別用戶的位置信息,以便向用戶可以更精準地推送相關內容,譬如一個北京的用戶登陸到互聯(lián)網上,應用可以給他推送北京的天氣信息,而其中主要的判斷依據就是這個用戶的IP地址信息;過去多年,互聯(lián)網應用根據IPv4的地址分配信息以及用戶的動態(tài)訪問信息,建立起一個相對比較完備、比較準確的地址庫,用來判斷用戶的位置信息,以便進行內容的推動、網絡就近性訪問的調度。然而,IPv6的使用量還很少,分配規(guī)則也不清晰,必將造成依賴IP地址作為位置標識的很多互聯(lián)網應用演進到IPv6后造成很多功能的失效。
3 IPv6演進中關鍵技術探討
因特網業(yè)務提供商(ICP)向IPv6演進涉及的技術和方案多而復雜,包括業(yè)務應用、代理接口、客戶端、基礎網絡等多個層面,單單基礎網絡上就很難有一種理想的技術適合各種場景,滿足各種不同類型的互聯(lián)網應用的IPv6改造。因此,人們制訂如下標準或原則來判斷不同的技術對于應用IPv6改造的契合性,作為技術選擇的依據:
(1)透明性。對于已有的互聯(lián)網應用無需改動或者僅需少量的外掛式代碼的變化就可以支持IPv6,而無需全部的代碼遍歷并修改。
(2)兼容性。增加新的技術模塊或組件在支持IPv6的同時繼續(xù)支持IPv4。
(3)漸進性。IPv6的功能可以逐步添加而無需只有整個應用全部的代碼改造完成才可以使用。
這3個原則簡稱TCG,作為判定互聯(lián)網應用IPv6演進使用的技術手段的規(guī)則。
對于互聯(lián)網應用的IPv6演進,本文從ICP的角度出發(fā),假設的場景是:支持IPv6協(xié)議的終端用戶通過電信運營商的IPv6網絡來訪問互聯(lián)網公司自己的數據中心內的應用;考慮到兼容性,同時有IPv4的終端用戶也來訪問這些應用;至于終端用戶和電信運營商的網絡如何支持IPv6或兼容IPv4,則不在本文的討論范圍。
根據以上假設,下面介紹下在ICP的IPv6演進中通常使用的3項技術方案:
(1)雙棧技術
雙棧技術采用應用從前端接入到中間邏輯處理以及后端數據管理,乃至應用本身的運營支撐模塊全部改成IPv4和IPv6支持,整個應用程序中凡是涉及到使用網絡地址編碼的部分,之前只是支持IPv4的格式,現(xiàn)在需要增加關于IPv6的支持,對于其中依賴IP地址作為位置信息標識的還需要單獨建立IPv6的地址庫與位置的映射關系。同時,該應用路徑上所依賴的基礎架構包括DNS、全局負載均衡設備(GSLB)、路由器、交換機、四層交換機、防火墻、分布式拒絕服務攻擊(DDoS)防護設備、后端的商業(yè)支持系統(tǒng)/運營支持系統(tǒng)(BSS/OSS)都需要全部改造使之既支持IPv4,又支持IPv6。這項技術對于互聯(lián)網應用的改造非常徹底,但需要非常大的工作量,相當于原有代碼的重寫,對于老的、源代碼缺乏維護的應用比較難操作。
(2)地址翻譯
地址翻譯技術在互聯(lián)網應用的前端接入模塊前部署一個NAT/PAT設備,把給應用分配的IPv6地址部署在這個設備上,并把IPv6地址與老的IPv4地址的對應關系也部署在這個設備上。當IPv6的用戶訪問互聯(lián)網應用時,會經過這個翻譯設備,把IPv6的源地址、目的地址轉換成一對IPv4地址對,去訪問真正的應用服務器,應用服務器返回的數據包經過翻譯設備時,再轉換成真正的IPv6數據包,返回最終用戶。這項技術無需應用進行修改,只是需要在NAT/PAT設備上維護IPv6與IPv4的映射關系,對于應用需要更多的地址信息的,在設備上提供映射關系的信息作為數據接口給到后端的應用使用。這項技術同時也可以應用在解決IPv4公網地址不足的場景,互聯(lián)網應用使用的服務器全部配置私有IPv4地址,多個服務器對應一個公網地址,通過采用不同的傳輸控制協(xié)議(TCP)端口進行區(qū)分。
(3)應用網關
應用網關技術類似地址翻譯技術,也是在互聯(lián)網應用的前端接入模塊前部署應用網關設備,前端支持用戶的IPv6訪問,后端的互聯(lián)網應用保持IPv4,應用網關設備在兩邊做代理,把IPv6的數據包與IPv4的數據包進行轉換。所不同的是應用網關工作協(xié)議的第七層,把用戶的IPv6連接終結在網關設備上,同時建立跟后端互聯(lián)網應用服務器的新的IPv4連接,并在兩個連接間起到代理的作用,其最大的價值在于可以從應用層識別應用協(xié)議,并加以處理,可以針對IPv6與IPv4的轉換,提供更多應用層的處理,包括內容的過濾、安全控制以及應用狀態(tài)的保持、轉換等等。應用網關技術工作原理如圖2所示。應用網關技術也可以應用在IPv4與IPv6的用戶間進行P2P的通信。
以上3種技術的TCG對比如表1所示。
對于ICP來講,通常存在不同模式的應用,譬如純粹的基于超文本鏈接標記語言(HTML)的Web應用,基于客戶端的C/S結構的應用,核心模塊由第3方開發(fā)、外圍BSS/OSS自己開發(fā)的應用等等,不一而舉,難以采用一種統(tǒng)一的技術或方案進行IPv6的演進。
一個技術框架方案來支持不同種應用的IPv6演進如圖3所示。
圖中,IX為代表互聯(lián)網應用所在的數據中心同外部運營商互聯(lián)的網絡路由器,A1、A2、A3、A4、A5、A6為互聯(lián)網應用。6種互聯(lián)網應用綜合利用雙棧技術、應用網關技術以及地址翻譯技術來實現(xiàn)IPv6的演進,A1、A2、A3無論是只支持IPv4、IPv6還是兩者都支持,都需要通過一個應用網關被外面的用戶通過IPv4網絡或者IPv6網絡所訪問,應用網關需要支持IPv4間、IPv6間以及IPv4與IPv6間的七層協(xié)議轉換,可以應用在類似B/S結構的Web類應用,應用的服務器無需采用公網地址;A5、A6兩種應用,都已支持IPv6,可以直接被外面的IPv6用戶所訪問,而A4老的IPv4應用需要經過一層地址翻譯,才能被外面的IPv6所訪問。
經過上述技術分析,結合諸如騰訊互聯(lián)網公司的實際業(yè)務情況,可以看出,IPv6改造采用的技術萬不可一刀切,一定是由簡入繁、多案并存、逐步過渡的方式。
4 IPv6演進策略
互聯(lián)網應用型態(tài)的多樣性,歷經多年版本迭代的復雜性,決定了IPv6演進的長期性與困難。因此,可以如下的原則確定演進的策略與步驟:
(1)基礎架構先行,應用后至;首先在網絡、服務器、操作系統(tǒng)、DNS等方面激活IPv4、IPv6雙棧,所謂“先修路,后跑車”。
(2)應用先易后難,逐步推進;優(yōu)先解決Web類的,邏輯簡單的應用;而后解決平臺型的、C/S結構的應用;次之,解決代碼很久的應用;最后,解決運營支撐類的應用。
(3)從試點開始,逐步推廣。
下面提供一個4步走的路線圖,供參考:
第一步,準備:評估各項IPv6演進技術的適配性、需要的環(huán)境,同步電信運營商網絡的節(jié)奏。
第二部,試點:搭建一個IPv6演進的試點平臺,讓基礎架構支持雙棧,準備采用的各種IPv6演進的技術模塊如雙棧、地址翻譯、應用網關均部署,選取一兩個代表性的應用進行改造,并使之IPv6訪問。
第三步,梳理:把待改造的互聯(lián)網應用進行梳理,應用的型態(tài)、代碼量、代碼的質量、對于IP地址的依賴情況等一一梳理清楚,并同準備采用的演進技術進行對齊,確定各自的演進工作量、復雜度與風險。
第四步,實施:根據第三步的梳理結果和制訂的演進方案,進行實施操作,并控制好演進過程中的風險。
就騰訊公司而言,從2010年開始正式啟動IPv6的演進項目,成立了跨公司各個團隊的聯(lián)合項目組,包括因特網數據中心(IDC)資源、業(yè)務應用、運營支撐、安全支持、政府關系多個部門在內的專家一道來共同解決IPv6的演進,主要的進展:
·構建了一個包含200臺服務器規(guī)模的IPv6試驗平臺,這個平臺從網絡接入、路由器、防火墻、四層交換模塊(LVS)、網絡交換、服務器、操作系統(tǒng)等都端到端的支持雙棧協(xié)議,并接入了CERNET的IPv6網絡。
·在這個平臺上通過應用網關的方式接入了www.qq.com及www.pengyou.com兩個公司的主應用,并且修改了公司的域名服務器,使得這兩個域名自然的既支持IPv4的訪問,又支持IPv6的訪問。
·截至2012年底,試驗平臺上的IPv6用戶數達200多萬戶,流量達到300 Mb/s。
下一步的計劃:
·按照中國國家發(fā)改委的IPv6演進項目的要求以及中國電信、聯(lián)通、移動三大運營商的IPv6改造節(jié)奏,在深圳、上海、天津3地接入三大IPv6線路,支持應用的雙棧連接。
·在2013年,完成5個主要網站類應用www.qq.com、www.pengyou.com、www.qzone.com、open.qq.com及t.qq.com的IPv6應用支持改造,主要采用地址翻譯技術、應用網關技術,以及在部分模塊嘗試端到端雙棧技術。
·同步完成關于IPv6接入的DDoS防護、安全管理模塊的改造支持等。
·2014年后,啟動客戶端應用,包括QQ、微信等應用的IPv6遷移改造工作。
·2015年后,啟動騰訊公司平臺上合作的第三方應用的IPv6遷移改造工作。
5 結束語
IPv4地址分配殆盡,向IPv6演進是唯一可行之路,在此基礎上人們將推動下一代互聯(lián)網朝著普遍可達、端到端服務質量可期的目標走。雙棧、地址翻譯、應用網關等都能幫助IPv6的演進,然而,不同型態(tài)的應用,不同質量的應用,會使得IPv6的改造采用的技術方案、實施的復雜性不同。準備-試點-梳理-實施,4步走的路線圖可以幫助控制IPv6演進的風險,使得整個演進過程有序進行。
參考文獻
[1] 雒江濤, 李晴川. 基于云存儲的分組域監(jiān)測系統(tǒng) [J]. 重慶郵電大學學報(自然科學版), 2012,24(6):675-681.
[2] World Ipv6 Launch [EB/OL]. [2011-03-25]. http://www.worldipv6launch.org. 2011.
[3] 李維賢. IP城域網通過BGP協(xié)議接入客戶網絡 [J]. 數字通信,2012,(3):69-71.
[4] 騰訊公司內部項目資料 [EB/OL]. [2011-09-21]. http://www.tencent.com. 2011.
[5] 廉志玲, 張代忠, 張小菊. 一種基于查表的解速度模糊算法 [J]. 雷達科學與技術, 2011,9(4):49-52.
[6] 王淑惠, 譚清中, 唐彥, 肖亮. IPv6是物聯(lián)網最佳的尋址技術 [J]. 數字通信, 2011,(3):28-31.