neutron組件的作用是什么?
、Neutron功能
1. 二層交換
Neutron支持多種虛擬交換機(jī),一般使用Linux Bridge和Open vSwitch創(chuàng)建傳統(tǒng)的VLAN網(wǎng)絡(luò),以及基于隧道技術(shù)的Overlay網(wǎng)絡(luò),如VxLAN和GRE(Linux Bridge 目前只支持 VxLAN)。
2. 三層路由
Neutron從Juno版開始正式加入的DVR(Distributed Virtual Router)服務(wù),它將原本集中在網(wǎng)絡(luò)節(jié)點(diǎn)的部分服務(wù)分散到了計(jì)算節(jié)點(diǎn)上。可以通過namespace中使用ip route或者iptables實(shí)現(xiàn)路由或NAT,也可以通過openflow給OpenvSwitch下發(fā)流表來實(shí)現(xiàn)。
3. 負(fù)載均衡
LBaaS 支持多種負(fù)載均衡產(chǎn)品和方案,不同的實(shí)現(xiàn)以 Plugin 的形式集成到 Neutron,通過HAProxy來實(shí)現(xiàn)。
4. 防火墻
Neutron有兩種方式來保障instance和網(wǎng)絡(luò)的安全性,分別是安全組以及防火墻功能,均可以通過iptables來實(shí)現(xiàn),前者是限制進(jìn)出instance的網(wǎng)絡(luò)包,后者是進(jìn)出虛擬路由器的網(wǎng)絡(luò)包。
三、Network
1. Local
Local網(wǎng)絡(luò),本地的一個(gè)Linux Bridge,除了虛擬機(jī)的虛擬網(wǎng)卡不連接其他的網(wǎng)絡(luò)設(shè)備,實(shí)際場(chǎng)景很少使用,可以忽略。
2. Flat
Flat網(wǎng)絡(luò),不帶vlan tag的網(wǎng)絡(luò),相當(dāng)于Local網(wǎng)絡(luò)的Linux Bridge連接到一個(gè)物理網(wǎng)卡,該網(wǎng)絡(luò)中的instance能與同網(wǎng)絡(luò)的instance通信,且可以跨多個(gè)節(jié)點(diǎn),實(shí)際場(chǎng)景也很少用到。
3. VLAN
VlAN網(wǎng)絡(luò),可以跨節(jié)點(diǎn),目前是私有云網(wǎng)絡(luò)應(yīng)用較多。
4. VXALN
VXLAN網(wǎng)絡(luò),是基于隧道技術(shù)的 overlay 網(wǎng)絡(luò),通過唯一的VNI區(qū)分于其他 vxlan 網(wǎng)絡(luò)。vxlan中數(shù)據(jù)包通過VNI封裝成UPD包進(jìn)行傳輸,因?yàn)槎拥陌ㄟ^封裝在三層傳輸,能夠克服vlan和物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施的限制。
5. GRE
GRE網(wǎng)絡(luò),與vxlan類似的一種overlay網(wǎng)絡(luò),使用IP包進(jìn)行封裝。
四、Neutron架構(gòu)
Neutron采用分布式架構(gòu),由多個(gè)組件共同對(duì)外提供網(wǎng)絡(luò)服務(wù),如下圖所示:
由上圖可以看到Neutron有以下組件構(gòu)成:
Neutron Server:對(duì)外提供OpenStack網(wǎng)絡(luò)API,接收請(qǐng)求,并調(diào)用Plugin處理請(qǐng)求。
Plugin:處理Neutron Server發(fā)來的請(qǐng)求,維護(hù)OpenStack邏輯網(wǎng)絡(luò)的狀態(tài),并調(diào)用Agent處理請(qǐng)求。
Agent:處理Plugin的請(qǐng)求,負(fù)責(zé)在Network Provider上真正實(shí)現(xiàn)各種網(wǎng)絡(luò)功能。
Network Provider:提供網(wǎng)絡(luò)服務(wù)的虛擬或者物理網(wǎng)絡(luò)設(shè)備,比如Linux Bridge,OpenVSwitch或者其他支持Neutron的物理交換機(jī)。
Queue:Neutron Server,Plugin和Agent之間通過Messaging Queue通信和調(diào)用。
Database:存放OpenStack的網(wǎng)絡(luò)狀態(tài)信息,包括Network,Subnet,Port,Router等。