Neutron學(xué)習(xí)筆記2-- Neutron的網(wǎng)絡(luò)實現(xiàn)模型

Neutron的網(wǎng)絡(luò)實現(xiàn)模型

Neutron的三類節(jié)點

  1. 計算節(jié)點
  2. 網(wǎng)絡(luò)節(jié)點
  3. 控制節(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)換過程
  1. 虛擬機(VM)發(fā)出后為Untag報文
  2. 經(jīng)過qbr-xxx后,還是Untag報文
  3. 在進入br-int時,被打上標簽,VLANID=10,且離開br-int時依然是VLANID=10
  4. 在進入br-ethx時,打上VLANID=100的標簽
  5. 離開br-ethx時,即離開主機Host時,VLANID=100。

即在br-int時打上標簽變?yōu)閠ag,在br-ethx上打上標簽進行報文的ID轉(zhuǎn)換。

入報文的轉(zhuǎn)換過程
  1. 從Host進入到br-ethx,為tag報文,VLANID=100;
  2. 離開br-ethx時,VLANID=10;
  3. 進入br-int時,VLANID=10;
  4. 出br-int時,變?yōu)閁ntag;
  5. 通過qbr-xxx進入虛擬機(VM)

1.2 VXLAN實現(xiàn)模型

與VLAN實現(xiàn)模型基本相同,只不過將br-ethx變?yōu)閎r-tun。

出報文的轉(zhuǎn)換過程
  1. 虛擬機(VM)發(fā)出Untag報文
  2. 經(jīng)過qbr-xxx后,依然是Untag報文
  3. 進入br-int時,打上VLANID=50的標簽
  4. 離開br-int時,VLANID=50
  5. 進入br-tun,VLANID=50
  6. 離開時,VLAN封裝為VXLAN,且VNI=100

注:出br-tun時,VLAN變?yōu)閂XLAN,并轉(zhuǎn)為VNI=100。

入報文的轉(zhuǎn)換過程
  1. 報文從host到br-tun之前,是VXLAN報文,VNI=100;
  2. 進入到br-tun時,被轉(zhuǎn)換為VLAN報文,VID=50;
  3. 從br-tun離開到進入br-int后,都是tag報文,VID=50;
  4. 出br-int時,變?yōu)閁ntag;
  5. 通過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)模型的:

  1. VM訪問Internet,必須經(jīng)過網(wǎng)絡(luò)節(jié)點,網(wǎng)絡(luò)節(jié)點作為第一層網(wǎng)關(guān)
  2. 網(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層:

  1. 用戶網(wǎng)絡(luò)層
  2. 本地網(wǎng)絡(luò)層
  3. 網(wǎng)絡(luò)服務(wù)層
  4. 外部網(wǎng)絡(luò)層

其中用戶網(wǎng)絡(luò)層和本地網(wǎng)絡(luò)層與計算節(jié)點相同

網(wǎng)絡(luò)服務(wù)層

典型服務(wù):DHCP Service和Router Service

  1. Neutron的DHCP Service,采用的是dnsmasq進程(輕量級服務(wù)進程,可以提供dns、dhcp、tftp等服務(wù))
  2. 一個網(wǎng)絡(luò)一個DHCP Service。
  3. 由于存在多個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。

參考:深入理解OpenStack Neutron

說明:本文為學(xué)習(xí)筆記,詳細請查閱參考文獻

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容