ODL之SDN入门篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文作为码农学ODL系列的SDN基础入门篇,分为两部分。第一部分,主要讲述SDN是什么,改变了什么,架构是什么样的,第二部分,简要介绍如何去学习SDN。
1.什么是SDN
SDN(Software Define Network) ,即为软件定义网络,可以看成网络界的操作系统。从SDN的提出至今,其内涵和外延也不断地发生变化,越来越多的人认为“可以集中控制、开放可编程和转控分离的网络”就是SDN网络,并且还延伸出软件定义计算、软件定义存储以及软件定义安全等。SDN加快了新业务引入的速度,提升了网络自动化运维能力,同时,也降低了运营成本。SDN的基础
知识如下图所示,下面各小节内容将根据该图内容进行展开论述:
1.1.SDN基础
1.1.1.SDN本质及核心
我们知道,传统网络中的路由器也存在控制平面和转发平面,在高端的路由器或交换机还采用物理分离,主控板上的CPU不负责报文转发,专注于系统的控制;而业务板则专注于数据报文转发。所以路由器或交换机内的控制平面与转发平面相对独立又协同工作,如图所示:
但这种分离是封闭在被称为“盒子”的交换机或路由器上,不可编程;另一方面,从IP网络的维度来考虑,采用的是分布式控制的方式:在控制面,每台路由器彼此学习路由信息,建立各自的路由转发表;在数据面,每台路由器收到一个IP 包后,根据自己的路由转发表做IP转发;
IP网络的这种工作方式带来了运维成本高、业务上线慢等问题,并越来越难以满足新业务的需求,传统上通过添加新协议、新设备等手段来缓解问题的方式,收益越来越少。穷则思变,许多人产生了革命的想法,现有的网络架构既然无法继续演进发展,为何不推倒重来,重新定义网络呢?真可谓“时势造英雄”,2006年斯坦福大学Nick McKeown教授为首的研究团队提出了OpenFlow的概念用于校园网络的试验创新,后续基于OpenFlow给网络带来可编程的特性,SDN (Software Defined Network)的概念应运而生。
SDN将原来封闭在“盒子”的控制平面抽取出来形成一个网络部件,称之为SDN 控制器,这个控制器完全由软件来实现,控制网络中的所有设备,如同网络的大脑,而原来的“盒子”只需要听从SDN控制器的命令进行转发就可以了。在SDN 的理念下,所有我们常见的路由器、交换机等设备都变成了统一的转发器,而所有的转发器都直接接受SDN控制器的指挥,控制器和转发设备间的接口就是OpenFlow协议。其简单模型如图所示:
因此,我们说它是一种网络设计理念,即利用IT技术来软化网络,给网络领域带来变革,而非某种具体的技术,其核心为:转控分离、集中控制、开放可编程。所以SDN的提出,并不说传统方法满足不了什么业务需求,而只是通过SDN
可以快速部署、缩短业务上线时间,能够做得更快更好而已。其本质是网络软件化,提高网络的可编程能力,是一次网络架构的重构,而不是一种新特性、新功能。
1.1.
2.分类
随着SDN在产业界设备制造商和运营商的实践不断展开,SDN的概念不断模糊,任何允许软件对网络可以进行编程或者配置的网络架构,并且具体实现的技术和接口协议是各种各样的。SDN也逐渐形成不同的发展路线:
首先,采用OpenFlow标准,转控分离、集中控制,主张硬件标准化,控制上移到由软件实现的控制器上,打破原有网络的封闭状态,受到初创公司和学院科研单位的欢迎,可以看作为革命型或狭义SDN。
其次,设备提供商感受到压力,希望在市场继续保持优势,另一方面,运营商即想拥抱新理念,也想保护现有的投资,这样希望针对现有网络进行平滑的过渡,所以采取大多不动设备上的控制智能,控制器(只能说是一种伪控制器)与转发设备间的接口采用NETCONF/SNMP协议,提出更为广泛的SDN架构,可以看作演进型或广义SDN。
最后,还有一种发展路线,它以现有IP网络为基础设施,在其上建立叠加的逻辑网络,实现网络资源的虚拟化,本质上属于软件定义的虚拟网络。这一思路被称为Overlay方案。
总的说来,这3种发展路线都能实现集中控制、可编程和开放接口,但在灵活性、使用难度以及用户业务场景等方面存在不同之处。其优缺点如下表所示:
1.2.SDN架构
1.2.1.ONF定义的SDN架构
ONF定义的SDN架构主要分为应用层、控制器层和基础设施层,其中,应用层聚焦网络业务逻辑开发,负责资源编排;控制器层进行全局网络的管理;基础设施层为各种网络设备,负责数据的转发。如图所示:
从控制器层的角度来说,与应用层的接口被为北向接口(NBI, Northbound Interface),与基础设施之间的接口被定义为南向接口(SBI, Southbound Interface)。
通过对北向接口的封装,应用层以软件编程的形式调用各种网络资源和把控整个网络的资源状态,并对资源进行统一调度。理想情况下,应用层封装所有的“How”操作,向用户隐藏了网络相关的技术信息。上层应用在调用应用层的服务时,只需描述想要“What”就可以了。但当前北向接口方面还缺少业界公认的标准。其主要原因是北向接口直接为业务应用服务,其设计需密切联系业务应用需求,具有多样化的特征,很难统一。
ONF定义的SDN架构中南向接口协议是OpenFlow,用于控制器和交换机之间的通信,控制器可以通过OpenFlow下发流表控制交换机,交换机也可以反馈信息给控制器,同时,OpenFlow也规定了交换机对报文的转发方式。
总的来说,SDN架构不仅简化了网络设计与操作,而且也极大简化了网络设备本身,因为这些设备不再需要解析和处理数以千计的协议标准,只需接受来自控制器的指令。更为重要的是,网络管理员可以通过编程的方式来集中控制数以千计的设备,而不用针对每台设备进行手工配置,有效地缩短了业务上线的时间。
1.2.2.SDN平台实现框架
理想是丰满的,但现实往往呈现出很骨感,学术界提出的正统SDN,在产业界和运营商的不断实践下,南向接口不仅仅局限在OpenFlow,也包含了NETCONF、SNMP等协议。SDN不同的发展路线决定了SDN开发技术架构如图所示:
SDN体系架构分为4层,分别为应用层、业务编排层、控制层和转发层。其中,应用层专注于描述用户业务需求,而业务编排层专注于业务需求的“How”操作封装。需要说明的是,在运营商网络的SDN改造部署过程,基本上采用平滑演进的策略进行,用到的协议就不再单纯使用OpenFlow了。
2.如何学SDN