文章目录
-
- SDN概述
- SDN基本原理
-
- 2.1 SDN定义与架构
-
- 2.1.1 SDN定义
- 2.1.2 SDN架构
- 2.2 数据控制分离
-
- 2.2.2 SDN 数控分离
- 2.3 络可编程
-
- 2.3.2 络可编程历史
- 2.3.3 SDN可编程
本书为北京邮电大学黄韬老师主编。本书的电子版不在 上流通。
SDN概述
络最初设计的目标只是实现单纯的端到端数据传送,IP 数据分组主要包含源主机和目的主机的 络地址,互联 中几乎所有的流量都是建立在 TCP/IP 架构之上,尽管设备性能上有了飞跃性的提高,但 络本身的架构却没有什么突破性的变化。然而随着 络中传输的流量越来越大,业务应用对 络的要求越来越高,传统的依靠端到端连接和尽力而为路由转发的 络体系架构,越来越难以满足日益出现的新需求。正如上面提到的亚马逊多租户数据中心应用场景,其对 络提出了更高的需求,它要求不同租户 络间的高度隔离性,以保证各租户差异性的服务质量(QoS),显然如果只依靠端到端的传统 络是难以满足这种需求的。为了解决租户之间的隔离性问题和更复杂的 络需求,在这些年中,各种新技术层出不穷。例如,VLAN(Virtual LAN,虚拟局域 )技术就是为了解决二层局域 内的隔离性问题而提出的,它主要采用 VLAN 标签的方法隔离 络中的不同用户,但是由于标签数量有限,因此在大规模的 络中,VLAN 技术不能很好的工作,于是近年来业界又进一步提出了 VXLAN(Virtual eXtensible LAN)、NVGRE 等改进的 络虚拟化技术。
由于厂商设备的封闭性 ,研究人员和管理人员事实上根本无法添加并实现自己新的协议,由此推动了业界 ForCES(Forwarding and Control Element Separation,转发控制单元分离)和 RCP(Routing Control Platform,路由控制平台)两种新技术的产生。 核心理念是通过尝试分离 络设备的控制逻辑和转发逻辑,并采用标准的接口 API,以提高灵活性。 【最终还是因为厂商不愿意开放推动失败】
2006年,斯坦福的Martin Casado着手Ethane的项目,在该系统架构种,控制与转发完全解耦,控制器通过Pol-Ethane语言向交换机分发策略。实际上成为了SDN的雏形。2007年,Martin 联合 Nick McKeown、Scott Shenker 创建了一个致力于 络虚拟化技术创新的公司——Nicira,最早提出了SDN的概念。08年,Nick在sigcom会议发表了openflow, OpenFlow协议是为了简化 Ethane 项目中的交换机设计而被提出的,它是一个控制平面和数据平面之间的交互协议,它使得控制和转发完全分离,从而控制器专注于决策控制,而交换机完全专注于转发工作。
2013年,google将利用SDN技术解决数据中心之间流量问题的方案公布——B4:Experience with aGlobally-Deployed Software Defined WAN
SDN 系统架构分为一个集中式的控制平面(通常是控制器)和分布式的数据平面,控制器位于上层应用与物理设备之间,控制器首先负责把 络中的各种功能进行抽象,建立具体的操作模型,并向上层提供编程接口,上层应用着重根据业务需求通过控制器与物理设备进行交互, 络中的设备通过控制器向应用平面传递信息。SDN 的两个突出属性是数据平面和控制平面分离以及 络的可编程性。
SDN基本原理
2.1 SDN定义与架构
2.1.1 SDN定义
SDN 与传统 络的最大区别就在于可以通过编写软件的方式来灵活定义 络设备的转发功能。在传统 络中,控制平面功能是分布式地运行在各个 络节点(集线器(Hub)、交换机(Switch)、路由器(Router))中的,因此新型 络功能的部署需要所有相应 络设备的升级,导致 络创新往往难以落地。而 SDN 将 络设备的控制平面与转发平面分离,并将控制平面集中实现,这样新型 络功能的部署只需要在控制节点进行集中的软件升级,从而实现快速灵活地定制 络功能。另外,SDN 体系架构还具有很强的开放性,它通过对整个 络进行抽象,为用户提供完备的编程接口,使用户可以根据上层的业务与应用个性化地定制 络资源来满足其特有的需求。由于其开放可编程的特性,SDN 有可能打破某些厂商对设备、协议以及软件等方面的垄断,从而使更多的人可以参与到 络技术的研发工作中来 。
SDN架构中,控制器通过控制—转发通信接口对转发平面上的 络设备进行集中式控制,这部分控制信令的流量发生在控制器与 络设备之间,独立于终端间通信产生的数据流量, 络设备通过接收控制信令生成转发表,不再使用复杂的分布式 络协议来决策数据转发。
SDN不是一种 络协议,是一种 络体系架构,包含多种接口协议
2.1.2 SDN架构
1.数据平面
若干 元(Network Element)组成,每个 元可以包含一个或多个SDN Datapath,是一个被管理的资源在逻辑上的抽象集合。每个 SDN Datapath 是一个逻辑上的 络设备,它没有控制能力,只是单纯用来转发和处理数据,它在逻辑上代表全部或部分的物理资源,可以包括与转发相关的各类计算、存储、 络功能等虚拟化资源。
2.控制平面
SDN控制器。逻辑上集中的实体,承担两个任务:一是将SDN应用层请求转到SDN datapath,而是为SDN应用提供底层 络的抽象模型(状态or事件)。一个SDN控制器包含,北向接口NB代理,SDN控制逻辑,控制数据平面接口驱动。
所有控制器实例可以在同一位置,也可以是多个实例分散在不同位置。
3.应用平面
由若干SDN应用构成。一个SDN应用可以包含多个北向接口驱动,同时SDN应用也可以对本身的功能进行抽象、封装来对外提供北向代理接口,形成了更高级的北向接口。
4.管理平面
主要负责一系列静态的工作,比较适合在应用、控制、数据平面外实现,例如,进行 元初始配置,指定SDN datapath控制器,定义SDN控制器,SDN应用的控制范围。
几个平面之间的接口实现都由驱动和代理配对构成,driver-agent,其中代理运行在南向的、底层的部分,而驱动则表示运行在北向的、上层的部分。
1.SDN控制数据平面接口 CDPI
对所有转发行为进行控制、设备性能查询、统计 告、时间通知等。SDN一个非常重要的价值就体现在CDPI实现上,它应该是一个开放的、与厂商无关的接口
2.北向接口 NBI
负责提供抽象的 路视图,使应用能直接控制 络的行为。
SDN 控制器负责收集 络的实时状态,将其开放并通知给上层应用,同时把上层应用程序翻译成更为底层、低级的规则或者设备硬件指令下发给底层 络设备。考虑到可扩展性、可靠性等问题,SDN 控制器可以不是物理上集中的,而是可以通过分布式的多个控制器实例协同工作来实现逻辑上的集中。通过 SDN 架构,控制策略建立在整个 络视图之上,而不再是传统的分布式控制策略,控制平面演变成了一个单一、逻辑集中的 络操作系统,这个操作系统可以实现对底层 络资源的抽象隔离,并在全局 络视图的基础上有效解决资源冲突与高效分配问题。
2.2 数据控制分离
传统 络中节点内部,数控一直分离,分布在同一个 络设备的机箱中,独立开来的处理器或存储卡上。
- 北向接口是直接为上层业务应用服务的,设计需要密切考虑业务应用的需求。 北向接口方面还缺少一个业界公认的标准,不同的控制器厂商都有各自的北向接口。
- 南向接口协议是集中式的控制平面和分布式的转发设备之间交互的接口协议,用于实现控制器对底层转发设备的管控。
- SDN的控制平面可以使分布式的。 目前在 SDN的东西向接口的研究方面,产业界还没有形成统一的标准,学术界更多地是从多种控制器处理机制的异同以及语言效率的角度,抽象出统一的控制器东西向接口协议及其消息封装格式,并在发送和接收控制消息时进行容错率校验和解析,实现基础设施透明的多控制器并存模式下的组 。
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8591 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!