openstack的網(wǎng)絡(luò)服務(wù)組件為neutron,它的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)“網(wǎng)絡(luò)即服務(wù)”。
設(shè)計(jì)上:遵循基于“軟件定義網(wǎng)絡(luò)(SDN)"的靈活和自動(dòng)化原則
實(shí)現(xiàn)上:充分利用linux中各種網(wǎng)絡(luò)相關(guān)的技術(shù)
Neutron最為核心的工作是對(duì)二層物理網(wǎng)絡(luò)的抽象與管理,物理服務(wù)器虛擬化后,虛擬機(jī)的網(wǎng)絡(luò)功能由虛擬機(jī)網(wǎng)卡(vnic)提供,物理交換機(jī)也被虛擬化為虛擬交換機(jī)(vswitch),各個(gè)vnic連接再vswitch的端口上,最后這些vswitch通過物理服務(wù)器的物理網(wǎng)卡訪問外部的物理網(wǎng)絡(luò)。
網(wǎng)絡(luò)虛擬化主要由分為三個(gè)部分:
網(wǎng)卡虛擬化:TAP,TUN,VETH
交換機(jī)虛擬化:linux bridge,open vswitch
網(wǎng)絡(luò)隔離:network-namespace
TAP設(shè)備:模擬一個(gè)二層的網(wǎng)絡(luò)設(shè)備,可以接收和發(fā)送二層網(wǎng)絡(luò)數(shù)據(jù)包
TUN設(shè)備:模擬一個(gè)三層的網(wǎng)絡(luò)設(shè)備,可以接收和發(fā)送三層網(wǎng)絡(luò)數(shù)據(jù)包
VETH:虛擬ethernet接口,通常以pair的方式出現(xiàn),一端發(fā)出的網(wǎng)絡(luò)數(shù)據(jù)包會(huì)被另一端接收,可以形成兩個(gè)網(wǎng)橋之間的通道
TAP/TUN提供了一臺(tái)主機(jī)內(nèi)用戶空間的數(shù)據(jù)傳輸機(jī)制,它虛擬機(jī)了一套網(wǎng)絡(luò)接口,這套接口和物理的接口無任何區(qū)別,可以配置IP,可以路由流量,不同的是它流量只在主機(jī)內(nèi)流通
veth-pari,是成對(duì)出現(xiàn)的網(wǎng)絡(luò)設(shè)備,一端連接協(xié)議棧,一端連接彼此,數(shù)據(jù)從一端出,一端進(jìn)。它的特性常常用來連接不同的虛擬網(wǎng)絡(luò)組件,構(gòu)建大規(guī)模的虛擬網(wǎng)絡(luò)拓?fù)?,比如連接linux bridge,ovs等,用于neutron,可以構(gòu)建非常復(fù)雜的網(wǎng)絡(luò)形態(tài)。
linux brigde:工作于二層的網(wǎng)絡(luò)設(shè)備,功能類似物理交換機(jī)
brigde可以綁定linux上其他網(wǎng)絡(luò)設(shè)備,并將這些設(shè)備虛擬化為端口
當(dāng)一個(gè)網(wǎng)絡(luò)設(shè)備被綁定到bridge上,就相當(dāng)于物理交換機(jī)端口插入了一條連接終端的網(wǎng)線。
使用brctl命令配置linux brige
相比linux bridge的小規(guī)模的主機(jī)內(nèi)部通信場景,open vswitch更適合大規(guī)模的多主機(jī)通信場景
network namespace能創(chuàng)建多個(gè)隔離的網(wǎng)絡(luò)空間,他們有獨(dú)立的網(wǎng)絡(luò)配置信息,例如網(wǎng)絡(luò)設(shè)備,路由表,iptables等。
不同的網(wǎng)絡(luò)空間中的虛擬機(jī)運(yùn)行的時(shí)候仿佛就在自己的獨(dú)立網(wǎng)絡(luò)中。
network namespace通常于vrf(virtual routing fowarding虛擬路由轉(zhuǎn)發(fā))一起工作,vrf是一種ip技術(shù),允許路由表的多個(gè)實(shí)例同時(shí)在同一個(gè)路由器上共存。
使用veth可以連接兩個(gè)不同的網(wǎng)絡(luò)命名空間,使用bridge可以連接多個(gè)不同的網(wǎng)絡(luò)命名空間。
作為一種虛擬網(wǎng)絡(luò)服務(wù),為openstack計(jì)算提供網(wǎng)絡(luò)連通和尋址服務(wù)。
neutron對(duì)網(wǎng)絡(luò)進(jìn)行了抽象,如下所示:
neutron支持多種類型的Network,包括local,flat,vlan,vxlan和gre
就是子網(wǎng),每個(gè)子網(wǎng)在neutron中需要定義ip地址和范圍
subnet必須與network關(guān)聯(lián),可以附加dns,網(wǎng)關(guān)ip,靜態(tài)路由
端口
邏輯網(wǎng)絡(luò)交換機(jī)上的虛擬交換端口
虛擬機(jī)通過port附著到network上
port可以分配ip地址和mac地址
連接租戶內(nèi)同一個(gè)network或者不同network之間的子網(wǎng),以及連接內(nèi)外網(wǎng)
固定ip,分配到每個(gè)端口上的ip,類似于物理環(huán)境中配置到網(wǎng)卡上的ip
floating ip(浮動(dòng)ip)是external network創(chuàng)建的一種特殊的port,可以將floating ip綁定到任意network中的port上,底層會(huì)進(jìn)行nat轉(zhuǎn)發(fā),將發(fā)送的浮動(dòng)ip流量轉(zhuǎn)發(fā)到該port上的對(duì)應(yīng)固定ip上,外界可以通過浮動(dòng)ip訪問虛擬機(jī),虛擬機(jī)也可以通過浮動(dòng)ip訪問外界
pytsical network,物理網(wǎng)絡(luò)。
在物理網(wǎng)絡(luò)環(huán)境中連接到openstack不同節(jié)點(diǎn)的網(wǎng)絡(luò),每個(gè)物理網(wǎng)絡(luò)可以支持neutron中的一個(gè)或者多個(gè)虛擬網(wǎng)絡(luò)。
openstack必須通過physical network才能和真實(shí)物理網(wǎng)絡(luò)通信
由openstack管理員創(chuàng)建,直接對(duì)應(yīng)數(shù)據(jù)中心現(xiàn)有物理網(wǎng)絡(luò)的一個(gè)網(wǎng)段
providr network通常使用vlan或者flat模式,可以在多個(gè)租戶之間共享
自助服務(wù)網(wǎng)絡(luò),也叫租戶網(wǎng)絡(luò)或項(xiàng)目網(wǎng)絡(luò),它是由openstack租戶創(chuàng)建的,完全虛擬的,只在本網(wǎng)絡(luò)內(nèi)部連通,不能在租戶之間共享
self-servcie network通常使用vxlan或者gre模式,可以通過virtual router的snat與provider network通信
不同的self-service network中的網(wǎng)段可以相同,類似于物理環(huán)境中不同公司的內(nèi)部網(wǎng)絡(luò)
self-service network如果需要和外部網(wǎng)絡(luò)通信,需要通過router,類似于物理環(huán)境中公司上網(wǎng)需要通過路由器或者防火墻。
外部網(wǎng)絡(luò),也叫公共網(wǎng)絡(luò)
它是一種特殊的provider network,連接的物理網(wǎng)絡(luò)與數(shù)據(jù)中心或者internet相通,網(wǎng)絡(luò)中的port可以訪問外網(wǎng)
一般將租戶的virtual router連接到該網(wǎng)絡(luò),并創(chuàng)建floating ip綁定虛擬機(jī),實(shí)現(xiàn)虛擬機(jī)與外網(wǎng)通信
Exernal netwok類似于物理環(huán)境中直接使用公網(wǎng)ip網(wǎng)段,不同的是,openstack中external network對(duì)應(yīng)的物理網(wǎng)絡(luò)不一定能直連internet,有可能只是數(shù)據(jù)中心的一個(gè)內(nèi)部私有網(wǎng)絡(luò)。
安全組,他的作用是在neutron port上的一組策略,規(guī)定了虛擬機(jī)入口和出口流量的規(guī)則
安全組基于linux iptables實(shí)現(xiàn),默認(rèn)拒絕所有流量,只有添加了放行規(guī)則的流量才允許通過
每個(gè)openstack項(xiàng)目中都有一個(gè)default默認(rèn)安全組,默認(rèn)包含如下規(guī)則-拒絕所有入口流量,允許所有出口流量
架構(gòu)圖
neutron架構(gòu)原則
message queue:neutron-sever通過消息列隊(duì)與其他的neutron agents進(jìn)行交換消息,但是這個(gè)消息列隊(duì)不會(huì)用于neutron-server與其他openstack組件(如nova)進(jìn)行交換消息
l2 agent:負(fù)責(zé)連接端口(ports)和設(shè)備,使他們處于共享的廣播域,通常運(yùn)行在hypervisor上
l3 agent:負(fù)責(zé)連接tenant網(wǎng)絡(luò)到數(shù)據(jù)中心,或者連接到internet.在真實(shí)的部署環(huán)境中,一般都需要多個(gè)l3 agent同時(shí)運(yùn)行。
dhcp agent:用于自動(dòng)配置虛擬機(jī)網(wǎng)絡(luò)
advance service:提供lb(負(fù)載均衡),防火墻等服務(wù)
neutron的架構(gòu)是基于插件的,不同的插件提供不同的網(wǎng)絡(luò)服務(wù),主要包含如下組件
neutron server=apis+plugins,通過這種方式,可以自由對(duì)接不同網(wǎng)絡(luò)后端能力
core plugin,主要是指ml2(modular layer 2) plugin,是一個(gè)開放架構(gòu),在plugin下,可以集成各個(gè)廠家,各種后端技術(shù)支持的layer 2網(wǎng)絡(luò)服務(wù)。
ml2 plugin的drivers主要分為以下兩種:
typer driver:定義了網(wǎng)絡(luò)類型,每種網(wǎng)絡(luò)類型對(duì)應(yīng)一個(gè)type driver
mechanism driver:對(duì)接各種二層網(wǎng)絡(luò)技術(shù)和物理交換機(jī)設(shè)備,如ovs,linux bridge等,從typer driver獲取相關(guān)的底層網(wǎng)絡(luò)信息,確保對(duì)應(yīng)的底層技術(shù)能夠根據(jù)這些信息正確配置二層網(wǎng)絡(luò)。
serivce plugin用于實(shí)現(xiàn)高階網(wǎng)絡(luò)服務(wù),如路由,負(fù)載均衡,防火墻和***服務(wù)等
l3 service plugin主要提供路由,浮動(dòng)ip服務(wù)等。
neutron agent向虛擬機(jī)提供二層和三層的網(wǎng)絡(luò)連接,完成虛擬網(wǎng)絡(luò)和物理網(wǎng)絡(luò)之間的轉(zhuǎn)換,提供擴(kuò)展服務(wù)等
neutron支持多種網(wǎng)絡(luò)技術(shù)和類型,可以自由組合各種網(wǎng)絡(luò)模型。
生產(chǎn)中,openstack主要使用如下兩種網(wǎng)絡(luò)模型
flat網(wǎng)絡(luò)類似于使用網(wǎng)線直接連接物理網(wǎng)絡(luò),openstack不負(fù)責(zé)網(wǎng)絡(luò)隔離
interface 2不帶vlan tag
interface 2需要多個(gè)vlan,連接的物理交換機(jī)一般配置trunk模式,并允許這些vlan通過
使用linux bridge+vlan實(shí)現(xiàn) provider network,網(wǎng)絡(luò)流量可以分為如下幾種:
南北向流量:虛擬機(jī)和外部網(wǎng)絡(luò)通信的流量
東西向流量:虛擬機(jī)之間的流量
provider network和外部網(wǎng)絡(luò)之間的流量,由物理網(wǎng)絡(luò)設(shè)備負(fù)責(zé)交換和路由
以下涉及計(jì)算節(jié)點(diǎn)1:
以下涉及物理網(wǎng)絡(luò)設(shè)備
計(jì)算節(jié)點(diǎn)1:
物理設(shè)備
計(jì)算節(jié)點(diǎn)2
計(jì)算節(jié)點(diǎn)1
物理設(shè)備
以下涉及計(jì)算節(jié)點(diǎn)1
vxlan是虛擬可擴(kuò)展的局域網(wǎng),是一種oeverlay技術(shù),通過三層網(wǎng)絡(luò)來搭建虛擬的二層網(wǎng)絡(luò)。
虛擬機(jī)運(yùn)行在計(jì)算節(jié)點(diǎn)1上,使用self-service network 1,將數(shù)據(jù)包發(fā)送給internet上的主機(jī)
計(jì)算節(jié)點(diǎn)1
網(wǎng)絡(luò)節(jié)點(diǎn)
(直接放圖吧。。。。。)
頭大。。頭大。。
網(wǎng)絡(luò)看來真的是要學(xué)一輩子的
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。