日前我们已经把SDN和云计算的关系做了梳理,其实联系紧密的也就在SDN Controller和云平台这块。至于为何要对接?对接的意义在哪里?这些问题可以在上篇文章中找到答案,今天我们只讲对接的技术干货。
云平台介绍
云平台,目前主流的开源项目有OpenStack和CloudStack,相比之下,OpenStack门槛高,可实现的效果更好,也是目前被各大厂商商用化最多的开源云平台之一。所以下文主要讲解SDN Controller和OpenStack的对接。
OpenStack:2010年7月出生,按照26个英文字母进行生命周期迭代命名。目前最新发布的是N版本(Newton),商用部署更多的是L版本和M版本。
随着其功能的完善,目前有6个核心服务和10个可选服务。我们主要看看6个核心服务:
1、OpenStack Compute:主要是虚拟机的管理,代码命名为Nova
2、OpenStack Storage:Object存储和Block存储管理,代码命名分别为Swift和Cinder
3、OpenStack Networking:可插拔的,由API驱动的网络和IP管理,代码命名Neutron、
4、共享服务:包含身份认证(命名Keystone),image管理(命名Glance),WEB接口等。
5、OpenStack可以控制数据中心大量的存储,计算和网络资源,并且所有的管理都可以通过Dashboard来统一完成完成。
6大核心服务中,与我们今天主题联系最紧密就是Neutron,其包含了和物理网络对接调用的所有组件,具体可参考下图:
Neutron Server:接收API请求,通过队列调用本地代理进行L3,NAT,DHCP,桥接等的设置,并且将网络服务请求通过核心插件和服务插件中继到相应的插件进行配置。
本地提供了DHCP agent,L3 agent和其他的L2 agent,用于提供公共的基础服务。
通过ML2插件框架实现不同的厂商插件,并且支持相同层次的不同插件共存。
SDN Controller介绍
上篇文章我们提到,SDN网络中最重要的是SDN Controller,全网流量的调度,以及和网络之外的应用进行对接基本都要靠Controller来完成。(当然云平台也可以直接调用网络设备,但是复杂且规模受限,除非实验研究,否则不这么用)。
对于SDN Controller,业界也有很多开源的项目,各有风韵,具体可品尝之前一篇文章《这么多控制,你该如何选择》。今天主要讲ODL(OpenDaylight),他是目前在企业环境下被各大网络厂商商用的主要开源控制器。锐捷网络的开放网络控制器(RG-ONC)也是基于这个平台推出,其主要包含3层,具体架构如下:
基础架构层:主要是传统网络设备、SDN网络设备的基础组网,包含交换、路由、安全、网关等多种物理设备和虚拟设备。
Controller层:主要提供南北向的API接口,南向接口负责和基础网络设备通信、调用,北向接口负责和上层应用通信、调用。同时,控制器会提供Web管理平台,所有SDN网络功能均在这个界面上进行部署、调用,网络功能之间的独立性、易用性、可扩展性是衡量SDN Controller的关键指标。
应用层:主要包含云平台、网管、以及用户自己开发的各种应用。通过SDN Controller提供的北向API接口进行资源调用。所以API接口的开放性、通用型、易用性是衡量SDN Controller的又一个关键指标。
SDN Controller和 OpenStack对接
上面我们已经把对接的范围做了聚焦,云平台是主流的OpenStack平台,SDN Controller是主流的ODL。对于这两个开源项目,在其社区中,已经提供了标准的对接接口。厂商的商用一般不会改变对外的接口,所有深度开发主要局限在接口之内,以此保证不同品牌的云平台和控制器之间的兼容性。具体的对接模型如下:
里面的关键就是Networking-odl插件,云平台和SDN控制器有一方需要提供这个插件,并安装到OpenStack平台上。Networking-odl包含OpenDaylight MechanismDriver和OpenDaylight L3RouterPlugin。
OpenDaylightMechanismDriver:是OpenDaylight的ML2 MechanismDriver,通过类似REST proxy的方式实现了ML2 MechanismDriver功能。它把MechchanismDriver的所有调用转化成Neutron API传递给OpenDaylight,由OpenDaylight的NB REST Service(NeutronAPIService)处理后返回。
OpenDaylightL3RouterPlugin:是OpenDaylight的L3 Router plugin,实现基本router、ext-gw-mode、extraroute、dvr、L3-ha等功能。OpenDaylightL3RouterPlugin本身也只是实现了类似REST proxy的功能,它以现有的OpenStack L3 Router plugin为基础,封装了一层L3调用转Neutron API到ODL的功能。
云平台和SDN控制器之间的所有调用信息基本都是通过这个组件。对接完成后,便可以在云平台上依次创建网络、子网、路由、路由和子网绑定、云主机等。好了,今天的对接就说到这里,下期我们再进一步,聊聊云对接的具体操作和效果。