Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

作者:楊雨

“MTU的值設(shè)置多少合適呢?現(xiàn)在最佳實(shí)踐是設(shè)置到9000。”

“其實(shí)OpenFlow只是一個(gè)概念,從這幾年SDN的發(fā)展來看,它并沒有成為一個(gè)事實(shí)的標(biāo)準(zhǔn)。”

“大規(guī)模云平臺(tái)對SDN的要求,第一是網(wǎng)絡(luò)基礎(chǔ)架構(gòu)要可擴(kuò)展,第二是控制器可擴(kuò)展,第三是數(shù)據(jù)平面無集中式單點(diǎn),第四是跨集群的擴(kuò)展網(wǎng)絡(luò)。”

“在基礎(chǔ)架構(gòu)上,如果用Tungsten Fabric,只要是用于生產(chǎn)環(huán)境的話,選擇IP CLOS架構(gòu)就行,沒必要再去折騰Fabric等二層架構(gòu)。”

“Tungsten Fabric的本質(zhì)是基于MPLS VPN的SDN。”

“跨集群的互聯(lián),或者叫多云互聯(lián),主要有兩種模式:基于控制器之間的互聯(lián),基于Cloud Gateway之間的互聯(lián)。”

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

本文整理自TF中文社區(qū)技術(shù)代表?xiàng)钣暝赥F中文社區(qū)“2020第一次Meetup”上的演講,分享Tungsten Fabric對大規(guī)模云平臺(tái)的支持。本文已經(jīng)主辦方和演講者審閱授權(quán)發(fā)布。

在TF中文社區(qū)1月7日的“2020第一次Meetup”活動(dòng)上,來自Tungsten Fabric技術(shù)研發(fā)和一線使用者、關(guān)注多云互聯(lián)的從業(yè)者、開源SDN的愛好者們互相切磋、支招,現(xiàn)場氣氛熱烈,精彩內(nèi)容不斷。Tungsten Fabric在中國的廣泛應(yīng)用正在越來越真切地走來。

本次演講及TF中文社區(qū)“2020第一次Meetup”活動(dòng)資料,請?jiān)?ldquo;TF中文社區(qū)”公眾號后臺(tái)點(diǎn)擊“會(huì)議活動(dòng)-Meetup”領(lǐng)取。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

今天的分享偏技術(shù)一些,首先我們來看SDN的本質(zhì),然后從Tungsten Fabric架構(gòu)上解析為什么比OVS更好,為什么能支撐更大的場景。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

先來看云對網(wǎng)絡(luò)的要求。首先是租戶隔離,IaaS就是多租戶,對于地址重用的要求,以VLAN的傳統(tǒng)方式也是可以實(shí)現(xiàn)的。另外,傳統(tǒng)VXLAN的協(xié)議或OVS的協(xié)議,只提供二層隔離的能力,沒有三層隔離的能力,只要你的機(jī)器綁到外網(wǎng)IP,或者綁到公共的路由層面上,三層是可以互通的,所以說在租戶隔離的層面,也有三層隔離的需求。

其次,云需要網(wǎng)絡(luò)支持虛擬機(jī)跨機(jī)柜的遷移。VXLAN的話還要跨數(shù)據(jù)中心大二層,不是說不可以實(shí)現(xiàn),但除了網(wǎng)絡(luò)要求,還有存儲(chǔ)的要求,比較難。虛擬機(jī)跨機(jī)柜的遷移,最難的是什么?傳統(tǒng)網(wǎng)絡(luò)架構(gòu),就是接入-匯聚-核心,路由器以下都是二層架構(gòu),機(jī)器可以在不同機(jī)架上遷移,但一個(gè)數(shù)據(jù)中心,云足夠大的時(shí)候,二層基礎(chǔ)網(wǎng)絡(luò)是支撐不了整個(gè)云的,不同機(jī)架在不同三層里面,這時(shí)虛擬機(jī)做遷移就要要求IP地址不能變。

另外,還有網(wǎng)絡(luò)功能和服務(wù)的要求。在云上面都是共享的資源池,如果以負(fù)載均衡為例,將一個(gè)性能強(qiáng)大的硬件負(fù)載均衡虛擬化給多個(gè)租戶使用,還是切換成小的負(fù)載均衡虛擬機(jī)實(shí)例給不同租戶使用?這里就提出網(wǎng)絡(luò)虛擬化和網(wǎng)絡(luò)功能虛擬化的需求,來支撐IaaS的運(yùn)行。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

