[蔣天超 沈世元]
虛擬數(shù)據(jù)中心(Virtual Data Center,簡稱VDC)是將云計算概念運用于互聯(lián)網(wǎng)數(shù)據(jù)中心(Internet Data Center,簡稱IDC)的一種新型的數(shù)據(jù)中心形態(tài)。它把傳統(tǒng)IDC業(yè)務(wù)與云計算技術(shù)相結(jié)合,通過統(tǒng)一的云平臺管理系統(tǒng)、應(yīng)用虛擬化、自動化部署等技術(shù),來構(gòu)建具有彈性的虛擬化基礎(chǔ)架構(gòu),其采用集中管理、分布服務(wù)模式,向用戶提供全網(wǎng)服務(wù)的基礎(chǔ)設(shè)施服務(wù)。VDC與傳統(tǒng)IDC的主要區(qū)別在于通過虛擬化技術(shù)將物理資源抽象整合,實現(xiàn)資源的動態(tài)分配和調(diào)度,以提高資源利用率和服務(wù)的高可靠,通過自動化的服務(wù)達到一鍵開通能力,從而降低運維成本,并提供了更多的安全和可靠性機制,完全滿足企業(yè)級應(yīng)用的安全標準。
軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN ),其核心技術(shù)——OpenFlow,通過將網(wǎng)絡(luò)設(shè)備的控制面與數(shù)據(jù)面進行分離來實現(xiàn)網(wǎng)絡(luò)流量的靈活控制。在運營商網(wǎng)絡(luò)中,可以從網(wǎng)絡(luò)相對封閉的數(shù)據(jù)中心等場景開始入手,構(gòu)建新型的SDN來增強的VDC。通過在網(wǎng)絡(luò)控制側(cè)引入SDN控制器,對虛擬機交換機和OF協(xié)議增強的ToR硬件交換機等進行集中控制,把傳統(tǒng)數(shù)據(jù)中心復(fù)雜的網(wǎng)絡(luò)拓撲變?yōu)榇蠖泳W(wǎng)絡(luò)架構(gòu),以應(yīng)對數(shù)據(jù)中心內(nèi)部和數(shù)據(jù)中心之間的東西向流占比增大的變化要求。
在虛擬數(shù)據(jù)中心中,由于涉及的網(wǎng)元眾多,如OpenStack虛擬化平臺、SDN網(wǎng)元、運維管理平臺、VTEP網(wǎng)關(guān)設(shè)備等,虛擬機出公網(wǎng)的配置流程相對比較復(fù)雜,偶有失誤會導(dǎo)致網(wǎng)絡(luò)癱瘓,而且還不便于統(tǒng)一維護。我們可以通過統(tǒng)一Portal界面創(chuàng)建需要的公有網(wǎng)絡(luò)和虛擬路由,并將需要聯(lián)通的子網(wǎng)加入到虛擬路由中,后續(xù)用戶新建虛擬機后如果需要上大網(wǎng)就可以通過綁定公網(wǎng)浮動IP達到目的。
我們可以通過在管理門戶直接調(diào)用虛擬平臺API接口去管理NAT和專網(wǎng)路由的配置,激活NAT插件下發(fā)配置至VTEP網(wǎng)關(guān)設(shè)備和SDN控制器下流表至各網(wǎng)元,不需要在VTEP網(wǎng)關(guān)設(shè)備上手動去配置SNAT、DNAT和路由策略,也不再需要SDN網(wǎng)管平臺界面上手動配置去下相關(guān)流表至設(shè)備網(wǎng)關(guān),從而實現(xiàn)統(tǒng)一管理和調(diào)度的功能,實現(xiàn)用戶的NAT和專網(wǎng)路由在VDC場景下任意策略配置,大大簡化VDC的運營管理維護。
要實現(xiàn)用戶的NAT和專網(wǎng)路由在VDC場景下任意策略配置,用戶通過統(tǒng)一管理Portal界面創(chuàng)建需要的公有網(wǎng)絡(luò)和虛擬路由——vRouter,并將需要互聯(lián)的子網(wǎng)加入到虛擬路由中,后續(xù)用戶新建虛擬機后要綁定公網(wǎng)浮動IP時,運行在虛擬化平臺的NAT插件通過RPC監(jiān)聽獲取虛擬平臺的任務(wù)消息,從而自動登錄到VTEP網(wǎng)關(guān)設(shè)備進行SNAT和DNAT的策略下發(fā),但是如果用戶既要能實現(xiàn)NAT功能又要能實現(xiàn)各種專網(wǎng)路由,此時管理門戶可以直接調(diào)用虛擬平臺的update接口來配置專網(wǎng)路由,NAT插件通過和虛擬平臺之間路由更新接口進行消息傳遞,自動登錄到VTEP網(wǎng)關(guān)設(shè)備在此VRF(Virtual Routing Forwarding 虛擬路由轉(zhuǎn)發(fā))下增加專網(wǎng)路由策略,同時運行在虛擬化平臺的SDN插件獲取到地址或路由更新后,將這些通過流表下發(fā)到各個網(wǎng)元,所有策略和專網(wǎng)路由下發(fā)流程都不需要手動去維護和配置,自動化實現(xiàn)用戶的NAT和專網(wǎng)路由在VDC場景下任意策略配置。
如圖1所示。
圖1 總體結(jié)構(gòu)示意圖
SDN子模塊:SDN將網(wǎng)絡(luò)設(shè)備上的控制權(quán)分離出來,由集中的控制器管理,不依賴底層網(wǎng)絡(luò)實體設(shè)備如路由器、交換機、防火墻等,屏蔽了來自底層網(wǎng)絡(luò)設(shè)備的差異。而控制權(quán)是完全開放的,用戶可以自定義任何想實現(xiàn)的路由和傳輸規(guī)則策略,達到靈活和智能的目的。
VDC管理系統(tǒng)子模塊:資源管理系統(tǒng),主要提供集中的、彈性的、高可靠性的計算、存儲、網(wǎng)絡(luò)等資源,統(tǒng)一管理、按需分配、租賃服務(wù)。
VTEP網(wǎng)關(guān)設(shè)備:支持OF協(xié)議的設(shè)備網(wǎng)關(guān)必須能夠處理來自接入層設(shè)備的所有通信,并提供到核心層的上行鏈路,主要是三層交換機,工作在網(wǎng)絡(luò)層,它比第二層交換機更加高檔,功能更加強,因為工作于OSI模型的網(wǎng)絡(luò)層,具有路由功能,網(wǎng)關(guān)設(shè)備的北向接口要開放給SDN控制器,用于下發(fā)路由流表。
如圖2所示,實施中的主要步驟可以是:
步驟1:VDC的運營管理界面通過調(diào)用虛擬平臺的RESTful接口創(chuàng)建公網(wǎng)網(wǎng)絡(luò)和虛擬路由,并將需要聯(lián)通的子網(wǎng)加入到虛擬路由中,管理門戶判斷虛擬路由中的接口地址、網(wǎng)關(guān)等關(guān)鍵屬性,不能重復(fù)。
步驟2:虛擬平臺接受API請求創(chuàng)建網(wǎng)絡(luò),子網(wǎng),路由器等,將這些數(shù)據(jù)結(jié)構(gòu)放置相應(yīng)的數(shù)據(jù)庫里,同時將傳遞請求給配置好的插件,如NAT插件和SDN插件。
圖2 NAT和專網(wǎng)路由共存流程示意圖
步驟3:運行在虛擬化平臺的NAT插件啟動后,有若干個工作線程去消息隊列中拿數(shù)據(jù),然后將數(shù)據(jù)放進一個內(nèi)部的緩存隊列queue中,同時它還會啟動一個循環(huán)線程去queue中取數(shù)據(jù),當發(fā)現(xiàn)有路由相關(guān)的操作發(fā)生后,即調(diào)用函數(shù)去處理獲取的數(shù)據(jù)。
步驟4:運營管理界面上對虛擬機進行公網(wǎng)浮動地址的綁定,綁定時運營管理界面也是通過調(diào)用RESTful接口來實現(xiàn),虛擬平臺首先執(zhí)行數(shù)據(jù)庫操作,然后調(diào)用遠程通知消息去通知指定的Router執(zhí)行相關(guān)動作,如create_floatingip,update_floatingip,delete_floatingip等,同時運行在虛擬化平臺的NAT插件當發(fā)現(xiàn)有路由相關(guān)的操作發(fā)生后,即調(diào)用方法去消息隊列中獲取數(shù)據(jù)。
步驟5:NAT插件將獲取來的數(shù)據(jù)自動登錄到網(wǎng)關(guān)設(shè)備進行SNAT和DNAT的策略下發(fā),NAT插件根據(jù)和網(wǎng)關(guān)設(shè)備之間約定的規(guī)則生成RD(Route-Distinguisher)用于標示網(wǎng)關(guān)設(shè)備上不同租戶,其主要作用也就是實現(xiàn)租戶之間地址復(fù)用,它與IP地址一起構(gòu)成了12Byte的地址空間,同時NAT插件會在網(wǎng)關(guān)設(shè)備上創(chuàng)建另外一個重要屬性RT(Route-Target),它決定不同租戶路由的發(fā)送或接收,保證租戶間路由的隔離,網(wǎng)關(guān)設(shè)備依靠RT屬性區(qū)分不同租戶的NAT策略。
步驟6:用戶通過運營管理界面設(shè)置專網(wǎng)路由,運營管理界面通過調(diào)用API發(fā)送請求,虛擬平臺接受管理界面發(fā)來的API請求后,將API消息體里包含過來的路由信息進行提取,NAT插件的監(jiān)控線程當發(fā)現(xiàn)有路由相關(guān)的操作發(fā)生后,即調(diào)用更新接口去相關(guān)數(shù)據(jù)庫表中獲取專網(wǎng)路由信息,同時自動登錄到網(wǎng)關(guān)設(shè)備在此VRF下增加專網(wǎng)路由策略。
步驟7:運行在虛擬平臺上的SDN控制器插件從隊列中獲取相關(guān)網(wǎng)絡(luò)數(shù)據(jù)后,從SDN控制器調(diào)用對應(yīng)的接口,SDN控制器一旦收到請求,將使用任意的南向插件/協(xié)議,例如OpenFlow,OVSDB或者OF-Config,對網(wǎng)絡(luò)節(jié)點執(zhí)行必要的改變,即對網(wǎng)關(guān)設(shè)備下發(fā)相關(guān)的路由流表,后續(xù)虛擬機實現(xiàn)南北向功能時網(wǎng)關(guān)設(shè)備根據(jù)相應(yīng)的流表來選擇NAT策略或者專網(wǎng)路由出局,從而實現(xiàn)在網(wǎng)關(guān)設(shè)備上NAT和專網(wǎng)路由共存的場景,通過以上步驟從VDC的管理系統(tǒng)界面直接可以下發(fā)NAT和專網(wǎng)路由信息至網(wǎng)關(guān)設(shè)備,無需人工登錄到網(wǎng)關(guān)設(shè)備上去配置,即簡化VDC的管理維護系統(tǒng),又對后續(xù)整個VDC的網(wǎng)絡(luò)維護操作大大簡化流程。
通過自動化的策略配置,能在實際生產(chǎn)環(huán)境中根據(jù)網(wǎng)元的業(yè)務(wù)需求靈活配置,推動業(yè)務(wù)的快速上線和各種網(wǎng)絡(luò)平面的管控要求。云計算已經(jīng)逐步成為國家重點行業(yè),業(yè)務(wù)云化成為一種趨勢,這里介紹的方法給業(yè)務(wù)云化中各種復(fù)雜的網(wǎng)絡(luò)配置提供一個參考解決方案,希望對相關(guān)行業(yè)應(yīng)用人員或團隊提供一些有價值的參考,共同促進國內(nèi)云生態(tài)的完善和高效。