目標:
掌握neutron在計算節點,網絡節點,控制節點的網絡實現模型。
目錄:
1 Neutron的三類節點
2 計算節點的網絡實現模型
3 網絡節點的網絡實現模型
4 控制節點的實現模型
5 總結
1 Neutron的三類節點
三類節點:
控制節點,網絡節點,計算節點,
不同Host的虛機的二層通信: 通過計算節點的Bridge實現
虛機訪問Internet: 通過Router先到達數據中心網關,再出去。Router在網絡節點。
2 計算節點的網絡實現模型
出發點: 計算節點的虛機需要能跨Host通信。
通信: 二層通信需要Bridge,三層通信需要Router(位於網絡節點)。
ToR: Top of Rack,位於機架頂端的交換機。
計算節點的抽象模型:
DC TOR
物理網絡
Integration Layer Integration Layer
| |
Security Layer Security Layer
| |
VM VM
計算節點 計算節點
解釋:
Security Layer: 實現Firewall防火牆功能
Integration Layer: 實現綜合網絡(交換/路由)功能
DC物理網絡: 由廠商的物理設備組成
Neutron支持的二層網絡類型:
Local, Flat, VLAN, VXLAN, GRE, Geneve
2.1 VALN實現模型
br-ethx G------H br-ethx
F F
| |
E E
br-int br-int
D T D T
| | | |
C S C S
qbr-xxx qbr-yyy qbr-xxx qbr-yyy
B R B R
| | | |
A Q A Q
VM1-1 VM1-2 VM2-1 VM2-2
VLAN100 VLAN200 VLAN100 VLAN200
計算節點1 計算節點2
解釋:
1)存在內外VLAN ID
2)內外VLAN ID的轉換通過Host內的Bridge實現
3)qbr
含義: Quantum Bridge
實現載體: Linux Bridge
4)br-int
含義: Integration Bridge,綜合網橋
實現載體: OVS(Open vSwitch)
5)qbr與br-int
qbr與br-int: 通過veth pair連接
VM與qbr: 通過tap連接,只有一個tap,分別掛接到VM和qbr之上。
引入qbr的目的: OVS不支持iptables規則的安全組功能,所以需要qbr(安全網橋)
6)br-ethx
含義: Bridge-Ethernet-External, 是一個Bridge, 也是一個OVS。
作用: 與Host外部通信
br-ethx與br-int: 接口是veth pair
br-ethx上的接口(例如上圖的G端口): 是真正的Host的網卡接口。
7)內外VLAN ID的轉換
7.1) 出報文VLAN ID的轉換過程
VLAN ID = 100
br-ethx G------>
F-----> 標籤轉換 VLAN ID = 100
^
| VLAN ID = 10
E
br-int
打標籤<-- D T
VLAN ID=10 | |
C S
qbr-xxx qbr-yyy
B R
| |
A Q
VM1-1 VM1-2
VLAN100 VLAN200
計算節點1
整體流程:
Untag報文->Tag報文(VID=內層VID)->Tag報文(VID=外層VID)
VID:
對於VLAN網絡,指的是VLAN ID
對於VXLAN網絡,指的是VNI
對於GRE網絡,指的是GRE Key
7.2)
br-ethx G<------
F
|
E
br-int
D T
| |
C S
qbr-xxx qbr-yyy
B R
| |
A Q
VM1-1 VM1-2
VLAN100 VLAN200
計算節點1
總結:
1)都是在br-ethx連接br-int的靠近br-ethx的端口上進行標籤轉換
出報文: 內層VLAN ID轉換爲外層VLAN ID
入報文: 外層VLAN ID轉換爲內層VLAN ID
2)都是在br-int連接qbr的靠近br-int的端口上進行打標籤或者剝奪標籤的操作
出報文: 打上內層VLAN ID標籤
入報文: 剝奪標籤
2.2 VXLAN實現模型
VLAN中是br-ethx,而VXLAN中是br-tun(bridge tunnel)
br-ethx和br-tun都是OVS。
VLAN和VXLAN的區別:
br-ethx功能是二層交換機的功能。
br-tun所執行的是VXLAN中VTEP(VXLAN Tunneling End Point, VXLAN隧道
終結點)的功能。
VXLAN模型:
10.0.100.88 10.0.100.77
^ ^
| |
br-tun G---------------H br-tun
F F
| |
E E
br-int br-int
D T D T
| | | |
C S C S
qbr-xxx qbr-yyy qbr-xxx qbr-yyy
B R B R
| | | |
A Q A Q
VM1-3 VM1-4 VM2-3 VM2-4
VLAN50 VLAN60 VLAN70 VLAN80
計算節點1 計算節點2
解釋:
兩個br=tun對應接口IP分別爲10.0.100.88和10.0.100.77,這兩個IP就是
VXLAN的隧道終結點IP
G,H: NIC Interface
C,D,T,H: veth pair
A,B,R,Q: tap
之所以要做內外VID的轉換:
1)是因爲包含網絡類型的轉變
2)避免內部VLAN ID衝突(最根本原因)
3)內部VLAN ID是體現在bt-int上的,一個HOST包含一個br-int。
2.2.1 進/出報文的VID轉換過程
1)都是在br-tun網卡接口上進行標籤轉換和報文封裝/拆封
出報文: 內層VLAN ID轉換爲VNI,報文被從VLAN封裝爲VXLAN
入報文: VNI轉換爲內層VLAN ID,報文從VXLAN拆封爲VLAN
2)都是在br-int連接qbr的靠近br-int的端口上進行打標籤或者剝奪標籤的操作
出報文: 打上內層VLAN ID標籤
入報文: 剝奪標籤
2.3 GRE實現模型
GRE實現模型與VXLAN一樣,但VXLAN的br-tun構建的是
VXLAN Tunnel,而GRE的br-tun構建的是GRE Tunnel。
GRE網絡,內部是有Tunnel ID。
存在: 內部VLAN ID與Tunnel ID的轉換。
2.4 計算節點網絡實現模型總結
計算節點分爲兩層: 用戶網絡層 + 本地網絡層
用戶網絡層:
含義: 指OpenStack用戶創建的網絡,即外部網絡,對應的Bridge是br-ethx
(對應Flat, VLAN等非隧道型二層網絡),或者br-tun(對應VXLAN, GRE等
隧道型二層網絡)。
實現載體: 一般是OVS。
功能: 將用戶網絡與本地網絡(Host內部的本地網絡)等進行互相轉換。
例如內外VID轉換,VXLAN封裝與解封裝。
本質: 用戶網絡是對本地網絡的屏蔽,本地網絡感知的都是VLAN。
本地網絡層:
含義: 指Host內部的本地網絡。又包含qbr和br-int。
qbr: 實現是Linux Bridge,負責安全,稱爲安全層
br-int: 實現是OVS,負責內部交換,稱爲Bridge層。
本質: Bridge層是對VM層的屏蔽。VM發出的Untag報文,被Bridge層轉換爲Tag報文轉發到
br-ethx/br-tun。從br-ethx/br-tun轉發到br-tun的Tag報文,被br-int剝去Tag,
變成Untag報文,然後再轉發給VM。
同一個host中不同VM如何通信?
經過本地網絡層(br-int)即可完成。
3 網絡節點的網絡實現模型
組網模型: 計算節點中的虛機要訪問Internet,需要經過網絡節點,網絡節點
會連接到DC物理網絡中的一個設備(交換機或路由器),通過該設備,
到達DC的網關。DC網關再連接到Internet上。
在網絡節點中部署了路由器,此路由器是虛擬路由器,利用Linux內核功能。
網絡節點4層:
用戶網絡層,本地網絡層,網絡服務層,外部網絡層。
網絡服務層: 爲計算節點的虛機提供網絡服務,例如DHCP和rRouter
dhcp: 採用dnsmasq進程(提供dns,dhcp等服務),一個網絡一個DHCP服務,
多個dhcp服務通過namespace進行隔離。
外部網絡層: 只包括br-ex,還應該包括Router,br-ex將Router對接到網絡節點的物理網口。
Router
br-ex Router
Router
用戶網絡層 br-ethx/br-tun
I
------------------------|-------------------------
J
本地網絡層(VLAN) br-int
| |
O M
------------------------|---|---------------------
P N
網絡服務層 DHCP Router
K
----------------------------|----------------------
L
外部網絡層 br-ex Q
---------------------------------------------------
計算節點
解釋:
Router僅僅是示意,實際是Linux內核模塊。Router做路由轉發,提供SNAT/DNAT。
每一個Router運行在一個namespace中,Neutron創建namespace,在namespace中開啓路由轉發功能。
4 控制節點的實現模型
作用: 管理虛擬網元,部署neutron-server。
5 總結
1)Neutron分爲控制節點,網絡節點,計算節點。
網絡節點和計算節點爲虛機構建具體網絡。
控制節點對網絡進行管理。
計算節點中各個Bridge構建了Local,Flat,VLAN,VXLAN,GRE,Geneve6種2層網絡。
2)整體架構如下
|--------------------------管理網-------------------
| --------數據網------ |
| | | |
br-ethx/br-tun br-ethx/br-tun Neutron
| | Nova
br-int br-int .....
| | | |
Router DHCP qbr qbr
| | |
外部網絡---br-ex VM VM
網絡節點 計算節點 控制節點
解釋:
br-ethx與br-tun構建用戶網絡,爲br-int屏蔽用戶網絡差異,將不同類型用戶網絡轉換爲VLAN網脫落。
br-int在Host內部爲各個VM構建了一個本地網絡。
qbr爲br-int提供安全功能。
參考:
深入理解OpenStack Neutron