OpenStack八大核心組件精講之-neutron理論知識(shí)_第1頁(yè)
OpenStack八大核心組件精講之-neutron理論知識(shí)_第2頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、OpenStack-neutron理論知識(shí)-neutron、OpenStack絡(luò)、絡(luò)是openstack最重要的資源之,沒(méi)有絡(luò),虛擬機(jī)將被隔離。Openstack的絡(luò)服務(wù)最主要的功能就是為虛擬機(jī)實(shí)例提供絡(luò)連接,最初由nova的個(gè)單獨(dú)模塊nova-compute實(shí)現(xiàn),但是nova-compute持的絡(luò)服務(wù)有限,法適應(yīng)規(guī)模、密度和多項(xiàng)的云計(jì)算,現(xiàn)已被專(zhuān)門(mén)的絡(luò)服務(wù)項(xiàng)Neutron所取代。、Neutron為整個(gè)openstack環(huán)境提供軟件定義絡(luò)持,主要功能包括層交換、三層路由、防墻、VPN,以及負(fù)載均衡等。Neutron在由其他openstack服務(wù) (如nova)管理的絡(luò)接設(shè)備(如虛擬卡)之間提供

2、絡(luò)連接即服務(wù)、Linux絡(luò)虛擬化、實(shí)現(xiàn)虛擬化后,多個(gè)物理服務(wù)器可以被虛擬機(jī)取代,部署在同臺(tái)物理服務(wù)器.上。虛擬機(jī)由虛擬機(jī)管理器(Hypervisor)實(shí)現(xiàn),在Linux系統(tǒng)中Hypervisor通常采kvm。在對(duì)服務(wù)器進(jìn)虛擬化的同時(shí),也對(duì)絡(luò)進(jìn)虛擬化。、Hypervisor為虛擬機(jī)創(chuàng)建個(gè)或多個(gè)虛擬卡(vNIC),虛擬卡等同于虛擬機(jī)的物理卡。物理交換機(jī)在虛擬絡(luò)中被虛擬為虛擬交換機(jī)(vSwitch),虛擬機(jī)的虛擬卡連接到虛擬交換機(jī)上,虛擬機(jī)交換機(jī)再通過(guò)物理主機(jī)的物理卡連接到外部絡(luò)。、 對(duì)于物理絡(luò)來(lái)說(shuō),虛擬化的主要作是對(duì)卡和交換設(shè)備的虛擬化。openstack絡(luò)服務(wù)最核的任務(wù)是對(duì)層物理絡(luò)進(jìn)抽象和管理(

3、)、Linux虛擬橋、與物理機(jī)不同,虛擬機(jī)并沒(méi)有硬件設(shè)備,但是也要與物理機(jī)和其他虛擬機(jī)進(jìn)通信。Linux KVM的解決案是提供虛擬橋設(shè)備,像物理交換機(jī)具有若絡(luò)接(卡)樣,在橋,上創(chuàng)建多個(gè)虛擬的絡(luò)接,每個(gè)絡(luò)接再與KVM虛擬機(jī)的卡相連。、在Linux的KVM虛擬系統(tǒng)中,為持虛擬機(jī)的絡(luò)通信,橋接的名稱(chēng)通常以vnet開(kāi)頭,加上從0開(kāi)始順序編號(hào),如vnet0、vnet1,在創(chuàng)建虛擬機(jī)時(shí)會(huì)動(dòng)創(chuàng)建這些接。虛擬橋br1和br2分別連接到物理主機(jī)的物理卡1和物理卡2。()、虛擬局域、個(gè)橋可以橋接若虛擬機(jī),當(dāng)多個(gè)虛擬機(jī)連接在同橋時(shí),每個(gè)虛擬機(jī)發(fā)出的播包會(huì)引發(fā)播風(fēng)暴,影響虛擬機(jī)的絡(luò)性能。通常使虛擬局域(VLAN)將

4、部分虛擬機(jī)的播包限制在特定范圍內(nèi),不影響其他虛擬機(jī)的絡(luò)通信。、通常使VLAN將部分虛擬機(jī)的播包限制在特定范圍內(nèi),不影響其他虛擬機(jī)的絡(luò)通信。、將多個(gè)虛擬機(jī)劃分到不同的VL AN中,同VLAN的虛擬機(jī)相當(dāng)于連接同橋上。、在Linux虛擬化環(huán)境中,通常會(huì)將橋與VLAN對(duì)應(yīng)起來(lái),也就是將橋劃分到不同的VLAN中、VLAN協(xié)議為802.1Q,VLAN是具有802.1Q標(biāo)簽的絡(luò)。(三)、開(kāi)發(fā)虛擬交換機(jī)、開(kāi)放虛擬交換機(jī)(Open vSwitch)是與硬件交換機(jī)具備相同特性,可在不同虛擬平臺(tái)之間移植,具有產(chǎn)品級(jí)質(zhì)量的虛擬交換機(jī),適合在產(chǎn)環(huán)境中部署。、交換設(shè)備的虛擬化對(duì)虛擬絡(luò)來(lái)說(shuō)關(guān)重要。在傳統(tǒng)的數(shù)據(jù)中,管理員可

