Neutron的網(wǎng)絡(luò)實現(xiàn)模型
Neutron的三類節(jié)點
- 計算節(jié)點
- 網(wǎng)絡(luò)節(jié)點
- 控制節(jié)點
Neutron將在這三類節(jié)點中進行部署,Neutron在各個計算節(jié)點,網(wǎng)絡(luò)節(jié)點中運行各種各樣的Agent,在控制節(jié)點中,與在網(wǎng)絡(luò)節(jié)點中相同,一個控制節(jié)點意味著一個Host/VM
OpenStack的三大組件
- 計算
- 存儲
- 網(wǎng)絡(luò)
1.計算節(jié)點的網(wǎng)絡(luò)實現(xiàn)模型
計算節(jié)點內(nèi)的虛擬機或計算節(jié)點之間的通信,分為二層通信和三層通信,其中二層通信需要Bridge,三層通信需要Router。其中Router位于網(wǎng)絡(luò)節(jié)點。Neutron當前支持的二層網(wǎng)絡(luò)類型有l(wèi)ocal、Flat、Vlan、GRE、Vxlan、Geneve 6種。
若將計算節(jié)點的網(wǎng)絡(luò)實現(xiàn)模型在網(wǎng)絡(luò)層面進行考慮的話,計算節(jié)點可以分為兩層:用戶網(wǎng)絡(luò)層和本地網(wǎng)絡(luò)層。
- 用戶網(wǎng)絡(luò)層:由用戶創(chuàng)建,屬于外部網(wǎng)絡(luò),用戶網(wǎng)絡(luò)層對應(yīng)的Bridge是br-ethx或者br-tun,實現(xiàn)載體一般為OVS,作用主要是進行用戶網(wǎng)絡(luò)與本地網(wǎng)絡(luò)的轉(zhuǎn)換,如:內(nèi)外VID轉(zhuǎn)換,VXLAN封裝與解封裝等。
- 本地網(wǎng)絡(luò)層:指Host內(nèi)部的本地網(wǎng)絡(luò),由于用戶網(wǎng)絡(luò)層的屏蔽作用,本地網(wǎng)絡(luò)層只能感知到一種技術(shù)VLAN。且本地網(wǎng)絡(luò)由負責安全的qbr(Linux Bridge)的安全層和負責內(nèi)部交換的br-int(OVS)的bridge層兩層來實現(xiàn)。
1.1 VLAN實現(xiàn)模型
qbr與br-int
qbr與br-int都是Bridge,qbr的實現(xiàn)載體是Linux Bridge,br-int的實現(xiàn)載體是OVS,qbr與br-int之間通過veth pair連接,虛擬機(VM)與qbr之間通過tap連接,且只有一個tap。
br-ethx
br-ethx也是一個Bridge,實現(xiàn)載體是OVS,負責與外部通信,外部指的是Host外部。
br-int與br-ethx通過veth pair連接,br-ethx存在一個真正的物理網(wǎng)卡。
詳細參考Neutron學(xué)習(xí)筆記1--基本概念
VLAN ID 轉(zhuǎn)換
出報文的轉(zhuǎn)換過程
- 虛擬機(VM)發(fā)出后為Untag報文
- 經(jīng)過qbr-xxx后,還是Untag報文
- 在進入br-int時,被打上標簽,VLANID=10,且離開br-int時依然是VLANID=10
- 在進入br-ethx時,打上VLANID=100的標簽
- 離開br-ethx時,即離開主機Host時,VLANID=100。
即在br-int時打上標簽變?yōu)閠ag,在br-ethx上打上標簽進行報文的ID轉(zhuǎn)換。
入報文的轉(zhuǎn)換過程
- 從Host進入到br-ethx,為tag報文,VLANID=100;
- 離開br-ethx時,VLANID=10;
- 進入br-int時,VLANID=10;
- 出br-int時,變?yōu)閁ntag;
- 通過qbr-xxx進入虛擬機(VM)
1.2 VXLAN實現(xiàn)模型
與VLAN實現(xiàn)模型基本相同,只不過將br-ethx變?yōu)閎r-tun。
出報文的轉(zhuǎn)換過程
- 虛擬機(VM)發(fā)出Untag報文
- 經(jīng)過qbr-xxx后,依然是Untag報文
- 進入br-int時,打上VLANID=50的標簽
- 離開br-int時,VLANID=50
- 進入br-tun,VLANID=50
- 離開時,VLAN封裝為VXLAN,且VNI=100
注:出br-tun時,VLAN變?yōu)閂XLAN,并轉(zhuǎn)為VNI=100。
入報文的轉(zhuǎn)換過程
- 報文從host到br-tun之前,是VXLAN報文,VNI=100;
- 進入到br-tun時,被轉(zhuǎn)換為VLAN報文,VID=50;
- 從br-tun離開到進入br-int后,都是tag報文,VID=50;
- 出br-int時,變?yōu)閁ntag;
- 通過qbr-xxx進入到虛擬機(VM)
1.3 GRE實現(xiàn)模型
轉(zhuǎn)換過程與VXLAN相同,不同的是GRE是通過br-tun構(gòu)建GRE Tunnel
2.網(wǎng)絡(luò)節(jié)點實現(xiàn)模型
計算節(jié)點實現(xiàn)模型構(gòu)建了各種類型的二層網(wǎng)絡(luò),但若要一個虛擬機VM訪問一個外部網(wǎng)絡(luò),則要通過網(wǎng)絡(luò)節(jié)點實現(xiàn)。
Neutron是這樣假設(shè)這個組網(wǎng)模型的:
- VM訪問Internet,必須經(jīng)過網(wǎng)絡(luò)節(jié)點,網(wǎng)絡(luò)節(jié)點作為第一層網(wǎng)關(guān)
- 網(wǎng)絡(luò)節(jié)點會連接到DC物理網(wǎng)絡(luò)中的一個設(shè)備,這個設(shè)備可以作為第二層網(wǎng)關(guān)
Neutron在網(wǎng)絡(luò)節(jié)點部署Router以外,還有dhcp server等服務(wù)。
網(wǎng)絡(luò)節(jié)點可以劃分為4層:
- 用戶網(wǎng)絡(luò)層
- 本地網(wǎng)絡(luò)層
- 網(wǎng)絡(luò)服務(wù)層
- 外部網(wǎng)絡(luò)層
其中用戶網(wǎng)絡(luò)層和本地網(wǎng)絡(luò)層與計算節(jié)點相同
網(wǎng)絡(luò)服務(wù)層
典型服務(wù):DHCP Service和Router Service
- Neutron的DHCP Service,采用的是dnsmasq進程(輕量級服務(wù)進程,可以提供dns、dhcp、tftp等服務(wù))
- 一個網(wǎng)絡(luò)一個DHCP Service。
- 由于存在多個DHCP Service,Neutron采用的是namespace方法做隔離,即一個DHCP Service運行在一個namespace中。
外部服務(wù)層
外部服務(wù)層只包含br-ex,嚴格來說還應(yīng)包括Router,因為Router是與外部網(wǎng)絡(luò)連接的主體。
3.控制節(jié)點的實現(xiàn)模型
計算節(jié)點和網(wǎng)絡(luò)節(jié)點承擔著網(wǎng)絡(luò)構(gòu)建任務(wù)。通過兩個節(jié)點中的Bridge,DHCP Service Router等,控制節(jié)點并沒有實現(xiàn)具體的網(wǎng)絡(luò)功能,它只是對各種虛擬網(wǎng)元做管理配合。
但Neutron的所謂控制功能不僅僅是體現(xiàn)在一個控制節(jié)點,計算和網(wǎng)絡(luò)節(jié)點也存在Agent。
說明:本文為學(xué)習(xí)筆記,詳細請查閱參考文獻