2.3 網絡
2.3.1 雲網絡平台——洛神
阿裡雲作業系統叫作“飛天”,雲網絡平台稱為“洛神”。作為飛天系統的核心元件,洛神平台支撐超大規模租戶、超大規模虛拟機的高性能雲網絡。在飛天的基礎架構裡面,最上層是各種雲産品,包括大家熟悉的RDS(Relational Database Service)、ECS(Elastic Compute Service)、VPC(Virtual Private Cloud)、SLB(Server Load Balancer)等,支撐這些雲産品的是飛天的三個基礎元件,即存儲系統“盤古”、資源管理“伏羲”和雲網絡平台“洛神”。也就是說,洛神除支撐阿裡雲的網絡雲産品之外,還支撐其他雲産品的網絡基礎設施。
洛神平台由很多網絡裝置組成,主要可以分為兩類:虛拟交換機和各種網關裝置。虛拟交換機負責ECS 的虛拟網絡接入,網關裝置提供了豐富的網絡功能和服務。洛神平台架構如圖2-25 所示。

圖2-25 洛神平台架構
從系統架構上看,洛神平台由三大子產品組成,即資料平面、控制平面和管理平面。
資料平面負責雲網絡中資料包的處理,它就如同實體世界中的網線和路由交換裝置,把資料包高效率、低延遲地從發送端送到目的地。類似地,洛神的資料平面包含各種不同角色的元件,包括支援各種不同類型計算形态的虛拟交換機、用于資料中心互連的DCN 網關、用于雲網絡連接配接公網網關、用于雲上雲下互連的混合雲網關、提供負載均衡能力的負載均衡網關、提供端接入能力的智能接入網關。為了提高這些元件的轉發性能,洛神不僅使用了軟轉發技術,而且還對軟硬體結合甚至純硬體技術進行了廣泛應用。
控制平面則控制如何處理資料包,它是洛神的業務大腦。從技術上看,洛神的控制平面是一個層次性的分布式控制系統,最底層的裝置控制器主要負責控制和管理資料平面的各種元件,同時在每個區域都存在一個虛拟網絡控制器,在全局存在一個全球路由控制器。區域的虛拟網絡控制器負責本區域的雲網絡的管理與排程,全局路由控制器則負責協調排程各個區域的資源形成一張全球的雲網絡。基于虛拟網絡控制器和全局路由控制器之上的則是NFV 控制器,其完成虛拟網絡進階功能如VPN 等産品的編排和抽象。
洛神的管理平面是網絡運維和營運的中樞,它管理着海量的網元以及使用者,這裡的海量指的是千萬級虛拟機和百萬級網元。為了做到這一點,洛神的管理平台是基于大資料以及機器學習技術實作的,它對網絡運作當中産生的海量資料進行實時/ 離線計算、資料模組化,來驅動網絡資源的提前規劃、網絡系統的日常維護以及網絡産品的智能營運。整個管理平面包括一套高性能、分布式的資料分析系統,由它分析出來的資料被提供給智能運維系統和智能營運系統,完成資源規劃、網絡建設、系統變更、實時監控、故障逃逸、産品營運等整個網絡産品生命周期的工作。最終實作“在無人值守狀态下執行網絡變更”“先于使用者發現問題”“高效、簡單地完成故障逃逸”等豐富且全面的産品特性和使用者營運效果。
下面将重點介紹基礎的雲網絡核心技術:網絡虛拟化技術和網絡功能虛拟化(NFV)技術。
2.3.2 網絡虛拟化
網絡虛拟化技術是伴随着伺服器虛拟化技術不斷發展的,網絡虛拟化重點解決了以下問題:
-
- 虛拟機虛拟網卡如何實作,以及它如何與外界實體網絡裝置進行互動。
畢竟ECS 實際上是一台虛拟機,不可能每台虛拟機都對應一塊真正的實體網卡。
-
- 随着資料中心規模的不斷擴大,傳統二層組網方式逐漸暴露出一些技術短闆,諸如VLAN 标簽域存在數量上限4096、核心交換機MAC/ARP表項過大引發性能損耗、虛拟機跨三層網絡無法熱遷移等問題,嚴重阻礙了雲資料中心規模發展。引入網絡虛拟化技術,在基礎網絡上建構租戶專有網絡并建構大二層網絡,是解決上述問題的一個有效方法。
如圖2-26 所示,我們可以參考計算虛拟化、Overlay 的一些技術演進來了解網絡虛拟化。網絡虛拟化本質上是一個對虛拟機原始指令和封包進行封裝/解封裝的過程,讓實體機系統虛拟機系統能承載,基礎網絡能承載虛拟網絡。那麼,虛拟機管理器(VMM)如何截獲虛拟機網絡I/O 指令,翻譯成實體機核心協定棧的I/O 指令下發至網卡驅動? Overlay 技術如何基于傳統IP 協定完成封裝、互動和解封裝,進而使得虛拟機能跨區域網路甚至資料中心進行互訪和遷移?這些問題通過網絡虛拟化技術均可以得到完美解決。
圖2-26 常見的虛拟化場景
下面将介紹三種網絡虛拟化技術:網卡虛拟化、虛拟交換技術和最常見的Overlay 技術——VXLAN。
1. 網卡虛拟化
SR-IOV(Single Root I/O Virtualization)是基于網卡的虛拟化解決方案,可提升性能和可伸縮性。SR-IOV 标準允許在虛拟機之間高效共享 PCIe 裝置,并且在硬體中實作可以獲得與伺服器幾乎一樣的性能。一個SR-IOV 裝置具有一個或多個PF,PF 是标準的PCIe 裝置(比如網卡)。每個PF 都可以建立多個VF,VF 是“輕量級”的PCIe 裝置,每個VF 都擁有獨立的收發資料包的關鍵資源,如收發隊列、DMA 通道等,并且與其他VF 共享其他非關鍵的裝置資源。把一個VF 配置設定給一台虛機,該虛拟裝置就具備了直接使用該VF 進行資料發送和接收的能力,并且可以直接進行I/O 操作。
2. 虛拟交換技術
虛拟機虛拟網卡是網絡虛拟化的前端,其如何與實體網絡裝置進行互動,以及如何與其他虛拟機進行互動是實作虛拟化網絡的關鍵。業界通用的實作方案是在實體伺服器上部署一套虛拟交換機(vSwitch)作為虛拟機和實體網絡的中繼裝置,提供基礎二層轉發能力和部分進階特性。
虛拟交換機有大家熟知的VMware ESXi vSwitch、開源的OpenvSwitch 和Linux Bridge,以及阿裡雲自研的第一代和第二代虛拟交換機AVS。下面重點介紹業界比較流行的開源虛拟交換機:OpenvSwitch(OVS)。
(1)OpenvSwitch
OpenvSwitch 是一個虛拟交換機軟體,支援Xen/XenServer、KVM 以及VirtualBox 多種虛拟化技術,也支援802.1Q、網卡綁定、NetFlow/sFlow、GRE和VXLAN 隧道等功能。
OpenvSwitch 主要元件有datapath、vswitchd 和ovsdb,其中datapath 是負責資料交換的核心子產品,它負責從網口讀取資料,并快速比對FlowTable 中的流表項,如果比對成功,則直接轉發,否則上交vswitchd 處理,它在初始化和端口綁定時注冊鈎子函數,把端口的封包處理接管到核心子產品中;vswitchd 是一個守護程序,它是OVS 的管理和控制服務,通過UNIX Socket 将配置資訊儲存到ovsdb 中,并通過NetLink 和核心子產品互動;ovsdb 則是OVS 的資料庫,其中儲存了OVS 配置資訊。
如圖2-27 所示,OpenvSwitch 資料包轉發流程如下:
① 設定标準以太網接口模式為混雜模式,從以太網接口中截獲資料包,提取出關鍵字段。如果能夠比對流表,則轉入⑦,否則轉入②。
② 通過調用upcall 函數,使用NetLink 協定封裝資料包并上傳到使用者空間。在vswitchd 子產品中對NetLink 消息解封裝後,在ovsdb 中進行查表比對,如果能夠比對流表,則轉入④,否則轉入③。
③ 通過 OpenFlow 協定與控制器通信,控制器下發流表項,vswitchd 子產品通過解析流表項得到相應的動作,同時将流表項存儲到ovsdb 中。
④ 将比對的流表項組織成核心FlowTable 中的表項結構,并通過NetLink協定将流表項下發至核心的FlowTable 中。
⑤ 通過調用reinject 函數,使用NetLink 協定封裝資料包,重新發回至核心中。
⑥ 重新通過datapath 子產品進行流表項查找比對。
⑦ 根據查找結果,指導資料包的轉發。
圖2-27 OpenvSwitch 資料包轉發流程
如圖2-28 所示,OpenvSwitch 可以建立網橋,将實體網卡和虛拟機TAP裝置進行橋接,像交換機一樣進行二層轉發,為虛拟機和網絡裝置建立橋梁。虛拟機之間在學習到對方的ARP 資訊後,可以正常通過OVS 和實體交換機進行資料轉發。
圖2-28 OpenvSwitch 網橋
(2)虛拟交換機演進
早期的虛拟交換機大多為純軟體實作,與Hypervisor 軟體混合部署,為虛拟機提供基礎轉發功能,滿足了早期發展需求。但是随着業務規模的擴大,以及使用者需求的差異化,其缺點也凸顯出來。
-
- 資源成本 :vSwitch 運作在主控端上,需要獨占 CPU 以及使用部分記憶體存取轉發狀态和相關配置,這就導緻主控端可售賣的CPU 和記憶體資源變少,造成了一定程度上的資源浪費。
- 虛拟化開銷:無論虛拟機接收還是發送封包,都需要CPU執行memcpy的記憶體拷貝操作,而CPU 的記憶體拷貝開銷是非常大的,特别是在大帶寬場景下,嚴重制約了vSwitch 的轉發性能。
- 流量無法隔離:虛拟機的流量和主控端本身的流量(如存儲流量)會互相争搶,因為大家走的都是核心網絡協定棧的收發流程。當存儲流量大時,必然會影響到虛拟機自身的網絡流量轉發。
由于純軟體虛拟交換機無法擺脫性能的限制,也使得最近幾年業界開始聚焦在智能網卡(SmartNIC)上。通過将vSwitch 的部分功能或全部功能解除安裝轉移到網卡上,利用網卡CPU 或者網卡硬體轉發來提高網絡性能。例如,OpenvSwitch 通過Linux TC(Traffic Control)Flower 子產品可以将datapath 下沉到實體網卡,提升雲了轉發效率;阿裡虛拟交換機基于軟硬體一體化方式,使用神龍 MOC 卡實作快速轉發,轉發性能提升數倍,達到千萬 PPS,如圖2-29所示。
圖2-29 阿裡雲自研的AVS 演進
3. VXLAN 技術
(1)背景
介紹完虛拟網卡和虛拟交換技術,大家了解了虛拟機虛拟網卡和主控端、虛拟交換機、網絡裝置互動的流程,同時我們也需要更多思考在資料中心層面如何承載更多的虛拟機業務。傳統資料中心内部二層網絡多采用VLAN 技術進行租戶和業務隔離,但随着業務的發展,VLAN 4096 個VLANID 規模已無法滿足大規模雲計算中心業務及應用組網的需求,不斷擴充的虛拟機規模容易使TOR 交換機的MAC/ARP 表項面臨溢出的問題,同時難以實作跨三層的虛拟機二層互通及遷移場景。
而雲計算業務發展對資料中心網絡的需求是:
-
- 允許應用在任意(擁有空閑計算資源的)伺服器上靈活部署而不受實體網絡的限制,提升業務的靈活性。支援包括站點災難恢複、業務遷移在内的場景。
- 跨叢集甚至跨多個計算中心的可遷移性。
- 按需進行虛拟網絡部署,而無須重新配置實體網絡;支援多租戶環境下的大規模網絡部署。
考慮到采用傳統VLAN 技術部署應用存在的局限性,以及VXLAN 技術相關特性,根據雲計算背景下資料中心内部二層組網需求,業界引入VXLAN技術在資料中心及城域網等場景下進行部署,試圖從拓展二層子網數量、滿足多資料中心場景等次元實作大規模虛拟機部署,同時VXLAN 作為OverLay隧道技術配合其他DCI 技術(如EVPN 等)能夠靈活實作跨三層的二層擴充,充分滿足雲業務對網絡承載的需求。
(2)介紹
VXLAN(虛拟可擴充區域網路)是一種Overlay 網絡技術,将二層資料幀封裝至UDP 封包進行轉發,可以跨三層網絡建立一個完全虛拟化的基礎二層雲網絡,内層的虛拟機可以跨三層實體網絡通路其他虛拟機。目前洛神平台的VPC 基礎隧道技術就是基于VXLAN 演化而來的,VXLAN 技術也是目前業界最流行的雲網絡Overlay 技術。
(3)VXLAN 封包解析
VXLAN 在内層原始以太幀基礎上加了8 位元組的VXLAN 頭,外層分别是UDP 頭、IP 頭、MAC 頭,共50 位元組的封裝封包頭,如圖2-30 所示(具體字段及屬性參數可參見RFC 7348)。
圖2-30 VXLAN 封包組成示意圖
(4)VXLAN 實作原理
a. VXLAN 基本概念
在VXLAN 技術實作中,涉及的基本概念有VNI(VXLAN Network Identifier)、VTEP(VXLAN Tunnel End Point)、VXLAN Segment、VXLAN Gateway 等。
-
- VNI 作為VXLAN 辨別,主要用于辨別不同的VXLAN 域。
- VTEP 可由支援 VXLAN 的硬體裝置或軟體來實作,其主要負責對VXLAN 封包進行封裝/ 解封裝,包括ARP 請求封包和正常的VXLAN資料封包,在一端封裝封包後通過隧道向另一端VTEP 發送封裝的封包,另一端VTEP 接收到封裝的封包并解封裝後根據封裝的MAC 位址進行轉發。所有VM(虛拟機)加入VXLAN 實際上是通過VTEP 加入一個VXLAN 關聯多點傳播組的方式來實作的:每個VTEP 上都會維護一張表,記錄屬于同一個VXLAN 域内VM 的MAC 位址,以及其所屬主機的VTEP 的IP 位址。
- VXLAN Segment 表示實作 VM 之間通信的 VXLAN 二層 Overlay 網絡,在這個網絡内VM 可以互相通信并實作靈活遷移。
- VXLAN Gateway 一般被放置在應用場景的邊界,對内終結 VXLAN,對外通過DCI 相關技術如EVPN 等實作跨資料中心、跨地理區域的大二層及以上網絡互通。
b. VXLAN 控制平面和資料平面
VXLAN 控制平面(VNI、内層MAC、外層VTEP_IP)主要通過映射表的方式實作。對于不認識的MAC 位址,VXLAN 依靠ARP 協定及多點傳播互動的方式來擷取路徑資訊,同時VXLAN 還有自學習功能,當VTEP 接收到一個UDP 資料包後,會檢查自己是否收到過這台虛拟機的資料,如果沒有收到過,VTEP 就會記錄源VNI 、源外層IP 位址、源内層MAC 位址的對應關系,避免多點傳播學習。
在資料中心内部有控制器部署的場景下,可由控制器負責所有映射表的收集彙總并提供給各節點通過單點傳播查詢擷取映射關系。
VXLAN 采用UDP 封裝封包在VTEP 之間建構了基于隧道的資料平面,VTEP 可以為實體實體或邏輯實體,實作資料封包跨三層甚至跨資料中心的轉發,但需注意轉發途經的網絡裝置MTU 值的調高,保證相應的VXLAN 資料包順利通過。VXLAN 利用IP 多點傳播封裝廣播封包和多點傳播封包,可以限制虛拟網絡的廣播域,進而控制廣播泛洪;可以對不同的資料流使用不同的UDP 源端口實作ECMP(等價多路徑負載均衡)。
c. VXLAN 發現和位址學習過程
如圖2-31 所示,在VXLAN 網絡模式下,主機之間的轉發過程如下:
① VM-A(MAC-A、IP-1)和VM-B(MAC-B、IP-2)通過VTEP 連接配接到VXLAN 網絡(VNI 10),兩個VXLAN 主機加入IP 多點傳播組239.1.1.1 ;VM-A以廣播的形式發送ARP 請求。
② VTEP-1 封裝封包,打上VXLAN 辨別為10,外層IP 頭DA 為IP 多點傳播組(239.1.1.1),SA 為IP_VTEP-1 ;VTEP-1 在多點傳播組内進行多點傳播。
③ VTEP-2/VTEP-3 分别解析接收到的多點傳播封包,填寫映射表(内層MAC位址、VNI、外層IP 位址),同時相應的VM 對接收到的VM-A ARP 請求進行判斷處理。
④ VM-B 發現該請求是發給它的,于是發出ARP 響應封包。
⑤ VTEP-2 接收到VM-B 的響應封包後, 把它封裝在IP 單點傳播封包中(VXLAN 辨別為10),然後向VM-A 發送單點傳播封包。
⑥ VTEP-1 接收到單點傳播封包後,學習内層MAC 位址到外層IP 位址的映射,解封裝并根據被封裝内容的目的MAC 位址轉發給VM-A。
⑦ VM-A 接收到VM-B ARP 應答封包,ARP 互動結束。
VXLAN 單點傳播資料流轉發過程如圖2-32 所示。
按照ARP 協定完成協商應答後,VTEP-1 和VTEP-2 上都會形成一個VXLAN 二層轉發表,大緻如表2-1 和表2-2 所示。(不同廠商表項可能略有不同,但最主要的是其中的元素)。
表2-1 VTEP-1 VXLAN 二層轉發表
表2-2 VTEP-2 VXLAN 二層轉發表
單點傳播資料流轉發過程如下:
① VM-A 将原始封包上送到VTEP。
② 根據目的MAC 位址和VNI,查找到外層的目的IP 位址是VTEP-2 IP位址,然後将外層的源IP 位址和目的IP 位址分别封裝為VTEP-1 IP 位址和VTEP-2 IP 位址,源MAC 位址和目的MAC 位址分别為下一段鍊路的源MAC位址和目的MAC 位址。
圖2-31 VXLAN 發現和位址學習過程
圖2-32 VXLAN 單點傳播資料流轉發過程
③ 資料包穿越IP 網絡。
④ 根據VNI、外層的源IP 位址和目的IP 位址進行解封裝,通過VNI 和目的MAC 位址查表,得到目的端口是e1/1。
⑤ VM-B 接受此原始封包,并回複VM-A,回複過程同上。
通過VXLAN 技術,虛拟化平台可以跨三層網絡甚至跨資料中心建立,虛拟機之間通過大二層進行互訪。同時基于VXLAN 技術和虛拟交換技術、SDN技術的結合,也提供了大規模租戶網絡隔離方案、可行的虛拟機熱遷移方案、ARP 代理和單點傳播方案,為大規模雲計算中心建構打下了基礎。
2.3.3 NFV 關鍵技術
NFV 即網絡功能虛拟化,通過使用x86 等通用性硬體以及虛拟化技術,承載多功能的軟體處理;通過軟硬體解耦及功能抽象,使網絡裝置功能不再依賴專用硬體,充分靈活共享資源,實作新業務的快速開發和部署,并基于實際業務需求進行自動部署、彈性伸縮、故障隔離和自愈等。洛神平台提供了NFV 平台,各業務網元可通過該平台進行建構,如VPC 網絡、彈性IP 位址、流量控制、NAT 網關、SLB 等,下面章節将重點展開介紹。
1. VPC 網絡
随着雲計算的不斷發展,對虛拟化網絡的要求越來越高,例如,要求具有彈性、安全性(Security)、可靠性(Reliability)和私密性(Privacy),并且還有極高的互聯性能(Performance)需求,是以催生了多種多樣的網絡虛拟化技術。
随着虛拟化網絡規模的擴大,這種方案中的網絡隔離性、廣播風暴、主機掃描等問題會越來越嚴重,同時私網IP 位址限制、使用者無法自定義網絡編排等也給使用者體驗帶來了影響。為了解決這些問題,阿裡雲引入了虛拟專有網絡(Virtual Private Cloud,VPC),為使用者提供可靠、安全、可編排的網絡服務。
(1)VPC 概念
VPC 是基于阿裡雲建構的一個隔離的網絡環境,專有網絡之間邏輯上徹底隔離。專有網絡是使用者自己獨有的雲上私有網絡。簡單來說,就是使用者的雲上網絡不再是和其他使用者共享的網絡,而是有自己的獨立網絡配置空間,對其他使用者是不可見的。
舉個例子,A 使用者使用了192.168.0.1 這個IP 位址,B 使用者也可以使用,但A 使用者的任何網絡配置都不會影響B 使用者,因為這兩個使用者都處于各自的虛拟專有網絡中,互不影響。
使用者可以完全掌控自己的專有網絡,比如選擇IP 位址範圍、配置路由表和網關等,使用者可以在自己定義的專有網絡中使用阿裡雲資源如ECS、RDS、SLB 等。
使用者可以将自己的專有網絡連接配接到其他專有網絡或本地網絡,形成一個按需定制的網絡環境,實作應用的平滑遷移上雲和對資料中心的擴充,如圖2-33所示。
圖2-33 專有網絡互聯
(2)組成部分
每個VPC 都由一個路由器、至少一個私網網段和至少一個交換機組成,如圖2-34 所示。
圖2-34 VPC 組成元素
-
- 私網網段。在建立專有網絡和交換機時,需要以CIDR 位址塊的形式指定專有網絡使用的私網網段。
- 路由器。路由器(vRouter)是專有網絡的樞紐。作為專有網絡中重要的功能元件,它可以連接配接VPC 内的各個交換機,同時它也是連接配接VPC和其他網絡的網關裝置。每個專有網絡建立成功後,系統都會自動建立一個路由器,每個路由器都關聯一張路由表。
- 交換機。交換機(vSwitch)是組成專有網絡的基礎網絡裝置,用來連接配接不同的雲資源。建立專有網絡後,可以通過建立交換機為專有網絡劃分一個或多個子網。同一專有網絡内的不同交換機之間内網互通,可以将應用部署在不同可用區的交換機内,提高應用的可用性。
(3)原理描述
基于目前主流的Overlay 技術——VXLAN,專有網絡隔離了虛拟網絡。每個VPC 都有一個獨立的VNI,一個VNI 對應着一個虛拟網絡。一個VPC 内的ECS 執行個體之間的資料包傳輸都會加上隧道封裝,帶有唯一的VNI,然後送到實體網絡上進行傳輸。不同VPC 内的ECS 執行個體因為所在的VNI 不同,本身處于兩個不同的路由平面,是以它們之間無法進行通信,天然地進行了隔離。
基于Overlay 技術和軟體定義網絡(Software Defined Network,SDN)技術,阿裡雲研發團隊在硬體網關和自研交換機裝置的基礎上實作了VPC 産品。
(4)邏輯架構
如圖2-35 所示,VPC 包含交換機、網關和控制器三個重要元件。交換機和網關組成了資料通路的關鍵路徑,控制器使用阿裡雲自研的協定下發轉發表到網關和交換機,完成了配置通路的關鍵路徑。整體架構裡面,配置通路和資料通路互相分離。交換機是分布式的節點,網關和控制器都是叢集部署且是多機房互備的,并且所有鍊路上都有備援容災,提升了VPC 産品的整體可用性。
圖2-35 VPC 邏輯架構
2. 彈性IP 位址
IP 是 Internet Protocol 的縮寫,它是為計算機互聯而設計的協定,是 TCP/IP 網絡模型的基礎協定,是現行網絡體系中重要的傳輸媒介。IP 位址分類有多種方式,比如在日常使用中,常将 IP 位址分為私網位址和公網位址,由于公網位址資源的匮乏,常通過 NAT 的方式通路公網位址;按協定族可分為 IPv4位址和 IPv6 位址。
在雲上,一台彈性計算伺服器(ECS)的網卡代表着其轉發能力,而伺服器上配置的 IP 位址代表着其業務能力。IP 位址是彈性計算伺服器通路外部或被外部通路的主要方式。在早期的經典網絡中,雲上伺服器有兩張網卡,其中公網網卡可以配置一個公網 IP 位址通路公網域,私網網卡可以配置一個私網IP 位址通路私網域。而在 VPC 中,相比經典網絡,IP 位址具有更多的類型和特性,包括私網 IP 位址、彈性公網 IP 位址、彈性公網 IP 位址的網卡可見模式、IPv6 位址等,後面将詳細講解。
(1)私網 IP 位址
私網 IP 位址,顧名思義,它是一個私網位址域裡的位址。在 VPC 中,大部分私網 IP 位址遵循 RFC 1918 中位址的分類,采用以下三個位址段作為 VPC的私網位址段。
-
- 10.0.0.0 ~ 10.255.255.255(10/8 位字首)
- 172.16.0.0 ~ 172.31.255.255(172.16/12 位字首)
- 192.168.0.0 ~ 192.168.255.255(192.168/16 位字首)
使用者在建立 VPC 時,可以選擇這三個位址段中的一個作為 VPC 的私網位址段。在建立彈性計算執行個體或者彈性網卡時,會根據其所屬的 VPC 和交換機配置設定一個私網 IP 位址。不同于實體網絡,雲上的私網 IP 位址都是由 SDN 控制器來管理的,直接在彈性計算伺服器内配置一個未配置設定的 IP 位址是不能直接通路 VPC 的。使用私網 IP 位址不可以直接通路公網,如果要通路公網,則需要綁定彈性公網 IP 位址或者 NAT 網關等。私網 IP 位址可以用于以下場景中:
-
- 負載均衡。
- 同一 VPC 内彈性計算執行個體之間内網互訪。
- 同一 VPC 内彈性計算執行個體與其他雲服務(如 OSS、RDS 等)之間内網互訪。
- 通過高速通道連通的不同 VPC 的彈性計算執行個體通路。
不同于很多雲服務提供商的實作,阿裡雲上的雲服務是可以使用私網 IP位址作為其執行個體位址的。這使得雲計算不需要綁定公網 IP 位址即可通路對應的雲服務,既讓使用者的網絡環境更加安全,又降低了使用成本。
(2)網卡多 IP 位址
網卡多 IP 位址指的是為單張網卡配置設定多個私網 IP 位址,網卡上原來配置設定的位址被稱為“主 IP 位址”,而附加的 IP 位址被稱為“輔助 IP 位址”。輔助 IP位址必須與網卡所在的交換機網段相同,IP 位址既可由使用者指定,也可由系統配置設定。
輔助 IP 位址除了具備基本的私網通路能力,還可以:
-
- 綁定彈性公網 IP 位址。
- 通過 NAT 網關通路公網。
- 負載均衡後端 IP 位址。
在大多數場景下,為一張網卡配置設定一個私網 IP 位址足以滿足大部分需求,但在有些場景下,使用者希望為網卡配置設定更多的 IP 位址,用于承載更多樣的業務。
在雲原生“大火”的當下,使用者在彈性計算伺服器上部署 Kubernetes 叢集,建構雲原生容器網絡,需要為彈性計算伺服器或彈性網卡配置更多的 IP 位址。當然,使用者可以通過自定義網段或 Overlay 方式來配置多個 IP 位址。但是這些自定義的網段是不能使用雲上各種各樣的服務的,特别是 Overlay 方式增加了一層 Overlay 的外層包封裝和解封裝,對性能影響較大。而相應地,基于網卡多 IP 位址是産品化的方案,網卡多IP 位址幾乎可以使用網卡主 IP 位址所有的雲上特性,同時又有與彈性網卡相當的性能。輔助 IP 位址相比于彈性網卡是一種輕量級的執行個體,API 性能會好很多,同時彈性網卡受 PCI 位址的限制,單彈性計算伺服器最多隻能有 26 個,是以在部署容器類業務時有更大的優勢。
(3)彈性公網 IP 位址
彈性公網 IP 位址(Elastic IP Address,EIP)是可以獨立購買與持有的公網IP 位址資源。目前,彈性公網IP 位址可被綁定到專有網絡類型的彈性計算執行個體、專有網絡類型的私網 SLB 執行個體、NAT 網關、高可用虛拟 IP 位址、彈性網卡、輔助 IP 位址等多種資源上。
彈性公網 IP 位址的優勢如下:
-
- 獨立購買與持有 :可以單獨持有一個彈性公網 IP 位址,作為賬戶下的一個獨立資源存在,無須與其他計算資源或存儲資源綁定購買。
- 彈性綁定:可以在需要時将彈性公網 IP 位址綁定到所需的資源上 ;在不需要時,将之解綁并釋放,避免不必要的計費。不同于經典網絡的公網 IP 位址,對彈性公網 IP 位址可以靈活地進行綁定和解綁,更換所綁定的彈性計算執行個體,便于業務平滑遷移。
- 可配置的網絡能力 :可以根據需求随時調整彈性公網 IP 位址的帶寬值,修改即時生效。彈性公網 IP 位址本質上是一種 NAT IP 位址,它實際位于公網網關上,通過 NAT 方式映射到被綁定的資源上。EIP 與雲資源綁定後,雲資源可以通過 EIP 與公網通信,是以,彈性公網 IP 位址不同于經典網絡的公網 IP 位址,它在被綁定到彈性計算執行個體内部後是不
- 能直接檢視的。
(4)公網直通 IP 位址
正因 IPv4 位址資源匮乏,是以将私網 IP 位址通過 NAT 封裝成公網 IP 位址通路公網是一種比較合理的方式。但由于 NAT 本身對資料包是有損轉發的,是以對于應用層資料載荷中存在的 IP 位址或端口協定,僅對網絡層和傳輸層的 IP 位址和端口進行NAT 轉發是不夠的,比如 H.323、SIP、FTP、SQLNET、DNS 等協定,當載荷裡的IP 位址或端口不能被 NAT 封裝時,這些協定便不能正常工作。業界常用的解決方案是 NAT ALG,而 NAT ALG 方案本身需要儲存會話,同時需要修改更多的資料,系統複雜性較高,性能也會有一定的損耗。
前面提到,EIP 本身是一種 NAT IP 位址,雖然解決了彈性需求的問題,但由于沒有 NAT ALG 的功能,對一些協定并不支援。另外,EIP 本身在彈性計算伺服器系統内不可見,在一定程度上增加了管理複雜度。
為了解決 NAT IP 位址的不足,滿足 VPC 下 NAT ALG 的需求,阿裡雲推出了EIP 網卡可見模式——既保持了 EIP 的彈性能力,又可以不經過 NAT 直接配置在彈性計算伺服器裡。這樣就從另一個角度解決了 EIP 因為 NAT 而産生的缺陷,提升了使用者體驗,如圖2-36 所示。
圖2-36 普通模式與EIP 網卡可見模式
此外,為了給容器等業務提供更多直通 IP 位址,阿裡雲還推出了多個 EIP的網卡可見模式,解決在容器應用場景下 NAT 帶來的問題。
(5)IPv6 位址
随着網際網路的急速發展,IPv4 位址資源基本消耗殆盡,2011 年 2 月 3 日,ICANN 宣告 IPv4 的公網位址已經全部配置設定,43 億個 IP 位址總量已經遠遠不能滿足行業的發展需求,特别是近幾年物聯網的快速發展,對 IP 位址的需求越來越大。早在 1993 年,為解決位址資源枯竭問題,IPng(IP next generation)工作組成立,并在 1995 年釋出第一個規範(RFC 1883),然而 IPv6 的發展卻非常緩慢。
IPv6 位址采用128 位的編址方式,位址空間容量是 IPv4 位址的 296 倍,幾乎可以為每一粒沙子配置設定一個 IPv6 位址,不僅增加了位址空間,還提供了更高效的 IP 報頭,協定在支援移動性、加密、認證、服務品質等方面比 IPv4前進了一大步,如圖 2-37 所示。
圖2-37 IPv6 報頭結構
2018 年,阿裡雲支援 IPv6 位址,彈性計算伺服器從此可以配置 IPv6 位址,對外提供服務。阿裡雲 IPv6 位址采用 GUA(Global Unicast Address),既可用于私網通路,也可用于公網通路,同時在通路公網時不再需要 NAT,徹底解決了 IPv4 中NAT ALG 相關問題。在VPC IPv6 的位址配置設定中,完全可以按需劃分子網段,網絡可運維性有了較大的提升。
IPv4 是過去式,IPv6 是将來式,阿裡雲 VPC IPv6 的整體生态體系也在演進中,逐漸豐富,不會停止。
3. 流量控制
雲主機的流量控制包含兩個層面:一是規格限速,根據購買的雲主機規格,對雲主機的整體網絡能力的限制,包括 PPS(Packet Per Second)和 BPS(Bandwidth Per Second)限制。這是因為同一台主控端上的雲主機共享主控端的實體帶寬資源,單台雲主機隻能占用執行個體規格定義的網絡能力,不會額外擠占實體機共享帶寬,保證租戶的隔離性。二是業務限速,根據雲主機實際通路的流量類型進行的精細限速,如果雲主機通路公網,那麼它就會被使用者實際購買的公網帶寬限速。
(1)規格限速
雲主機執行個體規格不僅定義了執行個體的 CPU 和記憶體的配置(包括 CPU 型号、主頻等),同時也規定了該執行個體最大網絡帶寬、收發包處理能力(PPS)、支援的彈性網卡數目和每塊彈性網卡支援的隊列數目。規格限速不區分流量類型,隻要總流量超過規格定義的最大帶寬或 PPS,主控端上的虛拟交換機就直接丢棄資料包。規格限速作用在執行個體級别,對于使用了多網卡的雲主機,引入限速組概念,将虛拟機的所有彈性網卡加入同一限速組,通過對限速組進行限速,保證所有彈性網卡的總流量不超過執行個體規格。規格限速示意圖如圖 2-39 所示。
圖2-38 規格限速示意圖
(2)業務限速
業務限速指根據雲主機流量通路的是私網還是公網,是否跨可用區、跨地域(高速通道),分别進行限速。公網限速與高速通道限速在業務邏輯及實作上均大同小異,而公網限速應用範圍最廣,這裡重點介紹公網限速。
VPC 預設無法通路公網,隻有配置彈性公網 IP 位址或 NAT 網關才能連接配接公網。EIP與雲資源綁定後,雲資源可以通過 EIP 與公網通信。EIP 可被綁定到 VPC 類型的彈性計算執行個體、彈性網卡、VPC 類型的私網 SLB 執行個體,以及 NAT 網關執行個體上。NAT 網關是一種企業級的 VPC 公網網關,提供 NAT 代理(SNAT 和 DNAT)。NAT 網關與 EIP 最大的差別是, EIP 隻能被綁定到單台雲主機上,而 NAT 網關支援 VPC 内多台雲主機共享同一個彈性公網 IP 位址通路公網。對于保有大量雲主機的企業客戶來說,購買一個 NATGW 執行個體就能讓 VPC 内所有雲主機都具備公網通路能力,并且将流量統計、監控都統一到單個執行個體上,簡化管理運維。業務限速示意圖如圖 2-39 所示。
圖2-39 業務限速示意圖
(3)流量計費
為了滿足峰值流量需求,使用者往往需要購買較大帶寬,這就造成了在流量低峰時帶寬浪費的情況。另外,大部分使用者既購買了 EIP,又購買了 NAT 網關,總是存在 EIP 的帶寬還有富餘,而 NAT 網關的帶寬已經不足的情況,或者反之。為了節省使用者的成本,最大化地利用資源,在網絡産品中又誕生了“共享流量包”和“共享帶寬包”兩個産品。
-
- 共享流量包。共享流量包是公網流量的預付費套餐,價格比後付費流量的更低,并支援閑時峰谷流量包,大大降低了公網流量成本。共享流量包産品覆寫面廣,按流量計費的ECS、EIP、SLB 和 NAT 網關都可以使用,且支援閑時流量包,價格更低。
- 共享帶寬包。共享帶寬包是獨立的帶寬産品,提供高品質的多線 BGP帶寬和豐富多樣的計費模式,支援将 EIP 添加到共享帶寬包中,這些EIP 将同時共享和複用帶寬包中的帶寬。使用者将 EIP 綁定到專有網絡ECS、NAT 網關、專有網絡 SLB 等,讓這些産品也可以使用共享帶寬包。
4. NAT 網關
(1)基本概念
NAT 網關(NAT Gateway)是一款企業級的公網網關,提供NAT 代理(SNAT和DNAT)、高達10Gb/s 級别的轉發能力以及跨可用區的容災能力。NAT 網關與共享帶寬包配合使用,可以組合成高性能、配置靈活的企業級網關。NAT網關架構如圖2-40 所示。
圖2-40 NAT 網關架構
NAT 技術是一種緩解IPv4 公網位址枯竭的方案,通過NAT 技術可以讓大量的私網IP 位址使用少量的公網IP 位址與Internet 進行互訪。
SNAT 和DNAT 是NAT 網關為ECS 提供公網服務的兩種方式。SNAT 為源位址映射,即可以将内網ECS IP 位址轉換成公網IP 位址,進而提供通路公網的能力。SNAT 隻限于内網ECS 主動發起的外網通路請求。DNAT 為目的位址映射,即可以将公網位址映射成内網IP 位址,這樣外部應用就可以主動通路到内部資源。DNAT 分為端口轉發和IP 位址映射,其中端口轉發指的是将同一個公網IP 位址+ 不同端口映射到不同内網IP 位址+ 不同端口;IP 位址映射是指将固定的公網IP 位址映射到唯一的内網IP 位址,内外網IP 位址一一對應。如表2-3 所示,DNAT 和SNAT 需要在NAT 網關上維護兩張配置表,分
别為DNAT 表和SNAT 表。
表2-3 DNAT表和SNAT表
(2)産品優勢
NAT 網關具有以下優勢:
-
- 靈活易用的轉發能力。NAT 網關作為一款企業級 VPC 公網網關,提供SNAT 和DNAT 功能,使用者無須基于雲伺服器自己搭建公網網關。NAT網關功能靈活、簡單易用、穩定可靠。
- 高性能。NAT 網關是基于阿裡雲自研的分布式網關,采用 SDN 技術開發的一種虛拟網絡硬體。NAT 網關支援10Gb/s 級别的轉發能力,為大規模公網應用提供支撐。
- 高可用。NAT 網關跨可用區部署,可用性高,單個可用區的任何故障都不會影響NAT 網關的業務連續性。
- 按需購買。NAT 網關的規格、EIP 的規格和個數均可以随時升降,輕松應對業務變化。
(3)使用場景
NAT 網關适用于專有網絡類型的ECS 執行個體需要主動通路公網和被公網通路的場景。
-
- 搭建高可用的 SNAT 網關。在 IT 系統中,往往存在一些伺服器需要主動通路Internet,但出于安全性考慮,應避免将這些伺服器所持有的公網IP 位址暴露在公網上。此時,可以使用NAT 網關的SNAT 功能實作這一需求,如圖2-41 所示。
圖2-41 SNAT 功能架構
-
- 提供公網服務。NAT 網關支援 DNAT 功能,将 NAT 網關上的公網 IP位址映射給ECS 執行個體使用,使ECS 執行個體能夠提供網際網路服務。DNAT支援端口映射和IP 位址映射,隻需要在NAT 網關上建立DNAT 規則即可實作。DNAT 規則配置參數如表2-4 所示。
表2-4 DNAT規則配置參數
-
- 共享公網帶寬。如果應用面向網際網路,則需要為該應用購買公網帶寬。為了應對業務流量可能發生的變化,在購買帶寬時會考慮一定的備援。當IT 系統中同時存在多個面向網際網路的應用時,為每個應用購買備援帶寬會造成資源和成本的浪費。解決方式是将多個EIP 加入共享帶寬包中,可以更好地進行公網帶寬資源的管理和成本的控制。另外,多個面向網際網路的應用可能存在流量錯峰的情況,多個EIP 共享帶寬功能可以進一步縮減公網帶寬總量。
5. SLB
負載均衡(Server Load Balancer,SLB)是将通路流量根據轉發政策分發到後端多台雲伺服器(ECS 執行個體)的流量分發控制服務。同時負載均衡服務還擴充了應用的服務能力,增強了應用的可用性。負載均衡轉發示意圖如圖2-42所示。
圖2-42 負載均衡轉發示意圖
負載均衡服務通過設定虛拟服務位址,将添加的同一地域的多個ECS 執行個體虛拟成一個高性能和高可用的後端伺服器池,并根據轉發規則将來自用戶端的請求分發給後端伺服器池中的ECS 執行個體。
負載均衡服務預設檢查雲伺服器池中的ECS 執行個體的健康狀态,自動隔離異常狀态的ECS 執行個體,消除了單個ECS 執行個體的單點故障,提高了應用的整體服務能力。此外,負載均衡服務還具備防禦DDoS 攻擊的能力,增強了應用服務的防護能力。
(1)基礎架構說明
負載均衡基礎架構采用叢集部署,提供四層(TCP 和UDP)和七層(HTTP和HTTPS)的負載均衡服務,可實作會話同步,以消除伺服器單點故障,提升備援,保證服務的穩定性。
負載均衡作為流量轉發服務,将來自用戶端的請求通過負載均衡叢集轉發至後端伺服器,後端伺服器再将響應通過内網傳回給負載均衡服務。
阿裡雲目前提供四層和七層的負載均衡服務。四層采用開源軟體LVS(Linux Virtual Server)+ keepalived 的方式實作負載均衡,并根據雲計算需求對其進行個性化定制。七層采用Tengine 實作負載均衡。Tengine 是由淘寶網發起的Web 伺服器項目,它在Nginx 的基礎上,針對有大通路量的網站需求添加了很多進階功能和特性。
如圖2-43 所示,各個地域的四層負載均衡服務實際上是由多台LVS 機器部署成一個LVS 叢集來運作的。采用叢集部署模式,極大地保證了異常情況下負載均衡服務的可用性、穩定性與可擴充性。
圖2-43 負載均衡基礎架構
(2)入網流量路徑
對于入網流量,負載均衡服務會根據使用者在控制台或API 上配置的轉發政策,對來自前端的通路請求進行轉發和處理。入網流量路徑如圖2-44 所示。
-
- TCP/UDP和 HTTP/HTTPS 的流量都需要經過LVS叢集進行轉發。
- LVS 叢集内的每一台節點伺服器都均勻地配置設定海量通路請求,并且每一台節點伺服器之間都有會話同步政策,以保證高可用。
- 如果相應的負載均衡執行個體服務端口使用的是四層協定(TCP 或UDP),那麼LVS 叢集内的每個節點都會根據負載均衡執行個體的負載均衡政策,将其承載的服務請求按政策直接分發到後端ECS 伺服器。
- 如果相應的負載均衡執行個體服務端口使用的是七層 HTTP,那麼 LVS叢集内的每個節點都會先将其承載的服務請求均分到Tengine 叢集,Tengine 叢集内的每個節點再根據負載均衡政策,将服務請求按政策最終分發到後端ECS 伺服器。
- 如果相應的負載均衡執行個體服務端口使用的是七層 HTTPS,與上述HTTP 處理過程類似,差别是在将服務請求按政策最終分發到後端ECS 伺服器前,先調用Key Server 進行證書驗證以及資料包加解密等前置操作。
圖2-44 入網流量路徑
(3)出網流量路徑
負載均衡服務和後端ECS 伺服器之間是通過内網進行通信的。出網流量路徑如圖2-45 所示。
圖2-45 出網流量路徑
總體原則:流量從哪裡進來,就從哪裡出去。
-
- 通過負載均衡服務進入的流量,在負載均衡服務上限速或計費,僅收取出方向流量費用,不收取入方向流量費用(未來可能會改變),負載均衡服務與後端ECS 伺服器之間的通信屬于阿裡雲内網通信,不收取流量費用。
- 來自彈性公網 IP 位址或 NAT 網關的流量,分别在彈性公網 IP 位址或NAT 網關上進行限速或計費。如果在購買ECS 時選擇了公網帶寬,則限速/ 計費點在ECS 上。
- 負載均衡服務僅提供被動通路公網的能力,即後端 ECS 伺服器隻有在收到通過負載均衡服務轉發來的公網的請求時,才能通路公網回應該請求,如果後端ECS 伺服器希望主動發起公網通路,則需要配置或購買ECS 公網帶寬、彈性公網IP 或NAT 網關來實作。
- ECS 公網帶寬(購買 ECS 時配置)、彈性公網 IP 位址、NAT 網關均可以實作ECS 的雙向公網通路(通路或被通路),但沒有流量分發和負載均衡的能力。