深入理解OpenStack Neutron之---2 Neutron的网络实现模型---读书笔记
目標:
掌握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
總結
以上是生活随笔為你收集整理的深入理解OpenStack Neutron之---2 Neutron的网络实现模型---读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决delphi直接打开bpg工程组文件
- 下一篇: 刷脸支付技术对接可以代理可以贴牌