第一章 概述
1.1 SDN概念
SDN(Software Defined Network)——软件定义网络。为了摆脱传统网络对于网络硬件的依赖,方便对网络进行调整、改变和升级,SDN应运而生。
SDN是一种将网络控制功能与转发功能分离、实现控制可编程的新兴网络架构。这种架构将从控制层从网络设备转移到外部计算设备,使得底层的基础设施对于应用和网络服务而言是透明的、抽象的,网络可被视为一个逻辑的或虚拟的实体。
1.2 SDN特征
转控分离:网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。
集中控制:设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器配置即可。
开放接口:第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可。
SDN控制器不同于网管和规划工具,网管仍然需要设备的控制平面负责产生转发表项,并没有实现SDN的转控分离;规划工具下发的规划表项是参数,而SDN控制器下发的表项是流表,用于转发器转发数据包。
1.3 SDN的发展趋势
- 更加开放灵活的数据平面
- 更高性能的开源网络硬件
- 更加智能的网络操作系统
- 网络设备的功能虚拟化
- 高度自动化的业务编排
SDN产业发展趋势
- 数据中心场景下的创新应用
- 针对运营商网络场景的创新应用
- 实现产业大规模商用部署
第二章 SDN架构剖析
2.1 SDN网络架构
SDN是对传统网络架构的一次重构,由原来的分布式控制的网络架构重构为集中控制的网络架构,SDN网络架构如图1-1所示。
图 1-1 SDN网络架构
应用层:这一层主要是各种上层应用程序。
控制层:这一层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成。
转发层:这一层主要是转发器和连接器构成的转发网络。其中转发表项由控制层生成。
2.2 SDN架构工作原理
控制器收集网元资源信息,收集拓扑信息,生成SDN网络内部交换路由。
网元资源信息包括转发器注册信息、上报资源过程、MPLS标签信息、VLAN资源信息、接口资源信息等;
拓扑信息包括节点对象、接口对象、链路对象等;
控制器收集拓扑信息的目的是为了根据网络资源,计算合理的路径信息,通过流表的方式下发给转发器。
通常控制器作为服务端,转发器主动向控制器发起控制协议简历,通过认证后,控制协议建立连接。
2.3 SDN三种模型解析
2.3.1 网络虚拟化模型
市场上最简单的SDN模型就是网络虚拟化模型,因初创公司Nicira流行,但是该公司在2012年被VMware收购。网络虚拟化的主要目标是消除LAN分区限制(这种限制存在于虚拟LAN(VLAN)标准中),通过在一些基于以太网的虚拟网络架构中实现多播解决可扩展性的问题。
2.3.2 “渐进式”方法
第二种SDN模型可以称之为“渐进式”模型。这种模型的目标就是为了加强网络软件控制和运营而产生,但是是在当前网络技术的边界之内。为了实现这一点,网络服务提供商可能需要对标,比如VXLAN、GRE、BGP和MPLS,并且用这些标准将网络分区,成为虚拟社群,并且管理流量和服务质量。提供商可能需要将自身的解决方案结合到同一套管理接口中,这套接口可以为云服务环境所用,通过DevOps工具或者云虚拟接口。
2.3.3 OpenFlow模型
最后这种SDN模型就是OpenFlow模型,也是和SDN属于最紧密相关的一个。OpenFlow取代了交换机或者路由器中传统的、基于发现的转发表创建,取而代之的是集中控制转发,也意味着一个集中控制器项目对应每一个设备的转发表。这样做为中央控制节点提供了完整的规则,例如网络如何分段或者虚拟化,流量如何管理等。任何控制器和支持OpenFlow兼容版本的交换机的结合都可以用于这种SDN模型。最后这种SDN模型最大的好处就是这种模型是基于SDN的概念来建立的。
2.4 模型分析
云提供商纠结于VLAN的分段限制,或者面临着VLAN的多播问题,首先可能关注虚拟化网络的SDN模型。这种模型也能够覆盖渐进式SDN模型,尽管协调管理接口人存在很多问题。在数据中心网络设备中投资体量巨大的提供商可能更倾向于这种方式来避免冗余成本。未来的主流发展方向应该会倾向于OpenFlow,因此应该关注支持OpenFlow的服务和设备提供商,尤其是在部署新设备的时候。
第三章 传统架构和SDN架构
3.1 传统架构数据的控制与转发
传统网络是分布式控制的架构,每台设备都包含独立的控制平面、数据平面。
分布式控制是指在传统IP网络中,用于协议计算的控制平面和报文转发的数据平面位于同一台设备中。路由计算和拓扑变化后,每台设备都要重新进行路由计算过程,并称为分布式控制过程。在传统IP网络中,每台设备都是独立收集网络信息,独立计算,并且都只关心自己的选路。这种模型的弊端就是所有设备在计算路径时缺乏统一性。
3.2 传统网络架构
传统网络架构包含:管理平面、控制平面、数据平面。
管理平面:主要包括设备管理系统和业务管理系统,设备管理系统负责网络拓扑、设备接口、设备特性的管理,同时可以给设备下发配置脚本。业务管理系统用于对业务进行管理,比如业务性能监控、业务告警管理等。
控制平面:主要功能为协议处理与计算。比如路由协议用于路由信息的计算、路由表的生成。
数据平面:是指设备根据控制平面生成的指令完成用户业务的转发和处理。例如路由器根据路由协议生成的路由表对接收的数据包从相应的出接口转发出去。
3.3 SDN架构的优势
3.3.1 硬件标准化/软件平台化
这概念说新颖不新颖,软件行业从OS诞生的那一天,就已经这么做了。但是网络设备行业一直没有形成这样的标准。我个人猜测原因应该是大厂商对于市场的垄断,各个网络设备厂商推出自己的设备时都将软硬件紧密的联系在一起,使用该公司的设备后就必须使用相应的软件,这样就可以套牢用户,使得用户不会轻易换其他厂商的设备。但是SDN可以形成一个生态系统,从而可以很好的解决这一问题。
3.3.2 简化网络
SDN的网络架构简化了网络,因为网络内部的路径计算和建立全部在控制器完成,控制器计算出流表,直接下发转发器,因此消除了很多网络内部协议,比如RSVP、LDP、MBGP、PIM组播协议等。未来大量的东西向协议会消失,取而代之的则是南北向控制协议不断演进来满足SDN的网络架构需求。
3.3.3 配置管理简便
在之前的课程设计中,查看过大型网络下防火墙在生产环境下实际配置,我发现这玩意儿不是一个好配置的主。动辄成百上千的address, policy, VPN等无论是CLI还是WebUI配置都是一种折磨。配置麻烦是传统网络设备的一大问题。另一个问题是服务器动态迁移带来的网络管理问题。这个问题是服务器虚拟化革命带来的,现在的网络设备对此基本无解,因此SDN网络架构的优势就体现出来了,可以统一配置,减少工作量。
3.3.4 Debug便捷
没做过网络设备的人可能不知道网络软件的Debug有多么辛苦。一般软件Debug步骤:
1. 信息搜集
2. 缩小问题空间,直至找到根本原因
3. 重复1
对于网络软件而言,信息搜集是一道坎,你要能拿到网络拓扑下面各个相关网络设备的配置和问题出现时的日志。这绝对不是一件容易的事儿。不信你问工程师。他们每天要死要活地抓日志,一次很难成功,两次,三次成功都算苍天有眼。就算成功抓到了需要的日志,想想AT&T给你个路由震荡的问题,一个大网络拓扑下数十台设备,数兆的配置信息,数十兆的日志。相关的,不相关的,反正都抛给你,你需要的量的时间进行查找原因,真的会有奔溃的状态。
SDN因为集中控制,所以可以,指定相关的网络设备同时打开需要的debug开关,将日志收集到中央云上。
运行一组predefined analysis tool分析问题的所在;建立一个virtualized environment,replay packets。
最后,可能有80%的问题都能找到一个前例;剩下那20%,到工程师手上,也是小范围的有价值的数据,甚至分析报告。
3.4 传统网络架构演变SDN网络架构
3.4.1 业务流量的明确划分
将原有业务按照一个应用对应一个区域的方式划分,在使用SDN后,将会变成一个服务体系作为一个区域划分。在每个区域中划分多个工作组来准确区分业务模块,更加清晰地了解业务之间的访问关系。
3.4.2 无限定的横向扩展
在现有的SDN网络中,通过使用选播网关的方式将网关部署在各个叶节点上。即使有新设备加入网络,无论处于任何区域,都可以准确的进入相对应逻辑位置。
3.4.3 控制平面和转发平面解耦合
在传统的网络交换设备中,控制平面和转发平面是紧密耦合的,被集成到单独的设备盒子中。各个设备的的控制平面被分布到网络的各个节点上,很难对全网的网络情况有全局把控。因此SDN网络一个重要的理念就是把每台单独网络设备中的控制平面从物理硬件中抽离出来,交给虚拟化的网络层处理,整个虚拟化的网络层加载在物理网络上,屏蔽底层物理转发设备的差异,在虚拟空间内重建整个网络。
3.4.4 集中化的网络控制
将控制平面进行集中控制,中央控制器可以获取网络资源的全局信息并根据业务需要进行资源的全局调配和优化,如服务质量负载均衡功能等。同时集中控制后,全网的网络设备都由中央控制器去管理,使得网络节点的部署以及维护更加敏捷。
第四章 总结
传统网络已经经过半个世纪的发展,有很多人也为之努力,凝聚了无数人的智慧和心血,但是其架构存在天生的缺陷和不可修改性,导致在很多应用场景上都存在心有余而力不足的表现,并且只会越来越复杂。
SDN虽然诞生没多久,但是其已经表现出非常强大的生命力。传统网络在安全、可靠性、可维护性和性能上还有存在很大的优势,但是随着SDN相关设备的更迭与发展,一定会慢慢缩小与传统网络架构的距离,这种优势也势必会越来越弱,而SDN的优势时传统网络架构所不能及的,所以SDN凭借自身的优势一定会不断占领传统网络的领地,成为主流的网络架构。