5、以對(duì)物理交換機(jī)進(jìn)配置控制服務(wù)器的絡(luò)接,實(shí)現(xiàn)絡(luò)隔離、流量監(jiān)控、QoS配置、流量?jī)?yōu)化等標(biāo)。在云環(huán)境中,采Open vSwitch技術(shù)的虛擬交換機(jī)可使虛擬絡(luò)的管理、絡(luò)狀態(tài)和流量的監(jiān)控得以輕松實(shí)現(xiàn)。、Open Switch在云環(huán)境中的虛擬化平臺(tái)上實(shí)現(xiàn)分布式虛擬交換機(jī),可以將不同主機(jī)上的OpenvSwitch交換機(jī)連接起來(lái),形成個(gè)規(guī)模的虛擬絡(luò)。三、openstack絡(luò)基礎(chǔ)服務(wù)OpenStack絡(luò)服務(wù)提供個(gè)API讓?xiě)粼谠浦薪ê投x絡(luò)連接。該絡(luò)服務(wù)的項(xiàng)名稱(chēng)是Neutron。OpenStack絡(luò)負(fù)責(zé)創(chuàng)建和管理虛擬絡(luò)基礎(chǔ)架構(gòu),包括絡(luò)、交換機(jī)、和路由器,這些設(shè)備由OpenStack計(jì)算服務(wù)Nova管理。同時(shí),絡(luò)服

6、務(wù)還提供防墻和VPN這樣的級(jí)服務(wù)。可以將絡(luò)服務(wù)部署到特定主機(jī)上。OpenStack絡(luò)組件與份服務(wù)、計(jì)算服務(wù)和儀表板等多個(gè)OpenStack組件進(jìn)整合、neutron絡(luò)結(jié)構(gòu)個(gè)簡(jiǎn)化的典型的Neutron絡(luò)結(jié)構(gòu)如圖所,包括-個(gè)外部絡(luò)、個(gè)內(nèi)部絡(luò)和-個(gè)路由器。外部絡(luò)負(fù)責(zé)連接OpenStack項(xiàng)之外的絡(luò)環(huán)境,稱(chēng)公共絡(luò)。與其他絡(luò)不同,它不僅僅是個(gè)虛擬絡(luò),更重要的是,它表OpenStack絡(luò)能被外部物理絡(luò)接并訪(fǎng)問(wèn)。外部絡(luò)可能是企業(yè)的局域(Intranet),也可能是互聯(lián)(Internet), 這類(lèi)絡(luò)并不是由Neutron直接管理。內(nèi)部絡(luò)完全由軟件定義,稱(chēng)私有絡(luò)。它是虛擬機(jī)實(shí)例所在的絡(luò),能夠直接連接到虛擬機(jī)。項(xiàng)

7、戶(hù)可以創(chuàng)建的內(nèi)部絡(luò)。默認(rèn)情況下,項(xiàng)之間的內(nèi)部絡(luò)是相互隔離的,不能共享。該絡(luò)由Neutron直接配置與管理。路由器于將內(nèi)部絡(luò)與外部絡(luò)連接起來(lái),因此,要使虛擬機(jī)訪(fǎng)問(wèn)外部絡(luò),必須創(chuàng)建個(gè)路由器。Neutron需要實(shí)現(xiàn)的主要是內(nèi)部絡(luò)和路由器。內(nèi)部絡(luò)是對(duì)層(L2)絡(luò)的抽象,模擬物理絡(luò)的層局域,對(duì)于項(xiàng)來(lái)說(shuō),它是私有的。路由器則是對(duì)三層(L3)絡(luò)的抽象,模擬物理路由器,為戶(hù)提供路由、NAT等服務(wù)。、絡(luò)與端路:個(gè)隔離的層播域,類(lèi)似交換機(jī)中的VLAN。Neutron持多種類(lèi)型的絡(luò),如FLAT、VLAN、VXLAN等。:個(gè)IPV4或者IPV6的地址段及其相關(guān)配置狀態(tài)。虛擬機(jī)實(shí)例的IP地址從中分配。每個(gè)需要定義IP地

8、址的范圍和掩碼(這個(gè)有點(diǎn)像DHCP中定義的作域的概念)。端:連接設(shè)備的連接點(diǎn),類(lèi)似虛擬交換機(jī)上的個(gè)絡(luò)端。端定義了MAC地址和IP地址,當(dāng)虛擬機(jī)的虛擬卡綁定到端時(shí),端會(huì)將MAC和IP分配給該虛擬卡。通常可以創(chuàng)建和配置絡(luò)、和端來(lái)為項(xiàng)搭建虛擬絡(luò)。絡(luò)必須屬于某個(gè)項(xiàng),個(gè)項(xiàng)中可以創(chuàng)建多個(gè)絡(luò)。個(gè)只能屬于某個(gè)絡(luò),個(gè)絡(luò)可以有多個(gè)。個(gè)端必須屬于某個(gè),個(gè)可以有多個(gè)端。、絡(luò)拓?fù)漕?lèi)型Local絡(luò)與其他絡(luò)和節(jié)點(diǎn)隔離。該絡(luò)中的虛擬機(jī)實(shí)例只能與位于同節(jié)點(diǎn)上同絡(luò)的虛擬機(jī)實(shí)例通信,實(shí)際意義不,主要于測(cè)試環(huán)境。位于同Local絡(luò)的實(shí)例之間可以通信,位于不同Local絡(luò)的例之間法通信。個(gè)LocaI絡(luò)只能位于同個(gè)物理節(jié)點(diǎn)上,法跨節(jié)點(diǎn)部

