软件定义网络(Software Defined Network,SDN)是由美国斯坦福大学CLean State课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现方式。其核心技术OpenFlow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台。
软件定义网络( SDN)是一种软件集中控制、网络开放的三层体系架构。应用层实现对网络业务的呈现和网络模型的抽象;控制层实现网络操作系统功能,集中管理网络资源;转发层实现分组交换功能。应用层与控制层之间的北向接口是网络开放的核心,控制层的产生实现了控制面与转发面的分离,是集中控制的基础。
SDN最主要的特征就是数据转发和控制分离, 同时还具有网络虚拟化和开放接口等特征。
数据转发和控制分离:将基础硬件与业务实现分离, 其硬件仅负责数据转发和存储 , 因此可以采用相对廉价的通用设备构建网络基础设施。且将控制与转发分离后,更利于网络的集中控制,使得控制层获得网络资源的全局信息,并根据业务需求进行资源的全局调配和优化,例如流量工程、负载均衡等。
同时,集中控制还使得,整个网络可在逻辑上,被视作是一台设备进行运行和维护,无需对物理设备进行现场配置,从而提升了网络控制的便捷性
网络虚拟化:通过南向接口的统一和开放, 屏蔽了底层物理转发设备的差异,实现了底层网络对上层应用的透明化。逻辑网络和物理网络分离后,逻辑网络可以根据业务需要进行配置、迁移,不再受具体设备物理位置的限制。
开放接口:通过开放的南向和北向接口,能够实现应用和网络的无缝集成,使得应用能告知网络如何运行,才能更好的满足应用的需求,比如网络的带宽、时延需求,计费对路由的影响等。另外,支持用户基于开放接口,自行开发网络业务并调用资源,加快新业务的上线周期。
SDN 带来的最大价值是提高了全网资源使用效率,提升了网络虚拟化能力并加速了网络创新。集中部署的控制层可完成拓扑管理、资源统计、路由计算、配 置下发等功能,获得全网资源使用情况,隔离不同用户问的虚拟网络。应用层通过开放的北向接口获取网络信息,采用软件算法优化、网络资源调度, 提高全网的使用率和网络质量,同时将虚拟网络配置的能力开放给用户。满足用户按需调整网络的需求,实现网络服务虚拟化。分层的架构加速了各层分别进行创新。
从本质上来说, SDN的提出,是为了应对当前网络中面临的扩展困难,灵活性不够等发展瓶颈问题,其主要目的是简化网络配置、管理, 促进网络向动态灵活的方向演化,而并非主要是为了网络性能的提升,甚至在对网络进行高度抽象、虚拟化后,会带来部分性能的下降。
从很大程度上来说, 目前人们对网络的需求, 传统的网络不是不能满足,只是时间、资金问题而已,但这样代价太大,而且发展缓慢,为了摆脱这一困境,SDN应运而生。
如前所述, SDN带来的是网络配置、管理的简化,和更加灵活高效的发展方向,新的管控策略可以迅速得到实施,就像在电脑或者手机上安装应用程序一样, 方便快捷。因此,如果有好的更加有效的管控策略,在SDN网络中可以很容易进行部署; 而当用户对网络提出新的需求时,也可以很快的部署相应的应用。因为这一切都是软件定义的,用户甚至可以利用网络资源,去构建自己所需要的应用,而不必受厂商的束缚。
传统网络是分布式控制的架构,每台设备都包含独立的控制平面,数据平面。
传统网络是分布式控制的架构:
这里的分布式控制指在传统IP网络中,用于协议计算的控制平面和报文转发的数据平面位于同一台设备中。
路由计算和拓扑变化后,每台设备都要重新进行路由计算过程,并称为分布式控制过程。
在传统IP网络中,每台设备都是独立收集网络信息,独立计算,并且都只关心自己的选路。
这种模型的弊端就是所有设备在计算路径时缺乏统一性。
传统网络结构体系:
管理平面:管理设备(SNMP)
控制平面:路由协议(IGP、BGP)
数据平面:转发表(FIB)
OSS:Operation Support System,运营支撑系统。
NMS:Network Management Server,网络管理服务器。
传统网络架构:
传统网络分为管理平面、控制平面和数据平面。
管理平面主要包括设备管理系统和业务管理系统,设备管理系统负责网络拓扑、设备接口、设备特性的管理,同时可以给设备下发配置脚本。业务管理系统用于对业务进行管理,比如业务性能监控、业务告警管理等。
控制平面负责网络控制,主要功能为协议处理与计算。比如路由协议用于路由信息的计算、路由表的生成。
数据平面是指设备根据控制平面生成的指令完成用户业务的转发和处理。例如路由器根据路由协议生成的路由表对接收的数据包从相应的出接口转发出去。
传统网络局限性:
流量路径的灵活调整能力不足。
网络协议实现复杂,运维难度较大。
网络新业务升级速度较慢。
传统网络通常部署网管系统作为管理平面,而控制平面和数据平面分布在每个设备上运行。
流量路径的调整需要通过在网元上配置流量策略来实现,但对于大型网络的流量进行调整,不仅繁琐而且还很容易出现故障;当然也可以通过部署TE隧道来实现流量调整,但由于TE隧道的复杂性,对于维护人员的技能要求很高。
传统网络协议较复杂,有IGP、BGP、MPLS、组播协议等,而且还在不断增加。
设备厂家除标准协议外都有一些私有协议扩展,不仅设备操作命令繁多,而且不同厂家设备操作界面差异较大,运维复杂。
传统网络中由于设备的控制面是封闭式的,且不同厂家设备实现机制也可能有所不同,所以一种新功能的部署可能会造成周期较长;且如果需要对设备软件进行升级,还需要在每台设备上进行操作,大大降低了工作效率。
SDN概述:
SDN(Software Defined Netrork)软件定义网络。
2006年,以斯坦福大学教授Nike Mckewn为首的团队提出了OpenFlow的概念,并基于OpenFlow技术实现网络的可编程能力,是网络像软件一样灵活编程,SDN技术应运而生。
SDN的三个主要特征:
转控分离:网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。
集中控制:设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器进行配置即可。
开放接口:第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可。
SDN控制器既不是网管,也不是规划工具:
网管没有实现转控分离:网管只负责管理网络拓扑、监控设备告警和性能、下发配置脚本等操作,但这些仍然需要设备的控制平面负责产生转发表项。
规划工具的目的和控制器不同:规划工具是为了下发一些规划表项,这些表项并非用于路由器转发,是一些为网元控制平面服务的参数,比如IP地址,VLAN等。控制器下发的表项是流表,用于转发器转发数据包。
SDN网络体系架构:
SDN是对传统网络架构的一次重构,由原来分布式控制的网络架构重构为集中控制的网络架构。
SDN网络体系架构的三层模型:
协同应用层:这一层主要是体现用户意图的各种上层应用程序,此类应用程序称为协同层应用程序,典型的应用包括OSS(Operation support system 运营支撑系统)、Openstack等。传统的IP网络同样具有转发平面、控制平面和管理平面,SDN网络架构也同样包含这3个平面,只是传统的IP网络是分布式控制的,而SDN网络架构下是集中控制的。
控制层:控制层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。
转发层:转发层主要由转发器和连接器的线路构成基础转发网络,这一层负责执行用户数据的转发,转发过程中所需要的转发表项是由控制层生成的。
SDN架构下的接口:
NBI(North Bound Interface)北向接口。
SBI(South Bound Interface)南向接口。
Restful接口:
Restful接口为控制器与上层APP的北向接口,开放的API、设备私有接口,所有满足rest架构的互联网软件架构都是restful。
Rest为“表现层状态转化”,表现层就是资源的表现,即rest是被访问的资源(文本,图片,音乐,视频等),从一种形式的状态迁移到另一种形式的状态,本质就是一种互联网资源访问的协议。
OpenFlow接口:
OpenFlow接口是控制器与下层转发器之间的一种基于芯片的接口协议。OpenFlow协议基于TCP/IP,用于转发器与控制器之间的通信。
BGP接口:
BGP接口是在BGP协议基础上添加一些BGP路由属性(比如Additional Path属性和BGP Flowspecification属性),用于下发BGP的一些路由特性,从而使得IDC数据中心出口路由器根据这些特性实现流量调优。
PCE接口:
PCE接口用于控制器根据网络可用带宽计算出流量工程路径,用于数据中心AS内部的TE隧道的建立。
运营商网络已经大规模部署了传统分布式网络,不能在较短时间内升级到SDN网络,与传统网络互通就是必要的。SDN控制器必须支持各种传统的跨域路由协议,以便解决和传统网络互通问题。
东西向协议是必须的,在SDN控制器上运行东西向协议,通过简单的修改或升级控制器程序就能提供新业务。另一方面,东西向协议为SDN控制器跨域互联及SDN控制器分层部署提供了接口。
SDN基本工作原理:
网元资源信息收集:
转发器注册信息
上报资源过程
MPLS标签信息
VLAN资源信息
接口资源信息
拓扑信息收集:节点对象、接口对象、链路对象(LLDP、IGP、BGP-LS)。
SDN网络内部交路由的生成。
通常控制器作为服务端,转发器主动向控制器发起控制协议建立,通过认证后,控制协议即建立连接。
注册信息中的设备信息包括资源信息(接口、标签、VLAN资源等)、设备厂家信息(设备类型信息和设备版本号以及设备ID信息)。控制器采集这些信息是为了根据这些信息来进行本地搜索和加载相应驱动程序。
网络拓扑是描述网络中节点和链路以及节点之间连接关系的信息。
控制器收集拓扑信息的目的是为了根据网络资源,计算合理的路径信息,通过流表方式下发给转发器。
OpenFlow的思想和功能:
两个角色:
OpenFlow Controller:用于控制OpenFlow Switch,计算路径,维护状态和将信息流规则下发给交换机。
OpenFlow Switch:从OpenFlow Controller控制器接收命令或者流信息,以及返回状态信息。
OpenFlow Switch基于流表并根据流规则进行转发、处理数据。
“Flow”指的是一组具有相同性质的数据包,例如“五元组”(SIP、DIP、SPORT、DPORT、Protocol)。
OpenFlow协议是控制器和转发器之间的控制协议。
交换机与控制器之间可以通过加密的OpenFlow协议通信。
OpenFlow交换机是数据平面,基于Flow Table进行数据转发,并负责网络策略的具体执行。
OpenFlow Controller是控制平面设备,负责生成OpenFlow交换机上的Flow Table,以及对Flow Table的更新和维护。
OpenFlow Switch的基本组成:
Flow Table:保存对每一个流的定义及相应处理行为。
安全网络通道:连接交换机和控制器,用于传输控制信令。当一个新数据包第一次到达交换机时,交换机通过这个隧道将数据包送往控制器进行路由解析。
OpenFlow协议:一套公开标准接口,用于读写Flow Table的内容。
OpenFlow网络交换模型:
该模型的指导思想是:底层的数据通信(交换机、路由器)是“简化的”,并定义一个对外开放的关于流表FLowTable的公用API(应用程序接口),同时采用控制器来控制整个网络。
SDN的价值
网络业务快速创新:
SDN的可编程性和开放性,使得我们可以快速开发新的网络业务和加速业务创新。如果希望在网络上部署新业务,可以通过针对SDN软件的修改实现网络快速编程,业务快速上线。
SDN网络关键的地方是在网络架构中增加了一个SDN控制器,把原来的分布式控制平面集中到一个SDN控制器上,由这个集中的控制器来实现网络集中控制。SDN网络架构具备3个基本特征:转控分离、集中控制、开放接口。
SDN通过在网络中增加一个集中的SDN控制器,可以简化网络和快速进行业务创新。但是其本质的技术原理是通过SDN控制器的网络软件化过程来提升网络可编程能力。通信平面仍包含管理平面、控制平面和数据平面,SDN网络架构只是把系统的三个平面的功能进行了重新分配,传统网络控制平面是分布式的,分布在每个转发设备上,而SDN网络架构则是把分布式控制平面集中到一个SDN控制器内,实现集中控制,而管理平面和数据平面并没有太多什么变化。
SDN网络具备快速网络创新能力,如果这个新业务有价值则保留,没有价值可以快速下线。不像传统网络那样,一个新业务上线需要经过需求提出、讨论和定义开发商开发标准协议,然后在网络上升级所有的网络设备,经过数年才能完成一个新业务。SDN使得新业务的上线速度从几年提升到几个月或者更快。
简化网络:
SDN的网络架构简化了网络,消除了很多IETF的协议。协议的去除,意味着学习成本的下降,运行维护成本下降,业务部署快速提升。这个价值主要得益于SDN网络架构下的网络集中控制和转控分离。
因为SDN网络架构下的网络集中控制,所以被SDN控制器所控制的网络内部很多协议基本就不需要了,比如RSVP协议、LDP协议、MBGP协议、PIM组播协议等等。原因是网络内部的路径计算和建立全部在控制器完成,控制器计算出流表,直接下发给转发器就可以了,并不需要协议。未来大量传统的东西向协议会消失,而南北向控制协议比如Openflow协议则会不断的演进来满足SDN网络架构需求。
网络设备白牌化:
基于SDN架构,如果标准化了控制器和转发器之间的接口,比如OpenFlow协议逐渐成熟,那么网络设备的白牌化将成为可能,比如专门的OpenFlow转发芯片供应商,控制器厂商等,这也正是所谓的系统从垂直集成开发走向水平集成。
垂直集成是一个厂家供应从软件到硬件到服务。水平集成则是把系统水平分工,每个厂家都完成产品的一个部件,有的集成商把他们集成起来销售。水平分工有利于系统各个部分的独立演进和更新,快速进化,促进竞争,促进各个部件的采购价格的下降。
业务自动化:
SDN网络架构下,由于整个网络归属控制器控制,那么网络业务网自动化就是理所当然的,不需要另外的系统进行配置分解。在SDN网络架构下,SDN控制器可以自己完成网络业务部署,提供各种网络服务,比如L2VPN、L3VPN等,屏蔽网络内部细节,提供网络业务自动化能力。
网络路径流量优化:
通常传统网络的路径选择依据是通过路由协议计算出的“最优”路径,但结果可能会导致“最优”路径上流量拥塞,其他非“最优”路径空闲。当采用SDN网络架构时,SDN控制器可以根据网络流量状态智能调整网络流量路径,提升网络利用率。
传统网络向SDN的演进方式
仅交换网SDN化:
交换网SDN化是指把域内交换网的路径计算功能进行集中控制。
控制器:仅负责域内路径计算和控制。
仅业务SDN化:
此方案仅仅将自治域AS所接入的业务由控制器接管,域内路径计算和控制依然由转发器负责。
统一部署增值业务VAS资源池,通过SDN COntroller业务链解决方案,集中控制管理,同时实现VAS资源共享。
提升增值业务快速创新能力,提供新的创收来源。