- SDN环境部署与OpenDaylight开发入门
- 程丽明
- 7130字
- 2025-02-22 06:39:50
第一篇 理论篇SDN概述、OpenDaylight简介、Controller项目总述
第1章 什么是SDN
SDN起源于斯坦福大学的Clean Slate研究课题,旨在“重塑互联网”,即构建一个集中控制的、具备良好的安全性的网络。Clean Slate项目可谓是SDN的前身。在2009年,Nick McKeown等8人在当年的SIGCOMM会议上正式推出了SDN技术。随后Nick McKeown发表了正式的SDN定义文档。与SDN相伴不断发展的是其标准组织机构的构建和相关标准的逐渐完善。最具影响力的机制是ONF(开放网络组织), ONF主要定义了OpenFlow协议和OF-Config协议。OpenFlow协议是SDN最重要的南向协议,它定义了控制器和交换机通信的信息格式和接口标准;OF-Config协议是对支持OpenFlow协议的交换机进行配置和管理时所使用的协议。
本章首先在1.1节“SDN的诞生”中对SDN的起源进行简要介绍,随后在1.2节介绍SDN的标准及组织机构。随后,为了让读者对SDN有一个直观、快速的认识,在1.3节介绍SDN的一些典型应用场景,包括Cisco的ACI、VMware的NSX、谷歌的B4、一种基于SDN的云计算安全保护系统及方法。到目前为止,SDN在数据中心、软件定义广域网SD-WAN、管理和编排、云计算、软件定义安全、与NFV配合使用、与大数据/WIFI/物联网/IPv6结合等方面的应用都有不错的表现。
为方便读者进一步学习和更加深入地了解SDN,在1.4节推荐介绍一些SDN的重要学习资源。
最后在1.5节对全章进行总结。
1.1 SDN的诞生
进入21世纪后,信息技术得到了飞速的发展,特别是自2010年以来,各种新型技术层出不穷(如云计算、移动计算、物联网、人工智能),并得到了落地应用,极大地推动了社会的发展,改变了人类生活的方式。这些技术的基础是计算技术、存储技术和网络技术。其中计算技术的发展最为显著,虚拟化技术、分布式处理、并行处理和网格计算在其中发挥了重要的作用,存储技术也得到了不小的发展,但是网络技术在21世纪初却几乎没有什么重大的突破。高速发展的计算技术和存储技术迫切要求网络技术也提升至与其相匹配的水平,以适应不断增强的业务要求。
在此背景下,产业界和学术界对未来网络进行了探索,以解决当前TCP/IP网络架构中面临的诸多挑战。其中最出名且落地的网络架构有SDN(软件定义网络)、CDN(内容分发网络)、IPv6、应用定义网络等。其中SDN对网络的发展产生了巨大的影响。
SDN起源于斯坦福大学的Clean Slate研究课题(http://cleanslate.stanford.edu/,见图1-1)。Clean-Slate项目的全称是Clean-Slate Design for the Internet,该项目由斯坦福大学主导,获得了美国自然科学基金会(NSF)以及工业界的支持。Clean Slate项目的使命是“重塑互联网”,实现具备以下4个特征的未来网络:
● 克服当前互联网的基础架构限制。
● 采用并引入新技术。
● 启用新应用和服务。
● 成为持续创新的平台,成为社会经济繁荣的引擎。

图1-1 Clean Slate项目
在此目标的驱动下,Clean Slate项目组进行了大量的研究,发表了众多影响极大的论文,产生了包括OpenFlow和SDN、POMI2020、Mobi社会实验室(Mobi-Social实验室)、斯坦福实验数据中心实验室等旗舰项目,有些项目现已发展为独立的项目和实验室。
Clean Slate项目可谓是SDN的前身。Clean Slate项目旨在设计一个“干净的”网络,这个网络是集中控制的,能具备良好的安全性。Clean Slate项目在2007年SIGCOMM会议上发表的论文Ethane:Taking Control of the Enterprise中明确提出了Ethane网络的架构,第一次将计算机网络的控制和转发分享,提出了“控制器”这个概念,在这种新型网络架构中,控制器向交换机分发策略以进行网络信息的传输,这也就是SDN技术的真正起源。
随后这篇文章的作者Martin Casado与Nick McKeown、Scott Shenker等人共同创建了Nicira公司,继续推广这种新型的网络技术。在2009年,Nick McKeown等8人在当年的SIGCOMM会议上发表了“OpenFlow:Enabling Innovation in Campus Networks”,并获得会议的最佳演示奖,被麻省理工学院和多家咨询机构评选为未来十大技术之一。这篇文章标志着SDN技术的正式推出,也是这种新型网络架构席卷全球并对IT产业界和学术界产生巨大冲击和革新的开始。在这篇文章中,以校园网络为背景,引入了SDN架构,使用了南向接口协议OpenFlow, OpenFlow基于交换机,内部自带流表,提供一个增加/删除流表项的接口,实现了控制与转发的分享,如图1-2所示。使用OpenFlow搭建网络具备灵活和可编程的特性,它允许开发者在异构交换机和路由器上以一个统一的方式进行实验而无须掌握底层细节。同年,Nick McKeown发表了正式的SDN定义文档。

图1-2 基于OpenFlow的SDN技术
自SDN概念提出后,在产业界和学术界产生了巨大的影响,SDN相关研究迅速开展,一举成为当年的热点,之后在SIGCOMM会议上占据相当重要的位置,直到现在也是信息技术中非常火爆的技术之一。
1.2 SDN的标准及组织机构
与SDN不断发展相伴的是其标准组织机构的构建和其标准的逐渐完善。从国际上来看,对SDN进行标准化定义的组织中最为出名的是ONF(Open Networking Foundation,开放网络基金会),其次是IETF(The Internet Engineering Task Force,因特网工程任务组)、ITU(International Telecommunication Union,国际电信联盟)、ETSI(European Telecommunication Standards Institute,欧洲电信标准协会)的NFV组。这些组织对SDN从不同的角度出发进行了标准化定义,除了基础的共性之外,各有不同。在之后的章节,本书将以开放网络组织ONF(官方网站地址:https://www.opennetworking.org/,见图1-3)发布的SDN标准为指导,向读者进行SDN概念及架构的介绍。

图1-3 ONF的官方网站
2011年,ONF由谷歌、微软、Facebook等互联网/软件行业巨头联合成立,是SDN领域最早的一家非营利性组织。ONF旨在推动软件定义网络及其相关技术(特别是OpenFlow协议)的标准化和商业推广。ONF成立当初的成员由董事会成员及普通会员两部分组成,董事会成员包括谷歌、微软、Facebook、雅虎、Verizon、德国电信、日本NTT电信、投行高盛公司8家成员;会员则包括网络设备商、网络运营商、服务器虚拟化厂商、网络虚拟化厂商、芯片商、测试仪表厂商等在内的80多家成员,至今组织的规模仍在不断扩大。
ONF最突出的贡献在于定义了OpenFlow协议和OF-Config协议。
OpenFlow协议是SDN最重要的南向协议,它定义了控制器和交换机通信的信息格式和接口标准,本书将在第2章的2.4节中进行介绍。
OF-Config协议是对支持OpenFlow协议的交换机进行配置和管理时所使用的协议。到目前为止,ONF一共定义了OF-Config协议的4个版本:OF-Config1.0、OF-Config1.1、OF-Config1.1.1、OF-Config1.2。
1.3 SDN的一些典型应用场景
近几年来,SDN已落地,在很多领域发挥了巨大的作用,实现了传统网络中很难实现或无法实现的功能,大大推进了产业的发展。到目前为止,SDN最出色、典型的应用可分为:
● 数据中心
● 软件定义广域网SD-WAN
● 管理和编排
● 云计算
● 软件定义安全
● 与NFV配合使用
● 与大数据/WIFI/物联网/IPv6结合
下面将简要介绍SDN在数据中心的应用、SD-WAN的应用、SDN与安全的应用。
1.3.1 SDN在数据中心的应用:Cisco的ACI和VMware的NSX
SDN落地后,目标最广泛的应用就是在数据中心的应用,也有人称这种应用为SDDC(Software-Defined DataCenter,软件定义数据中心)。其中SDN在数据中心最出名的两个解决方案是Cisco的ACI和VMware的NSX。Cisco的ACI在SDN领域发力较迟,但是在2013年,Amazon放弃与Cisco近10亿美元的设备订单后,Cisco大受触动,进而在SDN上投入了大量的精力,随之推出了ACI解决方案,目前已实现盈利。而VMware作为最知名的虚拟化厂商,比Cisco更早察觉到云计算、数据中心等业务中客户对网络虚拟化的强烈需求,通过收购Nicira等新兴的SDN公司、投入精力研发等方式推出了自己的NSX产品,也实现了赢利。Cisco的ACI和VMware的NSX都能很好地应用于数据中心,但总的来说,Cisco的解决方案偏向硬件方面,而VMware的解决方案偏向软件一些。
1.Cisco的ACI解决方案
2013年,Cisco推出了其SDN解决方案ACI(Application Centric Infrastructure,应用为中心的基础设施),如图1-4所示。ACI是Cisco针对数据中心的SDN解决方案,商业定位与VMware的NSX相似,但其偏重硬件。ACI的推出标志着Cisco进一步深入SDN行业。

图1-4 Cisco推出了其SDN解决方案ACI
ACI由APIC(Application Policy Infrastructure Controller,应用策略和基础设施控制器)、ACI构造(ACI Fabric)组成。ACI构造是由叶脊组成的,这可以由物理叶脊、虚拟叶脊组成或两者混合组成。
应用策略和基础设施控制器APIC作为SDN架构中的控制平面,向上通过GUI/CLI/REST API/Python Scripts向管理员提供配置、管理、策略下发的接口,向下通过OpFlex协议将策略推送给ACI Leaf/vLeaf设备中的PE(Policy Element)模块,PE模块会将策略转换成设备能够理解的配置并部署到设备中。注意,APIC上的策略都将生效于ACI网络的边缘,因此APIC只会向ACI Leaf/vLeaf推送策略,而并不会向ACI Spine推送策略。另外,ACI Leaf/vLeaf/Spine的转发都不受APIC控制。
APIC向上(北向上)通过开放的Restful API与各个第三方的系统或者工具进行集成,这些工具可以通过APIC来控制整个物理网络,然后应用策略,进而达到控制所有接入该网络中的其他设备的目的。APIC向下(南向上)可以去控制整个ACI中的物理交换机(Spine/Leaf节点),不包括连接到这个物理网络中的其他设备(计算、存储、安全或者其他ACI之外的交换路由设备)。
ACI转发设备构成的网络称为ACI Fabric, Fabric内部转发设备通过ISIS进行L3互联。ACI Fabric是基于VXLAN Overlay在租户网络上进行转发的。ACI Fabric采用leaf-spine的物理拓扑,建议在leaf与spine间采用物理全互联,不允许在leaf之间以及spine之间进行物理的直连。Cisco专门为ACI Fabric拓展了其N系列的交换机——N9K,通常以N9300系列作为ACI Leaf,用于服务器/防火墙/路由器等设备的接入,以N9500系列作为ACI Spine,为ACI Leaf间的互联提供高速、无阻塞的连接。ACI支持的vSwitch主要有3种:Open vSwitch、VMware VDS和Cisco AVS(Application Virtual Switch)。
2.VMware的NSX解决方案
VMware NSX是专为软件定义的数据中心构建的网络虚拟化平台,NSX通常由硬件处理的网络连接和安全功能直接嵌入hypervisor中。NSX在软件中再现整个网络连接环境,它提供一套完整的逻辑网络连接元素和服务,其中包括逻辑交换、路由、防火墙、负载均衡、VPN、服务质量和监控。对于虚拟网络,可以独立于底层硬件,以编程的方式对其进行调配和管理。VMware NSX解决方案(见图1-5)相对于Cisco的解决方案偏向软件一些,特别是编排管理方面的优势特别突出。

图1-5 VMware的NSX解决方案
VMware NSX可提供构成软件定义的数据中心的基础全新网络连接运行模式,因为NSX在软件中构建网络,所以数据中心操作员可获得以前借助物理网络无法实现的敏捷性、安全性和经济性。NSX提供一套完整的逻辑网络连接元素和服务,其中包括逻辑交换、路由、防火墙、负载均衡、VPN、服务质量(QoS)和监控。对于以上这些服务,可通过NSX API的云计算管理平台在虚拟网络中进行调配。对于虚拟网络,可以无中断地在任何现有网络硬件上进行部署。
NSX架构由数据平面、控制平面和管理平台组成,这3个平面是相分离的,这种架构能很好地扩展而不影响工作负载。数据平面、控制平面和管理平台的简要介绍如下:
数据平面
NSX的数据平面由NSX虚拟交换机实现。在vSphere(VMware的计算虚拟化产品)中,NSX虚拟交换机是在VDS(虚拟分布式交换机)产品上扩展形成的。NSX虚拟交换机使用VxLAN协议和集中化网络配置来支持overlay网络,最终支持这些特性:在已有物理网络架构上创建一个复杂的逻辑L2层overlay网络,包括东西向和南北向在内的灵活的通信方式(同时保证租户之间的隔离),应用负载和VMs对网络不可知,虚拟管理平台极强的扩展性。
控制平面
NSX的控制器是NSX控制平台的关键部分,与所有的数据平面流量在逻辑上分享,是网络可编程化的重要组件。为了进一步提高可用性和扩展性,NSX控制器节点通常部署在奇数实例的集群中。除了NSX的控制器外,NSX控制平台还包括控制VM,提供路由控制平台以允许在ESXi中进行本地转发、在ESXi之间进行动态路由、由Edge VM提供南北向路由。总的来说,这个平面管理着逻辑网络,运行控制平面的协议,实现了控制平台和数据平台的分离。
管理平台
NSX管理器是为NSX生态系统打造的管理平台。NSX管理器提供了逻辑网络组件(逻辑交换机和路由)、网络和Edge服务、安全服务和分布式防火墙的配置和编排。管理平台中的Edge服务和安全服务可使用内置组件或外部第三方提供的组件。NSX管理器允许内置组件或外部服务无缝地集成以进行编排。
1.3.2 SDN在广域网的应用(SD-WAN):谷歌的B4
2013年8月,Google发布了基于SDN的广域网解决方案B4(数据中心广域网互联)。这一应用在SDN产业界产生了极大的影响,是SDN落地的一个里程碑,也是SDN的重大应用场景之一。
作为一个世界知名的网络服务提供商,Google十分重视网络技术的发展(见图1-6),率先采用了许多SDN前沿技术,并在自家网络上加以应用,向来是SDN界的技术先锋,也是SDN技术落地应用的标杆。Google利用SDN主要用于数据中心和SD-WAN方面,其中最突出的就是其B4项目。

图1-6 Google网络技术的演进路径
Google使用骨干网(也称WAN网)来连接其位于世界各地的数据中心,主要通过向运营商按带宽收费的方法来进行租借。Google的业务同其他典型的互联网服务一样,存在着峰值波动,业务繁忙的高峰期的流量大大高于业务处于低峰时的流量。为了满足业务需求,Google只能以业务高峰期的流量需求为主来进行采购,这样就造成了平时资源的浪费,带宽的利用率不足,其根本的原因在于传统流量平衡技术是基于静态Hash进行工作的。需要改善带宽利用率,那么就需要更强的控制底层网络转发数据的能力,如能直接命令交换机或路由器实时更新转发策略进行流量规划,而SDN所具备的特性正好能解决这一问题,能做好流量调度、带宽优化,并且提高利用率,于是B4项目正式诞生了。
Google的B4项目使用SDN的技术对流量进行直接的控制转发。在B4中,Google自己研发了转发设备的OS、控制器,使用了OpenFlow协议来进行控制器和交换机之间的通信。通过B4项目,Google的带宽利用率大大提升,是当初的3倍以上,接近100%。B4的架构如图1-7所示。

图1-7 B4的架构
限于篇幅,这里就不介绍B4的具体原理和算法了,有兴趣的读者可以参考:
(1)B4: Experience with a Globally-Deployed Software Defined WAN
http://cseweb.ucsd.edu/~vahdat/papers/b4-sigcomm13.pdf
(2)Lessons Learned from B4, Google's SDN WAN
https://www.usenix.org/sites/default/files/conference/protected-\files/atc15_slides_mandal.pdf
1.3.3 SDN与安全——一种基于SDN的云计算安全保护系统及方法
目前,我国众多行业都已在云计算上进行了大规模的投入。在核心的业务移植到云平台的过程中,最担心的是数据中心和云平台遭到数据泄漏或导致业务中断。这其中由于虚拟化技术的引入,打破了传统的网络边界的划分方式,另外虚拟机数量变化快也相应地要求安全防护能迅速与之相适应,这些使得传统的安全技术手段无法做到有效的安全防护,而利用SDN技术可以很好地解决这个问题,这也是SDN在安全方面应用的一个典型示例。
蓝盾公司的一种基于SDN的云计算安全保护系统及方法(参考资料[19])针对云计算环境中动态变化的虚拟机数量和虚拟机迁移导致的虚拟机位置变换这些与传统环境不同的特点,对虚拟机进行保护,其网络拓扑如图1-8所示。这种方法基于支持SDN的虚拟交换机(如Open vSwitch)和虚拟平台管理接口,在不影响正常业务工作的情况下自动识别如虚拟机迁移、虚拟机增删、其他业务流程变化等而引起的安全需求的变化,制定新的安全策略,并且根据需要在云计算中心的各地、各主机上快速地部署或关闭所需的安全虚拟器件(如IDS、审计类产品、漏洞扫描、安全管理平台等),向支持SDN的虚拟交换机更新安全策略,能实时有效地保护云计算中心(包括其中的虚拟机)的安全,同时节省系统资源。

图1-8 一种基于SDN的云计算安全保护系统及方法的网络拓扑
在云计算中,主机的虚拟交换机根据总控制平台下发的流表来工作以保证安全,同时将所需监控端口的流量转发到指定的虚拟安全器件SVM上,并且将可疑的流量转发至总控制平台。而总控制平台根据支持SDN的虚拟交换机和虚拟化平台接口反馈的安全环境变化情况制定安全防护需求,下发流表至各主机上的相关虚拟交换机,并且通过接口调整各主机的安全虚拟器件(如IDS入侵检测、安全审计、SOC安全管理平台、漏洞扫描等)的增加和删除。其中云计算中的各主机的虚拟网桥已替换成支持SDN的虚拟交换机(如支持Open vSwitch的交换机),以符合SDN网络的要求。
这种方案能有效应对云计算环境中受保护虚拟机的数目突然增加或虚拟机大批迁往异地而引起的数据中心安全保护需求迅速变化的情况。一种基于SDN的云计算安全保护系统及方法具体上总控制平台通过支持SDN的虚拟交换机和虚拟化平台的接口,在不影响正常业务工作的情况下自动识别安全需求的变化,在云计算中心的各地、各主机上快速地部署或关闭虚拟器件,能有效地保护云计算中心网络环境和其中虚拟机的安全,其功能模块图如图1-9所示。

图1-9 一种基于SDN的云计算安全保护系统及方法的功能模块图
1.4 SDN的一些重要学习资源
1.SDxCentral
SDxCentral是SDN的重要信息和最新信息的权威新闻网站,也提供了一些极有价值的报告。
SDxCentral网站页面如图1-10所示,网址为https://www.sdxcentral.com/。

图1-10 SDxCentral网站
2.TechTarget网站的SDN专栏
TechTarget网站是很出名的IT技术新闻网站,其专为SDN开辟了SearchSDN专栏,包括SDN应用、SDN架构、SDN标准和研究、SDN商用专刊、主题馆这5个话题。
TechTarget网站SDN专栏的页面如图1-11所示,网址为http://searchsdn.techtarget.com/。

图1-11 TechTarget网站的SDN专栏
3.国内的SDNLAB网站
SDNLAB网站是当前国内最具影响力的SDN技术网站,也是专注于网络创新技术的先锋媒体和实践平台,涵盖SDN、NFV、CCN、软件定义安全、软件定义数据中心等相关领域,提供新闻资讯、技术交流、行业分析、求职招聘、教育培训、方案咨询、创业融资等多元服务。
SDNLAB网站的页面如图1-12所示,网址为http://www.sdnlab.com/。

图1-12 SDNLAB网站
4.普林斯顿大学的SDN教程
普林斯顿大学提供了由Nick Feamster教授制作的SDN教程,这是SDN学习中非常好的课件。
普林斯顿大学的SDN教程的网页页面如图1-13所示,网址为https://zh.coursera.org/learn/sdn。

图1-13 普林斯顿大学的SDN教程
5.SDN重要会议信息网址
(1)Open Networking Summit
http://events.linuxfoundation.org/events/open-networking-summit
(2)SDN & OpenFlow World Congress
(3)NV&SDN世界大会
https://tmt.knect365.com/virtualization-sdn-europe/
(4)中国SDN/NFV大会
http://www.infoexevents.com.cn/chinasdn/index_c.htm
1.5 本章总结
进入21世纪,信息技术得到了飞速的发展。计算技术、存储技术都有了突破性的发展,然而与之相伴的网络技术在21世纪初却几乎没有什么重大的突破,难以匹配高速发展的计算技术和存储技术。为了解决当前TCP/IP网络架构中面临的诸多挑战,产业界和学术界对未来网络进行了探索,产生了不少成果,其中最出名的就是SDN技术。斯坦福大学的Clean Slate可以说是SDN的前身,旨在设计一个“干净的”网络,这个网络是集中控制的,具备良好的安全性。
SDN技术于2009年在SIGCOMM会议上正式推出,以校园网络为背景,引入了SDN架构,使用了南向接口协议OpenFlow, OpenFlow基于交换机,内部自带流表,提供一个增加/删除流表项的接口,实现了控制与转发的分享。使用OpenFlow搭建网络具备灵活和可编程的特性,它允许开发者在异构交换机和路由器上以一个统一的方式进行实验而无须掌握底层细节。SDN概念提出后,在产业界和学术界产生了巨大的影响。
从国际上来看,对SDN进行标准化定义的组织中最为出名的是ONF(开放网络基金会),其次是IETF(因特网工程任务组)、ITU(国际电信联盟)、ETSL(欧洲电信标准协会)的NFV组。这些组织对SDN从不同的角度出发进行了标准化定义,除了基础的共性之外,各有不同。最具影响力的机制是ONF,其主要定义了OpenFlow协议和OF-Config协议。
经过几年的发展,SDN已经落地,在数据中心、软件定义广域网SD-WAN、管理和编排、云计算、软件定义安全、与NFV配合使用、与大数据/WIFI/物联网/IPv6结合等方面的应用都有不错的表现。