9、署。Flat是種簡(jiǎn)單的扁平絡(luò)拓?fù)洌械奶摂M機(jī)實(shí)例都連接在同絡(luò)中,能與位于同絡(luò)的實(shí)例進(jìn)通信,并且可以跨多個(gè)節(jié)點(diǎn)。這種絡(luò)不使VLAN,沒(méi)有對(duì)數(shù)據(jù)包打VLAN標(biāo)簽,法進(jìn)絡(luò)隔離。Flat是基于不使VLAN的物理絡(luò)實(shí)施的虛擬絡(luò)。每個(gè)物理絡(luò)最多只能實(shí)現(xiàn)個(gè)虛擬絡(luò)。VLAN是持802.1q協(xié)議的虛擬局域,使VLAN標(biāo)簽標(biāo)記數(shù)據(jù)包,實(shí)現(xiàn)絡(luò)隔離。同VLAN絡(luò)中的實(shí)例可以通信,不同VLAN絡(luò)中的實(shí)例只能通過(guò)路由器來(lái)通信。VL AN絡(luò)可以跨節(jié)點(diǎn),是應(yīng)最泛的絡(luò)拓?fù)漕?lèi)型之。VXLAN (虛擬擴(kuò)展局域)可以看作是VLAN的種擴(kuò)展,相于VLAN,它有更的擴(kuò)展性和靈活性,是前持規(guī)模多租房絡(luò)環(huán)境的解決案。由于VLAN包頭部限長(zhǎng)

10、是12位,導(dǎo)致VLAN的數(shù)量限制是4096 (212) 個(gè),不能滿(mǎn)絡(luò)空間益增長(zhǎng)的需求。前VXL AN的封包頭部有24位作VXLAN標(biāo)識(shí)符 (VNID)來(lái)區(qū)分VXLAN段,最多可以持16777216 (224) 個(gè)段。VXLAN使STP防環(huán)路,導(dǎo)致半的絡(luò)路徑被阻斷。VXL AN的數(shù)據(jù)包是封裝到UDP通過(guò)三層傳輸和轉(zhuǎn)發(fā)的,可以完整地利三層路由,能克服VLAN和物理絡(luò)基礎(chǔ)設(shè)施的限制,更好地利已有的絡(luò)路徑。GRE (通路由封裝)是種絡(luò)層協(xié)議去封裝另-種絡(luò)層協(xié)議的隧道技術(shù)。GRE的隧道由兩端的源IP地址和的IP地址定義,它允許戶(hù)使IP封裝IP等協(xié)議,并持全部的路由協(xié)議。在OpenStack環(huán)境中使GRE

11、意味著“IP over IP”,GRE與VXLAN的主要區(qū)別在于,它是使IP包UDP進(jìn)封裝的。GENEVE(通絡(luò)虛擬封裝)的標(biāo)宣稱(chēng)是僅定義封裝數(shù)據(jù)格式,盡可能實(shí)現(xiàn)數(shù)據(jù)格式的彈性和擴(kuò)展性GENEVE封裝的包通過(guò)標(biāo)準(zhǔn)的絡(luò)設(shè)備傳送,即通過(guò)單播或多播尋址,包從-個(gè)隧道端點(diǎn)傳送到另個(gè)或多個(gè)隧道端點(diǎn)。GENEVE幀格式由個(gè)封裝在IPV4或IPV6的UDP的簡(jiǎn)化的隧道頭部組成。GENEVE推出的主要的是為了解決封裝時(shí)添加的元數(shù)據(jù)信息問(wèn)題(到底多少位,怎么GENEVE動(dòng)識(shí)別與調(diào)整),以適應(yīng)各種虛擬化場(chǎng)景。隨著云計(jì)算、數(shù)據(jù)、移動(dòng)互聯(lián)等新技術(shù)的普及,絡(luò)虛擬化技術(shù)的趨勢(shì)在傳統(tǒng)單層絡(luò)基礎(chǔ).上疊加層邏輯絡(luò)。這將絡(luò)分為兩

12、個(gè)層次,傳統(tǒng)單層絡(luò)稱(chēng)為Underlay (承載絡(luò)),疊加其上的邏輯絡(luò)稱(chēng)為Overlay (疊加絡(luò)或覆蓋絡(luò))。Overlay絡(luò)的節(jié) 點(diǎn)通過(guò)虛擬的或邏輯的連接進(jìn)通信,每個(gè)虛擬的或邏輯的連接對(duì)應(yīng)于Underlay絡(luò)的條路徑,由多個(gè)前后銜接的連接組成。Overlay絡(luò)須對(duì)基礎(chǔ)絡(luò)進(jìn)規(guī)模修改,不關(guān)這些底層實(shí)現(xiàn),是實(shí)現(xiàn)云融合的關(guān)鍵。VXLAN、GRE和GENEVE都是基于隧道技術(shù)的Overlay絡(luò)、絡(luò)基本架構(gòu)Neutron僅有個(gè)主要服務(wù)進(jìn)程neutron-server。它是運(yùn)在控制節(jié)點(diǎn)上的,對(duì)外提供Openstack絡(luò)API作為訪(fǎng)問(wèn)Neutron的,收到請(qǐng)求后調(diào)插件進(jìn)處理,最終由計(jì)算節(jié)點(diǎn)和絡(luò)節(jié)點(diǎn)上的各種代理

13、完成請(qǐng)求。絡(luò)提供者是指提供OpenStack絡(luò)服務(wù)的虛擬或物理絡(luò)設(shè)備,如Linux Bridge. Open vSwitch,或者其他持Neutron的物理交換機(jī)。與其他服務(wù)樣,Neutron的各組件服務(wù)之間需要相互協(xié)調(diào)和通信,neutron-server,插件和代理之間通過(guò)消息隊(duì)列進(jìn)通信和相互調(diào)。數(shù)據(jù)庫(kù)于存放OpenStack的絡(luò)狀態(tài)信息,包括絡(luò)、端、路由器等。客戶(hù)端是指使Neutron服務(wù)的應(yīng)程序,可以是命令具Horizon和Nova計(jì)算服務(wù)等。實(shí)例:以個(gè)創(chuàng)建VLAN 100虛擬絡(luò)的流程為例說(shuō)明這些組件如何協(xié)同作。neutron-server收到創(chuàng)建絡(luò)的請(qǐng)求,通過(guò)消息隊(duì)列通知已注冊(cè)的Lin