網(wǎng)絡(luò)虛擬化,主要應(yīng)用的是Overlay的技術(shù),是SDN用到的其中一個(gè)技術(shù),用的比較多、比較標(biāo)準(zhǔn)的技術(shù),包括VXLAN、GRE、STT、GENEVE,以及Tungsten Fabric用到的MPLSoverUDP和MPLSoverGRE,主要的方式,是把二層的幀在vTEP上進(jìn)行三層封裝,通過VXLAN隧道傳輸?shù)綄Χ恕?/p>

這樣做的好處是,增加了租戶的數(shù)量,傳統(tǒng)VLAN是4096,如果VXLAN就是2的24次方;其次底層傳輸基于IP網(wǎng)絡(luò),擴(kuò)展性遠(yuǎn)大于二層網(wǎng)絡(luò),使得網(wǎng)絡(luò)能擴(kuò)展,虛擬機(jī)在不同物理網(wǎng)段上遷移。但同樣也帶來一些工作,如何讓兩邊的設(shè)備建立通信?第一建立VXLAN隧道,這是SDN控制器要做的事,第二是交換兩邊的MAC地址信息。

TF中文社區(qū)3月Meetup活動(dòng),將聚焦Tungsten Fabric與K8s的集成,由重量級嘉賓分享Tungsten Fabric與K8s的部署和實(shí)踐,詳細(xì)演示操作過程,并解答關(guān)于Tungsten Fabric和K8s的一切問題。關(guān)注“TF中文社區(qū)”公眾號,后臺(tái)點(diǎn)擊“會(huì)議活動(dòng)-Meetup”領(lǐng)取。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

有兩個(gè)VM,在兩個(gè)不同的主機(jī)上,就是通過Overlay來解決二層通信問題的。比如ESX1要和ESX2通信,ping的時(shí)候首先發(fā)ARP請求,那對應(yīng)的MAC地址是多少?對于VXLAN來說就要有一張轉(zhuǎn)發(fā)表,MAC2需要通過VTEP2的IP,去做一個(gè)封包,再傳輸?shù)絍TEP2,解封裝后,再傳輸?shù)较鄳?yīng)的機(jī)器里去。怎么建立這個(gè)轉(zhuǎn)發(fā)表?就是SDN需要去做的事情。

一種是自學(xué)習(xí),只要VM1發(fā)了一個(gè)ARP請求,到達(dá)vTEP網(wǎng)關(guān),它就會(huì)去洪泛請求,廣播到和它建立隧道的vTEP節(jié)點(diǎn)上去,看誰反饋ARP reply,就知道對端的IP地址,可以建立一個(gè)轉(zhuǎn)發(fā)表。但這樣會(huì)有很多消耗,ARP地址也有老化的過程,一旦老化,就需要重新去學(xué),直觀體驗(yàn)是ping包時(shí)間會(huì)很長。如果是大規(guī)模的網(wǎng)絡(luò),頻繁洪泛,會(huì)對網(wǎng)絡(luò)可靠性帶來很大的挑戰(zhàn)。

SDN大部分情況下是和云管平臺(tái)做結(jié)合,知道在這個(gè)虛擬化服務(wù)器上,有哪些虛擬機(jī),提前把MAC地址表或轉(zhuǎn)發(fā)表下發(fā)到vTEP設(shè)備上,這就是SDN控制平面要做的事情。

在Open vSwitch這個(gè)方案里面,就是通過數(shù)據(jù)庫和RabbitMQ,去下發(fā)一個(gè)OVSDB的命令,建立相應(yīng)的流表,讓虛擬機(jī)知道要往哪兒走。Tungsten Fabric也有相應(yīng)的機(jī)制,后面會(huì)介紹。

