1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Openstack Neutron 集成 SDN控制器

Openstack Neutron 集成 SDN控制器

时间:2020-04-23 08:04:48

相关推荐

Openstack Neutron 集成 SDN控制器

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安装:

/17984.html

在neutron旧版本里

opendaylight作为ml2drivers 存在于neutron项目中,在neutron较新的版本中一些sdnplugin,已经开始从项目中移除,统一命名为诸如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界面生成的网络拓扑是否与想要的一致

参考文档:/developer/networking-odl/installation.html

.OpenStack和OVN的集成

OVN是OpenvSwitch项目组为OpenvSwitch开发SDN控制器,同其他SDN产品相比,OVN对OpenvSwitch 及OpenStack有更好的兼容性和性能。

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

OVN的优点如下:

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

OVN自带的ML2 driver替换掉 OVS ML2 driver 和 Neutron的OVS agent;OVN原生支持L3和DHCP功能,这样就不再需要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。

集成文档:/developer/networking-ovn/install.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。