全棧云網絡技術之VPC/VBC簡介
?一、能力
在對具體技術細節進行介紹前,讓我們先了解一下兩種類別的基礎組網能夠增強哪些方面的能力
能給我們
1-VPC
1.1 獨立的網絡空間,優秀的安全能力
VPC給用戶提供專屬的網絡空間,不同的VPC之間邏輯隔離。如果應用不需要與外界交互,可以借助這個安全的網絡空間在云上完全隱身。如果應用需要與外界交互,可以選擇不同方式進行部分暴露,減少暴露面就能大大降低安全防護成本,提高應用的安全性。
1.2靈活的組網范圍,優秀的擴展能力?
VPC可以提供跨數據中心的Overlay組網能力,應用在一個VPC內部署,就可以方便地擴展到多個數據中心,從而屏蔽掉不同物理環境帶來的差異。VPC網絡的覆蓋范圍也可以隨著數據中心底座擴展而動態擴展。
1.3自主的網絡定義,優秀的定制化能?
用戶可以在自己的網絡空間內,根據需要去自定義網絡及安全的能力,不用擔心相互影響。這樣既能夠滿足用戶多樣化的需求,又能避免由于誤操作對其他用戶造成影響。
不過任何的技術手段都有短板,在帶來上述能力的同時,這種網絡模式也存在一些不足之處:使用這種模型學習成本高;隔離性帶來的統一管理不便;出入VPC需要在網絡層做NAT,不利于流量追蹤等等。但是瑕不掩瑜,主流云平臺都把VPC作為用戶使用云網絡的基本方式。?
2-VBC
2.1. 互聯互通的網絡,便捷的管理資源?
VBC組網地址是內網全互通的,方便各種統一管理工具對資源進行管理。
2.2.全網路由的地址,順暢的流量追蹤?
進出VBC網絡不需要做任何地址轉換,對流量的追蹤、問題排查都有很大的幫助。
2.3.扁平的網絡,低廉的學習成本?
從網絡層面上講這種組網方式給用戶的體驗與傳統網絡幾乎沒有區別,大大降低用戶學習和使用的成本。
同樣VBC網絡也有短板,主要體現在安全方面防護方面。由于是全互聯互通的網絡,云上應用系統的暴露面大,對安全防護也提出了挑戰,而傳統的云防火墻和ACL策略等安全手段在管理大規模、動態擴縮的云網絡時也顯得力不從心。對此全棧云也引入了更適合云安全的技術手段來解決這個問題,就不在本文中贅述。?
二、技術方案
在了解兩種組網方式各自的能力后,我們進一步剖析它們具體實現的技術方案。兩種網絡實現的思路相同,下面統一進行簡要描述
Software Defined Network
在軟件定義一切的云環境中,網絡也不例外。其實現方式主要遵照SDN的思想。SDN(Software Defined Network,軟件定義網絡),其主要思路是通過南向協議將管理面和轉發面進行解耦。這樣設計有兩個好處,一是能統一管理多種轉發面而屏蔽他們的差異,二是能避免管理面和轉發面在故障發生時相互影響。
根據控制方式的不同,SDN的實現方式主要有兩種,下面對兩種方式進行介紹:
1.由統一的管理面來負責規劃、管理、下發所有的轉發規則,從而實現對網絡的控制,轉發面接收轉發規則并按規則進行數據包轉發。這樣的優勢在于管理面掌握網絡中所有流量轉發路徑的完整信息,方便流量追蹤;缺點在于一旦這個管理大腦失靈,所有的轉發面將失去控制,容易造成全局性的風險
2.通過協議自組織的方式實現管控,優點在于資源占用少可以一套網絡一套控制面,故障范圍可控。缺點在于缺乏網絡路徑數據,不方便流量的追蹤。
在綜合考慮兩種方式的優缺點后,我們決定采用第二種技術方案來避免全局性的技術風險,對于流量路徑信息則采用其他的技術手段來解決。下面分控制面和轉發面兩部分進行詳細闡述:
不斷創新服務模式,聚焦品質優化。只有在服務過程中不斷傾聽業主的聲音,才能及時了解業主所需和所期,我們創建多條溝通渠道,建立和諧溫情的物業服務關系。
(1)控制面:
EVPN(Ethernet VPN),通過擴展BGP協議新定義了集中BGP EVPN路由,通過在控制網絡中發布路由來實現VTEP的自動發現、主機地址學習。
在控制面中,為了更加適應云網絡的環境,我們也做了大量的控制優化:?
優化一:全覆蓋的內部控制網絡:
為了讓VPC/VBC網絡能夠覆蓋到云平臺各個計算資源,我們在軟件層面上實現了一個內部控制私網便于路由信息的傳遞和下發。
優化二:獨立的軟路由處理器:
為了讓服務器的資源被充分利用,每臺服務器上會運行不同用戶的虛擬資源,這就要保障每臺服務器上的路由空間相互隔離。我們利用linux內核隔離技術為不同用戶的網絡做了獨立的路由處理器,保證屬于不同網絡的資源在相同的服務器上都能夠互不影響的處理路由信息。
(2)轉發面:
linux bridge是在內核層用純軟件實現的虛擬交換機,我們可以把各種類型的虛擬網卡綁定到這個虛擬交換機上,以便于將虛擬計算資源連接到網絡中。
同樣在轉發面上,我們也做了大量改進來提升轉發效率:
優化一:智能的數據包處理:
云網絡轉發面使用Overlay進行組網,這種組網方式對數據包進行大量的封裝/解封裝操作,而這種操作是占用服務器的計算資源的,不但造成了CPU資源的浪費而且轉發效率也不高。為了解決這個問題,全棧云采用了智能網卡來對數據包進行處理,實現了不占用CPU資源對數據包進行封裝/解封裝,同時也提升了網絡性能。
優化二:智能的路徑選擇:
對于路由優化,使得兩個計算節點之間通信路徑大大縮短,也提高了網絡的性能。
三、技術實現
兩種網絡的控制原理相同,不同點僅在于網絡內的地址是否要通告給物理網絡,下面對兩種網絡的實現方式進行統一介紹。
1-控制面
控制面采用EVPN,通過MPBGP協議定義了BGP EVPN路由,全棧云控制面中主要使用以下兩種類型的擴展路由:
mac/ip路由(type2):用來通告主機mac地址、主機arp和主機路由信息
inclusive multicast路由(type3):用于vtep自動發現和vxlan隧道動態建立。
控制面結構示意圖如圖一所示,圖中黑色和藍色分別代表兩個邏輯上相互隔離的網絡。
圖一
網絡管理器
每個計算節點物理機上都運行一個網絡管理器,主要有以下兩個功能:
- 負責維護與反射器間的BGP鄰居關系,通告本機上VM的ip地址和VTEP信息。在每個虛機創建/遷移的時候,其所在的計算節點就會發出type2路由來通告它的位置信息。如果在該物理服務器上沒有該網絡的分布式路由器,則會創建一個分布式路由器,并發送type3路由來通告vtep信息,完成vxlan組網;
- 接收MPBGP中攜帶的路由信息,分析其屬于哪個網絡,并以路由表和鄰居表的形式寫入到對應網絡的分布式路由的命名空間中。
網絡反射器
?每個網絡一對反射器,將BGP路由同步給網絡中所有的管理器,引入反射器可以有效降低BGP鄰居數量。在VBC場景下也會將收到的路由信息同步給路由管理器,用于向物理網絡通告路由。?
物理網絡地址通告
只有VBC類型的網絡要向物理網絡同步路由。路由通過平臺統一的路由控制器同步給物理交換機,因為全棧云網絡為全動態路由組網,虛機的下線、遷移等操作也可以動態同步到物理網絡中。示意圖如圖二所示:
圖二
計算節點上的反射器將路由信息同步給管理節點路由管理器,然后路由管理器將接收到的路由信息進行過濾整合后,同步給物理交換機,完成了的vbc地址的通告。?
2-轉發面
下面以VBC為例,介紹轉發面(圖中設計所有地址均非真實地址)
圖三
物理網絡?
如圖三所示,兩個虛機在同一個VBC的網段中。在同網段內部通信時,二層通信查分布式路由器的fdb(forward database)表,按查找結果,直接通過b1這個vxlan類型的端口轉發到目標的dvr。如果三層通信的話,則直接通過默認路由從物理網絡的c1口發出。
因為VPC支持三層組網,所以它的轉發面要復雜一些:跨網段通信時如果目的地址是同一個VPC內部的,流量則會從分布式路由器通過vxlan封裝直接發送到分布式路由器;如果不是同一VPC則會交給默認VPC網關來處理。
圖四
VPC網關
VPC是一個獨立封閉的網絡環境,如果用戶需要暴露服務的話需要做ip地址的映射,其中一種方式就是通過VPC網關做地址映射。VPC網關具備雙網卡,可以通過頁面配置把VPC網絡內部服務映射成VBC網絡可訪問的服務。如圖四(圖中地址非真實地址)所示,VPC網關具有兩塊網卡,一塊連接VBC網絡,一塊連接VPC網絡。在VPC網關處配置nat規則,就可以實現從VBC:100.168.0.10:12345到VPC:192.168.10.10:80服務的映射了。
總結
本文首先介紹了全棧云兩種組網帶來的能力,隨后分析了實現的技術方案,最后對一些技術實現做了簡要介紹,希望大家通過這篇文章對全棧云網絡能有一個概要認識。由于篇幅限制,并沒有深入過多的技術細節。
云計算技術經歷了十幾年的發展已經逐漸成熟,國家在“十四五”規劃中也提出了數字基建的戰略方向。用云、上云是信息科技發展的必然趨勢,然而在云化推進過程中難免經歷變革的陣痛,我們會堅持對外磨合需求,提升體驗;對內強化技術,提升可控和穩定性的宗旨來提升整體實力,建設好金融科技的基石。