OVN总结

2023-05-16


参考:https://www.sdnlab.com/18600.html

三、OVN L3 对比 Neutron L3

Neutron 的三层功能主要有路由,SNAT 和 Floating IP(也叫 DNAT),它是通 Linux kernel 的namespace 来实现的,每个路由器对应一个 namespace,利用 Linux TCP/IP 协议栈来做路由转发。

OVN 支持原生的三层功能,不需要借助 Linux TCP/IP stack,用OpenFlow 流表来实现路由查找,ARP 查找,TTL 和 MAC 地址的更改。OVN 的路由也是分布式的,路由器在每个计算节点上都有实例,有了 OVN 之后,不需要 Neutron L3 agent 了 和DVR了。

四、OVN和其它通用SDN控制器(比如OpenDayLight)的主要区别

  • OVN专注于实现云计算管理平台场景下的SDN控制器
  • OVN专注于实现二层和三层网络功能。除了在传输层实现了基于L4的ACL 外,基本上不在L4 ~ L7层实现某些功能。

六、OVN的架构和分析

先来一张简单明了的架构图

看完上图,感觉OVN的架构很简单是不? 再看看我从网上找的另一张更详细的架构图:

OVN/CMS Plugin 是Neutron的一个插件,作为OVN 和 CMS 之间的接口 。它将CMS中的数据(存储在Neutron DB)翻译成一种“中间格式”。

这种中间格式就是逻辑网络配置数据,这样CMS中的网络配置数据就能够被OVN理解 (准确的说是能够被OVN的Northbound DB 所理解)。

Northbound DB 里面存的就是上面OVN/CMS Plugin翻译之后的逻辑网络的相关数据。比如 logical switch,logical router,logical port和ACL。

Northbound DB 里面的几乎所有的内容都是由 CMS 产生的

OVN-northd 类似于一个集中的控制器,监听Northbound DB 数据库的内容变化,它把 Northbound DB 里面的逻辑网络的相关数据翻译成 Southbound DB 可以理解的格式(logical datapath flows),并传递给 Southbound DB 进行存储,进而被所有的chassis 读取和应用。 (关于chassis这个概念 ,本人会在下一篇博文中进行介绍。)

Southbound DB 处在 OVN 架构的核心,它是 OVN 中最重要的部分,它跟 OVN 的其他组件都有交互。 里面存的数据和 Northbound DB 语义完全不一样,主要包含 3 类数据(第二类数据就是OVN-northd 从Northbound DB 翻译过来的):

一、物理网络数据,比如 hypervisor的 IP 地址,hypervisor的 tunnel 封装格式;

二、逻辑网络数据,比如报文如何在逻辑网络中转发;

三、物理网络和逻辑网络的绑定关系,比如逻辑端口关联到哪个 hypervisor上面。这类数据存储在binding表中,字段有uuid,chassis, logical_datapath, logical_port, mac, parent_port, tag, tunnel_key。

如果对这里的2次翻译不太明白的话,我举个例子:
有四个人在一起聊天,他们分别来自不同国家。
一个英国人只会英语,
一个伊拉克人同时掌握英语和阿拉伯语,
一个伊朗人同时掌握阿拉伯语和俄罗斯语,
一个俄罗斯人只会俄罗斯语。
英国人讲的话要被俄罗斯人理解是不是要先被伊拉克人翻译为阿拉伯语,再被伊朗人翻译俄罗斯语。 这个过程需要2个人进行翻译。

ovn-controller 是 OVN 里面的 agent,类似于 Neutron 里面的 ovs-agent,它也是运行在每个 hypervisor和软件网关之上。

它有下面2种功能:
(1)把物理网络的信息写到 Southbound DB 里面(这类信息就包括 Southbound DB中的第一类数据);
(2)把 Southbound DB 里面存的一些数据转化成 Openflow flow 配到本地的 OVS table 里面,来实现报文的转发。

第2个功能的具体实现机制就是:
ovn-controller连接到到本地的ovsdb-server ,监控、读取、管理OpenvSwitch的配置信息;

ovn-controller作为ovs-vswitchd 的Openflow 控制器来控制流量的转发。另外,从架构图中就可看出ovn-controller是一种分布式SDN控制器。

ovs-vswitchd 和 ovsdb-server 是 OVS 的两个进程:

  • ovs-vswitchd :核心模块,实现交换功能,和Linux内核模块一起,实现基于流的交换;
  • ovsdb-server :是一个数据库。其保存了整个OVS的配置信息,包括接口,流表和VLAN等;ovs-vswitchd从其查询配置信息;