14、ux Bridge插件。(插件可以有很多,這舉例創(chuàng)建虛擬絡(luò)的插件是Linux Bridge插件)該插件將要?jiǎng)?chuàng)建的絡(luò)信息(如名稱(chēng)、VLAN ID等)保存到數(shù)據(jù)庫(kù)中,并通過(guò)消息隊(duì)列通知運(yùn)在各節(jié)點(diǎn)上的代理代理收到消息后會(huì)在節(jié)點(diǎn)上的物理卡上創(chuàng)建VLAN設(shè)備(如eth1.100),并創(chuàng)建-個(gè)橋(如brqxxx)來(lái)橋接VLAN設(shè)備。、neutron-serverRESTful API:直接對(duì)客戶(hù)端提供API服務(wù),屬于最前端的API,包括Core API和Extension API兩種類(lèi)型。CoreAPI提供管理絡(luò)、和端核資源的RESTfulAPI; Extension API則提供管理路由器、防墻、負(fù)載均

15、衡、安全組等擴(kuò)展資源的RESTfulAPI。Common Service:通服務(wù),負(fù)責(zé)對(duì)API請(qǐng)求進(jìn)檢驗(yàn)、認(rèn)證,并授權(quán)。Neutron Core:核處理程序,調(diào)相應(yīng)的插件API來(lái)處理API請(qǐng)求。Plugin API:定義插件的抽象功能集合,提供調(diào)插件的API接,包括Core Plugin API和Extension。Plugin API兩種類(lèi)型。Neutron Core通過(guò)Core Plugin API調(diào)相應(yīng)的Core Plugin,通過(guò)ExtensionPlugin API調(diào)相應(yīng)的Service Plugin、遵循的設(shè)計(jì)原則,采開(kāi)放性架構(gòu),通過(guò)插件代理與絡(luò)提供者的配合來(lái)實(shí)現(xiàn)各種絡(luò)功能。插件是

16、Neutron的種API的后端實(shí)現(xiàn),的是增強(qiáng)擴(kuò)展性。插件按照功能可以分為Core Plugin和Service Plugin兩種類(lèi)型。Core Plugin提供基礎(chǔ)層虛擬絡(luò)持,實(shí)現(xiàn)絡(luò)、和端等核資源抽象。Service Plugin是指Core Plugin之外的其他插件,提供路由器、防墻、安全組、負(fù)載均衡等服務(wù)持。從H版開(kāi)始,Neutron提供個(gè)名為L(zhǎng)3 Router Service Plugin的插件持路由服務(wù)。插件的調(diào)由neutron-server的Core Plugin API和Extex sion Plugin API調(diào),于確定具體的絡(luò)功能,即要配置什么樣的絡(luò)。作流程:插件處理neut

17、ron-server發(fā)來(lái)的請(qǐng)求, 主要職責(zé)是在數(shù)據(jù)庫(kù)中維護(hù)Neutron絡(luò)的狀態(tài)信息(更新Neutron數(shù)據(jù)庫(kù))。通知相應(yīng)的代理實(shí)現(xiàn)具體的絡(luò)功能。每-個(gè)插件持組API資源井完成特定的操作,這些操作最終由插件通過(guò)RPC調(diào)相應(yīng)的代理來(lái)完成。代理處理插件轉(zhuǎn)來(lái)的請(qǐng)求,負(fù)責(zé)在絡(luò)提供者上真正實(shí)現(xiàn)各種絡(luò)功能。代理使物理絡(luò)設(shè)備或虛擬化技術(shù)完成實(shí)際的操作任務(wù),如于路由器具體操作的L3代理。、典型的主機(jī)系欸但部署案介紹控制節(jié)點(diǎn)上可以部署neutron-server,Core Plugin和Service Plugin的代理。這些代理包括neutron-plugin-agent, neutron-medadata-

18、agent. neutron-dhcp-agent. neutron-l3-agent. neutron-lbass-agent等。 Core Plugin和Service Plugin已經(jīng)靠成到neutron-server中,不需要運(yùn)獨(dú)的Plugin服務(wù)。計(jì)算節(jié)點(diǎn)上可以部署Core Plugin, Linux Bridge或Open vSwitch的代理,負(fù)責(zé)提供層絡(luò)功能。控制節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)都需要部署Core Plugin的代理,因?yàn)榭刂乒?jié)點(diǎn)與計(jì)算節(jié)點(diǎn)通過(guò)該代理,才能建層連接可以通過(guò)增加絡(luò)節(jié)點(diǎn)承擔(dān)更的負(fù)載。該案特別適合規(guī)模較的OpenStack環(huán)境。控制節(jié)點(diǎn)部署neutron-server服

