目录 第9章软件定义网络 91软件定义网络的起源和发展 91.1软件定义网络的起源 912软件定义网络的发展 92软件定义网络体系结构 921软件定义网络架构 922软件定义网络特点 9.3 Open flow协议 94软件定义网络标准现状和开源项目 941标准现状 942开源项目 9.5软件定义网络应用
I 目 录 第 9 章 软件定义网络 9.1 软件定义网络的起源和发展 9.1.1 软件定义网络的起源 9.1.2 软件定义网络的发展 9.2 软件定义网络体系结构 9.2.1 软件定义网络架构 9.2.2 软件定义网络特点 9.3 Open Flow 协议 9.4 软件定义网络标准现状和开源项目 9.4.1 标准现状 9.4.2 开源项目 9.5 软件定义网络应用
第9章软件定义网络 91软件定义网络的起源和发展 91.1软件定义网络的起源 伴随着物联网、云计算等新技术的发展以及智能手机的普及,互联网以强劲的发展 势头渗透至人们的工作、生产和生活等各个领域,其上所承载的业务类型也日益丰富, 涵盖了社交网络、电子商务、企业信息化系统等多种不同特征的业务。在这种网络环境 下,网络用户的急剧增加、差异化的网络业务需求、用户个性化的服务质量需求等都使 得现有的网络架构难堪重负,以IP为核心的网络架构的局限性逐渐凸显出来。例如 日益突出的网络信息窃取问题,恶意攻击、密码泄露、病毒、木马每年都会造成上亿美 元的损失;网络地址消耗殆尽;臃肿不堪的网络路由无法满足云业务对网络的快速响应 需求等,尽管如此,针对网络中存在的问题,网络工程师们做了大量的改进和创新工作, 提出了一系列方案来解决网络中遇到的问题,如IPSe、MPLS、IPv6等。这种“补丁 式”的措施虽然奇迹般地让网络在各种不同的应用上工作到了今天,但是,这种模式下 发展起来的互联网已经成为一个规模臃肿、结构繁杂、QoS不可靠的系统,进一步加剧 了网络数据层和网络控制层的压力,使得网络控制层愈加复杂,难以适应目前网络业务 的发展。 为了适应今后互联网业务的需求,业内也形成了“现在是创新思考互联网基本体系 结构,采用新的设计理念的时候了”的主流意见,并对未来网络体系架构应具备的性质 和功能提出了要求。首先,未来网络的体系架构应提供多视角的网络操作要求,用户、 网络服务提供商、网络设备制造商等都可以对网络的某些功能进行管理和控制。其次 未来网络应提供信息共享、迅速感知网络状态的功能,保证各个网络主体能快速地调整 网络服务策略。软件定义网络的兴起为未来网络的发展提供了方向。 经过多年的发展,以TCPP为核心的网络架构中存在着越来越多的问题。大家一 致认为传统的修修补补方式并不能从根本上解决网络问题。为此,业界提岀了重新设计 网络架构以解决网络问题的方式,学术界形象地称之为“ Clean Slate”方案,可以尽可 能地考虑当前的各种需求及未来可能的需求。其中,比较有代表性的有:美国的FIND ( future Internet network design,未来互联网网络设计)和GENI( global environment fo network innovations,全球网络创新环境)、中国的CNGI( China next generation Internet
1 第 9 章 软件定义网络 9.1 软件定义网络的起源和发展 9.1.1 软件定义网络的起源 伴随着物联网、云计算等新技术的发展以及智能手机的普及,互联网以强劲的发展 势头渗透至人们的工作、生产和生活等各个领域,其上所承载的业务类型也日益丰富, 涵盖了社交网络、电子商务、企业信息化系统等多种不同特征的业务。在这种网络环境 下,网络用户的急剧增加、差异化的网络业务需求、用户个性化的服务质量需求等都使 得现有的网络架构难堪重负,以 IP 为核心的网络架构的局限性逐渐凸显出来。例如: 日益突出的网络信息窃取问题,恶意攻击、密码泄露、病毒、木马每年都会造成上亿美 元的损失;网络地址消耗殆尽;臃肿不堪的网络路由无法满足云业务对网络的快速响应 需求等,尽管如此,针对网络中存在的问题,网络工程师们做了大量的改进和创新工作, 提出了一系列方案来解决网络中遇到的问题,如 IPSec、MPLS、IPv6 等。这种“补丁 式”的措施虽然奇迹般地让网络在各种不同的应用上工作到了今天,但是,这种模式下 发展起来的互联网已经成为一个规模臃肿、结构繁杂、QoS 不可靠的系统,进一步加剧 了网络数据层和网络控制层的压力,使得网络控制层愈加复杂,难以适应目前网络业务 的发展。 为了适应今后互联网业务的需求,业内也形成了“现在是创新思考互联网基本体系 结构,采用新的设计理念的时候了”的主流意见,并对未来网络体系架构应具备的性质 和功能提出了要求。首先,未来网络的体系架构应提供多视角的网络操作要求,用户、 网络服务提供商、网络设备制造商等都可以对网络的某些功能进行管理和控制。其次, 未来网络应提供信息共享、迅速感知网络状态的功能,保证各个网络主体能快速地调整 网络服务策略。软件定义网络的兴起为未来网络的发展提供了方向。 经过多年的发展,以 TCP/IP 为核心的网络架构中存在着越来越多的问题。大家一 致认为传统的修修补补方式并不能从根本上解决网络问题。为此,业界提出了重新设计 网络架构以解决网络问题的方式,学术界形象地称之为“Clean Slate”方案,可以尽可 能地考虑当前的各种需求及未来可能的需求。其中,比较有代表性的有:美国的 FIND (future Internet network design,未来互联网网络设计)和 GENI(global environment for network innovations,全球网络创新环境)、中国的 CNGI(China next generation Internet
中国下一代互联网)、欧盟的FIRE( future Internet research and experimentation)以及日 本国家信息通信技术所(NICT)资助的 AKARI项目及对应的下一代试验床JGN2+。 同时,在学术界,以斯坦福大学为主导,联合美国国家自然科学基金会(NSF, national science foundation)以及包括工业界合作伙伴,共同启动了 Clean Slate( Clean- Slate design for the internet)项目。在此项目中, Martin casado博士领导了一个关于网络安全与管理 的子项目 Ethane。该项目试图通过一个集中式的控制器,以方便网络管理员自主定义基 于网络流的安全控制策略,并把这些安全策略应用到各种网络设备中,从而实现对整个 网络通信的安全控制。受此项目的启发, Martin和他当时的导师 Nick mcKeown教授发 现,如果将 Ethane的设计更一般化,将传统网络设备的数据转发( data plane)和路由 控制( control plane)两个功能模块相分离,通过集中式的控制器以标准化的接口对各种 网络设备进行管理和配置,那么这将为网络资源的设计、管理和使用提供更多的可能性, 从而更容易推动冈络的革新和发展。于是,他们便提出了 Open Flow的概念,并于2008 年在 ACM SIGCOMM上发表名为《 Open Flow: Enabling Innovation in Campus Networks》 的论文。在这篇论文中,首次详细介绍了 Open Flow的概念,并列举了校园实验性通信 网络协议支持、网络隔离、网络管理和访问控制等 Open Flow的六大应用场景。至此, 奠定了软件定义网络(SDN, Software Defined Network)的雏形 912软件定义网络的发展 在目前的互联网框架下,互联网的发展已经快要接近极致。如何提高互联网的传输 效率、如何更方便的管理网络已经刻不容缓。人们也渐渐开始把眼光瞄向传统网络框架 之外,即重新定义一种网络框架来实现高效的网络传输和控制,软件定义网络(SDN) 在这种背景下应运而生。SDN首创者之一 Martin Casado当时是斯坦福大学的研究生, 其导师是著名的 Nick McKeown教授,两人在创造推动SDN发展上有着巨大贡献, Martin Casado还被称为SDN之父。在2003之前, Casado在美国情报机构工作,情报机构的 计算机网络理所当然是非常安全的,但是在现有网络框架内,越安全的网络伴随着的是 复杂的网络路由策略,各种复杂的路由协议相互交错所以维护起来异常复杂。越复杂的 网络,运维时需要修改的网络设备配置就越多,网络管理中常常有牵一发而动全身的经 历,需要挨个在不同设备上进行配置。所以 Casado对此感触非常大,随着网络安全性 要求的提高,势必导致网络运维起来越来越复杂,他认为在这种网络架构下,网络基本 上搭建以后就没有什么可塑性了。由于网络设备厂商基于自身利益考虑,不会开放源码
2 中国下一代互联网)、欧盟的 FIRE(future Internet research and experimentation)以及日 本国家信息通信技术所(NICT)资助的 AKARI 项目及对应的下一代试验床 JGN2+。 同时,在学术界,以斯坦福大学为主导,联合美国国家自然科学基金会(NSF,national science foundation)以及包括工业界合作伙伴,共同启动了 Clean Slate(Clean-Slate design for the Internet)项目。在此项目中,Martin Casado 博士领导了一个关于网络安全与管理 的子项目 Ethane。该项目试图通过一个集中式的控制器,以方便网络管理员自主定义基 于网络流的安全控制策略,并把这些安全策略应用到各种网络设备中,从而实现对整个 网络通信的安全控制。受此项目的启发,Martin 和他当时的导师 Nick MeKeown 教授发 现,如果将 Ethane 的设计更一般化,将传统网络设备的数据转发(data plane)和路由 控制(control plane)两个功能模块相分离,通过集中式的控制器以标准化的接口对各种 网络设备进行管理和配置,那么这将为网络资源的设计、管理和使用提供更多的可能性, 从而更容易推动网络的革新和发展。于是,他们便提出了 OpenFlow 的概念,并于 2008 年在 ACM SIGCOMM 上发表名为《OpenFlow:Enabling lnnovation in Campus Networks》 的论文。在这篇论文中,首次详细介绍了 OpenFlow 的概念,并列举了校园实验性通信 网络协议支持、网络隔离、网络管理和访问控制等 OpenFlow 的六大应用场景。至此, 奠定了软件定义网络(SDN,Software Defined Network)的雏形。 9.1.2 软件定义网络的发展 在目前的互联网框架下,互联网的发展已经快要接近极致。如何提高互联网的传输 效率、如何更方便的管理网络已经刻不容缓。人们也渐渐开始把眼光瞄向传统网络框架 之外,即重新定义一种网络框架来实现高效的网络传输和控制,软件定义网络(SDN) 在这种背景下应运而生。SDN 首创者之一 Martin Casado 当时是斯坦福大学的研究生, 其导师是著名的Nick McKeown 教授,两人在创造推动SDN发展上有着巨大贡献,Martin Casado 还被称为 SDN 之父。在 2003 之前,Casado 在美国情报机构工作,情报机构的 计算机网络理所当然是非常安全的,但是在现有网络框架内,越安全的网络伴随着的是 复杂的网络路由策略,各种复杂的路由协议相互交错所以维护起来异常复杂。越复杂的 网络,运维时需要修改的网络设备配置就越多,网络管理中常常有牵一发而动全身的经 历,需要挨个在不同设备上进行配置。所以 Casado 对此感触非常大,随着网络安全性 要求的提高,势必导致网络运维起来越来越复杂,他认为在这种网络架构下,网络基本 上搭建以后就没有什么可塑性了。由于网络设备厂商基于自身利益考虑,不会开放源码
与编程接口。于是他来到斯坦福大学、打算寻找一条新的解决方案 SDN被戏称 Stanford Define Network,由此可见SDN的起源于斯坦福大学有很大 的关系。2006年SDN诞生于由美国GENⅠ在斯坦福大学资助的 Clean Slate课题,这个 课题是由美国政府主导的NGN(下一代网络)项目,其宗旨是通过优化或者改变现有 网络体系架构、重新塑造互联网。以 Nick Mckeown教授为首的科研团队则是 Clean state 的核心团队,其中 Martin Casado在RCP和4D论文的基础上,提出了一个逻辑上集中 控制的企业安全解决方案SANE,即利用一个集中控制器来解决集中控制网络安全问题, 打开了一扇解决集中控制安全的大门,为以后SDN的发展铺平道路。 2007年 Casado领导的一个关于网络安全与管理的科研项目 Ethane,并发表了一篇 博士论文《一种名为 Ethane的网络架构》。这篇论文就是SDN的雏形,只是这时SDN 的概念还没有被提出来。在SANE的基础上, Martin博士实现了面向企业网管理的 Ethane 项目,该项目的目的是使网络管理员能够自主的定义网络流的走向和对应安全策略,并 将这些安全策略应用到全网中,从而能够方便的对网络进行控制。到2008年Nick教授 受SANE和 Ethane项目的启发,提出了 Open Flow协议、并于当前在 ACM SIGCOMM 会议上发表了题为《 Open Flow: Enabling Innovation in Campus Networks》的论文,首次 详细地介绍了 Open Flow的概念以及应用场景。在南向接口处使用 Openflow给网络带来 可编程特性。209年 Nick mckeown教授和他的科研团队提出了SDN概念。同年SDN 概念入围 Technology Review年度十大前沿技术,自此SDN在学术界和工业界开始得到 广泛认可。同年,Nick教授和 Martin博士在硅谷一起创办了 Nicira这是SDN历史上第 个初创公司。 2009年底,基于商业化的 Open Flow10版本正式发布,同时Nck团队还发布了 Python版的控制器POX以及开源网络虚拟化软件 Flow Visor,使得SDN的商业化进程 大大加快,也加速推广了SDN的应用。 Vieira发布了 Open vSwitch,至今仍占据开源 SDN软件数据面头把交椅。两位华人 James liao和杜林共同创办了Pica8公司。 2010年,Nick团队发布了 Wininet o同年, Google发布第一个分布式SDN控制器 Onix,Nick的博士 Guido等创办了 BisWitch,这是在 Vieira后第二个最有前景的初创 公司。2011年,开放网络基金会( Open Network Foundation,ONF)诞生,在 Nick McKeown 教授推动下, Google、 Facebook、NTT、 Verizon、德国电信、微软、雅虎等86家企业 加入了ONF。其主要致力于推动SDN架构技术的规范和发展。第一届开放网络峰会ONS
3 与编程接口。于是他来到斯坦福大学、打算寻找一条新的解决方案。 SDN 被戏称 Stanford Define Network,由此可见 SDN 的起源于斯坦福大学有很大 的关系。2006 年 SDN 诞生于由美国 GENI 在斯坦福大学资助的 Clean Slate 课题,这个 课题是由美国政府主导的 NGN(下一代网络)项目,其宗旨是通过优化或者改变现有 网络体系架构、重新塑造互联网。以 Nick McKeown 教授为首的科研团队则是 Clean State 的核心团队,其中 Martin Casado 在 RCP 和 4D 论文的基础上,提出了一个逻辑上集中 控制的企业安全解决方案 SANE,即利用一个集中控制器来解决集中控制网络安全问题, 打开了一扇解决集中控制安全的大门,为以后 SDN 的发展铺平道路。 2007 年 Casado 领导的一个关于网络安全与管理的科研项目 Ethane,并发表了一篇 博士论文《一种名为 Ethane 的网络架构》。这篇论文就是 SDN 的雏形,只是这时 SDN 的概念还没有被提出来。在 SANE 的基础上,Martin 博士实现了面向企业网管理的 Ethane 项目,该项目的目的是使网络管理员能够自主的定义网络流的走向和对应安全策略,并 将这些安全策略应用到全网中,从而能够方便的对网络进行控制。到 2008 年 Nick 教授 受 SANE 和 Ethane 项目的启发,提出了 OpenFlow 协议、并于当前在 ACM SIGCOMM 会议上发表了题为《OpenFlow: Enabling Innovation in Campus Networks》的论文,首次 详细地介绍了 OpenFlow 的概念以及应用场景。在南向接口处使用 Openflow 给网络带来 可编程特性。2009 年 Nick McKeown 教授和他的科研团队提出了 SDN 概念。同年 SDN 概念入围 Technology Review 年度十大前沿技术,自此 SDN 在学术界和工业界开始得到 广泛认可。同年,Nick 教授和 Martin 博士在硅谷一起创办了 Nicira 这是 SDN 历史上第 一个初创公司。 2009 年底,基于商业化的 OpenFlow1.0 版本正式发布,同时 Nick 团队还发布了 Python 版的控制器 POX 以及开源网络虚拟化软件 FlowVisor,使得 SDN 的商业化进程 大大加快,也加速推广了 SDN 的应用。Nicira 发布了 Open vSwitch,至今仍占据开源 SDN 软件数据面头把交椅。两位华人 James Liao 和杜林共同创办了 Pica8 公司。 2010 年,Nick 团队发布了 Mininet。同年,Google 发布第一个分布式 SDN 控制器 Onix,Nick 的博士 Guido 等创办了 BigSwitch,这是在 Nicira 后第二个最有前景的初创 公司。2011 年,开放网络基金会(Open Network Foundation,ONF)诞生,在 Nick McKeown 教授推动下,Google、Facebook、NTT、Verizon、德国电信、微软、雅虎等 86 家企业 加入了 ONF。其主要致力于推动 SDN 架构技术的规范和发展。第一届开放网络峰会 ONS
成功举办。ONF的成立让SDN受到了工业界的广泛关注。 2012年注定是SDN不同寻常的一年。先是 Google宣布其主干网络已经全面运行在 Open Flow上,并且通过10G网络链接分布在全球各地的12个数据中心,使广域线路的 利用率从30%提升到接近饱和。从而证明了 Open Flow不再仅仅是停留在学术界的一个 研究模型,而是已经完全具备了可以在产品环境中应用的技术成熟度。而后 VMware以 12.6亿美金的天价收购 Nicira。同年,爱立信员工 Dominique创办 NoviFlow,盛科发布 V330交换机, BisWitch发布了 Floodlight控制器,日本NTT公司发布了控制器Ryu 计算机网络领域顶级学术会议召开了第一届 HotAN研讨会, 2013年, Open Daylight项目诞生。思科收购 Insieme,发布了ACI产品方案。 VMware 发布了NSX产品。同年,AT&T发布了 Domain20计划。盛科的V350交换机夺得首届 ONS峰会 SDN Idol大奖。2014年,ONOS诞生。 Facebook在OCP项目中开放发布 Wedge 交换机设计细节,白盒交换机成为这一年的主旋律。华为发布了SDN的POF框架。 2015年,ONF发布了一个开源SDN项目社区, SD-WAN成为第二个成熟的SDN 应用市场。SDN与NFV融合成为趋势,这一年是NFV的大热年。2016年,国内SDN 初创公司云杉网络和大河云联分别获得资本的青睐,盛科网络完成3.1亿战略融资。SDN 初创公司 Velocloud、 Plexi、 Cumulus和 Biswitch都获得了新一轮融资。IEE召开 NFV-SDN会议,网络编程语言的研究受到学术圈重点关注。 SDN-IOT学术研讨会召开 92软件定义网络体系结构 921软件定义网络架构 网络设备一般由控制平面和数据平面组成。控制平面为数据平面制定转发策略,规 划转发路径,如路由协议、网关协议等。数据平面则是执行控制平面策略的实体,包括 数据的封装/解封装、查找转发表等。目前,设备的控制面和转发面都是由设备厂商自 行设计和开发,不同厂家实现的方式不尽相同。并且,软件化的网络控制面功能被固化 在设备中,使得设备使用者没有任何控制网络的能力。这种控制平面和数据平面紧耦合 的方式带来了网络管理复杂、网络测试繁杂、网络功能上线周期漫长等问题。因而,软 件定义网络应运而生。 2012年4月,开放网络基金会(ONF)发布白皮书《 Software- defined Network The New norm for Networks》,并对SDN的架构进行定义。SDN是一种将网络控制功 能与转发功能分离、实现控制可编程的新兴网络架构,其核心思想是将传统网络设备紧
4 成功举办。ONF 的成立让 SDN 受到了工业界的广泛关注。 2012 年注定是 SDN 不同寻常的一年。先是 Google 宣布其主干网络已经全面运行在 OpenFlow 上,并且通过 10G 网络链接分布在全球各地的 12 个数据中心,使广域线路的 利用率从 30%提升到接近饱和。从而证明了 OpenFlow 不再仅仅是停留在学术界的一个 研究模型,而是已经完全具备了可以在产品环境中应用的技术成熟度。而后 VMware 以 12.6 亿美金的天价收购 Nicira。同年,爱立信员工 Dominique 创办 NoviFlow,盛科发布 V330 交换机,BigSwitch 发布了 Floodlight 控制器,日本 NTT 公司发布了控制器 Ryu。 计算机网络领域顶级学术会议召开了第一届 HotSDN 研讨会。 2013 年,OpenDaylight 项目诞生。思科收购 Insieme,发布了 ACI 产品方案。VMware 发布了 NSX 产品。同年,AT&T 发布了 Domain2.0 计划。盛科的 V350 交换机夺得首届 ONS 峰会 SDN Idol 大奖。2014 年,ONOS 诞生。Facebook 在 OCP 项目中开放发布 Wedge 交换机设计细节,白盒交换机成为这一年的主旋律。华为发布了 SDN 的 POF 框架。 2015 年,ONF 发布了一个开源 SDN 项目社区,SD-WAN 成为第二个成熟的 SDN 应用市场。SDN 与 NFV 融合成为趋势,这一年是 NFV 的大热年。2016 年,国内 SDN 初创公司云杉网络和大河云联分别获得资本的青睐,盛科网络完成 3.1 亿战略融资。SDN 初创公司 VeloCloud、Plexxi、Cumulus 和 BigSwitch 都获得了新一轮融资。IEEE 召开 NFV-SDN 会议,网络编程语言的研究受到学术圈重点关注。SDN-IoT 学术研讨会召开。 9.2 软件定义网络体系结构 9.2.1 软件定义网络架构 网络设备一般由控制平面和数据平面组成。控制平面为数据平面制定转发策略,规 划转发路径,如路由协议、网关协议等。数据平面则是执行控制平面策略的实体,包括 数据的封装/解封装、查找转发表等。目前,设备的控制面和转发面都是由设备厂商自 行设计和开发,不同厂家实现的方式不尽相同。并且,软件化的网络控制面功能被固化 在设备中,使得设备使用者没有任何控制网络的能力。这种控制平面和数据平面紧耦合 的方式带来了网络管理复杂、网络测试繁杂、网络功能上线周期漫长等问题。因而,软 件定义网络应运而生。 2012 年 4 月,开放网络基金会(ONF)发布白皮书《Software-defined Networking: The New Norm for Networks》,并对 SDN 的架构进行定义。SDN 是一种将网络控制功 能与转发功能分离、实现控制可编程的新兴网络架构,其核心思想是将传统网络设备紧
耦合的网络架构解耦成应用、控制、转发三层分离的架构,并通过标准化实现网络的集 管控和网络应用的可编程,如图91所示。 应用层 商业应用 控制层 控制软件 网络服务 控制数据面接口 基础设施层 网络设备 网络设备 网络设备 网络设备 网络设备 图91SDN技术架构 由图91可以看出,ONF将SDN架构分为基础设施层(转发层)、控制层和应用 层 控制层作为SDN网络架构的核心,网络智能逻辑集中在控制层中,控制层基于软 件实现,拥有全局网络视图,向上通过应用程序编程接口( Application Programming Interface,API)向应用层开放抽象后的网络功能及服务,向下控制和协调底层网络设备 的转发行为 基础设施层由网络设备组成,负责按照控制层下发的策略进行数据转发。应用层则 由各种网络应用服务组成,用户通过控制层开放的接口开发各种网络应用,根据业务需 求修改网络转发行为。各层之间通过标准开放的接口实现资源分配和网络服务。其中控 制层和基础设施层之间的通信接口称为南向接口( South bound Interface),控制层和应 用层之间的通信接口称为北向接口( North bound Interface)。 Open Flow属于南向接口协 议,也是ONF给出的SDN架构中的首个标准协议,用于定义控制器和转发设备之间的 通信接口,支持直接访问和配置网络设备的转发平面(包括物理的和虚拟的交换机、路 由器)
5 耦合的网络架构解耦成应用、控制、转发三层分离的架构,并通过标准化实现网络的集 中管控和网络应用的可编程,如图 9.1 所示。 图 9.1 SDN 技术架构 由图 9.1 可以看出,ONF 将 SDN 架构分为基础设施层(转发层)、控制层和应用 层。 控制层作为 SDN 网络架构的核心,网络智能逻辑集中在控制层中,控制层基于软 件实现,拥有全局网络视图,向上通过应用程序编程接口(Application Programming Interface,API)向应用层开放抽象后的网络功能及服务,向下控制和协调底层网络设备 的转发行为。 基础设施层由网络设备组成,负责按照控制层下发的策略进行数据转发。应用层则 由各种网络应用服务组成,用户通过控制层开放的接口开发各种网络应用,根据业务需 求修改网络转发行为。各层之间通过标准开放的接口实现资源分配和网络服务。其中控 制层和基础设施层之间的通信接口称为南向接口(South bound Interface),控制层和应 用层之间的通信接口称为北向接口(North bound Interface)。OpenFlow 属于南向接口协 议,也是 ONF 给出的 SDN 架构中的首个标准协议,用于定义控制器和转发设备之间的 通信接口,支持直接访问和配置网络设备的转发平面(包括物理的和虚拟的交换机、路 由器)
SDN架构应用层能提供应用和服务(网管、安全、流控等)、控制层提供统一的管 理与控制(协议计算、策略下发、链路信息收集)、转发层提供网络设备(交换机、路 由器、防火墙等)进行数据转发。 网络设备:这里的网络设备其实可以抽象为转发面( Forwarding Plane),它不一定 是硬件交换机,也可以是虚拟交换机,比如OⅤS;也可以是别的物理设备,如路由器与 防火墙等。所有的转发表项都存储在网络设备里,用户数据报文在这里被处理与转发。 网络设备通过南向接口接受控制器发过来的指令,配置位于交换机内的转发表项,也可 以通过南向接口主动上报一些事件给控制器 转发面与控制面接口(南向接口):南向和北向是传统网络中的术语,这里被借用 过来。南向接口是指控制面跟数据转发面之间的接口,传统网络的南向接口并没有什么 标准化,而且都存在于各个设备商的私有代码中,对外也不可见,也就是说既不标准也 不开放,而在SDN架构中,希望南向接口是标准化的。只有这样才能让软件摆脱硬件 的约束,尽可能的做到随心所欲,做到应用为王,否则SDN到最后还是特定软件只能 在特定硬件上运行。从这一层开始向上,已经看不到硬件交换机和虚拟交换机的区别, 看到的只是抽象的转发面。因此,南向接口屏蔽了网络基础设施资源在类型、支持的协 议等方面的异构性,使得转发面的网络资源、设施资源能够无障碍地接收控制面的指令, 承载网络中的数据转发业务 控制器( Controllers):SDN架构的控制层包含一个或多个控制器。控制器之间可以 是主从关系(只能有一个主,可以有多个从),也可以是对等关系。一个控制器可以控 制多台设备,一台设备也可以被多个控制器控制。通常控制器运营在一台独立的服务器 上,比如一台 Linux服务器或 Windows服务器。控制器是SDN网络结构中的核心元素, 是各个大公司都想抢占的制高点。因为它向上能为应用程序提供可编程接口,向下控制 硬件设备,处于战略位置。控制器负责修改和控制底层网络设备的转发行为。控制器将 底层网络资源抽象成可操作的信息模型提供给上层应用程序,并将应用程序的网络需求 如查询网络状态、修改网络转发行为等转化成低层次的网络控制指令,下发到网络设备 中 控制层和应用层接口(北向接口):传统网络中北向接口是指交换机控制面跟网管 软件之间的接口,比如电信网络里面耳熟能详的SNMP、TL1等标准协议。在SDN架 构中,北向接口为上层应用提供统一的管理视图和编程接口,使得用户可以通过软件从
6 SDN 架构应用层能提供应用和服务(网管、安全、流控等)、控制层提供统一的管 理与控制(协议计算、策略下发、链路信息收集)、转发层提供网络设备(交换机、路 由器、防火墙等)进行数据转发。 网络设备:这里的网络设备其实可以抽象为转发面(Forwarding Plane),它不一定 是硬件交换机,也可以是虚拟交换机,比如 OVS;也可以是别的物理设备,如路由器与 防火墙等。所有的转发表项都存储在网络设备里,用户数据报文在这里被处理与转发。 网络设备通过南向接口接受控制器发过来的指令,配置位于交换机内的转发表项,也可 以通过南向接口主动上报一些事件给控制器。 转发面与控制面接口(南向接口):南向和北向是传统网络中的术语,这里被借用 过来。南向接口是指控制面跟数据转发面之间的接口,传统网络的南向接口并没有什么 标准化,而且都存在于各个设备商的私有代码中,对外也不可见,也就是说既不标准也 不开放,而在 SDN 架构中,希望南向接口是标准化的。只有这样才能让软件摆脱硬件 的约束,尽可能的做到随心所欲,做到应用为王,否则 SDN 到最后还是特定软件只能 在特定硬件上运行。从这一层开始向上,已经看不到硬件交换机和虚拟交换机的区别, 看到的只是抽象的转发面。因此,南向接口屏蔽了网络基础设施资源在类型、支持的协 议等方面的异构性,使得转发面的网络资源、设施资源能够无障碍地接收控制面的指令, 承载网络中的数据转发业务。 控制器(Controllers):SDN 架构的控制层包含一个或多个控制器。控制器之间可以 是主从关系(只能有一个主,可以有多个从),也可以是对等关系。一个控制器可以控 制多台设备,一台设备也可以被多个控制器控制。通常控制器运营在一台独立的服务器 上,比如一台 Linux 服务器或 Windows 服务器。控制器是 SDN 网络结构中的核心元素, 是各个大公司都想抢占的制高点。因为它向上能为应用程序提供可编程接口,向下控制 硬件设备,处于战略位置。控制器负责修改和控制底层网络设备的转发行为。控制器将 底层网络资源抽象成可操作的信息模型提供给上层应用程序,并将应用程序的网络需求 如查询网络状态、修改网络转发行为等转化成低层次的网络控制指令,下发到网络设备 中。 控制层和应用层接口(北向接口):传统网络中北向接口是指交换机控制面跟网管 软件之间的接口,比如电信网络里面耳熟能详的 SNMP、TL1 等标准协议。在 SDN 架 构中,北向接口为上层应用提供统一的管理视图和编程接口,使得用户可以通过软件从
逻辑上来定义网络控制和网络服务。它实际上是控制器与应用程序之间的接口,目前该 接口尚未标准化,这也是一些标准组织想要推进的事情,但是北向接口的标准化要比南 向接口复杂得多,因为转发平面与交换机通信,交换机功能更加明确、更容易抽象出通 用接口,而应用层面则变化太多。 应用服务( Services): Services也就是我们说的应用层,之所以用 Service而不是 Application这个词,是因为 Service比 Application更能表达出网络的本质,是要为用户 提供服务的,这里的 Service就有很多了,包括 load balancing(负载均衡)、 security(安 全)、 monitoring(网络运行情况监测)、 performance management(包括拥塞,延时等网 络性能的管理和监测)、LLDP(拓扑发现)等很多服务,这些服务最终都以应用程序的 方式表达出来,代替传统的网管软件来对网络进行控制和管理。它们可以跟控制器位于 同一台服务器上,也可以运行在别的服务器上通过通信协议来跟控制器通信。 ONF定义的SDN具有如下几个明显的特征。 ①控制转发分高:控制面与转发面解耦,不再统一集成在网络设备中。 ②转发面抽象:转发面对于上层应用和网络策略而言相当于一个逻辑交换机,无 需理解和处理各种网络协议。对转发设备的具体实现方式也没有要求,只需支持流表转 发 ③集中控制:基于软件的控制器对网络进行逻辑上的集中控制,拥有全局网络视 图,有助于简化网络设计和运维,优化网络资源,并能实时快速响应和实现业务快速部 署。 ④开放可编程:控制面和转发面支持标准开放的API,可通过软件编程实现常见 的网络服务和客户化定制服务,如路由、组播、安全、访问控制、带宽管理、流量工程 服务质量、处理器和存储优化、能源使用,以及各种形式的策略管理,以满足业务目标 的客户化定制等 ⑤支持通过上层业务编排系统,如云管理平台等管理整个网络,通过软件编程方 式为核心网络及应用的创新提供了良好的平台。 由ONF的定义可看出,SDN并不是一项具体的网络技术,而是一个框架,是区别 于现有网络体系的新的网络设计理念。 OpenFlow也不等于SDN,只是ONF定义的SDN 框架中的一个南向接口标准协议,在SDN中甚至可以不使用 Open Flow而采用其它南向 接口协议
7 逻辑上来定义网络控制和网络服务。它实际上是控制器与应用程序之间的接口,目前该 接口尚未标准化,这也是一些标准组织想要推进的事情,但是北向接口的标准化要比南 向接口复杂得多,因为转发平面与交换机通信,交换机功能更加明确、更容易抽象出通 用接口,而应用层面则变化太多。 应用服务(Services):Services 也就是我们说的应用层,之所以用 Service 而不是 Application 这个词,是因为 Service 比 Application 更能表达出网络的本质,是要为用户 提供服务的,这里的 Service 就有很多了,包括 load balancing(负载均衡)、security(安 全)、monitoring(网络运行情况监测)、performance management(包括拥塞,延时等网 络性能的管理和监测)、LLDP(拓扑发现)等很多服务,这些服务最终都以应用程序的 方式表达出来,代替传统的网管软件来对网络进行控制和管理。它们可以跟控制器位于 同一台服务器上,也可以运行在别的服务器上通过通信协议来跟控制器通信。 ONF 定义的 SDN 具有如下几个明显的特征。 ① 控制转发分离:控制面与转发面解耦,不再统一集成在网络设备中。 ② 转发面抽象:转发面对于上层应用和网络策略而言相当于一个逻辑交换机,无 需理解和处理各种网络协议。对转发设备的具体实现方式也没有要求,只需支持流表转 发。 ③ 集中控制:基于软件的控制器对网络进行逻辑上的集中控制,拥有全局网络视 图,有助于简化网络设计和运维,优化网络资源,并能实时快速响应和实现业务快速部 署。 ④ 开放可编程:控制面和转发面支持标准开放的 API,可通过软件编程实现常见 的网络服务和客户化定制服务,如路由、组播、安全、访问控制、带宽管理、流量工程、 服务质量、处理器和存储优化、能源使用,以及各种形式的策略管理,以满足业务目标 的客户化定制等。 ⑤ 支持通过上层业务编排系统,如云管理平台等管理整个网络,通过软件编程方 式为核心网络及应用的创新提供了良好的平台。 由 ONF 的定义可看出,SDN 并不是一项具体的网络技术,而是一个框架,是区别 于现有网络体系的新的网络设计理念。OpenFlow 也不等于 SDN,只是 ONF 定义的 SDN 框架中的一个南向接口标准协议,在 SDN 中甚至可以不使用 OpenFlow 而采用其它南向 接口协议
在目前的网络体系中,交换机的输入端口接收到一个数据分组后,转发面查找路由 表/转发表,获取相关数据分组的转发规则。如果在路由表/转发表中存在相关记录,则 交换机的转发芯片将按照表记录将数据分组转发出去。如果不存在相关记录,交换机的 控制面将通过分布式算法,如链路状态算法、距离向量算法、广播反向地址解析消息等, 建立与数据分组相关的路由/转发记录 在SDN网络架构下,情况则发生了改变。首先,传统的交换机中的控制面被分离 出来。在物理结构上,可以通过软件的方式实现交换机的控制面,并将其部署于服务器 上,实现对多个交换机的集中控制和管理。其次,数据的转发方式发生了变化。在SDN 网络架构下,转发设备仅具有转发功能。当交换机收到数据分组后,交换机查找本地的 转发表,如果有相关的记录,则按照记录进行转发。如果没有相关记录,交换机将向控 制器询问对该数据分组的处理方式。在SDN架构中,控制器控制着多个交换机,拥有 全局的网络视图。因此,控制器可以基于该集中的视图为该数据分组规划转发策略,并 将该策略下发至所有与该策略有关的交换设备。 与传统的网络相比,软件定义网络体系结构的另一特点在于网络的可编程。SDN网 络架构中,标准化的北向接口给开发人员提供了良好的编程接口,使得开发人员可以通 过软件的方式实现各种网络应用,如防火墙、流量清洗、网络监控等。 在软件定义网络中,用户的可编程性带来的好处主要体现为两个方面。 ①网络功能软件化 在传统网络中,很多网络功能,如防火墙、深度数据包检测(DPIⅠ)、负载均衡等 都是通过专用的设备来实现,带来了网络设备类型多样、网络设备的管理复杂、网络功 能上线周期漫长等问题。在软件定义网络中,网络功能的软件化使得各种网络功能能够 部署在一套硬件资源上,实现对基础设施资源的共享,提高资源利用率,减少网络设备, 降低管理复杂度等。 网络测试 为了在真实的网络环境中测试网络新协议或算法,需要在不影响网络正常运行的条 件下将测试设备部署至网络环境中,并且能够对网络中的真实流量进行控制。这在传统 的网络架构中是无法实施的。因而,给学术界的网络研究带来了一定的障碍。在软件定 义网络中,网络的可编程使得科研人员可以利用开放的网络接口,通过软件的方式实现 新的网络协议、网络功能,并方便地将这些新的方案无缝地引入真实的网络环境中
8 在目前的网络体系中,交换机的输入端口接收到一个数据分组后,转发面查找路由 表/转发表,获取相关数据分组的转发规则。如果在路由表/转发表中存在相关记录,则 交换机的转发芯片将按照表记录将数据分组转发出去。如果不存在相关记录,交换机的 控制面将通过分布式算法,如链路状态算法、距离向量算法、广播反向地址解析消息等, 建立与数据分组相关的路由/转发记录。 在 SDN 网络架构下,情况则发生了改变。首先,传统的交换机中的控制面被分离 出来。在物理结构上,可以通过软件的方式实现交换机的控制面,并将其部署于服务器 上,实现对多个交换机的集中控制和管理。其次,数据的转发方式发生了变化。在 SDN 网络架构下,转发设备仅具有转发功能。当交换机收到数据分组后,交换机查找本地的 转发表,如果有相关的记录,则按照记录进行转发。如果没有相关记录,交换机将向控 制器询问对该数据分组的处理方式。在 SDN 架构中,控制器控制着多个交换机,拥有 全局的网络视图。因此,控制器可以基于该集中的视图为该数据分组规划转发策略,并 将该策略下发至所有与该策略有关的交换设备。 与传统的网络相比,软件定义网络体系结构的另一特点在于网络的可编程。SDN 网 络架构中,标准化的北向接口给开发人员提供了良好的编程接口,使得开发人员可以通 过软件的方式实现各种网络应用,如防火墙、流量清洗、网络监控等。 在软件定义网络中,用户的可编程性带来的好处主要体现为两个方面。 ① 网络功能软件化 在传统网络中,很多网络功能,如防火墙、深度数据包检测(DPI)、负载均衡等 都是通过专用的设备来实现,带来了网络设备类型多样、网络设备的管理复杂、网络功 能上线周期漫长等问题。在软件定义网络中,网络功能的软件化使得各种网络功能能够 部署在一套硬件资源上,实现对基础设施资源的共享,提高资源利用率,减少网络设备, 降低管理复杂度等。 ② 网络测试 为了在真实的网络环境中测试网络新协议或算法,需要在不影响网络正常运行的条 件下将测试设备部署至网络环境中,并且能够对网络中的真实流量进行控制。这在传统 的网络架构中是无法实施的。因而,给学术界的网络研究带来了一定的障碍。在软件定 义网络中,网络的可编程使得科研人员可以利用开放的网络接口,通过软件的方式实现 新的网络协议、网络功能,并方便地将这些新的方案无缝地引入真实的网络环境中
922软件定义网络的特点 软件定义网络并不是一项具体的网络技术,它是一种网络设计理念,是人们针对现 有互联网体系结构设计的不足而提出的一种改进思路,希望从架构、设备等层面对现有 网络做出深层次的改变,使其变得更加开放、通用、灵活和支持创新。只要网络设备可 以集中软件管理、可编程化、控制转发层面分开,可以认为这个网络是一个SDN网络。 所以说SDN并不是一个具体的技术,不是一个具体的协议,而是一个设计思想、一种 框架结构,这种框架存在集中控制、开放接口和网络虚拟化三大基本特点。 ①集中控制 逻辑上集中的控制能够支持获得网络资源的全局信息并且根据业务需求进行资源 的全局调配和优化。例如流量工程、负载均衡等。同时,集中控制还使得整个网络在逻 辑上被视作是一台设备进行运行和维护,无须对物理设备进行现场配置,从而提升了网 络控制的便捷性。 ②开放接口 通过开放的南向和北向接口,能够实现应用和网络的无缝集成,使应用能告知网络 如何运行才能更好地满足应用的需求。比如业务的带宽、时延需求,计费对路由的影响 等。另外,支持用户基于开放接口自行开发网络业务并调用资源,加快了新业务的上线 周期。 ③网络虚拟化 通过南向接口的统一和开放,屏蔽了底层物理转发设备的差异,实现了底层网络对 上层应用的透明化。逻辑网络和物理网络分离后,逻辑网络可以根据业务需要进行配置 迁移,不再受具体设备物理位置的限制。同时,逻辑网络还支持多租户共享,支持租户 网络的定制需求。 简而言之,SDN支持控制平面与转发平面的分离,使得对网络设备的集中控制成为 可能。以 Open Flow为代表的南向接口的提出使得底层转发设备可以被统一控制和管理 而其具体的物理实现将被透明化,从而实现设备的虚拟化。多种多样的开放接口,将推 动网络能力被便捷地调用,支持网络业务的创新。 9.3 Open Flow协议 Open Flow是一种新型网络协议,起源于斯坦福大学的 Clean Slate项目组。 Open Flow 提出的出发点是由于研究人员无法改变现有网络设备进行创新网络架构和协议的研究
9 9.2.2 软件定义网络的特点 软件定义网络并不是一项具体的网络技术,它是一种网络设计理念,是人们针对现 有互联网体系结构设计的不足而提出的一种改进思路,希望从架构、设备等层面对现有 网络做出深层次的改变,使其变得更加开放、通用、灵活和支持创新。只要网络设备可 以集中软件管理、可编程化、控制转发层面分开,可以认为这个网络是一个 SDN 网络。 所以说 SDN 并不是一个具体的技术,不是一个具体的协议,而是一个设计思想、一种 框架结构,这种框架存在集中控制、开放接口和网络虚拟化三大基本特点。 ① 集中控制 逻辑上集中的控制能够支持获得网络资源的全局信息并且根据业务需求进行资源 的全局调配和优化。例如流量工程、负载均衡等。同时,集中控制还使得整个网络在逻 辑上被视作是一台设备进行运行和维护,无须对物理设备进行现场配置,从而提升了网 络控制的便捷性。 ② 开放接口 通过开放的南向和北向接口,能够实现应用和网络的无缝集成,使应用能告知网络 如何运行才能更好地满足应用的需求。比如业务的带宽、时延需求,计费对路由的影响 等。另外,支持用户基于开放接口自行开发网络业务并调用资源,加快了新业务的上线 周期。 ③ 网络虚拟化 通过南向接口的统一和开放,屏蔽了底层物理转发设备的差异,实现了底层网络对 上层应用的透明化。逻辑网络和物理网络分离后,逻辑网络可以根据业务需要进行配置、 迁移,不再受具体设备物理位置的限制。同时,逻辑网络还支持多租户共享,支持租户 网络的定制需求。 简而言之,SDN 支持控制平面与转发平面的分离,使得对网络设备的集中控制成为 可能。以 OpenFlow 为代表的南向接口的提出使得底层转发设备可以被统一控制和管理 而其具体的物理实现将被透明化,从而实现设备的虚拟化。多种多样的开放接口,将推 动网络能力被便捷地调用,支持网络业务的创新。 9.3 OpenFlow 协议 OpenFlow 是一种新型网络协议,起源于斯坦福大学的 Clean Slate 项目组。OpenFlow 提出的出发点是由于研究人员无法改变现有网络设备进行创新网络架构和协议的研究