小结:OVN 给 Neutron带来实现机制方面的变化

从 OVN 的架构可以看出,OVN 里面数据的读写都是通过 OVSDB来做的,取代了 Neutron 的消息队列机制,所以有了 OVN 之后,Neutron 里面所有的 agent 都不需要了,Neutron 变成了一个 API server 来处理用户的 REST 请求,其他的功能都交给 OVN 来做,只需要在 Neutron 里面加一个 plugin 来调用配置 OVN。

Neutron 里面的子项目 networking-ovn 就是实现 OVN 的 plugin。Plugin 使用 OVSDB 协议来把用户的配置写在 Northbound DB 里,ovn-northd 监听到 Northbound DB 配置发生改变,然后把配置翻译到 Southbound DB 里面。 ovn-controller 监控到 Southbound DB 数据的发生变化之后,进而更新本地的流表。

OVN 里面报文的处理都是通过 OVS OpenFlow 流表来实现的,而在 Neutron 里面二层报文处理是通过 OVS OpenFlow 流表来实现,三层报文处理是通过 Linux TCP/IP 协议栈来实现。

OVN实验:

https://blog.csdn.net/zhengmx100/article/details/71698641


OVN部署框架

OVN对于网络功能的实现,秉承的是分布式思想。因此网络功能都分布在计算节点,并且没有一个专门的网络节点。但是OVN需要独立的Database node。这是因为OVN目前采用ovsdb-server作为其DB,一方面,这对于OVN的部署很方便,因为OVN本身就基于OVS,采用ovsdb-server可以避免新增依赖。但是另一方面,ovsdb-server之前的主要应用场景是给OVS存储hypervisor本地的虚拟网络设备信息,而OVN是一个集群内运行的软件,ovsdb-server明显不能胜任这种大规模的数据读写。同时,前面说过ovn-northd是一个集中式进程,因此用一个独立的Database node来运行ovn-northd并存储Northbound DB和Southbound DB,可以一定程度的缓解瓶颈问题。