數(shù)據(jù)平面的作用,就是根據(jù)轉(zhuǎn)發(fā)表,對二層的幀進(jìn)行轉(zhuǎn)發(fā),另外進(jìn)行封包和解包。這里提一下MTU,這是這個(gè)二層的值,幀的transfer unit,為什么要設(shè)置很大?首先VXLAN協(xié)議會(huì)增加一些Hdr,UTP的Hdr,VXLAN的Hdr,封包的時(shí)候如果不做處理的話會(huì)超過1500,網(wǎng)卡會(huì)不發(fā)這個(gè)幀。早期做OpenStack經(jīng)常會(huì)遇到trouble shooting的MTU問題,后來解決方案是通過DHCP的Agenter,設(shè)置了一個(gè)參數(shù),如果網(wǎng)卡MTU是1500,就默認(rèn)為14XX,自動(dòng)降低,這樣虛擬機(jī)的數(shù)據(jù)幀才能通過二層網(wǎng)卡。那么MTU的值設(shè)置多少合適呢?現(xiàn)在最佳實(shí)踐是設(shè)置到9000。在vTEP這一塊就是封包和轉(zhuǎn)發(fā),根據(jù)實(shí)際測試,如果增加MTU值,對吞吐量有很大的提高。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

剛才說了SDN做的事情,控制下發(fā)轉(zhuǎn)發(fā)表和傳輸,接下來說一下SDN的分類。按流派來區(qū)分,SDN可分為軟件和硬件,區(qū)別就是vTEP是在vRouter上,還是在交換機(jī)的硬件轉(zhuǎn)發(fā)上,看解封包在哪里。硬件一般都是私有協(xié)議,像Cisco用的就是OPFlex。軟件也有很多不同的項(xiàng)目,其中Tungsten Fabric是最產(chǎn)品化的一個(gè)。

按照控制器分類,有集中式和分布式。集中式的控制器有OpenFlow、OVSDB,以及Tungsten Fabric使用XMPP(一個(gè)聊天的協(xié)議)。我們可以把Neutron的Open vSwitch理解為OVSDB協(xié)議,Neutron是通過RabbitMQ把信令下發(fā)到具體的計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)的OVS Agent通過OVSDB的命令,把相應(yīng)的流表增加到OVSDB交換機(jī)。

分布式的控制器,比如EVPN-VXLAN,就是使用了MP-BGP。

大家覺得哪種形式的控制器會(huì)更好一點(diǎn)呢?目前用OpenDaylight的項(xiàng)目有哪些?華為,華三等都在用,其控制器的SDN架構(gòu)就是參照OpenFlow來做的。有些廠商自己有研發(fā)能力,基于自身的硬件設(shè)備,可以開發(fā)一個(gè)比較完善的產(chǎn)品。但在開源社區(qū),很少看到一個(gè)成功的OpenDaylight項(xiàng)目,只是提供了一個(gè)框架和一些組件,不能很快基于開源項(xiàng)目run起來。其實(shí)OpenFlow只是一個(gè)概念,從這幾年SDN的發(fā)展來看,它并沒有成為一個(gè)事實(shí)的標(biāo)準(zhǔn)。

反而是OVSDB起來了,應(yīng)用在Neutron軟件的控制,還有交換機(jī)的控制上。比如Tungsten Fabric早期的BMS實(shí)現(xiàn),虛擬機(jī)要和裸機(jī)通信,裸機(jī)通過VLAN TAG,上到TOR交換機(jī),再通過VLAN到VXLAN的轉(zhuǎn)換,到達(dá)虛擬網(wǎng)絡(luò)。其中VLAN到VXLAN的轉(zhuǎn)換,就是通過OVSDB協(xié)議下發(fā)的。你的交換機(jī),理論上只要支持OVSDB協(xié)議,就可以做BMS場景。

我自己更傾向于這種分布式的控制器。因?yàn)榧惺降挠肋h(yuǎn)會(huì)有瓶頸,無論是軟件瓶頸,還是性能瓶頸。而EVPN-VXLAN的核心協(xié)議是MP-BGP,BGP的擴(kuò)展性有多大?看看現(xiàn)在Internet骨干網(wǎng),跑的就是BGP協(xié)議。

MP-BGP的協(xié)議,通過控制器下發(fā)流表信息,再通過BGP協(xié)議去交互,使用的時(shí)候只要針對你的相應(yīng)架構(gòu),去做相應(yīng)BGP協(xié)議的擴(kuò)展性設(shè)計(jì)就可以。

針對Tungsten Fabric來說,其實(shí)是集中式和分布式兩種流派的融合,既用到集中式的架構(gòu),在對外的連接上,又采用了分布式控制器的技術(shù)。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

