Openstack Neutron 集成 SDN控制器

2023-05-16

Neutron 集成SDN控制器

 

一.Neutron的组成元素

 

Neutron-server可以理解为一个专门用来接收Neutron REST API调用的服务器,然后负责将不同的REST API分发到不同的neutron-plugin上。

 

Neutron-plugin可以理解为不同网络功能实现的入口,各个厂商可以开发自己的plugin。Neutron-plugin接收neutron-server分发过来的REST API,向neutron database完成一些信息的注册,然后将具体要执行的业务操作和参数通知给自身对应的neutron agent。

 

Neutron-agent可以直观地理解为neutron-plugin在设备上的代理,接收相应的neutron-plugin通知的业务操作和参数,并转换为具体的设备级操作,以指导设备的动作。当设备本地发生问题时,neutron-agent会将情况通知给neutron-plugin。

 

Neutron database  就是Neutron的数据库,一些业务相关的参数都存在这里

 

Network provider  即为实际执行功能的网络设备,一般为虚拟交换机(OVS或者Linux Bridge)。

 

 

二.Neutron-plugin说明
Plugin, agents和neutron-server一起管理虚拟交换机,Plugin, agents依赖Neutron。Plugin分为core和additional,用来处理neutronserver传过来的请求

Agent跑在compute节点之上,与neutron的plugin进行通信

 

ML2 的plugin都是属于core。分为type和mechanism两种。Type drivers (如flat, VLAN, GRE 和VXLAN) 定义 L2 type。mechanism drivers (如OVS, ODL, Cisco, NEC, etc) 负责一系列动作(更新、创建、删除)网络、子网、端口。

 

 

Neutron可以通过ML2插件和ODL北向接口融合,ODL通过OVSDB南向插件管理OpenStack计算节点中的网络流。

 

. OpenDaylight(ODL)介绍

OpenDaylight是一套以社区为主导的开源SDN框架,旨在推动创新实施以SDN透明化。面对SDN型 网络,需要合适的工具管理基础设施,这正是OpenDaylight的专长。

OpenDaylight Controller作为项目核心,拥有一套模块化、可插拔且极为灵活的控制器,这使其能够被部署在任何支持Java的平台之上。这款控制器中还包含一套模块合集,能够执行需要快速完成的网络任务。

OpenDaylight Controller提供了一个模块化的开放SDN控制器,它提供了开放的北向 API(开放给应用的接口),同时南向支持多种包括openflow在内的多种SDN协议。底层支持混合模式的交换机和经典的Openflow交换机

 

ODL安装:

http://www.sdnlab.com/17984.html

 

在neutron旧版本里

opendaylight作为ml2drivers 存在于neutron项目中,在neutron较新的版本中一些sdn plugin,已开始从目中移除,一命名为诸networking-xxxx的独立目。

 

.OpenStack和OpenDaylight(ODL)的集成

Neutron包含ML2机制驱动,该机制驱动(ODL)作为REST代理能够调用所有的NeutronAPI。ODL包含北向REST服务(Neutron API服务),能够调用这些代理API缓存数据并可用于ODL的其他服务,这些RESTful API可以完成OpenStack和ODL的绑定。OpenDaylight与Openstack集成主要依赖ML2 plugin.

 

 

ODL和OpenStack集成步骤如下:

1、在虚拟机或者物理机上构建和安装合适的ODL版本。

2、正确配置并启动ODL

3、部署OpenStack

4、配置OpenStack,为ODL和Openstack的集成做准备:

* 确保核心插件在ML2

配置/etc/neutron/neutron.conf


[DEFAULT]  

core_plugin=neutron.plugins.ml2.plugin.Ml2Plugin  

* 获取networking-odl


               sudo pip install networking-odl  

 * 将ODL作为”mechanism_drivers”添加到ML2上

            配置/etc/neutron/plugins/ml2/ml2_conf.ini

            修改mechanism_drivers = openvswitch为     

            mechanism_drivers= opendaylight

 

 * 配置ml2_conf.ini文件的[ml2_odl]区域:


[ml2_odl]  

username=<ODL_USERNAME>  

password=<ODL_PASSWORD>  

url=http://<ODL_IP_ADDRESS>:<ODL_PORT>/controller/nb/v2/neutron  

port_binding_controller=pseudo-agentdb-binding  

 * 重置Neutron’s database


mysql -e "DROP DATABASE IF EXISTS neutron;"  

mysql -e "CREATE DATABASE neutron CHARACTER SET utf8;"  

/usr/local/bin/neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head  

 

* 重启 neutron-server:


systemctl start neutron-server  

 

5、配置ovs虚拟交换机使用ODL


# ovs-vsctl set-manager tcp:${ODL_IP_ADDRESS}:6640  

6、设置节点OVS configurations


# sudo neutron-odl-ovs-hostconfig  

7、检测OVS服务是否正常


# ovs-vsctl show  

 

8、在OpenStack构建虚拟网络

9、验证ODL界面生成的网络拓扑是否与想要的一致

 

参考文档:https://docs.openstack.org/developer/networking-odl/installation.html

 

.OpenStack和OVN的集成

OVNOpenvSwitch项目组为OpenvSwitchSDN控制器,同其他SDN产品相比,OVNOpenvSwitch OpenStack有更好的兼容性和性能。

 

OVS OVN 是非常简单快捷的。原有的网、路由等数据不会失,也不需要对这些数据出来行数据迁移,只需要添加一个 plugin 来配置 OVN 即可

 

 

OVN的优点如下:

1.    OVN使得Neutron组件数量减

OVNML2 driver OVS ML2 driver NeutronOVS agentOVN原生支持L3DHCP功能,这样就不再需要Neutron L3 agent DHCP agent DVR

2. OVN提供了多原生的虚功能,提升了OVS的工作效率和性能

3. OVN 支持原生的三功能,不需要借助 Linux TCP/IP stack,用OpenFlow 流表来实现路由找,ARP 查找,TTL MAC 地址的更改。

4.OVN里面数据的写都是通 OVSDB来做的,取代了 Neutron 的消息列机制,所以有了 OVN 之后,理Neutron 里面所有的 agent 都不需要了,Neutron 变成了一个 API server 理用 REST 请求,其他的功能都交给 OVN 来做,只需要在 Neutron 里面加一个 plugin 用配置 OVN

 

集成文档:https://docs.openstack.org/developer/networking-ovn/install.html

 

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

Openstack Neutron 集成 SDN控制器 的相关文章

随机推荐

  • 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 会有以下优点
  • Openstack Neutron 集成 SDN控制器

    Neutron 集成SDN控制器 一 xff0e Neutron的组成元素 Neutron server 可以理解为一个专门用来接收Neutron REST API 调用的服务器 xff0c 然后负责将不同的REST API分发到不同的ne