OpenStack与SDN控制器的集成

本文介绍了OpenStack Neutron的功能及其组件,强调了SDN在弥补Neutron缺陷中的作用。详细阐述了SDN控制器与Neutron结合的原理,包括Neutron Server、Plugins和Plugin Agents的角色。此外,重点解析了ml2驱动脚本在实现OpenStack计算节点和网络节点与SDN控制器对接中的配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenStack与SDN控制器的集成

1.OpenStack Neutron简介

Neutron添加了一层虚拟的网络服务让租户(用户)构建自己的虚拟网络。Neutron是对网络的虚拟化,该网络可以从一个地方移动到另一个地方,而不会影响现有的连接。它可以进一步解释为一个网络管理服务,为创建和管理虚拟网络公开了一组可扩展的API(通过创建虚拟网络为OpenStack Compute节点上的虚拟机提供网络服务)。Neutron的插件架构为开源社区或第三方服务提供API。Neutron还允许供应商研究和添加新的插件,提供先进的网络功能。
目前,Neutron的虚拟网络服务没有传统网络成熟。下图描述了与Neutron组件交互的代理。组成Neutron的元素如下:
Neutron-server是python虚拟光驱, 是OpenStack网络运行在Network节点的主过程。
Plugin agents和Neutron插件一起管理虚拟交换机,Plugin agents依赖Neutron插件。
DHCP agent是Neutron的一部分,为租户的网络提供DHCP服务。
L3 agent负责层3和NAT转发来获得租户虚拟机的外部访问。

SDN对于neutron的意义在哪里?
引入SDN主要是克服Neutron的缺陷,SDN是一种网络技术,通过集中的可编程控制平面来管理整个数据平面。这样网络运营商和供应商可以控制和管理自己的虚拟化资源和网络。SDN是一种新型的网络模式,允许硬件和操作系统之间以及物理/虚拟网元和操作系统之间通过开放API通信。

2.SDN控制器跟neutron结合原理


(1)Neutron Server的介绍
A python daemon is the main process of the OpenStack networking that typically runs on the controller node (a term used in OpenStack deployments). It exposes APIs, to enforce the network model, and passes the requests to the neutron plugin.
意思就是暴露API,使得请求能够被传到plugin中。

(2)Plugins的介绍
Plugins can be either core or service. Core plugins implement the “core” Neutron API — L2 networking and IP address management. Service plugins provide “additional” services, such as the L3 router, load balancing, VPN, firewall and metering. These network services can also be provided by the core plugins by realizing the relevant API extensions. In short, plugins run on the controller node and implement the networking APIs, which interact with the Neutron server, database and agents.
Plugin分为core和additional,用来处理neutron server传过来的请求。
下图是更为详细的neutron server如何传送给plugin消息的:

(3)Plugin Agents介绍
These agents are specific to the Neutron plugin being used. They run on compute nodes and communicate with the Neutron plugin to manage virtual switches. These agents are optional in many deployments and perform local virtual switch configurations on each hypervisor.
Agent跑在compute节点之上,与neutron的plugin进行通信

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

整个过程可以分为下面几个步骤:
1.用户通过OpenStack的界面(horizon)输入消息给networking API,再发送给Neutron server
2.Neutron server接受信息发送给plugin
3.Neutron server/plugin 更新DB
4.Plugin通过REST API发送消息给SDN控制器
5.SDN控制器接受消息然后通过南向的plugins/protocols, 如OpenFlow, OVSDB or OF-Config.

3.ml2驱动脚本实现

下面是ml2驱动脚本“mechanism_gnflush.py”用于设置计算节点和网络节点与数据中心SDN控制器对接的配置。主要是将openstack的信息传递给SDN控制器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值