總結(jié)大規(guī)模云平臺(tái)對SDN的要求,第一是網(wǎng)絡(luò)基礎(chǔ)架構(gòu)要可擴(kuò)展。如果采用二層架構(gòu),瓶頸就是在基礎(chǔ)架構(gòu)上,受限于交換機(jī)的端口數(shù),二層交換機(jī)采用生成樹協(xié)議,對于大規(guī)模網(wǎng)絡(luò)平臺(tái),如果運(yùn)維水平較差,接出一個(gè)環(huán)路出來,就很危險(xiǎn)。

第二,控制器是可擴(kuò)展的。無論集中式還是分布式,在架構(gòu)上一定是可擴(kuò)展的,至于能支持多大的量,就是代碼實(shí)現(xiàn)的問題了。

第三,數(shù)據(jù)平面無集中式單點(diǎn)。談到SDN的實(shí)際應(yīng)用,運(yùn)維是一個(gè)比較大的挑戰(zhàn),無論是做開發(fā)還是做運(yùn)維出身的人,最重要的是理解虛擬機(jī)之間,虛擬機(jī)到外網(wǎng)之間,數(shù)據(jù)流量是怎樣的?應(yīng)該通過什么命令去看這些流量,去trouble shooting,就像以前傳統(tǒng)網(wǎng)絡(luò)運(yùn)維怎么去抓包一樣。對于擴(kuò)展性來說,要實(shí)現(xiàn)傳統(tǒng)網(wǎng)絡(luò)的SNAT、floating IP等,每個(gè)項(xiàng)目都有不同的實(shí)現(xiàn)方式,實(shí)現(xiàn)過程中沒有單點(diǎn)的話,在架構(gòu)上就是可以擴(kuò)展的。

第四,跨集群的擴(kuò)展網(wǎng)絡(luò)。架構(gòu)上無論怎樣擴(kuò)展,總是有極限的,對于一個(gè)單集群來說,總會(huì)到達(dá)一個(gè)瓶頸。如果要建一個(gè)更大的集群,可以橫向擴(kuò)展多個(gè)集群出來,形成一個(gè)大的資源池。那么面臨的問題是,網(wǎng)絡(luò)是否需要互通。如果部署一個(gè)高可用業(yè)務(wù),跨集群的情況如何做互通,主流的一些高可用組件,需要跨兩個(gè)集群二層互通,都需要SDN去支持這樣的需求。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

在基礎(chǔ)架構(gòu)上,如果用Tungsten Fabric,只要是用于生產(chǎn)環(huán)境的話,選擇IP CLOS架構(gòu)就行,沒必要再去折騰Fabric等二層架構(gòu)。IP CLOS可以帶來足夠的擴(kuò)展性和高性能,包括沒有供應(yīng)商鎖定,建完以后基本不需要再動(dòng)。

Leaf就是架頂式交換機(jī),下面是子網(wǎng),不同機(jī)架用不同子網(wǎng),上層通過三層網(wǎng)關(guān)路由做通信,最主要的就是Leaf Spine之間三層怎么交互。瞻博網(wǎng)絡(luò)有個(gè)文檔介紹IP CLOS的白皮書,對OSPF、ISIS、BGP進(jìn)行了控制平面上的對比,最佳建議是用eBGP來做交互。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

Tungsten Fabric的本質(zhì)是基于MPLS VPN的SDN。原來的VPN是解決多個(gè)site之間的互聯(lián),控制平面是BGP協(xié)議。到了數(shù)據(jù)中心里面,云之間的互聯(lián),一個(gè)物理機(jī)可以看做一個(gè)site,不同物理機(jī)之間借助VPN建立不同的隧道來打通,這就是Tungsten Fabric的本質(zhì)。不同之處在于控制平面,Tungsten Fabric用的是集中式的控制器并通過XMPP協(xié)議控制vRouter的路由表。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

簡單看一下Tungsten Fabric的功能架構(gòu),在多云支持上,包括VMware、OpenStack容器、BMS;網(wǎng)絡(luò)功能上,二層網(wǎng)絡(luò)、三層網(wǎng)絡(luò)、DHCP、DNS、QoS、防火墻、LB等都是支持的。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

