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

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

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hNicholas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值