OpenStack Neutron 对接OVN 使用 networking-ovn

2023-05-16

OVN是OVS的控制平面,它给 OVS 增加了对虚拟网络的原生支持,大大提高了 OVS 在实际应用环境中的性能和规模。

使用neutron 配置mechanism_drivers  为OVN时,会有以下优点:

一.OVN使得Neutron组件数量减少

  • OVN原生ML2 driver替换掉 OVS ML2 driver 和 Neutron的OVS agent;
  • OVN原生支持L3和DHCP功能,这样就不再需要Neutron 的L3 agent、 DHCP agent 和DVR。
  • 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是OpenvSwitch项目组为OpenvSwitch开发SDN控制器,同其他SDN产品相比,OVN对OpenvSwitch 及OpenStack有更好的兼容性和性能。

三.不再使用 RabbitMQ,而是基于OVN数据库进行通信

四.OVN 可以和很多 CMS(Cloud Management System)集成到一起

 

部署networking-ovn 参考:https://docs.openstack.org/networking-ovn/latest/install/manual.html

简单说一下部署步骤:

一.安装openstack-neutron    openstack-neutron-ml2    python-networking-ovn

二.配置neutron(https://docs.openstack.org/neutron/rocky/install/controller-install-rdo.html#prerequisites)

按常规去安装neutron,在/etc/neutron/neutron.conf中配置

core_plugin = ml2

service_plugins = networking_ovn.l3.l3_ovn.OVNL3RouterPlugin

配置ml2_conf.ini

mechanism_drivers = ovn

[ovn]

ovn_nb_connection = tcp:10.10.3.38:6641

ovn_sb_connection = tcp:10.10.3.38:6642

ovn_l3_scheduler = leastloaded

ovsdb_connection = unix:/var/run/openvswitch/db.sock

三.配置ovs

ovs-vsctl set open . external-ids:ovn-remote=tcp:IP_ADDRESS:6642

ovs-vsctl set open . external-ids:ovn-encap-type=geneve,vxlan

ovs-vsctl set open . external-ids:ovn-encap-ip=IP_ADDRESS

 

# 将ovn访问方式 改成 tcp

# ovn-nbctl set-connection ptcp:6641:0.0.0.0 -- \

            set connection . inactivity_probe=60000

# ovn-sbctl set-connection ptcp:6642:0.0.0.0 -- \

            set connection . inactivity_probe=60000

1.创建外部连接的网桥,做OVN映射

ovs-vsctl add-br  br-ex

ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=provider1:br-ex

注:这里的provider1 对应neurton  ml2.conf 里网络的设置

2.将宿主机上的外部网卡添加到网桥上

ovs-vsctl add-port br-ex  eth1(物理网卡)

ip link set br-ex  up

systemctl restart network

 

 

功能验证:

1.创建网络,创建子网, 创建port

使用neutron创建的网络在ovn上以switch形式存在

 

neutron创建出的port在对应OVN网络的switch上以port形式存在,在OVS上以port形式存在

2.DHCP

创建出来的子网根据创建参数是否开启DHCP,对于OVN自己的DHCP功能

3.路由

通过neutron创建出来的router在OVN上以router的形式存在

neutron添加路由的内部接口,即把子网网关接入路由。会在router上新建一个port  lrp-XXX。

neutron设置路由外部网关,即添加一条nat规则 ,类型为snat从而实现子网通过外部网关访问。

4.浮动IP

neutron创建浮动ip并绑定给port在OVN上对应创建了一条nat规则,类型为dnat_and_snat

 

5.虚拟防火墙

使用OVN后暂不支持fwaas 。如果需要实现此功能可以使用OVN自带的ACL来设置switch之间的访问控制

acl-add {SWITCH | PORTGROUP} DIRECTION PRIORITY MATCH ACTION

6.负载均衡

使用OVN后暂不支持lbaas。可以使用OVN自带的LB设置

lb-add LB VIP[:PORT] IP[:PORT]... [PROTOCOL]

 

 

 

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

OpenStack Neutron 对接OVN 使用 networking-ovn 的相关文章

  • 是否可以通过 TCP 连接到正在侦听 3G 网络端口的 iPhone?

    我正在开发一个严重依赖 P2P 的应用程序 但我目前没有任何 SIM 卡可供实验 因此我正在 wifi 网络上进行测试 我想知道 3G 网络上的 iPhone 是否可以连接以及是否需要穿越 NAT 设备 您位于提供商的路由器后面 您的 IP
  • 如何从 Java 系统设置中获取代理设置

    我正在寻找如何在 Windows 下使用 Java 获取系统代理信息的方法 但我只找到了一种方法 但这对我不起作用 public static void main String args throws Throwable System se
  • AWS lambda函数使用什么ip?

    我不太擅长网络 但这是我的问题 我需要从位于防火墙后面的AWS lambda函数连接到MySQL服务器 并且要 白色 我的AWS lambda 我需要知道它使用什么IP 据我了解 它因 VPC 子网而异 如果我的 VPC 子网 CIDR 是
  • 如何从连接到同一网络的另一台计算机打开 create-react-app?

    我在用创建反应应用程序并托管在其默认端口本地主机 3000并希望从同一网络上的另一台设备访问它 我得到了我的主机IP的IP 使用ifconfig 192 168 0 5并尝试打开192 168 0 5 3000但这没有用 有什么办法可以实现
  • 将边权重传递给networkx中的graphviz_layout

    每个人都找不到如何将权重列表的属性名称传递给networkx中的graphviz layout 像这样的事情 nx spring layout G weight weight sum 但与nx graphviz layout G 也许有人会
  • NoValidHost:未找到有效主机。没有足够的可用主机

    当我在仪表板中创建实例时 出现错误 未找到有效的主机 没有足够的可用主机 In the var log nova nova conductor log文件 有日志 2017 08 05 00 22 29 046 3834 WARNING n
  • 从redis中检索大数据集

    一台服务器上的应用程序查询另一台服务器上运行的 Redis 查询的结果数据集约为 250kzrangebyscore objects locations inf inf这在应用程序服务器上似乎需要 40 秒 当使用命令执行时redis cl
  • Android 中客户端服务器通信的选项

    我目前正处于论文项目的研究阶段 我的项目是一个针对移动设备的订票系统 我选择以 Android 为目标 我预计需要带有中央服务器的客户端 服务器架构 因此目前正在研究 Android 如何与这样的服务器进行通信 服务器将授予客户端访问票务信
  • 是否可以通过 MX 查找获取端口?

    我正在了解什么是的旅程从 Python 代码发送电子邮件的正确方法 https stackoverflow com questions 50695188 what is the proper way to actually send mai
  • 理解 htonl() 和 ntohl()

    我正在尝试使用 unix 套接字来测试向本地主机发送一些 udp 数据包 据我了解 当设置 ip 地址和端口以发送数据包时 我会填写我的sockaddr in将值转换为网络字节顺序 我在 OSX 上 我很惊讶这个 printf ntohl
  • 如何使用 cloud-init 安装 docker?

    我想在 Openstack 中创建实例 在通过 ssh 连接之前 这些实例中已经安装了 Docker 所以我很自然地对 Cloud init 技术感兴趣 因为它允许我们在第一次启动时在虚拟机上安装软件包 所以现在我尝试在启动时在我的实例上安
  • http客户端在Windows 8.1中取消请求

    我正在开发一个 Windows Phone 8 1 项目 Windows 8 1 中有两个版本的 http 客户端 system net http and windows web http Microsoft 建议使用后者 所以 我决定接受
  • IE 下的 Http 请求速度变慢

    在我的 javascript 应用程序中工作时 我注意到使用 IE 11 时 相同的 ajax 请求时间最多延长 10 倍 响应大小完全相同 12 6KB 我看到的唯一区别是 IE 添加 Pragma no cache 不是铬 Chrome
  • 发送 WCF 消息在负载下延迟

    当从自托管 WCF 服务向许多客户端 大约 10 个左右 发送消息时 有时消息的延迟时间比我预期的要长得多 发送到本地网络上的客户端需要几秒钟 有谁知道为什么会这样以及如何解决它 一些背景 该应用程序是股票行情式服务 它从第三方服务器接收消
  • 如何以编程方式证明“六度分离”概念?

    我有一个包含 2000 万用户以及这些人之间的联系的数据库 如何证明 六度分离 的概念以最有效的方式在编程中 链接到有关六度分离的文章 http en wikipedia org wiki Six degrees of separation
  • 基于邻近度的负载均衡

    我正在开展一个项目 我们在世界各地拥有大量 目前为 5 台 服务器 客户端通过集中式代理连接到其中一台服务器 我们知道客户的原籍国 但除此之外一无所知 我们完全控制服务器 因此我们可以获得所需的所有信息 我们不控制客户 他们必须按照标准通过
  • 设备锁定时,互联网音乐播放器无法加载歌曲(打瞌睡模式?)

    我正在构建一个音乐播放器 可以播放互联网上的歌曲 我注意到 通常 当一首歌曲结束并且必须加载另一首歌曲时 应用程序不会播放下一首歌曲 我等啊等 终于决定解锁手机以了解发生了什么 令人惊讶的是 设备解锁后立即开始播放以下歌曲 第一次我以为这只
  • 视频流上的 TCP 与 UDP

    我刚从网络编程考试回来 他们问我们的问题之一是 如果您要传输视频 您会使用 TCP 还是 UDP 请解释一下存储视频和实时视频流 对于这个问题 他们只是希望得到一个简短的答案 TCP 用于存储视频 UDP 用于实时视频 但我在回家的路上想到
  • Docker DNS 设置

    我尝试使用自定义网络和 dos 设置创建 docker 容器 docker网络创建 driver bridge opt com docker network bridge enable ip masquerade true opt com
  • 如何使用 Kryonet 通过网络发送对象?

    我是网络新手 我正在尝试将我使用 java 创建的棋盘游戏联网 我的一个朋友向我推荐了 Kryonet 库 到目前为止 一切都很棒 我不必处理套接字 我遇到的问题是发送对象 主要是 我有一个 Board 类型的对象 该对象包含其他对象 例如

随机推荐

  • 数据结构(考研&面试)

    数据结构和算法 xff08 持续更新 xff09 参考清华大学严蔚敏数据结构与算法 适用于考研 amp 求职 数据结构与算法JAVA落地版 Java 数据结构与算法 xff08 代码实现 下载链接 xff09 本教程全部采用C语言实现 1
  • Sphinx入门

    文章目录 Sphinx画流程图和时序图 最近在使用sphinx的时候遇到了一点问题 xff0c 首先是不支持中文检索 xff0c 为此进行了一些配置 xff0c 参考链接 首先安装jieba库 xff0c python3的安装命令是 xff
  • Linux系统信息查看命令大全

    系统 QUOTE uname a 查看内核 操作系统 CPU信息 head n 1 etc issue 查看操作系统版本 cat proc cpuinfo 查看CPU信息 hostname 查看计算机名 lspci tv 列出所有PCI设备
  • linux系统触摸板用不了(解决)

    安装好linux系统可能出现用不了触摸板的情况 xff0c 只可以单击 xff0c 不可以滑动 解决方式一 sudo modprobe psmouse sudo modprobe r psmouse 解决方式二 sudo modprobe
  • 百度移动软件开发面试题(20131018)

    1 new与malloc的区别 xff1f 分析 xff1a 一 new和malloc都是用于申请动态内存 new使用delete释放空间 xff0c malloc使用free释放 new和delete是C 43 43 中的运算符 xff0
  • Ubuntu 中apt update和upgrade 的区别

    转自https blog csdn net csdn duomaomao article details 77802673 简要说明 xff1a apt update xff1a 只检查 xff0c 不更新 xff08 已安装的软件包是否有
  • ubuntu下域名解析出问题的解决办法

    内网服务器配置了固定ip xff0c 未配置dns xff0c 临时需要接入外网时 xff0c 域名解析失败 xff0c 需要临时添加域名解析 操作如下 xff1a sudo vim etc resolv conf 然后底下插入你的好用的d
  • Git clone wiringPi出现Connection reset by peer的解决办法

    Git clone wiringPi出现Connection reset by peer的解决办法 小伙伴们按照正常的方法来安装强大的GPIO库wiringPi一般为如下几步 xff1a git span class hljs keywor
  • Linux内存占用过高?非也

    前言 今天在我的RPi2上测试GPIO程序 xff0c 忽然发现机器超卡 xff0c 重启之后依然如此 于是我top了一下发现了一个问题就是内存爆满 xff01 xff01 可我还啥都没干呢这是咋了 xff1f 于是我呵呵地开始查资料 xf
  • MPC控制笔记(一)

    转自 我的博客 笔记参考1 xff1a Understanding Model Predictive Control Youtube 带自动生成字幕 笔记参考2 xff1a Understanding Model Predictive Co
  • [强化学习笔记专题(二)]Nature DQN

    转自 我的博客 DQN Nature 一 算法流程 xff1a 定义可配置参数 episode 数量 M最大仿真时间 T xff0c g r
  • [强化学习论文] (HDQN) Integrating Temporal Abstraction and Intrinsic Motivation

    转自我的博客 论文 题目 Hierarchical Deep Reinforcement Learning Integrating Temporal Abstraction and Intrinsic Motivation 作者 Tejas
  • 强化学习专题笔记(一) 强化学习基础

    一 长期回报 对于问题的简化 xff0c 采用理想的MDP xff0c 简化问题到具有马尔科夫性 xff0c 对于马尔科夫决策过程而言 xff0c 在理想状态下 xff0c 每一个行动都要为最终的目标最大化长期回报 而努力 max t
  • [马士兵] 一. 初识JAVA 10.notepad++的安装_配置系统环境变量path

    1 安装记事本 xff1a notepad 2 安装 xff1a 一直下一步 3 打开记事本进行设置 xff1a 设置 首选项 xff1a 设置 语言格式设置 xff1a 4 打开notepad 43 43 xff08 1 xff09 方式
  • MPC控制笔记(一)

    转自 我的博客 笔记参考1 xff1a Understanding Model Predictive Control Youtube 带自动生成字幕 笔记参考2 xff1a Understanding Model Predictive Co
  • 【简单数学概念】为什么傅里叶变换能把时域变为频域?

    一 定义 频率 xff1a 在1秒时间内 xff0c 完成相同变化的次数 周期 xff1a 完成1次变化所消耗的时间 两者的关系为 xff1a 频率 61 1 周期 时域 xff1a 描述数学函数或物理信号对时间的关系 xff08 横轴是时
  • 一文彻底搞懂嵌入式中UART、RS232、RS485、CAN协议

    一文彻底搞懂嵌入式中UART RS232 RS485 CAN协议 之前分享过一些使用UART RS232 RS485 CAN协议进行传感器数据读取 伺服电机控制的文章 xff0c 但这些协议之间到底有什么不同 xff0c 工作原理又到底是什
  • ROS回调函数传参

    一 回调函数仅含单个参数 C 43 43 代码 void chatterCallback const std msgs String ConstPtr amp msg ROS INFO 34 I heard s 34 msg gt data
  • eclipse更改tomcat部署路径

    eclipse中默认的项目部署路径是在项目的路径 xff0c 不像myeclipse那样部署后项目在Tomcat的安装路径webapps下 这样虽然可以运行 xff0c 但是不方便开发和调试 xff0c 本文将介绍如何改变eclipse中T
  • OpenStack Neutron 对接OVN 使用 networking-ovn

    OVN是OVS的控制平面 xff0c 它给 OVS 增加了对虚拟网络的原生支持 xff0c 大大提高了 OVS 在实际应用环境中的性能和规模 使用neutron 配置mechanism drivers 为OVN时 xff0c 会有以下优点