在部署的時(shí)候,控制器主要分為兩種節(jié)點(diǎn),一種是Analytics Cluster分析節(jié)點(diǎn),主要做流的可視化。另外一種Controller節(jié)點(diǎn)用來控制網(wǎng)絡(luò),分為Configuration和Control Node,前者提供API,對接Neutron等云管平臺(tái),API通過創(chuàng)建一個(gè)pod,在Configuration上記錄數(shù)據(jù)庫,轉(zhuǎn)換成相應(yīng)的IF-MAP,控制器通過XMPP命令在vRouter上創(chuàng)建相應(yīng)的接口,再把接口信息傳給不同的vRouter或外部網(wǎng)關(guān)及硬件設(shè)備,控制器核心協(xié)議是BGP協(xié)議。

控制器在整個(gè)Tungsten Fabric里就是一個(gè)router reflector,把所有的二層接口、MAC接口信息,三層路由信息全部存在這里,分發(fā)到不同的vRouter上面。對于云內(nèi)的vRouter,用XMPP推送,對于云外的Gateway等,通過BGP推送。

其中,NETCONF協(xié)議不是用來推送路由信息的,主要用于和網(wǎng)絡(luò)硬件設(shè)備的一些配置下發(fā)。比如Tungsten Fabric中增加一個(gè)BMS服務(wù)器接入到Tungsten Fabric管理的虛擬網(wǎng)絡(luò),Tungsten Fabric中的Device Manager會(huì)通過NETCONF將VLAN接口的配置和下發(fā)到TOR交換機(jī),通過NETCONF建立接口。然后Tungsten Fabric控制器再通過OVSDB協(xié)議或EVPN-VXLAN協(xié)議去配置相應(yīng)的VLAN-VXLAN的橋接網(wǎng)關(guān)。如果需要把虛擬網(wǎng)絡(luò)擴(kuò)展到Gateway,NETCONF也會(huì)幫助創(chuàng)建相應(yīng)的Routing instance配置。路由層面的交換信息,還是通過BGP來實(shí)現(xiàn)。

TF中文社區(qū)3月Meetup活動(dòng),將聚焦Tungsten Fabric與K8s的集成,由重量級嘉賓分享Tungsten Fabric與K8s的部署和實(shí)踐,詳細(xì)演示操作過程,并解答關(guān)于Tungsten Fabric和K8s的一切問題。關(guān)注“TF中文社區(qū)”公眾號,后臺(tái)點(diǎn)擊“會(huì)議活動(dòng)-Meetup”領(lǐng)取。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

Tungsten Fabric用到的數(shù)據(jù)庫,都是最近8年才有的,比如分布式數(shù)據(jù)庫的Cassandra、Zoo Keeper、RabbitMQ,在架構(gòu)上是高可用、可擴(kuò)展的,具體能擴(kuò)展到多大的量,還是要看代碼實(shí)現(xiàn)。反過來看Neutron,本質(zhì)就是一個(gè)數(shù)據(jù)庫,記錄了所有的信息,把所有的流表下發(fā)下去。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

Tungsten Fabric的數(shù)據(jù)平面主要是通過vRouter來做轉(zhuǎn)發(fā),vRouter agent在user namespace的進(jìn)程,安排控制器基于XMPP連接拿到一些信息,再下發(fā)到kernel的轉(zhuǎn)發(fā)平面。這里提供了二層隔離和三層隔離的功能,如果說同一個(gè)網(wǎng)絡(luò)的虛擬機(jī),接在同一個(gè)vRouter下面,雙方的通信就在這里完成。不同租戶的網(wǎng)絡(luò)虛擬機(jī),接了不同的VRF、Routing instance,也是不能通信的。

vRouter內(nèi)置了很多網(wǎng)絡(luò)功能,比如DNS。Tungsten Fabric的DNS會(huì)根據(jù)主機(jī)的DNS配置來解析,如果遇到問題,可以檢查一下主機(jī)的DNS有沒有問題。DHCP應(yīng)答也在這里,Neutron就不一樣,專門有一個(gè)DHCP agent跑在一個(gè)節(jié)點(diǎn)上,OVS在大規(guī)模情況下,如果接了超過1500個(gè)接口,基本上就會(huì)出現(xiàn)丟包,并且經(jīng)常出問題。