19、務(wù),只負(fù)責(zé)通過(guò)neutron-server響應(yīng)API請(qǐng)求。絡(luò)節(jié)點(diǎn)部署的服務(wù)包括Core Plugin的代理和Server Plugin的代理。將所有的代理主鍵從上述控制節(jié)點(diǎn)分離出來(lái),部署到獨(dú)的絡(luò)節(jié)點(diǎn)上。由獨(dú)的絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)的交換、路由以及負(fù)載均衡等級(jí)絡(luò)服務(wù)。四、Neutron插件、代理和服務(wù)、插件Neutron可以通過(guò)開(kāi)發(fā)不同的插件和代理來(lái)持不同的絡(luò)技術(shù),這是種相當(dāng)開(kāi)放的架構(gòu)。不過(guò)隨著所持的絡(luò)提供者種類(lèi)的增加,開(kāi)發(fā)員發(fā)現(xiàn)了兩個(gè)突出的問(wèn)題。個(gè)問(wèn)題是多種絡(luò)提供者法共存。Core Plugin負(fù)責(zé)管理和維護(hù)Neutron層虛擬絡(luò)的狀態(tài)信息,個(gè)Neutron絡(luò)只能由個(gè)插件管理,Core Plugin插

20、件與相應(yīng)的代理是對(duì)應(yīng)的。 如果選擇Linux Bridge插件,則只能選擇LinuxBridge代理,必須在OpenStack的所有節(jié)點(diǎn)上使Linux Bridge插件,則只能選擇Linux Bridge代理,必須在OpenStackR的所有節(jié)點(diǎn)上使Linux Bridge作為虛擬交換機(jī)。另個(gè)問(wèn)題是開(kāi)發(fā)新的插件的作量太,所有傳統(tǒng)的Core Plugin之間存在量反復(fù)代碼。為解決這兩個(gè)問(wèn)題,從OpenStack的H版開(kāi)始,Neutron實(shí)現(xiàn)了個(gè)插件ML2,旨在取代所有的Core Plugin,允許在OpenStack絡(luò)中同時(shí)使多種層絡(luò)技術(shù),不同的節(jié)點(diǎn)可以使不同的絡(luò)實(shí)現(xiàn)機(jī)制。ML2能夠與現(xiàn)有的代理

21、縫集成,以前使的代理須變更,只需將傳統(tǒng)的Core Plugin替換成ML2。ML2使得對(duì)新的絡(luò)技術(shù)的持更為簡(jiǎn)單,須從頭開(kāi)發(fā)Core Plugin,只需要開(kāi)發(fā)相應(yīng)的機(jī)制驅(qū)動(dòng),減少編寫(xiě)和的代碼。類(lèi)型驅(qū)動(dòng)(Type Driver) : Neutron持的每種絡(luò)類(lèi)型都有 個(gè)對(duì)應(yīng)的ML2類(lèi)型驅(qū)動(dòng)。類(lèi)型驅(qū)動(dòng)負(fù)責(zé)維護(hù)絡(luò)類(lèi)型的狀態(tài)、執(zhí)驗(yàn)證。創(chuàng)建絡(luò)等作。機(jī)制驅(qū)動(dòng)(Mechansim Driver) : geutron持的每種絡(luò)機(jī)制都有個(gè)對(duì)應(yīng)的ML2機(jī)制驅(qū)動(dòng)。機(jī)制驅(qū)動(dòng)負(fù)責(zé)獲取由類(lèi)型驅(qū)動(dòng)維護(hù)的絡(luò)狀態(tài),并確保在相應(yīng)絡(luò)設(shè)備(物理或虛擬的)上正確實(shí)現(xiàn)這些狀態(tài)。前Neutron已經(jīng)實(shí)現(xiàn)的絡(luò)機(jī)制有以下3種類(lèi)型:基于代理的:L

22、inuxBridge. Open vSwitch等。基于控制器的:OpenDaylight,VMWare NSX等.基于物交換機(jī)的:Cisco Nexus. Arista. Mellanox等.擴(kuò)展資源:ML2作為個(gè)Core Plugin,在實(shí)現(xiàn)絡(luò),和端核資源的同時(shí)。也實(shí)現(xiàn)包括端綁定。安全組等部分?jǐn)U展資源、Linux Bridge代理Linux Bridge是成熟可靠的Neutron層絡(luò)虛擬化技術(shù),持Local,Flat、VLAN和VXLAN這4種絡(luò)類(lèi)型。Linux Bridge可以將臺(tái)主機(jī)上的多個(gè)卡橋接起來(lái),充當(dāng)臺(tái)交換機(jī)。它既可以橋接物理卡,可以是虛擬卡。于橋接虛擬機(jī)卡(虛擬卡)的是Tap接

23、,這是個(gè)虛擬出來(lái)的絡(luò)設(shè)備,稱(chēng)為T(mén)ap設(shè)備,作為橋的個(gè)端。Tap接在邏輯上與物理接具有相同的功能,可以接收和發(fā)送數(shù)據(jù)包。如果選擇Linux Bridge代理,在計(jì)算節(jié)點(diǎn)上數(shù)據(jù)包從虛擬機(jī)發(fā)送到物理卡需要經(jīng)過(guò)以下設(shè)備Tap接:于橋連接到虛擬卡,命名規(guī)則為tapxxxLinux橋:作為層交換機(jī),命名規(guī)則為brxxxx。VLAN接:在VLAN絡(luò)中于連接橋,命名為ethx.y (x為卡名稱(chēng),為VLAN ID)VXLAN接:在VXL AN絡(luò)中于連接橋,命令為vxlan-z(z是VNID)物理絡(luò)接:于連接到物理絡(luò)、Open vSwitch代理與Linux Bridge相,Open vSwitch (OVS)具

