SDN概述
1.为什么会出现SDN?
2.什么是软件定义网络?
网络系统的4个生命周期:
- 需求调研
- 对网络互联范围、互联规模
- 拟承载的应用
- 对象
- 类型
- 用户规模
- 实现模式
- 服务质量
- 安全要求
- …..
- 规划设计
- 网络架构与拓扑
- IP和路由
- 安全和Qos策略
在设计过程中体现一定的冗余,以便对未来的规模和业务扩展留下一定的弹性空间
- 部署实施
- 根据规划与设计方案进行落地包括对设备的上架、配置、连通,对系统的集成、上线、测试。
- 运行维护
对网络状态的监控与管理,包括设备、用户、流量、应用。发现并排除网络故障与隐患,确保网络对系统可靠有效的运行。(通常网络在运行了一定的年限后,不能再满足扩增或变化的应用需求而需要升级或被取代)
网络亚健康问题:多元、多变的网络上层应用于业务与相对稳定的网络架构设计以及系统运维之间的矛盾。
- 上层应用需要网络的规模扩展和服务能力上具有很大的灵活性,能过体现客户为中心提供应用服务和业务体现的自适应性和动态性。
以云计算为例:- 三种典型的模式:
- IaaS
- PaaS
- SaaS
- 无论哪种模式都需要具备按需进行资源分配与调度的能力,需要借助资源池化、网络功能虚拟化、虚拟主机自动恢复和动态可迁移、不同的用户或应用之间的安全隔离。来确保系统的自动化部署和资源的动态适配。
- 三种典型的模式:
一方面:传统网络规划与设计是预设定于好的也就是说是静态的;调整与对应的空间有限;人工为主、自动为辅。加上在分布式网络架构中网络设备类型的多样性、厂家来源的多样性。所以调整的复杂度和难度比较大。
归结起来又两方面的根本原因:
传统网络及其设备的只可配置、不可编程(网络的部署、配置与管理需要落到每台设备上区域手工完成,而每台设备紧耦合了三个平面)
1.管理平面(命令行界面、图形界面)
2.控制平面(在管理平面输入的配置与管理指令会在控制平面生成相应的控制表,例如:数据链路层的MAC交 换表、网络层的路由表、MPLS标签表、ACL访问控制表等)
3.数据平面:数据平面数据转发的依据:数据平面会根据控制平面的相关控制表给出的信息,进行具体的报文处 理或转发
矛盾的根源不在于网络的生命周期而是来自我们对网络的设计思想、网络架构、管理模式。
解决方法
针对上述问题的根源软件定义网络技术(SDN)引入了两项重要的改变和创新:
- 能够弹性响应上层应用变化的网络可编程从而实现随心而变,随应用而动
- 在分布式网络设备连接上引入一个集中统一的控制与管理层来实现对网络的全局控制与管理和对上层应用与业务的动态相应。
为此需要对网络设备的管理、控制、数据平面进行解耦:
- 在设备中仅保留原来的数据层面
- 将控制平面和管理平面放到集中控制管理层
SDN的三层网络架构
- 最上层是应用层:包含了网络所要承载的多元业务与应用
- 最下层是网络的基础设施层:这些设备已经不是传统的网络设备,它们的控制平面和管理平面都已经被拉出。这些设备变得简单只承担报转发功能。
- 被抽取出的控制与管理平面到中间的集中控制层(SDN集中控制器)这个控制层非常关键,它在应用业务层和基础设施层起到“承上启下”的全局管控作用。
- 在控制器与应用层之间提供了不同的API接口(北向接口),通过这些API(北向接口)实现控制器与上层应用的交互。
- 在控制器与基础设施层之间提供了控制数据平面接口(南向接口):所有在SDN控制器里面通过软件定义生成的流表都通过南向接口下发到基础设施层的设备上,引导和决定设备的包转发行为。
通过这种控、管、转的分离,网络的控制与管理效率会更高;弹性的相应也会更好。
新一代网络架构:
- 底层网络设备通过解耦实现简单化
- 网络的管理通过集中控制器实现了全局化
- 网络的运维通过SDN南向接口与协议实现的自动化
- 网络的应用通过SDN北向接口与协议实现了更加弹性的人性化
1.2SDN的标准化
SDN的标准化组织机构:
- ONF:是SDN的专门的标准化的组织、是最活跃、最具有影响力的组织,是SDN标准化和产业化最主要的推动力量。
- IETF:是全球最具权威的技术标准化组织。
- ITU-T:国际电信联盟
- ETSI:欧洲电信标准化协会
标准化的重要作用:提供了开放架构下的技术,互操作性,和系统的兼容性。
1.3SDN的多种基本架构
- ONF定义的基于OpenFlow的三层架构
技术特点:- 实现了转发与控制的分离
- 对转发面进行了标准化
由于实现了逻辑的集中控制所以有以下几个优点:- 在流量调度方面有优势
- 开放生态链
- IETF提出的技术架构
主要思想:- 开放现有网络设备的能力
- 向应用层提供标准开放的API
优点:- 充分利用了现有的网络设备和路由协议(能和现有网络进行兼容)
- 便于快速实现
- NICIRA(已被vmware收购)提出的Ocerlay技术架构
技术架构:(在传统网络上抽象出虚拟网络)- 网络边缘软件化
- Overlay技术(基于网络叠加)
优点: - 实现了与物理网络的解耦,对物理设备的要求降到最低
- 部署非常灵活
- ETSI的NFV(网络功能虚拟化:Network Function Virtualization)技术架构
下面详细简绍各架构:ONF定义的SDN三层架构
基本框架:
这是一种新型的网络创新架构,实现了网络设备控制与转发的分离;这是网络虚拟化的一种实现方式,核心技术是OpenFlow,控制层和转发层之间通过OpenFlow协议进行通信;控制与转发分离后可以实现逻辑上的集中控制,因此能实现网络流量的灵活控制,使网络作为管道变得更加智能。
体系架构:
四个平面
- 数据平面
是由若干网元(Network Element)组成,每个网元包含一个或多个SDN数据路径(SDN Datapath)。SDN Datapath是逻辑上的网络设备,负责转发和处理数据无控制能力,一个SDN DataPath包含控制数据平面接口(Control Data Plane Interface,CDPI)、代理、转发引擎(Forwarding Engine)表和处理功能(Processing Function) SDN数据面(转发面)的关键技术:对数据面进行抽象建模。
- 数据平面
控制平面
控制平面包括北向接口(Northbound Interfaces,NBI)代理、SDN控制逻辑(Control Logic)、控制数据平面接口驱动三部分。控制平面有两个任务:1.将SDN应用层请求转换到SDN Datapath;2.为SDN应用提供底层网络的抽象模型(状态或事件)
控制平面的关键技术:控制器(网络操作系统(NOS)或网络控制器),SDN控制器是整个网络的大脑,网络的智能或核心实现都在SDN控制器中。开源的SDN控制器:NOX、POX、FloodLight、RYU、OpenDayLight、ONOS等。- 应用平面
应用平面包括SDN应用逻辑与北向接口(NBI)驱动。应用平面通过北向接口与SDN控制器进行交互。在应用逻辑的实现上可以基于SDN理念改造传统应用的交付能力比如负载均衡、访问控制、应用加速。具体比如:可以通过软件实现的应用交付能力,降低系统的开支和成本;实现网元的虚拟化和集中化控制;支持网络系统的快速部署,在故障出现时能够快速并发现与解决问题;提供更高的智能,支持自动化运作,实现应用可感知的网络,这些都是SDN应用逻辑的具体实现。 - 管理平面
管理平面负责一系列静态的工作例如网元的初始化配置;指定SDN DataPath控制器;定义SDN控制器及SDN应用的控制范围.
- 应用平面
两大接口:
1.数据平面与控制平面的接口(CDPI):南向接口
主要功能:对所有的转发行为进行控制、设备性能查询、统计报告、事件通知等。ONF架构最突出的特点: 标准化的南向接口协议(Openflow),不依赖于底层具体厂商的交换设备。 南向接口的关键技术:转发面 开放协议(南向接口协议):该协议允许控制器控制交换机的配置以及相关 转发行为,比如ONF定义的 转发面开放协议是Openflow它将转发面抽象为一个或多个流表组成的转发模型。网络控制器通过Openflow 协议下发流表到具体的交换机从而控制交换机的具体行为。
2.控制平面与应用层面的接口(NBI):北向接口
主要功能:负责向应用层提供抽象的网络视图,使应用能直接控制网络的行为。北向接口是一个开放的与厂 商无关的接口。北向接口的关键技术:SDN北向接口的设计:设计的目的是将网络能力封装后开放接口,供 上层业务调用。目前REST API 成为SDN北向接口的主流设计。以Floodlight的北向API集合为例。
2.2SDN的核心思想
SDN的网络架构中包含可那些核心的设计思想呢?
解耦
解耦是将控制平面和数据平面进行分离,主要是为了解决传统网络中控制平面和数据平面在紧耦合上导致的问题。解耦后控制平面负责上层的控制决策;数据平面负责数据的交换转发,两个平面之间不在相互依赖,双发只要遵循一定的开放接口即可进行通信。
在传统网络中:
在SDN网络中:解耦带来的问题与挑战:
1. 控制平面的服务能力可能成为网路性能的瓶颈,而解决的办法之一就是在控制平面上布置多个分布式的控制器。 2. 上述提到的多控制器之间如何交互路由信息,如何保持分布式网络状态节点的一致性。 3. 由于控制平面在远端,控制平面的响应延迟,导致数据平面的可用性问题。
总体来说控制平面与数据平面的解耦,实现了网络的逻辑集中控制。从发展的角度来看解耦后两个平面可以独立完成体系结构与技术发展的冶进。有利于网络的技术创新技术发展。
抽象
SDN借鉴了计算机系统的抽象技术,从用户的视角来看可以把网络看成一个类似计算机操作系统的分层系统,如图:
在各个层上进行进一步的抽象,主要实现了三种类型的抽象:
转发抽象
转发抽象是将数据平面抽象为通用的转发模型,比如OpenFlow的交换机模型,转发行为与硬件无关,同时各种转发表象如MAC表、路由表、MPLS标签表、ACL访问控制链表等抽象为统一的流表。
分布状态抽象
控制层将设备的分布状态抽象成全局的网络视图从而实现逻辑的集中控制。抽象功能具体可通过网络操作系统(NOS)来实现,主要有两方面功能一是实现下发控制命令;二是通过手机设备和链路状态,为上层应用提供全局网络视图。- 配置抽象
配置抽象是指应用层对网络行为的表达,可以通过网络编程语言来实现,用户或者应用程序可以基于简化抽象模型,将抽象配置映射到(为)物理配置。
在SDN前我们对网络行为的表达主要通过命令行配置后或者通过网管协议接口编写简单的脚本来实现。
而在SDN中可以利用控制器提供的API通过python、java、c++等编程语言来实现,而且这种编程是基于控制层提供的全局网络视图而不是基于单个设备的编程。
抽象的思想不仅体现在ONF提出的三层网络架构中,在Overlay架构中也给予了抽象的思想。在Overlay架构中Overlay网络在Underlay的基础上进行了抽象,应用程序不需要关注底层网络的实现细节。
网络的可编程
可编程,SDN在数据平面和控制平面解耦后,提供了开放的可编程接口,这也是SDN区别于传统网络的重要思想之一。
传统网络的管理接口主要是命令行和网络管理协议等,也可以通过Shell脚本和Python脚本实现一些运维或管理功能,但都属于一种非常初级的网络编程方式。而网络管理员需要的是类似于软件编程那样更高级的编程方式。这种编程方式的实现是基于整个网络的而不是基于某一设备的,因而需要对网络功能进行抽象来实现网络的可编程。
在SDN出现之前学术界已经对网络的可编程进行了大量相关研究,其中最具代表的是主动网络和4D架构。主动网络的主要思想是开放网络节点的可编程接口;允许网络节点在用户数据上根据用户有需求执行相应的计算。4D架构将网络系统划分为四个平面:数据平面、发现平面、扩展平面、决策平面。这些研究都对SDN的可编程奠定了基础。
在SDN中有哪些可编程接口呢?
SDN可编程接口主要包括:
- 北向接口
北向接口的实现方式主要有REST API、JAVA API等.
- 南向接口
南向接口的实现协议主要有OpenFlow、OF-Config、OVSDB等。
- 东西向接口(研究阶段没有形成统一标准)
东西向接口主要负责多控制器或控制器与外部组件之间的通信。目前还在研究阶段没有形成统一的标准。
- 除了三大接口支持可编程外,SDN的数据平面也支持可编程。
目前数据平面的可编程技术主要包括Intel主导的高性能网络数据处理框架DPDK;斯坦福大学主导的数据平面可编程语言P4等。
下一篇:数据平面
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2924854739@qq.com
文章标题:SDN概述
本文作者:DROBP
发布时间:2019-08-02, 17:30:40
最后更新:2019-08-07, 17:48:47
原始链接:https://DROBP.github.io/2019/08/02/SDN概述/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。