Security Group在OVS的實(shí)現(xiàn)是通過和linux bridge關(guān)聯(lián)的iptables實(shí)現(xiàn)的,而在vRouter就是通過內(nèi)置的ACL功能實(shí)現(xiàn)。Network Policy就是一個(gè)分布式的防火墻。Floating IP也是在vRouter做了一個(gè)NAT出去。

這里多談一下Link-Local,它的場景是什么?作為一個(gè)云服務(wù)商,要向客戶提供NTP服務(wù)、ATP、YUM源、等公共服務(wù)。怎么讓虛擬機(jī)在虛擬網(wǎng)絡(luò)內(nèi)訪問到一個(gè)公共服務(wù)呢?一種方式是把這些網(wǎng)絡(luò)的路由打通,因?yàn)樾枰粋€(gè)VTEP出口,通過cloud gateway把公共路由導(dǎo)進(jìn)去,這樣帶來一個(gè)問題,所有ATP流量、下載流量都要通過cloud gateway,流量會(huì)跟大。Tungsten Fabric提供一個(gè)Link-Local的模式,就是一個(gè)169.254的地址,在網(wǎng)絡(luò)標(biāo)準(zhǔn)里只有一跳。在OpenStack虛擬機(jī)或AWS虛擬機(jī)里面,metadata服務(wù)就是通過169.254提供的。本機(jī)沒有這個(gè)路由,到網(wǎng)關(guān)上對地址做一層NAT,本機(jī)的NAT就會(huì)訪問到配置的Link-Local映射,繼而訪問到內(nèi)部的服務(wù)。

在沒有增強(qiáng)的前提下,實(shí)測Neutron的OVS VXLAN的性能(只做MTU的優(yōu)化),最多達(dá)到兩個(gè)千兆的性能。而vRouter在不做任何優(yōu)化的前提下,能達(dá)到七、八千兆的性能。當(dāng)然也可以利用DPDK、Smart NIC來做優(yōu)化,或者利用SR-IOV的透傳功能。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

再來看看Tungsten Fabric的Packet交互。無論是同網(wǎng)段還是不同網(wǎng)段,虛擬機(jī)之間的交互,都是在vRouter層面轉(zhuǎn)發(fā)的,不會(huì)經(jīng)過一個(gè)集中式的gateway。所以在虛擬機(jī)之間的數(shù)據(jù)交互層面,是沒有單點(diǎn)的。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

另外一個(gè)比較重要的場景是SNAT。在OpenStack里面,如果虛擬機(jī)接了一個(gè)vRouter,可以通過vRouter的SNAT功能去訪問external的網(wǎng)段。Tungsten Fabric本身其實(shí)不提供SNAT,但也實(shí)現(xiàn)了SNAT功能,通過NS router(跑在計(jì)算節(jié)點(diǎn)的一個(gè)IP tables)做一個(gè)SNAT的轉(zhuǎn)發(fā),如果虛擬機(jī)要訪問一個(gè)非本網(wǎng)關(guān)的網(wǎng)絡(luò),先到gateway,轉(zhuǎn)發(fā)后,再通過vRouter連接external的網(wǎng)絡(luò)。這里NS router的創(chuàng)建,需要OpenStack nova的scheduler來配合。

對于每一個(gè)網(wǎng)絡(luò),都會(huì)有一個(gè)router去做轉(zhuǎn)發(fā),如果量太大,瓶頸可能就在NS router這里,但不會(huì)影響其它的網(wǎng)絡(luò)。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

只要不在云內(nèi),都可以叫外網(wǎng),要出外網(wǎng)有兩種方式:第一種是Floating IP,在vRouter做了一個(gè)NAT,把NAT后的IP通過MPLS over GRE的隧道,發(fā)布到Cloud Gateway的某個(gè)VRF里面,和外網(wǎng)通信。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

第二種外部互聯(lián)的場景,假如要提供一個(gè)云服務(wù),可以針對不同的運(yùn)營商做不同的flouting IP,如果做L3 VPN或L2 VPN的專線接入服務(wù),可以通過cloud gateway接入到不同的MPLS網(wǎng)絡(luò),再把虛擬網(wǎng)絡(luò)路由到相應(yīng)的VRF,整個(gè)就都連通了。這也是Tungsten Fabric強(qiáng)大的地方,MPLS VPN是和傳統(tǒng)的網(wǎng)絡(luò)天然互聯(lián)互通的。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