24、有集中管控功能,且性能更加優(yōu)化,持更多的功能,前在OpenStack領(lǐng)域成為主流它持Local,Flat, VLAN,VXLAN,GRE和GENEVE等所有絡(luò)類(lèi)型。vSwitchTap設(shè)備:于橋連接虛擬機(jī)卡。Linux橋:橋接絡(luò)接。VETH對(duì):直接相連的-對(duì)虛擬絡(luò)接。兩個(gè)虛擬絡(luò)接收發(fā)。來(lái)連接兩個(gè)虛擬橋。OVS橋:Open vSwitch的核設(shè)備,包括-個(gè)OVS集成橋和個(gè)OVS物理連接橋。所有在計(jì)算節(jié)點(diǎn)上運(yùn)的虛擬機(jī)連接到集成橋,Neutron通過(guò)配置集成橋上的端來(lái)實(shí)現(xiàn)虛擬機(jī)絡(luò)隔離。物理連接橋直接連接到物理卡。這兩個(gè)OVS橋通過(guò)個(gè)VETH對(duì)來(lái)對(duì)接。vSwitch如果選擇Open vSwitch代理

25、。在計(jì)算節(jié)點(diǎn)上數(shù)據(jù)包從虛擬機(jī)發(fā)送到物理卡需要依次經(jīng)過(guò)以下設(shè)備:Tap接:命名為tapxxx.Linux橋:命名為qbrxxxx(xxxx編號(hào)要與apxxxx編號(hào)要致)。VETH對(duì):兩端分別命名為qvbxxx和qvoxx (其中xxx與taxxx中的xxx也要保持致)。OVS PATCH端:兩端分別命名為int-br-ethx和phy-br-ethx (x為物理卡名稱(chēng)中的編號(hào)).這是特有的端類(lèi)型,只能在Open vSwitch中使OVS物理連接橋:分為兩種類(lèi)型,在Flat和VLAN中使OVS提供者橋,命名為br-ethx (x為物理卡名稱(chēng)中的編號(hào));在VXLAN.GRE或GENEVE疊加絡(luò)中使O

26、VS隧道橋,命名為br-un,另外,在Local絡(luò)中不需要任何OVS物理連接橋。物理絡(luò)接:于連接到物理絡(luò),命名為ethx (x為物理卡名稱(chēng)中的編號(hào))。vSwitch所有的虛擬機(jī)都連接到同個(gè)橋br-int,Open vSwitch通過(guò)配置br-int和br-ethx_上的流規(guī)則來(lái)進(jìn)VL AN轉(zhuǎn)換,進(jìn)實(shí)現(xiàn)VLAN之間的隔離。例中內(nèi)部的VLAN標(biāo)簽分別為1和2,物理絡(luò)的VLAN標(biāo)簽則為101和102.當(dāng)br-eth1橋.上的phy-br-eth1端收到個(gè)VLAN 1標(biāo)記的數(shù)據(jù)包時(shí),會(huì)將其中的VLAN 1轉(zhuǎn)讓為VLAN 101;當(dāng)br-int橋上的int-br-eth1端收到個(gè)VLAN 101標(biāo)記的數(shù)

27、據(jù)包時(shí)會(huì)將其中的VLAN 101轉(zhuǎn)換為VLAN 1。、DHCP代理DHCP* agent scheduler)-DHCP代理的主要任務(wù)定期報(bào)告DHCP代理的絡(luò)狀態(tài),通過(guò)RPC報(bào)告給neutron-server,然后通過(guò)Core Plugin報(bào)告給數(shù)據(jù) 庫(kù)并進(jìn)更新絡(luò)狀態(tài)啟動(dòng)dnsmasq進(jìn)程,檢測(cè)qdhcp-xxxx名稱(chēng)空間(namespace)中的ns-xxxx端接收到的DHCPDISCOVER請(qǐng)求DHCP代理配置件/etc/neutron/dhcp_agent.iniinterface_driver:來(lái)創(chuàng)建TAP設(shè)備的接驅(qū)動(dòng)dhcp_driver:指定DHCP驅(qū)動(dòng)DHCP創(chuàng)建實(shí)例時(shí),Neut

28、ron隨機(jī)成MAC并從配置數(shù)據(jù)中分配個(gè)固定IP地址,起保存到dnsmasq的hosts件中,讓dnsmasq進(jìn)程做好準(zhǔn)備。與此同時(shí), nova-compute會(huì)設(shè)置虛擬機(jī)卡的MAC地址實(shí)例啟動(dòng),發(fā)出DHCPDISCOVER播,該播消息在整個(gè)絡(luò)中都可以被收到。播到達(dá)dnsmasq監(jiān)聽(tīng)Tap接。Dnsmasq收到后檢查其host件,發(fā)現(xiàn)有對(duì)應(yīng)項(xiàng),它以 -DHCPOFFER消息將IP和關(guān)IP發(fā)回到虛擬機(jī)實(shí)例。虛擬機(jī)實(shí)例發(fā)回DHCPREQUEST消息確認(rèn)接受DHCPOFFER.Dnsmasq發(fā)回確認(rèn)消息DHCPACK,整個(gè)過(guò)程結(jié)束。、 Linux絡(luò)名稱(chēng)空間是Linux提供的種內(nèi)核級(jí)別絡(luò)環(huán)境隔離的法。當(dāng)

