• 【博客451】OVN中的Logical Flow 与 Open Flow


    OVN中的Logical Flow 与 Open Flow

    OVN架构

    整个架构非常简单,OVN 仅仅提供了一组网络模型(逻辑交换机、逻辑路由器等),提供了一个OVSDB 数据库用来存放这些模型同时把数据库的访问权限开放给最终用户,让最终用户通过 OVSDB 协议来直接“写入”这些模型(北向)。通过一个叫 ovn-northd 的进程把网络模型转换成OpenFlow流表,放入另一个数据库让 ovn-host 自己来“取”流表(南向),以此完成流表下发。

                                             CMS
                                              |
                                              |
                                  +-----------|-----------+
                                  |           |           |
                                  |     OVN/CMS Plugin    |
                                  |           |           |
                                  |           |           |
                                  |   OVN Northbound DB   |
                                  |           |           |
                                  |           |           |
                                  |       ovn-northd      |
                                  |           |           |
                                  +-----------|-----------+
                                              |
                                              |
                                    +-------------------+
                                    | OVN Southbound DB |
                                    +-------------------+
                                              |
                                              |
                           +------------------+------------------+
                           |                  |                  |
             HV 1          |                  |    HV n          |
           +---------------|---------------+  .  +---------------|---------------+
           |               |               |  .  |               |               |
           |        ovn-controller         |  .  |        ovn-controller         |
           |         |          |          |  .  |         |          |          |
           |         |          |          |     |         |          |          |
           |  ovs-vswitchd   ovsdb-server  |     |  ovs-vswitchd   ovsdb-server  |
           |                               |     |                               |
           +-------------------------------+     +-------------------------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    逻辑网络

    OVN 中的逻辑网络概念包括逻辑交换机和逻辑路由器,分别是以太网交换机和 IP 路由器的逻辑版本。就像物理实现一样,逻辑交换机和路由器可以连接到复杂的拓扑结构中。逻辑交换机和路由器通常是纯逻辑实体,也就是说,它们不关联或绑定到任何物理位置,并且在参与 OVN 的每个 Hypervisor 中以分布式方式实现。

    Logical Flow 与 Open Flow的异同

    从概念上来说,Logical Flows和OpenFlow类似,它们都由table组成,table中包含flow,每个flow都有priority,match和action。两者最大的不同是,logical flow对整个网络的行为进行了详细地描述并且能扩展到任意数量的主机上。并且它把对于具体网络行为的定义和对于现实的物理设备的布局(有多少机器以及机器端口的分布)分离了开来。

    OVN Logical Flow 与 Open Flow的转换

    转换过程:

    SB 中的OpenFlow流表是由运行在 ovn-central 节点上的 ovn-northd 进程修改的,ovn-northd 会“监听” NB中的逻辑流表的改变,把逻辑交换机、路由器的定义转换成OpenFlow流表写入到 SB 数据库。

    你可以使用"ovn-sbctl lflow-list"命令来查看完整的logical flow

    OVN 南北向数据库与Logical Flow 和 Open Flow的关系

    OVN 引入了两个全新的 OVSDB:

    一个叫 Northbound DB(北向数据库,NB),一个叫 Southbound DB(南向数据库,SB);两个库都可以导出远程接口,允许用户通过 OVSDB 协议对数据库进行操作。

    承上启下的ovn northd组件:

    将 CMS 的北向配置转换为南向数据库的逻辑流。连接其上方的 ovn Northbound 数据库和下方的 ovn Southbound 数据库。它将传统网络概念中的逻辑网络配置(逻辑流表,取自 OVN 北向数据库)转换为其下方 OVN 南向数据库中的逻辑数据路径流(OpenFlow流表)。

    ovn northbound Database(北向数据库):

    接收 OVN/CMS 插件传递的逻辑网络配置的中间件。数据库模式意味着与 CMS 中使用的概念匹配,它直接支持逻辑交换机、路由器、ACL等概念。
    通过 ovn 提供的命令行(ovn-nbctl)完成添加、删除、修改、查询等操作;
    也可以写代码通过 OVSDB 协议完成类似动作。OVN 的 NB 是面向“上层应用”的或者叫“云管平台(Cloud Management System,CMS)”。

    OVN Southbound Database(南向数据库):

    包含三种数据:指定如何到达 hypervisor 和其他节点的物理网络(PN)表,用“逻辑数据路径流”描述逻辑网络的逻辑网络(LN)表,“”和将逻辑网络组件的位置链接到物理网络的绑定表。
    SB 中的流表是由运行在 ovn-central 节点上的 ovn-northd 进程修改的,ovn-northd 会“监听” NB 的改变,把逻辑交换机、路由器的定义转换成流表(Flow)写入到 SB 数据库。

    Southbound Database的特殊性

    同时接受两边的“写入”,首先是运行在 ovn-host 上的 ovn-controller 启动之后会去主动连接到 ovn-central 节点上的 SB 进程,把自己的 IP 地址(Chassis),本机的 OVS 状态(Datapath_Binding)写入到 SB 数据库中。ovn-controller 还“监听” SB 数据库中流表的变化(Flow)去更新本地的 OVS 数据库 – 流表下发。

    南北向数据库里的表

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    多线程总结
    领域驱动设计系列关键概念
    chrome安装vue devtools
    PE文件-手工修改重定位表-WinHex-CFF Explorer
    SpringCloud 01 SpringCloud是什么
    APP备案,平台上架APP必备,Android反编译工具下载
    Power Series and Laplace Transforms
    qt使用QProcess实现进程通信
    第二章:求长方体数组,指定区间内的完全数,改进指定区间内的完全数
    pytorch笔记(九)转置卷积、膨胀卷积
  • 原文地址:https://blog.csdn.net/qq_43684922/article/details/126353453