目标:
掌握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的网络实现模型---读书笔记相关推荐

  1. 深入理解OpenStack Neutron之---3 Neutron的资源模型---读书笔记

    目标: 掌握neutron资源模型以及主要表的表结构. 目录: 1 Neutron资源的租户隔离 2 Network 3 Subnet 4 Port 5 Router 6 Multi-Segments ...

  2. 深入理解linux网络技术内幕读书笔记(十)--帧的接收

    Table of Contents 1 概述 1.1 帧接收的中断处理 2 设备的开启与关闭 3 队列 4 通知内核帧已接收:NAPI和netif_rx 4.1 NAPI简介 4.1.1 NAPI优点 ...

  3. 我非要捅穿这 Neutron(一)网络实现模型篇

    目录 文章目录 目录 前言 传统网络到虚拟化网络的演进 单一平面网络到混合平面网络的演进 Neutron 简述 Neutron 的网络实现模型 计算节点网络实现模型 内外 VID 转换 网络节点网络实 ...

  4. Neutron(一)网络实现模型篇

    目录 文章目录 目录 前言 传统网络到虚拟化网络的演进 单一平面网络到混合平面网络的演进 Neutron 简述 Neutron 的网络实现模型 计算节点网络实现模型 内外 VID 转换 网络节点网络实 ...

  5. MDX Step by Step 读书笔记 - 个人专题(一) 如何理解 MDX 查询中WHERE 条件如何对应Cube 中的切片轴 Slicer Axis...

    这篇文章原本应该写在第四章的读书笔记里, 但是篇幅太长,而且主要示例和图解都是基于我自己的理解, 所以单独成文(可以先看看第四章读书笔记内容). 这一部分基础内容我个人觉得非常重要, 之前看过一次 M ...

  6. 深入理解 OpenStack Neutron:VXLAN

    深入理解 OpenStack Neutron:VXLAN 原创: 李宗标 网事如烟云 2017-02-01 3.8 VXLAN 终于用上了这张图: 老爷子,鸡年大吉! 好吧,我们言归正传!(老爷子说: ...

  7. Neutron 理解(5):Neutron 是如何向 Nova 虚机分配固定IP地址的

    Neutron 理解 (1): Neutron 所实现的虚拟化网络 Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 Neutron 理解 (3): Open vSw ...

  8. OpenStack(五)——Neutron组件

    OpenStack(五)--Neutron组件 一.OpenStack网络 1.Linux网络虚拟化 2.Linux虚拟网桥 3.虚拟局域网 4.开放虚拟交换机(OVS) 二.OpenStack网络基 ...

  9. 一文理解OpenStack网络

    摘要:如果你能理解OpenStack的网络,那么对于其他云平台的网络,应该也可以通过分析后理解掌握了. 本文分享自华为云社区<<跟唐老师学习云网络> - OpenStack网络实现& ...

最新文章

  1. LPS在无人机数据处理中的应用
  2. 获得SAP CRM report的元数据get report detail(Metadata) via url
  3. yolov3安卓实现_从零实现YOLOv3
  4. java-接口与多态-
  5. app素材模板|ui界面的导航设计实用干货
  6. ipv6单播地址包括哪两种类型_IPV6中为啥没有ARP了呢?一文带你搞懂NDP邻居发现协议...
  7. 符号常量和变量有什么区别_JVM是什么?
  8. 显示器色域检测软件_摄影师:手机看图的甲方爸爸值得我换专业摄影显示器吗?...
  9. webpack的详细使用
  10. 什么是zone?如何做zone?如何做好zone?
  11. LeetCode 237. 删除链表中的节点
  12. 一键批量下载皮皮虾视频
  13. Android Studio课堂总结05
  14. 古琴销售怎么做阳php学,古琴斫琴要领
  15. 犹他州计算机科学,美国犹他州立大学计算机系终身教授承恒达博士访问学科部...
  16. ps 填充画板背景色
  17. 一种改进的天鹰优化算法和非洲秃鹫混合优化算法(Matlab代码实现)
  18. 企业级NewSQL数据库 超越MongoDB、Hbase、Cassandra
  19. 机器学习-雅可比式与多元高斯分布
  20. 反射模式python

热门文章

  1. 类的成员函数this指针
  2. 【Python】tkinter实现snipaste截图显示功能
  3. 在终端显示bash:/home/this/catkin_ws/setup.bash:没有那个文件或目录 的解决方法
  4. java license 开源_MinIO:一个基于Apache License v2.0开源协议的对象存储服务
  5. oracle双机热备部署,Oracle双机热备配置步骤
  6. trunk口不通防火墙_交换机S5700与防火墙USG5500无法对接Eth-trunk LACP-static模式
  7. 用户自定义实现定时任务?很简单我教你实现!
  8. Linux(CentOS)下的vsftpd服务器配置-五岳之巅
  9. jQuery快速入门(淘宝切换服饰、王者荣耀手风琴效果)
  10. android统计app流量的软件,流量控(手机流量统计)app