深入理解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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章