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