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

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