29、前Linux持6種不同類(lèi)別的命名空間,絡(luò)名稱(chēng)空間只是其中種。在層絡(luò)上,VLAN可以將-個(gè)物理交換機(jī)分割成個(gè)獨(dú)的虛擬交換機(jī)。在三層絡(luò)上,Linux絡(luò)名稱(chēng)空間可以將個(gè)物理三層絡(luò)分割成個(gè)獨(dú)的虛擬三層絡(luò)。-Linux絡(luò)名稱(chēng)空間概述在Linux中,絡(luò)名稱(chēng)空間可以被認(rèn)為是隔離的擁有單獨(dú)絡(luò)棧的環(huán)境。它經(jīng)常來(lái)隔離絡(luò)資源(設(shè)備和服務(wù)),只有擁有同樣絡(luò)名稱(chēng)空間的設(shè)備才能彼此訪(fǎng)問(wèn)。它還提供了在絡(luò)名稱(chēng)空間內(nèi)運(yùn)進(jìn)程的功能。后臺(tái)進(jìn)程可以運(yùn)在不同名稱(chēng)空間內(nèi)的相同端上,戶(hù)還可以虛擬出塊卡。絡(luò)名稱(chēng)空間可以創(chuàng)建個(gè)完全隔離的全新絡(luò)環(huán)境,包括個(gè)獨(dú)的絡(luò)接、路由表、ARP表、IP地址表、iptables或ebtables等,與絡(luò)有關(guān)的組

30、件都是獨(dú)的。執(zhí)以下命令進(jìn)指定的絡(luò)名稱(chēng)空間:ip netns exec net001(netns) bashnet001eth0地址ip netns exec net001 ip address add xx.xx.xx.xx/24 dev eth0絡(luò)名稱(chēng)內(nèi)部通信沒(méi)有問(wèn)題,但被隔離的絡(luò)名稱(chēng)空間之間要通信,就必須采特定法,即VETH對(duì)VETH對(duì)是種成對(duì)出現(xiàn)的特殊絡(luò)設(shè)備,它們像根虛擬的線(xiàn),可于連接兩個(gè)名稱(chēng)空間,向VETH對(duì) 端輸?shù)臄?shù)據(jù)將動(dòng)轉(zhuǎn)發(fā)到另端。例如創(chuàng)建兩個(gè)絡(luò)名稱(chēng)空間netns1和netns2并使他們之間通信,執(zhí)以下步驟:(1)、創(chuàng)建兩個(gè)絡(luò)名稱(chēng)ip netns add netns1ip netn

31、s add netns2(2)、創(chuàng)建個(gè)VETH對(duì)ip link add veth1 type veth peer name veth2(3)、將上述兩個(gè)VETH虛擬接分別放置到兩個(gè)絡(luò)名稱(chēng)空間中ip link set veth1 netns netns1ip link set veth2 netns netns2這樣兩個(gè)VETH虛擬接就分別出現(xiàn)在兩個(gè)絡(luò)名稱(chēng)中,兩個(gè)空間就打通了,其中的設(shè)備可以互相訪(fǎng)問(wèn)。Linux絡(luò)名稱(chēng)空間實(shí)現(xiàn)DHCP服務(wù)隔離Neutron通過(guò)絡(luò)名稱(chēng)空間為每個(gè)絡(luò)提供獨(dú)的DHCP和路由服務(wù),從允許項(xiàng)創(chuàng)建重疊的絡(luò)。如果沒(méi)有這種隔離機(jī)制,絡(luò)就不能重疊,這樣就失去了很多靈活性。每個(gè)dnsm

32、asq進(jìn)程都位于獨(dú)的絡(luò)名稱(chēng)空間,命名為qdhcp:xxx.以創(chuàng)建Flat絡(luò)為例,Neutron動(dòng)新建該絡(luò)對(duì)應(yīng)的橋brqaxxxx,以及DHCP的Tap設(shè)備tapxxxx。 物理主機(jī)本也有個(gè)絡(luò)名稱(chēng)空間,稱(chēng)為root,擁有所有物理和虛擬接設(shè)備,物理接只能位于root名稱(chēng)空間。新創(chuàng)建的名稱(chēng)空間默認(rèn)只有個(gè)回環(huán)設(shè)備。如果DHCP的Tap虛擬接放置到qdhcp-xxx名稱(chēng)空間,該Tap虛擬接將法直接與root名稱(chēng)空間中橋設(shè)備brqxxxx連接。為此,Neutron使VETH對(duì)來(lái)解決這個(gè)問(wèn)題,添加VETH對(duì)tapxxxx與ns-xxxx,讓qdexxxxx連接到brqxxxxLinux絡(luò)名稱(chēng)空間實(shí)現(xiàn)路由器N

33、eutron允許在不同絡(luò)中的的CIDR和IP地址重疊,具有相同IP地址的兩個(gè)虛擬機(jī)也不會(huì)產(chǎn)沖突,這是由于Neutron的路由器通過(guò)Linux絡(luò)名稱(chēng)空間實(shí)現(xiàn)的,每個(gè)路由器有獨(dú)的路由表Neutron路由器是個(gè)三層(L3)絡(luò)的抽象,其模擬物理路由器,為戶(hù)提供路由、NAT等服務(wù)。在OpenStack絡(luò)中,不同之間的通信需要路由器,項(xiàng)絡(luò)與外部絡(luò)之間的通信更需要路由器。Neutron提供虛擬路由器,也持物理路由器。例如,兩個(gè)隔離的VLAN絡(luò)之間要實(shí)現(xiàn)通信,可以通過(guò)物理路由器實(shí)現(xiàn),如上圖所,由物理路由器提供相應(yīng)的IP路由表,確保兩個(gè)IP之間的通信。將兩個(gè)VLAN絡(luò)中的虛擬機(jī)的默認(rèn)關(guān)分別設(shè)置為物理路由器的接A

