网易云网络服务研发实践—第1代云网络服务|网易云
本系列以私有云為例,將為大家講述網易云網絡服務的研發實踐,將有3期連載。本篇主要介紹第1代云網絡服務。
作者:張曉龍
浙江大學計算機學院本科、博士畢業。網易專業技術委員會委員、網易云計算基礎設施研發負責人。專注于云計算、虛擬化、軟件自定義網絡(SDN)、分布式存儲、大數據處理等技術。
在網易私有云研發3年多以來,伴隨著OpenStack社區的發展,在公司需求的推動下,云網絡服務已進行著架構和技術上的演進。我們一共研發并發布了兩個版本的云網絡服務:基于Nova Networking模塊研發的第一代云網絡服務和基于Neutron的第二代云網絡服務。
我們先來了解第一代云網絡服務的功能、網絡邏輯架構、技術選型以及自研功能與優化。
第一代云網絡服務在當時使用較多且較穩定的Nova Networking模塊基礎上進行研發。作為一個私有云的網絡服務,我們在網絡隔離、IP地址管理、與已有企業數據中心的網絡互聯控制、帶寬控制等方面有較細致的需求,社區的Nova Networking模塊并不能滿足這些需求,于是我們對它進行了較大的改造并發布了第一代云網絡服務。
功能介紹
利用Nova Networking模塊管理云主機網絡資源的最大優勢在于簡單可靠,并已經基本能滿足小規模部署的要求。基于Nova Networking模塊進行二次研發,第一代云網絡服務主要提供了IP資源管理、網絡連接管理兩大功能。
>>>>IP資源管理
在第一代云網絡服務中,每一個新建云主機默認會通過動態主機設置協議(DHCP)分配到一個固定IP。
固定IP與云主機的虛擬網卡完全綁定,并存在于整個云主機生命周期(從創建到銷毀,固定IP與該云主機一直綁定)。固定IP只用于云環境中租戶的云主機之間互相訪問,不同租戶間云主機不能通過固定IP進行互訪。
浮動IP是以資源池方式進行管理,按需分配并回收。浮動IP的生命周期與云環境租戶的生命周期完全綁定,但獨立于云主機的生命周期。浮動IP主要用于云環境租戶之間的云主機互訪以及云環境與非云物理機房環境的互訪。
>>>>網絡連接管理
第一代云網絡服務為云主機創建了一塊虛擬網卡,以允許云主機通過該網卡接入到云網絡中,實現不同租戶間的云主機網絡隔離。
云網絡服務引入安全組(Security Group)的概念來實現管理云主機訪問權限。云主機訪問權限管理允許通過安全組規則設置允許訪問的源地址、網絡協議以及端口,云主機對外訪問則不受安全組控制。云環境租戶可將云主機關聯到1個或多個安全組中。
云主機網絡流量控制的QoS管理考慮將云平臺的網絡帶寬當成一種資源進行管理,允許云環境管理員為每個租戶設置網絡流出的配額。同時,QoS管理允許租戶在網絡帶寬的配額允許范圍內配置其云主機網絡流出的最大帶寬速度。
網絡邏輯架構
為了更好介紹第一代云網絡服務的功能,我們用下圖展示其網絡邏輯架構。
在第一代云網絡服務中,整個云網絡環境分為私有云環境、現有企業內部網絡環境、公共網絡環境三大部分。私有云環境和現有企業內部網絡環境都是不能被外部訪問的,并且這三個網絡之間互相隔離且相對獨立。
私有云環境
網易私有云所在的網絡環境;
現有企業內部網絡環境
在實施網易私有云之前公司已有物理服務器所在的網絡環境;
公共網絡環境
BGP接入的、可以在互聯網上被普通互聯網用戶訪問的網絡環境。
每臺云主機有一個屬于私有云環境的固定IP,屬于同一個租戶云主機可以通過這個固定IP直接相互訪問,而不同租戶間則不能通過固定IP互相訪問。如圖中云主機VM1、VM2可以通過固定IP互相訪問,而云主機VM1與云主機VM3則不可以。
當租戶的云主機需要被現有企業內部網絡環境中的物理服務器訪問時,需要租戶為云主機綁定一個內網浮動IP。如云主機VM1綁定一個內網浮動IP后,就可以被現有企業內部網絡中的機器通過這個內網IP訪問。
同樣,當租戶的云主機需要在互聯網上被訪問并在互聯網上提供服務時,租戶需要為云主機綁定一個外網浮動IP。如云主機VM2綁定一個外網浮動IP后,就可以在互聯網上提供服務并被普通互聯網用戶直接訪問。
如果不同租戶間的云主機需要互相訪問,則需要為被訪問的云主機綁定內/外網浮動IP。如圖中的云主機VM3可以通過云主機VM1綁定的內網浮動IP連接云主機VM1,通過云主機VM2綁定的外網浮動IP連接云主機VM2。
雖然租戶間的云主機互訪也可以通過綁定外網浮動IP的方式完成,但實際上由于外網浮動IP資源比較稀缺、使用成本較高,我們選擇使用內網浮動IP來解決不同租戶的云主機互相訪問的問題。
在第一代云網絡服務中,所有訪問浮動IP的網絡連接都需要經過虛擬防火墻。虛擬防火墻借助安全組來實現,而安全組是包括了是一系列安全組規則的集合。如圖中云主機VM3通過浮動IP訪問云主機VM1、VM2,現有企業內部網絡、公共網絡中的物理服務器通過浮動IP訪問云主機VM1、VM2,都將受虛擬防火墻的過濾。
安全組規則通過源地址、網絡協議、目標端口范圍三元組匹配網絡連接,匹配到任意一條安全組規則的都會被允許通過訪問,沒有匹配到的網絡連接將被禁止訪問。
技術選型
第一代云網絡服務基于Folsom版本OpenStack的Nova Networking模塊進行研發。在社區技術選型上,我們使用了Flat DHCP網絡模式,配置了Multi-host開關實現了網絡的高可用。
>>>>Flat DHCP Network
在Flat DHCP網絡模式下,相同物理節點上所有的云主機連接到同一個網橋上(Linux Bridge),所有云環境租戶的云主機在同一個物理二層網絡下并共享同一個子網空間。
不同于Nova Networking模塊中的Flat網絡模式,在Flat DHCP網絡模式下,OpenStack會根據配置啟動一個或多個DHCP服務為云主機分配固定IP。
>>>>Multi-host
為了避免網絡節點成為單點故障,同時為了優化網絡流量,OpenStack提供了一個multi-host功能,將DHCP服務、NAT服務和網關部署到每個計算節點上。
自研功能及優化
第一代云網絡服務根據業務需求對Nova Networking模塊進行過定制開發,主要包括:租戶網絡優化與隔離、增加內網浮動IP、網絡流量QoS等功能。下面將詳細介紹這些自研功能和優化。
>>>>租戶網絡優化與隔離
在OpenStack的默認實現中,租戶內或其他訪問的所有請求都需要經過安全組,這個給普通云環境租戶在使用上帶來了一定的困擾。因此,我們優化了租戶內部之間訪問的流量,直接跳過安全組限制。
另一方面,Flat DHCP網絡模式默認情況下不同租戶的固定IP之間是可以互相訪問的,有一定的安全風險。我們實現了L3上的隔離,保證不同租戶只能使用浮動IP進行互訪,并受安全組控制。
>>>>內網浮動IP
OpenStack主要為公有云設計的,原生的浮動IP無法滿足網易私有云多網絡訪問的需求,我們實現了內網浮動IP/外網浮動IP共存的機制,滿足云主機同時處理公網/機房內部的連通性要求。
>>>>網絡流量QoS
為了保證不同租戶網絡流量的公平原則,及云主機、宿主機上各個服務的網絡質量,我們開發了網絡QoS功能,主要通過iptables給不同的流量打上標記,然后通過Linux Traffic Control軟件實現流量控制與QoS功能。
下期預告
第二代云網絡服務
隨著私有云平臺的規模不斷增長擴大,第一代云網絡服務Nova Networking模塊較死板的網絡結構和較差的可擴展性在應付公司線上服務時已漸漸顯得力不從心。于是第二代云網絡服務的研發工作提上了日程表……
~敬請關注~
網易云信∣真正穩定的IM云服務
ID:neteaseim
往期回顧 :網易云的特色與優勢 (猛戳閱讀原文)
總結
以上是生活随笔為你收集整理的网易云网络服务研发实践—第1代云网络服务|网易云的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “他们”最想要的圣诞礼物是你的...
- 下一篇: 216位攻城狮送给程序猿的10个新年礼物