跨集群的互聯(lián),或者叫多云互聯(lián),主要有兩種模式。

第一種是基于控制器之間的互聯(lián),把VPN、網(wǎng)絡(luò)和接口的信息,通過控制器之間建立EBGP連接來傳輸,這種方案叫Federation。

兩邊的vRouter只要三層可達(dá)就可以,比如一邊的B1要訪問另一邊的B3,兩邊是不同的控制器和VPN,MPLS VPN有個(gè)route target,一邊export一邊import,路由表看到另一邊的路由,進(jìn)行路由信息交互,從而建立二層或者三層連接。Federation的方案是在控制器層面實(shí)現(xiàn)的,比較適合于同一個(gè)地域,同一個(gè)數(shù)據(jù)中心,有比較近的連接的情況。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

第二種模式是通過cloud gateway之間的互聯(lián),把網(wǎng)絡(luò)的不同VRF,在cloud gateway之間建立EBGP鄰居,手動(dòng)配置去import或export不同的RT,實(shí)現(xiàn)跨云的連接。需要注意的是,兩邊是不同的集群,IP地址管理不一樣的,分配地址的時(shí)候,要避免IP地址的重疊。

Tungsten Fabric如何支撐大規(guī)模云平臺(tái)

最后,和Neutron OVS進(jìn)行對標(biāo)的話,Tungsten Fabric可以說是完勝的。

基礎(chǔ)網(wǎng)絡(luò)方面,Tungsten Fabric可以擴(kuò)展,Neutron OVS目前只能用二層網(wǎng)絡(luò),無論集中式還是分布式,floating IP下沉到計(jì)算節(jié)點(diǎn)這一層,目前的組件里都沒有成熟的BGP方案,能夠把floating IP發(fā)布到邊界網(wǎng)關(guān),OVS DVR和邊界網(wǎng)關(guān)只能通過二層連接。

對比架構(gòu)方面,Tungsten Fabric是可擴(kuò)展的,3個(gè)節(jié)點(diǎn)性能不夠,可以擴(kuò)展到5個(gè)節(jié)點(diǎn)。Neutron OVS雖然是一個(gè)高可用架構(gòu),通過MySQL集群實(shí)現(xiàn)數(shù)據(jù)庫高可用,通過K8s實(shí)現(xiàn)API高可用,但計(jì)算邏輯不是分布式的,嚴(yán)重依賴RabbitMQ。如果使用DVR模式,每個(gè)計(jì)算節(jié)點(diǎn)要部署四個(gè)agent,帶來更多的topic,對RabbitMQ的性能是很大的挑戰(zhàn),只要出現(xiàn)一個(gè)RabbitMQ宕機(jī)或網(wǎng)絡(luò)抖動(dòng),會(huì)馬上執(zhí)行集群恢復(fù)機(jī)制,導(dǎo)致RabbitMQ很快死掉。

另外,在轉(zhuǎn)發(fā)平面上,Open vSwitch的性能沒有vRouter好;Tungsten Fabric的網(wǎng)絡(luò)功能更豐富,而Neutron的Octavia等原生LBaaS組件也有待成熟;多云互聯(lián)方面Tungsten Fabric基于MPLS VPN;和網(wǎng)絡(luò)設(shè)備的交互方面,Neutron只有ironic的networking generic switc driver,Tungsten Fabric支持BGP、NETCONF、EVPN-VXLAN等,基于標(biāo)準(zhǔn)的協(xié)議,涵蓋了瞻博網(wǎng)絡(luò)、思科、華為、銳捷等廠商的設(shè)備。

今天就先分享到這里。謝謝大家!

本次演講及TF中文社區(qū)“2020第一次Meetup”活動(dòng)資料,請?jiān)?ldquo;TF中文社區(qū)”公眾號后臺(tái)點(diǎn)擊“會(huì)議活動(dòng)-Meetup”領(lǐng)取。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2020-02-24
Tungsten Fabric如何支撐大規(guī)模云平臺(tái)
作者:楊雨“MTU的值設(shè)置多少合適呢?現(xiàn)在最佳實(shí)踐是設(shè)置到9000。

長按掃碼 閱讀全文