一、SDN背景和价值
1、网络生命周期
网络生命周期需要经历需求调研、规划设计、部署实施、运行维护等四个阶段:
- 需求调研:需要调研互联范围、互联规模、拟承载的应用,包括对象、类型、用户规模、实现模式、服务质量、安全要求等
- 规划设计:需要对网络架构与拓扑、IP和路由、安全与Qos策略等设计,同时在设计过程中需要体现一定的冗余性,以便为未来的规模和扩展留下一定的弹性空间
- 部署实施:根据规划设计方案进行落地,包括设备上架、配置、连通,系统集成、上线、测试等
- 运行维护:主要对网络状态的监控与管理,包括设备、用户、流量、应用等,来发现并排除网络故障与隐患,确保网络系统可靠有效的运行
根据网络生命周期,本世纪已经形成了很多的互联网络系统,网络系统之间实现了人与人的连通(即个人应用/信息传递数字化)、人与数据与流程的连通(即企业流程/业务流程数字化)。
2、传统网络架构弊端
但是伴随着云计算、移动互联网、物联网的诞生和发展,传统网络架构诞生的传统网络系统的亚健康问题逐渐展现出来,主要体现在多元、多变的网络上层应用与业务和相对稳定的网络架构设计以及系统运维之间的矛盾:
- 一方面上层应用要求在规模扩展和服务能力上具有很大的灵活性,上层应用需要体现以客户为中心,提供应用服务和业务体验所需要的自适应性和动态性。以云计算为例,云计算有三种典型的服务模式,即IaaS、PaaS、SaaS,无论哪种模式都需要按需进行资源分配与调度的能力,这种能力需要借助资源池化、网络功能虚拟化、虚拟主机自动恢复和动态可迁移、不同用户或应用之间的安全隔离等技术来确保系统的自动化部署和资源的动态适配。以ISP的广域网为例,如何快速响应移动端(类似微信、抖音等应用)应用的 “井喷式爆发”,给核心网络带来的巨大压力时而不至于应接不暇或捉襟见肘?
- 另一方面,传统网络规划与设计是以应用需求相对明确和稳定为前提,包括网络架构、拓扑、IP连通性、安全与Qos策略,都是根据应用需求预设好的(即相对静态的)。所以尽管在规划设计阶段强调了冗余性,从而在运维阶段能够根据上层应用变化做出相对的调整与应对的空间,但是很有限。同时传统网络的运维是以人工为主、自动为辅。
网络设备类型的多样性和厂家来源的多样性使得调整的难度与复杂度是巨大的。
所以深度分析以上两个方面,传统网络需要升级的原因有两个:
- 传统网络及其设备的只可配置、不可编程(假设你需要去超市购买一个电饭煲,不同品牌和型号的电饭煲有着不同的程序预设/烹饪模式,你会根据自己的饮食需求和喜好,选择合适的品牌和型号,但是不管电饭煲有多少烹饪模式,你只能在它给定的烹饪模式中选择,不能满足你需求新变化,为你自主开发新模式的功能)
- 网络的分布式控制与管理架构带来制约(解释:如果需要增加一个应用,那么该应用的数据包所流经的所有网络设备都需要在配置上做出修改,显然管理的工作量巨大。如果网络中的应用多元且多变时,网络的管理效率就会变得非常低,从而对上层业务的弹性响应会变得非常的差)
每台传统网络设备上都紧耦合三个平面,即管理平面、控制平面、数据平面。这就导致网络的部署、配置、管理需要落实到每台设备上:
- 管理平面:配置和管理网络设备,提供给用户侧界面或接口(即命令行界面/图形界面)
- 控制平面:预设了不同网络协议支持和功能的支持。在管理平面配置命令会通过控制平面生成相应的控制表,比如数据链路层的CAM、网络层的IP表、MPLS的标签表、ACL的访问控制表。
- 数据平面:根据控制平面生成的控制表,进行具体的报文处理或转发
3、SDN架构优势
1) SDN架构特点
从以上分析发现,矛盾的根源不在于网络的生命周期,而是在于网络架构、设计思想、管理模式。那么SDN(Software defined Network,软件定义网络)技术针对网络架构、设计思想、管理模式等问题引入了两项重要的改变和创新来解决:
- 能够弹性响应上层应用变化的网络可编程;这样就能够根据上层应用与业务变化后自行对网络的规划与配置做出自适应的动态调整
- 引入一个集中统一的控制与管理层来实现对网络的全局控制与管理,和对上层业务的动态响应(所以需要对网络设备中的三个平面进行解耦,设备仅保留数据平面,将控制和管理平面从设备中拉出来,拉到集中控制管理层)
网络可编程(Programmable Network)和集中控制管理层(Centralized control management)这两个改变和创新带来了全新的网络架构——SDN架构(SDN Architecture)。
2) SDN架构
SDN架构包含三层:应用层(类似操作系统用户与应用程序接口)、控制层(类似操作系统)、基础设施层(类似裸机)。应用层包含了网络所要承载的多元业务与应用,基础设施层承载包转发功能(此处基础设施层是将控制和管理平面拉出来的,只保留简单的包转发功能),集中控制层/SDN控制器起到了承上启下的全局管控作用。SDN控制器向上向下都提供了API接口。SDN控制器和基础设施层之间的API叫做南向接口/控制数据平面接口,所有在SDN控制器里面的通过软件定义生成的各种流表(flow table)都通过南向接口灌入到基础设施层的相关网络设备上(即南向接口主要作用就是下发流表,指导转发行为)。SDN控制器和应用层之间的API叫做北向接口,通过该接口实现SDN控制器和应用层之间的交互(即北向接口主要作用就是应用对网络的动态调整)。
SDN为网络系统的生命周期,从应用需求到规划设计,再到部署实施,最后到运行维护,融入了很多新的色彩,定义了很多新的内涵,引导网络进入全新架构,归纳起来有四个方面:
- 底层网络设备通过解耦实现简单化
- 网络的管理通过集中控制器实现全局化
- 网络的运维通过SDN南向接口和协议实现自动化
- 网络的应用通过SDN北向接口和协议实现了更加弹性的人性化
二、SDN起源与发展
2005年,美国国家自然科学基金会发起的全球网络创新实验环境计划,该计划中由斯坦福大学主导实施了一个名叫Clean-Slate的 项目,该项目的主要目的是提出一种新的网络架构,能够在底层支持异构的物理层技术和设备,在上层支持多源异构的应用。承担该项目的是Mckeown Group团队,该团队负责人叫Nick Mckeown(又称SDN始祖)。
对SDN技术起到关键作用的三个人:Mckeown、Martin、Scott。Mckeown和Scott发表OpenFlow:enabling innovation in Campus Networks以及Mckeown、Scott、Martin发表Ethane:Taking Control of the Enterprise这两篇重量级SDN技术开篇论文。
SDN技术的发展从学术界提出和构建到产业界的商业化SDN产品的出现也只经历了15-16年左右的时间。以下是发展简史:
1st. 学术界提出架构、设计思想和具体实现:
2nd. 产业界接受SDN思想,推动SDN的技术落地并开始大规模应用推广,SDN发展进入成熟期:
3rd. SDN进入快速扩张期:
三、SDN发展现状和趋势
1、应用范围扩大
在学术界和产业界的共同推动下,SDN的应用范围在扩大,从SD-DC、SD-WAN再到SD-X。国内的百度、腾讯、阿里、字节再到国外的facebook、google、AWS都在使用SDN部署自己的数据中心。除了数据中心和广域网,SDN技术还渗透到了网络的不同场景,比如SDN-Security、SDN-Access。
2、市场规模扩大
SDN除了应用范围在扩大,另外一个很重要的态势就是市场规模在扩大,由下面数据统计发现,SDN技术的发展几乎呈指数发展
3、技术融合扩大
SDN使得技术融合在扩大和加速,SDN与5G和IPV6技术融合在加速,SDN与OpenStack和人工智能在融合,以Cisco为例,他们在SDN架构之上引入AI,借助大数据分析与机器学习提出了一种全新的智能网络架构“基于意图的网络”
4、人才需求扩大
新技术的产生就意味着市场对于新人才的需求
四、SDN标准化
标准化的重要作用就是在开放架构下的技术,互操作性和系统的兼容性。标准化对于技术的快速发展和大规模运用是非常重要的。SDN的标准化主要是由四个组织所主导的:ONF(开放网络基金会)、IETF(因特网工程任务组)、ITU-T(国际电信联盟电信标准化部门)、ETSI(欧洲电信标准化协议)
- ONF:专门的标准化组织,活跃度和影响力最高,是SDN的标准化和产业化最主要的推动力量。ONF设立了7个部门:扩展组、配置管理组、测试和互操作组、北向接口组、架构组、混合组、市场组。成果即SDN白皮书、Openflow协议(SDN协议)、OF-config协议(SDN协议)
- IETF:全球最具权威的技术标准化组织,IETF主要关注SDN的功能与技术如何在网络中落地与实现。IETF设立3个部门:转发与控制分离组(关注需求、架构、协议、转发单元模型、MIB)、应用层流量优化工作组(为应用层提供更多的网络信息、完成应用层的流量优化)、路由领域公开研究组(专门研究IETF自己提出的SDN架构I2RS,就其中的问题描述、需求、应用场景)
- ITU-T:研究有关SDN技术在运营商中的场景和相关架构,拥有两个SDN相关的标志性项目Y.FNsdn-fmV和Y.FNsdn
- ETSI:由AT&T、英国电信、德国电信等七家运营商发起成立网络功能虚拟化标准工作组(NFV ISG),专门制定支持虚拟化功能硬件和软件基础设置的基本要求和架构规范(即如何有机的融合SDN和NFV)
不同的标准化组织在目标和应用场景上有所侧重,需要根据学习重点和应用场景来选择不同的标准。