当前位置: 首页 > 科技观察

说说SDN和云平台的联系

时间:2023-03-21 15:26:45 科技观察

前几天我们整理了SDN和云计算的关系。其实联系最紧密的就是SDNController和云平台。至于为什么要对接?对接的意义何在?这些问题都可以在上一篇文章中得到解答。今天我们只讲对接的技术干货。云平台介绍云平台。目前主流的开源项目有OpenStack和CloudStack。相比之下,OpenStack的门槛高,可达到的效果更好。也是各大厂商商业化程度最高的开源云平台之一。所以下面主要讲解一下SDNController和OpenStack的连接。OpenStack:诞生于2010年7月,以生命周期迭代的26个英文字母命名。目前最新发布的是N版(Newton),商用部署较多的是L版和M版。随着功能的完善,目前有6项核心服务和10项可选服务。主要看六大核心服务:OpenStackCompute:主要是虚拟机的管理,代码命名为NovaOpenStackStorage:对象存储和Block存储管理,代码分别命名为Swift和CinderOpenStackNetworking:可插拔,由API驱动网络以及IP管理,代号为Neutron的共享服务:包括身份认证(名为Keystone)、图像管理(名为Glance)、WEB界面等。OpenStack可以控制数据中心大量的存储、计算和网络资源,以及所有管理可以通过Dashboard完成。在6个核心服务中,Neutron是与我们今天的话题关系最密切的,它包括所有连接到物理网络的组件。详见下图:NeutronServer:接收API请求,通过队列调用本地代理进行L3和NAT、DHCP、桥接等,通过核心将网络服务请求中继到相应的插件用于配置的插件和服务插件。本地提供DHCP代理、L3代理和其他L2代理,提供公共基础服务。通过ML2插件框架实现不同厂商的插件,支持同级不同插件共存。SDNController简介在上一篇文章中,我们提到SDN网络中最重要的就是SDNController。网络流量的调度以及与网络外应用的连接,基本上都依赖于Controller。(当然,云平台也可以直接调用网络设备,但复杂,规模有限,除非用于实验研究,否则不用)。对于SDNController,业界也有很多开源项目,各有各的魅力。详情请参考之前的文章《这么多控制,你该如何选择》。今天主要讲一下ODL(OpenDaylight),它是目前主要网络厂商在企业环境商用的主要开源控制器。锐捷网络的开放网络控制器(RG-ONC)也基于该平台推出。主要包括3层,具体结构如下:基础设施层:主要是传统网络设备与SDN路由、安全、网关等物理和虚拟设备的基础组网。Controller层:主要提供南北API接口。南向接口负责与基础网络设备的通信和调用,北向接口负责与上层应用的通信和调用。同时控制器会提供一个web管理平台。所有的SDN网络功能都在这个接口上部署和调用。网络功能的独立性、易用性和可扩展性是衡量SDNController的关键指标。应用层:主要包括云平台、网管、用户自行开发的各种应用。通过SDNController提供的北向API接口进行资源调用。因此,API接口的开放性、通用性和易用性是衡量SDNController的另一个关键指标。SDNController与OpenStack对接上面我们重点介绍了对接的范围。云平台是主流的OpenStack平台,SDNController是主流的ODL。对于这两个开源项目,他们的社区都提供了标准的对接接口。厂商商用一般不改变对外接口,所有的深度开发主要局限于接口,保证不同品牌云平台和控制器的兼容性。具体对接模型如下:里面的关键是Networking-odl插件,需要云平台和SDN控制器提供,安装在OpenStack平台上。Networking-odl包含OpenDaylightMechanismDriver和OpenDaylightL3RouterPlugin。OpenDaylightMechanismDriver:OpenDaylight的ML2MechanismDriver以类似于REST代理的方式实现ML2MechanismDriver功能。它将所有对MechchanismDriver的调用转换为NeutronAPI传递给OpenDaylight,由OpenDaylight的NBRESTService(NeutronAPIService)处理并返回。OpenDaylightL3RouterPlugin:是OpenDaylight的L3Router插件,实现基本的router、ext-gw-mode、extraroute、dvr、L3-ha等功能。OpenDaylightL3RouterPlugin本身只是实现了一个类似于REST代理的功能。它基于现有的OpenStackL3Router插件,封装了一层L3对NeutronAPI的调用到ODL。云平台与SDN控制器之间的所有调用信息基本都经过这个组件。对接完成后,即可在云平台上依次创建网络、子网、路由、路由与子网绑定、云主机等。好了,今天的对接就到这里了,下一期我们再深入一点,聊一聊云对接的具体操作和效果。