Opencontrail Neutron 插件¶
https://blueprints.launchpad.net/neutron/+spec/juniper-plugin-with-extensions
此蓝图用于 Opencontrail-neutron-plugin,以便为基于 Opencontrail 的网络虚拟化添加 Neutron 的支持。支持的核心资源和扩展包括:
网络
Subnet
端口
安全组
L3 扩展
我们还将支持 Extraroute 扩展
问题描述¶
Opencontrail 是一种开源网络虚拟化解决方案。它使用基于标准的 BGP L3VPN 封闭用户组来实现虚拟网络。链接 http://opencontrail.org/opencontrail-architecture-documentation/ 解释了 Opencontrail 插件的架构
Neutron 插件代码将与 Opencontrail Rest-API 交互,以提供网络虚拟化功能。
提议的变更¶
Opencontrail Neutron 插件将实现 Neutron 核心和扩展 API。它将接收 API 请求并将其传递给 Opencontrail 控制器进行处理。Neutron 常用代码不会发生更改。将添加新文件以实现 opencontrail-plugin。
备选方案¶
当前支持传统的 Neutron 插件接口。未来我们将考虑使用 ML2 接口。
数据模型影响¶
无。
REST API 影响¶
无。Neutron 没有添加新的 API。对于上述列出的 API,插件将支持所有功能。
安全影响¶
与后端的通信通道不安全。我们将在未来支持安全通道。
通知影响¶
无。
其他最终用户影响¶
用户现在可以将 Opencontrail 配置为上游提供的可用插件之一。
性能影响¶
无。
其他部署者影响¶
用户现在可以将 Opencontrail 配置为上游提供的可用插件之一。以下链接解释了使用 devstack 设置 Opencontrail 的方法。 http://pedrormarques.wordpress.com/2013/11/14/using-devstack-plus-opencontrail/
开发人员影响¶
无。其他开发人员不会受到此更改的影响。将提供 Tempest 第三方环境。
实现¶
Opencontrail 插件不使用 Neutron 持久层,因此避免了数据库不同步时出现的问题。Opencontrail 插件使用附加对象和属性,这些对象和属性由 Neutron API 定义,这些数据存储在 Opencontrail 控制器中,该控制器执行持久性。由于是无状态的,Neutron 服务不必处理其持久层与实现持久层不同步的问题。
已创建新的插件“opencontrail”。已添加一个新文件“contrail_plugin.py”以实现核心扩展 RESTApi。
将添加配置文件 contrailplugin.ini 以配置 Opencontrail 插件。该文件将包含以下参数:
- 1 api_server_ip
Opencontrail 控制器的 IP 地址
- 2 api_server_port
Opencontrail 控制器的 IP 端口
- 3 multi-tenancy
多租户支持
- 4 max_retries
连接到 Opencontrail 控制器的最大尝试次数
- 5 retry_interval
连接到 Opencontrail 控制器的重试间隔
示例:[API_SERVER] api_server_ip = 10.10.10.10 api_server_port = 8082 multi_tenancy = False
添加了类“NeutronPluginContrailCoreV2”以实现核心 RESTApi。它将实现以下扩展及其 RESTApi
- 网络
create_network
update_network
delete_network
get_network
get_networks
get_networks_count
- Subnet
create_subnet
update_subnet
delete_subnet
get_subnet
get_subnets
get_subnets_count
- 端口
create_port
update_port
delete_port
get_port
get_ports
get_ports_count
- Router
create_router
update_router
delete_router
get_router
get_routers
get_routers_count
- Floatingip
create_floatingip
update_floatingip
delete_floatingip
get_floatingip
get_floatingips
get_floatingips_count
- SecurityGroup
create_security_group
update_security_group
delete_security_group
get_security_group
get_security_groups
get_security_groups_count
负责人¶
- 主要负责人
praneetb
- 其他贡献者
hajay
工作项¶
Opencontrail 插件实现
Opencontrail 模拟,用于单元测试
依赖项¶
无。
测试¶
将使用现有的和新的(在 Juno 中添加的)Neutron 单元测试。将使用现有的和新的 Tempest 测试用于 Neutron。将提供 Tempest CI 环境。
文档影响¶
一旦接受了 opencontrail neutron 插件,Neutron 文档可以更改为将 opencontrail 插件作为支持的插件之一。
以下链接解释了使用 devstack 设置 Opencontrail 的方法。 http://pedrormarques.wordpress.com/2013/11/14/using-devstack-plus-opencontrail/
参考资料¶
http://www.opencontrail.org https://github.com/Juniper/contrail-controller