OVN与OpenStack集成之后的运行框架如下图所示 :





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OVN总结 的相关文章

  • Testing ovn manually based on LXD (by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 05 27 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 准备两个LXD容器 lxc list 43 43 43 43
  • set up ovn development env (by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 07 08 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 编译ovs并启动ovs vswitchd https docs
  • ovn metadata (by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 08 25 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 问题 客户描述虚机的metadata功能偶尔有问题 xff0c
  • OVN简介

    作者简介 xff1a 郑敏先 xff0c 就职于诺云系统 xff08 上海 xff09 有限公司 工作地点为南京的诺云研发中心 担任解决方案工程师 本人博客为 xff1a http blog csdn net zhengmx100 一 为什
  • devstack安装OpenStack Pike版本 (OVN+VLAN)

    控制节点配置文件 Sample DevStack local conf This sample file is intended to be used for your typical DevStack environment that 3
  • OVN 架构分析

    架构分析Base flow L2 L3 forwardingOVN L2 gateway OVN 是 Open vSwitch 社区在 2015 年 1 月份才宣布的一个子项目 xff0c OVN 使用 Open vSwitch功能提供一个
  • openstack和ovn架构

  • ovn-architecture

    参考 文章目录 1 Name2 Description2 1 Information Flow in OVN OVN中的信息流向 2 2 Chassis Setup2 3 Logical Networks2 4 Life Cycle of
  • OVN入门

    参考链接 如何借助 OVN 来提高 OVS 在云计算环境中的性能 OVN简介 Open vSwitch Documentation OVSDB介绍及在OpenDaylight中的调用 OpenDaylight即将迈入 七年之痒 xff1f
  • openstack/ovn环境,虚拟机连接外网设置

    当使用OVN来做为neutron的后端 xff0c 来实现SDN方案时 xff0c 我们也会需要虚拟机连接外网 xff0c 本文记录操作方法 xff1a 环境 xff1a pike版本 xff0c 创建好net1 xff0c 子网subne
  • ovn 架构介绍

    ovn是什么就不多说了 xff0c 网上有很多介绍的文章 这里主要是学习下ovn的架构 xff0c 并通过实践认识一下ovn ovn代码最初是在ovs源码下 xff0c 但是从版本v2 13 0开始 xff0c ovn被移除ovs xff0
  • ovn 配置逻辑路由器实现三层转发

    本文使用ovn搭建一个三层转发的环境 xff0c 拓扑图如下 image png 两个虚拟交换机ls1和ls2 xff0c 端口ip网段分别为 10 10 10 0 24和 10 10 20 0 24 虚拟交换机上分别连接两个vm 使用na
  • ovn 通过网关虚拟路由器连接外部网络

    本文实验如何通过ovn的网关逻辑路由器将ovn网络连接到外部网络 前面讲过ovn的逻辑路由器是分布式的 xff0c 这意味着它没有绑定到某个节点上 xff0c 而是存在于所有节点上的 xff0c 同时它是通过每个节点的openflow流表来
  • ovn-northd 源码分析

    ovn northd是ovn中的核心后台进程 xff0c 主要负责将ovn的高层配置转换成供ovn controller后台进程使用的逻辑配置 xff0c 更详细的说就是它将ovn northbound数据库中传统意义上的逻辑网络配置转换成
  • OpenvSwitch 的 Open Virtual Network(OVN)项目

    几天前 xff08 1 月 13 日 xff09 xff0c OpenvSwitch 团队正式宣布了 OVN xff08 Open Virtual Network xff09 项目 xff0c 参考 Open Virtual Network
  • 【kubernetes/k8s概念】OVN NorthBound DB 及 ovn-nbctl 命令

    OVN 北向数据库 xff08 OVN Northbound DB xff09 是 OVN 和 CMS 之间的接口 xff0c Northbound DB 的数据几乎都是由 CMS 产生的 xff0c ovn northd 监听这个数据库的
  • 【kubernetes/k8s概念】OVN SouthBound DB 及 ovn-sbctl 命令

    OVN 南向数据库 xff08 OVN Southbound DB xff09 xff0c 南向数据库是系统的中心 xff0c 客户端是上层的 ovn northd 和下层运行在每一个传输节点的 ovn controller 南向数据库包括
  • OVN 简介

    文章目录 OVN 介绍OVN的架构OVN 应用OVN 信息流配置数据状态信息 Chassis 设置逻辑网络 OVN 介绍 Open vSwitch xff08 OVS xff09 是一款开源的 虚拟交换机 xff0c 控制协议方面它不但支持
  • OVN 安装,使用,流表分析

    文章目录 OVN 安装环境准备安装 OVN 安装 环境准备 两台 ubuntu 18 04 管理网络 172 18 22 0 24 172 18 22 197 192 168 22 198 安装 apt get update apt get
  • OVN实验----L3互通

    概述 在L2互通基础上 xff0c 完成跨网段互访 物理拓扑 如上一个实验OVN实验 L2互通 逻辑拓扑 按照上个实验OVN实验 L2互通 的操作方式 xff0c 再配置一组容器blue xff0c 网段192 168 2 0 24 配置完

随机推荐

  • Linux下配置使用VNC

    1 在Linux下配置使用VNC 1 1 VNC简介 VNC xff08 Virtual Network Computing xff0c 虚拟网络计算机 xff09 是一种可以对远程计算机进行远程控制的软件 xff0c 支持linux远程桌
  • 双目测距原理

    双目测距基本原理 xff1a 双目测距实际操作分4个步骤 xff1a 相机标定 双目校正 双目匹配 计算深度信息 相机标定 xff1a 摄像头由于光学透镜的特性使得成像存在着径向畸变 xff0c 可由三个参数k1 k2 k3确定 xff1b
  • openstack虚拟机无法启动的一次排错经历

    如上图所示 xff0c 虚拟机卡在这个界面并且无法启动 一般的虚拟机排错方式 xff1a 1 查找虚拟机宿主机的以下日志排查是否有报错的关键字 span class hljs built in var span span class hlj
  • 给自己时间沉淀下来

    像很多学长学姐当初一样 xff0c 我也到了繁忙的大四 这个尴尬的时间 xff0c 要选择 xff0c 要放弃 开始实习 xff0c 去窥探一下外面的世界 经过一个月的测试工作 xff0c 开始发现自己与别人的差距还是很大 再继续试水 xf
  • ROS学习(22)TF变换

    文章目录 前言一 TF功能包二 TF工具1 tf monitor2 tf echo3 static transform publisher4 view frames 三 乌龟例程中的TF四 乌龟跟随例程代码实现1 创建TF广播器2 创建TF
  • C# winform 窗体缩放问题处理

    一 问题 xff1a 本身窗体在设计器显示没有问题 xff0c 但运行时窗口却被缩放失真 xff1a 二 解决方法 xff1a 修改项目的配置文件 xff0c 使项目运行时自动检测屏幕分辨率 xff0c 在高分辨率屏幕禁用系统缩放 xff0
  • strlen与sizeof计算char* 与char数组

    sizeof 可以计算所有类型 xff0c strlen 仅计算字符串 xff0c 至于这二者的详细区别可以看其他文章 char a char b 5 sizeof a 61 8 64位系统 xff0c 8代表的是指针的大小 xff0c 指
  • MySQL的not null default

    建表语句每行末尾的NOT NULL DEFAUTL 含义 该句的含义是 xff0c 该字段不能为null xff0c 并且设置如果插入数据的时候不设置该字段的值的时候使用的默认值 insert操作且不给该字段插值的时候 xff0c 数据库判
  • eclipse 中 中文字符变小的解决方法

    前言 xff1a 装了新版的eclipse后发现 英文代码部分正常 xff0c 但是但凡有中文的地方中文字符变小了 xff0c 若调整字体大小 xff0c 英文就更大了 xff0c 总归中英文大小不一致 推荐解决方法 xff1a 打开 ec
  • LINUX/AIX下文本DOS格式与UNIX格式互转

    LINUX AIX下文本DOS格式与UNIX格式互转 一 文本换行符简介 n 换行 newline LF LineFeed 0x0D r 回车 return CR CarrageReturn 0x0A windows dos r n uni
  • STM32F103用hal库使用DMA+串口空闲中断接收数据

    简介 xff1a 出现空闲标志时 xff0c 认为一帧报文发送完毕 xff0c 进行报文分析 xff0c 比普通的串口中断效率高很多 xff01 用到的工具 xff1a CubeMX xff0c Keil5 芯片 xff1a STM32F1
  • AIX页面空间管理

    一 页面空间相关概念及设计规则 系统中的物理内存是非常有限的 xff0c 因此大多数OS都采用了虚拟内存技术 在AIX系统中也使用分页的存储方式管理存储器 xff0c 并将虚拟内存称为页面空间 Paging space 页面空间 xff1a
  • C/C++中的double类型四舍五入

    一 前言 最近 xff0c 项目中需要对金额进行四舍五入运算 本身系统中全部使用长整型 long or long long xff0c 数据库中使用decimal xff0c 从而防止double类型的精度缺失情况以及数据库中小数点后几位的
  • CAS实现SSO单点登录-CAS Server搭建

    最近公司连续接了三四个单点登录集成的项目 xff0c 由我们公司提供CAS Server端的 xff0c 也有需要我们把Client与其他公司提供的Server端对接的 xff0c 我负责把我们公司的一个Client与另外一个公司提供的Se
  • 从高考到程序员:我的程序探险之旅

    就在今天下午 xff0c 湖南省教育考试院公布了 2017 年湖南省普通高等学校招生全国统一考试的卷面成绩 xff0c 我的微信也瞬间被各种分段统计表和喜报刷屏 xff0c 每年的这个时候总是几家欢喜几家愁 六年前的 6 月 25 日 xf
  • MatconvNet+VS2015+Matlab2018a+CUDA9+cudnn7:在matlab上搞深度学习,安装环境时遇到的大坑!

    事情发生的背景 作为刚入职的深度学习实习生 xff0c 入职第一天 xff0c 我领完电脑 xff0c 刚装完电脑 xff0c 分配好公司的ip xff0c 连chrome都还没来得及安装 xff0c 就接到任务 xff0c 需要实现给定的
  • CAS学习(一) 编译支持REST认证的cas6.2服务端并配置部署测试

    CAS 是 Yale 大学发起的一个开源项目 xff0c 旨在为 Web 应用系统提供一种可靠的单点登录方法 xff0c CAS 在 2004 年 12 月正式成为 JA SIG 的一个项目 CAS 具有以下特点 xff1a 1 开源的企业
  • QEMU

    QEMU 1 使用QEMU创建虚拟机 一 QEMU简介 QEMU是一款开源的模拟器及虚拟机监管器 Virtual Machine Monitor VMM QEMU主要提供两种功能给用户使用 一是作为用户态模拟器 xff0c 利用动态代码翻译
  • 使用virt-install手动创建qcow2镜像并安装ISO

    virt install是一个使用libvirt库构建新虚拟机的命令行工具 xff0c 此工具使用串行控制台 xff0c SDL xff08 Simple DirectMedia Layer xff09 图形或者VNC客户端 服务器 xff
  • OVN总结

    参考 xff1a https www sdnlab com 18600 html 三 OVN L3 对比 Neutron L3 Neutron 的三层功能主要有路由 xff0c SNAT 和 Floating IP xff08 也叫 DNA