SDN(Software Defined Networking) 软件定义网络是一种新兴的基于软件的网络架构及技术,本文将阐述SDN的提出的背景和当前主流的SDN架构定义,介绍IBM在SDN方面的最新的技术和应用。本文将以IBM的SDN-VE平台为例介绍一个完整的SDN平台框架结构和组成元素以及该框架结构下的扩展能力,同时本文将介绍这个SDN平台与Openstack集成的架构方式,基于这种集成实现用户以自服务方式定制应用的多层网络架构;在此基础上对SDN在网络安全服务方面的应用进行了展望。
SDN提出的背景及其概念
近几年,随着移动互联网、电子商务、大数据等服务的兴起和发展,以及虚拟化、云计算技术的快速发展,传统网络技术及架构已经越来越不能满足快速配置、按需调用、自动负载均衡的要求。基于这种背景,SDN(Software Defined Networking)软件定义的网络被提出并作为软件定义数据中心的重要一部分。SDN是一种新型的网络架构,它的设计理念是将网络的控制平面与数据转发平面进行分离,支持集中化的网络状态控制,实现底层网络设施对上层应用的透明。SDN具有灵活的编程能力,使得网络的自动化管理和控制能力获得空前的提升,能够有效地解决当前网络所面临的资源规模扩展受限,组网灵活性差,难以快速满足业务需求等问题。
SDN 研究机构及其参考架构
目前业界主要有以下几种SDN定义参考架构,分别是目前基于领导地位的ONF架构,和由IT巨头思科、Juniper、IBM、微软参与的OpenDaylight开源项目提出的OpenDaylight架构,以及ETSI ISG及其参考架构。
1.ONF 及其架构定义
成立于2011年3月份的开放网络基金会ONF(Open Networking Foundation)主要致力于推动SDN架构、技术的规范和发展工作。是目前SND标准化技术的引领者,其提出并倡导的以Openflow为基础的网络架构首次系统的阐述了SDN架构以及一些应用场景,为SDN的发展奠定了重要基础。
▲图1 ONF提出的SDN架构
如图1所示,ONF提出的SDN的典型架构分为三层:分为最上层的应用层?中间的控制层和最下层的基础设施层。 应用层包括各种不同的业务和应用,根据业务和应用的需求可以通过API(按照接口和控制层的关系,此API称作北向接口)管理和控制网络的转发/处理的策略,通过北向接口也支持对网络属性的配置实现提升网络利用率、保障特定应用的安全和服务质量;控制层主要负责处理数据转发资源的抽象信息,支持网络拓扑、状态信息的汇总和维护,并基于业务和应用的控制来调用不同的转发面的资源;基础设施层负责基于业务的流表的数据处理、转发和状态收集。介于控制器和基础设施层之间的接口被称作南向接口,ONF在南向接口上定义了开放的OpenFlow标准,而在北向接口上还没有做统一要求。ONF将SDN网络架构划分为应用层?控制层?基础设施层,改变了传统网络中设备的转发与控制平面精密耦合关系。 Openflow作为控制数据平面接口协议,目前已从1.0升级到1.3版本,已有思科、Juniper、Dell、HP等众多厂商的设备支持。Openflow是目前SDN体系架构中标准化程度最高,产品最接近商用的技术,在一些领域甚至成为了SDN的代名词。
2.OpenDaylight项目及其架构定义
2013年4月8日,OpenDaylight开源项目被推出,其参与者主要来自业界主要的大牌的硬件厂商和传统的IT巨头,包括思科、Juniper、IBM、微软、VMware等。
▲图2 Opendaylight提出的SDN架构
从图2可以看出,Opendaylight提出的SDN架构跟ONF SDN架构类似,主要包括最下层数据平面层包括虚拟交换机,物理设备接口等。支持Openflow等协议的南向接口;中间控制层平台和相应的基于REST的API北向接口;与ONF应用层对应的网络应用和服务层。相比于ONF SDN架构以OpenFlow 协议为基础,并将其作为架构中的唯一的南向接口协议,OpenDaylight开源项目,在南向接口方面除了OpenFlow之外还有更丰富的选择。
3.ETSI NFV 介绍
欧洲电信标准协会(ETSI)(European Telecommunications Standards Institute)是由欧共体1988年批准成立的一个非盈利的电信标准化组织。 ETSI于2012年11月成立了专门用于讨论NFV(Network Function Virtualization)网络功能虚拟化的ISG(Industry Specification Group,行业规范小组)。
▲图3 ESTI NFV 参考架构
从图3可以看出,ESTI NFV架构跟ONF SDN架构类似,实现了数据转发平面和控制平面的分离,并在控制平面之上提出了编排系统层。 相比于ONF SDN架构,NFV定义架构增加了E2E(End to End)网络控制层,能够对多数据中心不同技术进行融合。 ETSI NFV的重点是网络功能的虚拟化,NFV的目标主要是希望通过广泛采用标准化的IT虚拟化技术,采用业界标准的大容量服务器、存储和交换机承载各种各样的网络软件功能,实现软件的灵活加载,实现在数据中心、网络节点和用户端等各个位置灵活的部署配置,从而加快网络部署和调整的速度,降低业务部署的复杂度,提高网络设备的统一化、通用化、适配性等,最终降低网络的投资和运营成本。#p#
SDN主要的特点
从上面几个架构中可以看出,SDN目前在业界普遍认可的有以下几大特征:
1. 控制平面与数据平面的分离,使得分布式系统得到集中控制。逻辑上集中的控制能够支持获得网络资源的全局信息并根据业务需求进行资源的全局调配和优化。同时集中控制无须对物理设备进行现场配置,提升网络控制的便捷性。
2. 开放的数据平面控制协议,使得交换设备商品化,避免厂商锁定,屏蔽了底层物理转发设备的差异。
3. 开放的控制平面管理接口,通过开放的南向和北向接口,能够实现网络和具体应用的无缝集成,使得网络实时动态的满足应用的需求成为可能。另外基于开放接口通过自行开发网络业务,加快新业务的上线周期。
SDN解决方案
随着SDN的提出和各种标准的建立,各大厂商也开始推出他们的SDN解决方案。专注于虚拟化的VMware在2012年斥资12亿美元收购了Nicira随之推出了它的NSX解决方案;网络巨头思科也推出了ACI 以支持其开放式网络环境(ONE)策略。而正在实施战略转型,希望完成从硬件制作到服务业转型,成为一体化行业解决方案服务商的IBM,在SDN方面也有着深厚的积累。2011年IBM就已经开始开发他的分布式叠加虚拟以太网(DOVE)解决方案。在DOVE架构的基础之上,2013年3月IBM推出了“用于虚拟环境的IBM 软件定义网络”(IBM SDN VE)解决方案。IBM SDN VE 是采用Opendaylight项目提出的参考架构的实现。
让我们基于IBM SDN VE来了解一下一个具有代表性的SDN解决方案。
1.IBM SDN VE解决方案总览
IBM SDN VE是一种分布式的叠加型虚拟网络,它可以利用现有的物理网络,而无需对物理网络基础架构进行任何更改。此解决方案可用于VMware环境,也可用于KVM环境。可以使用IBM SDN VE的KVM版构建开源的云计算方案中的SDN网络。
▲图4 IBM SDN VE总览图
图4是IBM SDN VE的总览图,中间的菱形框内是SDN VE的虚拟网络环境,在这个虚拟网络环境中可以创建多个虚拟网络。虚拟网络之间的通信由SDN VE网关负责转发。网关同时负责跨IDC的相同虚拟网络之间的流量转发,这个过程可以理解为在一端的网关将虚拟网络的分组先以一定格式封装(通常是VXLAN封装),然后再通过传统的IP网络向对端传送,对端以相应方式解开封装并且转发到相应的虚拟网络内。SDN VE通过RESTful和Neutron的标准提供了北向接口以提供给OpenStack等应用程序来控制和定义虚拟网络。
2.IBM SDN的构成部件
IBM SDN VE通过一些分离的部件来完成软件定义网络的原则和构想,这些部件对传统的交换机控制平面和数据转发平面在虚拟的叠加网络环境中进行了仿真。
图5表示了IBM SDN VE各部件之间的逻辑关系,同时说明了这些部件是如何与“底层网络”即现有的物理网络之间产生关系。画面中心的“DOVE Overlay”网络是整个解决方案的基础,它实现了虚拟机(VM)之间实现透明的通信而不需要关心虚拟机之间的“底层网络”基础设施,同时它的存在也实现了可以不对“底层网络”做任何的修改就可以以叠加的方式实现SDN。
▲图5 IBM SDN VE部件关系图
在这里,我们不需要关心我们是使用VMware平台还是KVM虚拟化平台,在不同的平台之上这些IBM SDN VE部件的功能是相似的。
IBM SDN VE解决方案使用了4个软件部件协同工作来提供高效率的网络虚拟化。
● DOVE管理控制台
DOVE管理控制台(DMC)是用于控制IBM SDN VE配置的中心点。它配置各个虚拟网络、进行策略控制并且向各个虚拟交换机分发策略。它同时也可以帮助管理员对某个虚拟网络进行管理。DOVE管理控制台作为一个虚拟应用器件运行。
● 分布式连通性服务
分布式连通性服务(DCS)将虚拟机的地址分发到所有参与到SDN VE虚拟网络中的虚拟交换机。分布式连通性服务会配置对应的虚拟网络、进行策略控制并且向各个虚拟交换机分发策略。DCS服务作为一个虚拟应用器件的集群进行部署,从而提供比传统网络控制平台更高的伸缩性和可靠性。#p#
● DOVE网关
DOVE网关是一种特殊的应用器件,它将SDN VE叠加层网络环境与非SDN VE叠加层网络环境连接起来。这包括了将SDN VE上的虚拟机与公共网络连接,也包括了使SDN VE环境与遗留在非叠加层的传统网络上运行的硬件和软件进行交互,比如说一些不能被迁移到SDN VE环境中的物理主机、管理工具和物理防火墙等网络器件。
SDN VE提供了2种网关:分布式VLAN网关和分布式外部网关。
分布式VLAN网关负责在叠加网络上不同的2层网络(VLAN)之间进行数据转发。
分布式外部网关使SDN VE域中的虚拟机可以与外部非SDN VE/DOVE的系统进行通信,也可以使用外部系统能够访问SDN VE内部的虚拟机,同时也可以使在策略分配上位于不同SDN VE域的虚拟机之间实现通信。
目前DOVE网关也是以软件方式发布,基于硬件交换机的DOVE网关已经在计划之中。
● 5000V主机模块
5000V主机模块是运行在VMware hypervisor之上的软件,是5000V分布式虚拟交换机的组成部分。它基于UDP VXLAN叠加层提供了2层和3层的网络虚拟化,实现了虚拟网络的数据通路。虚拟交换机同时也处理一些控制平台的功能来支持虚拟机地址的自动发现,虚拟机迁移及网络策略配置。
KVM不使用5000V主机模块,取而代之的是一个运行在每一台hypervisor上的DOVE代理进程,这个代理进程直接侦听分布式连通性服务(DCS),同时也负责创建独立的桥接接口,这个桥接接口最终会显示给virt-manager或者虚拟机管理器。
3.统一控制器
统一控制器(Unified Controller)是一个网络业务流程平台,它向应用层抽象了一个网络的整体视图,通过该视图可基于软件获取网络能力和其它服务。
统一控制器是SDN VE新加入的一个特性,之所以称之为“统一”,是因为它可以控制SDN VE的各种版本,包括VMware版本和KVM版本,还包括未来可以控制Openflow硬件交换机的Openflow版本,统一控制器提供了以下的服务:
1.提供了管理员界面DOVE管理控制台(DMC)的可视化和控制操作
2.静态的DOVE配置,如:域的配置、虚拟网络的配置、策略的配置等
3.向应用层提供北向API接口
4.网关的配置和管理
5.为控制器和第三方管理软件的通信提供了外部接口,为控制器和SDN VE各部件间的通信提供了接口
在当前的数据中心,越来越多的服务提供者已经不仅仅只依赖网络拓扑、网络状态和策略了,他们还依赖于运行于物理主机内的hypervisor软件。管理员需要定义灵活的、具有安全策略的、位置无关的和其它复杂的模式以用于多层的、可扩展的及高密度的基础架构。这就需要一种服务能够辅助他们快速地部署新的网络功能并且管理和控制它们。
统一控制器的目的就在于在SDN VE内提供一个统一的网络业务流程平台,同时提供丰富的API,这些API可以用来操作统一控制器。图6显示了统一控制器的概览。
▲图6 统一控制器概览
统一控制器从每个SDN VE vSwitch、分布式连通性服务(DCS)和DOVE网关收集日志和统计信息,因此它是整个SDN VE部署环境的日志的状态信息的中心。
由于SDN VE环境是一个大型的分布式系统,统一控制器为虚拟化管理员提供了获取整个系统统计信息的功能。比如说:与物理交换机一样可以取得包计数和错误计数等。
4.VXLAN沟通底层网络与叠加网络
之前说明过,使用叠加网络方案的好处就是可以在不修改现有的物理网络架构(底层网络)的情况之下提供网络虚拟化服务。叠加网络和底层网络之间的通信依赖于某种封装协议,IBM SDN VE采用了VXLAN来实现。图7是SDN VE解决方案中使用的VXLAN帧结构图。
▲ 图7 SDN VE解决方案中使用的VXLAN帧结构
VNID是一个24位的标识符用以标识源IP子网,和传统的VLAN使用12位的标识符只能支持4096个网段相比,VXLAN可以支持到最多1600万个网段。当一个VM发送了一个帧,用VNID封装这个帧之后就可以在传统的三层网络上创建一个穿越第三层的隧道将这个帧传输出去。在图4-4中蓝色部分的外部UDP头中包含了VTEP(VXLAN隧道端点)源端口和目标端口,外部IP头中包含了VTEP的IP,外部以太网头部中包含了源VTEP的源MAC地址和目标VTEP的目标MAC地址。图中绿色部分是内部以太网帧,这是最初由VM发出的包含VM的MAC地址和IP源地址和目标地址的帧,正是这个帧被封装起来在VXLAN隧道中传输。#p#
SDN的应用和展望
1.IBM SDN VE在Openstack中的应用
IBM SDN VE KVM版提供了OpenStack Neutron插件,所以使用KVM作为hypervisor的基于OpenStack的云计算解决方案可以使用IBM SDN VE作为网络虚拟化方案以提供极大的网络灵活性和自动化。
▲图8 IBM SDN VE在OpenStack中的应用框图
通过本方案,结合OpenStack的Neutron部件,用户可以直接在Web Portal中进行创建多层网络应用的操作。用户对创建或者修改虚拟网络的操作通过Neutron插件对DOVE管理控制台(DMC)北向API的调用而反映到SDN VE环境中。这时DMC经过一系列的对虚拟网络的配置、策略控制和向各个相关虚拟交换机分发策略来实施这些用户操作,从而达到以软件获取网络能力的目标。
由于SDN VE提供了完善统一的日志信息和统计信息,可以通过这些信息根据网络使用量等数据实现“按需付费”。
● 叠加层网络实现过程简介
在每个KVM中,都有一个DOVE代理进程,这个代理进程直接侦听分布式连通性服务(DCS),同时也负责创建独立的桥接接口,这个桥接接口最终会显示给virt-manager或者虚拟机管理器。每个VM都可以创建1个或者多个虚拟网络接口,这些虚拟网络接口将VM与虚拟交换机相连接。
同一KVM内的VM之间需要通信时,只需要根据流表在这台KVM上的虚拟交换机内进行数据交换。不同KVM上的VM之间需要通信时,则会由虚拟交换机将从VM虚拟网络接口上收到的网络包进行VxLAN封装,封装后的包在底层IP网络上发送给目标VM所在的KVM,经过VxLAN的解封装,最终由源VM发出的网络包被交换到目标VM上。
如果VM要和遗留在底层网络上的物理机进行通信,则可以将VxLAN包发送到DOVE网关,由网关进行解封装并且发送到目标主机。物理机到VM的通信可以由相反的过程完成。
DOVE网关也用于叠加层网段中的广播。从叠加层网络的设计可以了解到分布于不同KVM中的同网段VM之间要实现广播必须借助于一些特别的设计。分布式连通性服务(DCS)保持了一个VM的地址表,通过这张地址表可以了解到某一叠加层网段内所有VM所对应的KVM。当网段内某一VM发出广播包时,DOVE网关会将这个广播包转发到所有需要的KVM中。
● 创建多层网络应用
用户可以通过OpenStack的用户界面向Neutron部件发出创建新网段的指令,这个指令由IBM SDN VE KVM版OpenStack Neutron插件转发到DOVE管理控制台(DMC),DOVE管理控制台向各个虚拟交换机分发策略,以创建这个网段。
用户创建多个这样的网段,然后通过OpenStack将各个VM和诸如路由器、防火墙等应用器件连接到各个网段,可以快速创建出一个多层网络应用。
▲图9 用户在OpenStack上创建多层网络应用
2.SDN在网络安全等方面的应用展望
SDN不但提供了快速的网络部署,用户可以快速部署自己的多层应用网络拓扑,还可以获取丰富的作为虚拟应用器件运行的网络服务,而这些网络服务都是可以按照“按需付费”的方式提供给用户在线订购。
比较典型的如网络安全服务、入侵检测、垃圾邮件过滤及负载均衡等。
▲图10 SDN网络安全服务
图10示意了IBM的一种网络安全服务的部署模型。Security Service组件提供了网络安全服务,它可以检测流经它2个网络接口的流量并且检测到威胁的连接将之断开从而保护目标VM。
当用户订购了该服务之后,SDN的控制器就会向虚拟交换机发送配置更新,将指定的VM的流量导向该安全服务应用器件。比如原先外部流量是直接流向VM的,用户订购服务之后就会先流向安全服务应用器件,经过安全过滤之后再流向VM。这种服务同样可以保护来自环境内部其它VM的威胁。
总之,有了SDN这种可以由软件定义而获取的网络能力之后,将会有更多的应用值得展望,这种由软件控制快速改变网络结构的能力的确是当前云计算非常需要的能力。有了这种能力,用户可以快速部署应用的网络结构,订购虚拟网络设备和服务,实现“按需付费”。