34、和B的IP地址,VLANA中的虛擬機(jī)要與VLAN B中的虛擬機(jī)通信時(shí),數(shù)據(jù)包通過(guò)VLAN A中的物理卡到達(dá)物理路由器,由物理路由器轉(zhuǎn)發(fā)到VLAN B中的物理卡,再到的虛擬機(jī)。Neutron的虛擬路由器使軟件模擬物理路由器,路由實(shí)現(xiàn)機(jī)制相同。Neatron的路由L3代理提供。在Neutron中L3代理具有舉輕重的地位,它不僅提供虛擬路由器,且通過(guò)iptables漫供地址轉(zhuǎn)換、浮動(dòng)地址利安全組功能。L3代理利Linux IP棧、路由和iptables來(lái)實(shí)現(xiàn)內(nèi)部絡(luò)中同絡(luò)的虛擬機(jī)實(shí)例之間的通信,以及虛擬機(jī)實(shí)例和外部絡(luò)之間的絡(luò)流量的路由和轉(zhuǎn)發(fā)。L3代理可以部署在控制節(jié)點(diǎn)或者絡(luò)節(jié)點(diǎn)上。1、路由L3代理提供

35、的虛擬路由器通過(guò)虛擬接連接到,個(gè)個(gè)接,該接的地址是該的關(guān)地址。L3代理會(huì)為每個(gè)路由器創(chuàng)建個(gè)名稱(chēng)空間,通過(guò)VETH對(duì)與TAP相連,然后將關(guān)IP配置在位于名稱(chēng)空間的VETH接上,這樣就能夠提供路由。絡(luò)節(jié)點(diǎn)如果不持Linux名稱(chēng)空間,則只能運(yùn)個(gè)虛擬路由器。2、通過(guò)絡(luò)名稱(chēng)空間持絡(luò)重疊在云環(huán)境下戶(hù)可以按照的規(guī)劃創(chuàng)建絡(luò),不同項(xiàng)的絡(luò)IP地址可能會(huì)重疊。L3代理使Linux絡(luò)名稱(chēng)空間來(lái)提供隔離的轉(zhuǎn)發(fā)上下,隔離不同項(xiàng)的絡(luò)。每個(gè)L3代理運(yùn)在-個(gè)名稱(chēng)空間中,每個(gè)名稱(chēng)空間由quouter-命名。3、源地址轉(zhuǎn)換L3代理通過(guò)在ptables表中增加POSTROUTING鏈來(lái)實(shí)現(xiàn)源地址轉(zhuǎn)換,即內(nèi)計(jì)算機(jī)訪(fǎng)問(wèn)外時(shí),發(fā)起訪(fǎng)問(wèn)的內(nèi)

36、P地址轉(zhuǎn)換為外關(guān)的IP地址。種功能讓虛擬機(jī)實(shí)例能夠直接訪(fǎng)問(wèn)外,并能夠從外返回。項(xiàng)絡(luò)連接到Neutron路由器,通常將路由器作為默認(rèn)關(guān)。4、的地址轉(zhuǎn)換Neutron需要設(shè)置浮動(dòng)IP地址持從外訪(fǎng)問(wèn)項(xiàng)絡(luò)中的實(shí)例。每個(gè)浮動(dòng)IP唯對(duì)應(yīng)-個(gè)路由器,浮動(dòng)IP-關(guān)聯(lián)的端-所在的-包含該以及外部的路由器。創(chuàng)建浮動(dòng)IP時(shí),在Neutron分配浮動(dòng)IP后,通過(guò)PRC通知該浮動(dòng)IP對(duì)應(yīng)的路由器去設(shè)置該浮動(dòng)IP對(duì)應(yīng)的iptables規(guī)則。從外訪(fǎng)問(wèn)虛擬機(jī)實(shí)例時(shí),的IP地址為實(shí)例的浮動(dòng)IP地址, 因此必須由iptables將其轉(zhuǎn)化為固定IP地址,然后再將其路由到實(shí)例。浮動(dòng)IP地址提供靜態(tài)NAT功能,建外IP地址與實(shí)例所在項(xiàng)

37、IP地址的對(duì)-映射。浮動(dòng)IP地址配置在路由器提供關(guān)的外接上,不是實(shí)例中。5、安全組安全組定義了哪些進(jìn)絡(luò)流量能被轉(zhuǎn)發(fā)給虛擬機(jī)實(shí)例,每個(gè)安全組可以有若條規(guī)則,可以給每個(gè)實(shí)例綁定若安全組FWaaS是種基于Neutron L3 Agent的虛擬防墻,是Neutron的個(gè)級(jí)服務(wù)。通過(guò)它,OpenStack可以將防墻應(yīng)到項(xiàng)、路由器、路由器端和虛擬機(jī)端,在邊界.上對(duì)三層和四層的流量進(jìn)過(guò)濾。Neatron路由器上應(yīng)防墻規(guī)則,控制進(jìn)出項(xiàng)絡(luò)的數(shù)據(jù)。防墻必須關(guān)聯(lián)某個(gè)策略。FWaaS的應(yīng)對(duì)象是虛擬路由器,可以在安全組之前控制從外部注的流量,但是對(duì)于同個(gè)內(nèi)的流量不做限制,安全組保護(hù)的是實(shí)例,F(xiàn)WaaS保護(hù)的是,兩者互為補(bǔ)充。兩個(gè)版本:FWaaSv1與FWaaSv2FWaaSv1是傳統(tǒng)的防墻案,對(duì)路由器提供保護(hù),將防墻應(yīng)到路由器時(shí),該路由器的內(nèi)部端受到保護(hù)。FWaaSv2防墻概念由防墻組替代,個(gè)防墻包括兩項(xiàng)策略:策略和出策略。防墻組不再應(yīng)于路由器級(jí),是路由器端。FWaaSv2的配置僅提供命令具,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論