SDN!是真有用还是抽风噱头
如果说网络工程师里面也有一条“鄙视链”,那么作为一些低层次的喷子来说,了解一些SDN,甚至仅仅是在术语层面,就能把传统技术的网络工程师完爆到底。目前SDN可真是正儿八经的网红,不仅是各个甲方,各个厂商,甚至是在业界都在对其大吹特吹。可以这么说,你要是真懂SDN的技术,那你算是有了“先进生产力”,走到哪里都会很受欢迎的。
SDN之所以成为“网红”,那是因为如果真的实现了SDN,不仅能够实现网络能快速适应业务的快速增长和灵活扩展,而且在传输效率方面也会有大大提升。但是呢,SDN的出现毕竟会影响到目前厂商的利益,所以这个技术也不是那么好推动。到目前为止,SDN也没有一个成体系的教程,在业界也鲜有成功案例。
本文就简单为大家说一下SDN,说一下我对SDN这个技术的认识。SDN技术到底是真的有用呢?还是又一次类似于ISO/OSI七层模型这样的抽风噱头。
本文核心知识点:
1、传统网络遇到的一系列弊端问题;
2、SDN的概念和转控分离;
3、了解OpenFlow和Overlay;
一、传统网络的一些问题
一个SDN为什么能成为“网红”,并且能站在鄙视链的顶端,那肯定是因为传统网络有一些地方让人不太满意。
上世纪80年代出现的TCP/IP体系,已经“统治”了网络界三十多年。要问目前网络技术是由什么决定的?那就是一个个的协议。如果一个网络协议有“缺陷”或者不适用了,那就再开发一个协议出来。这个概念也很好理解嘛,比如路由协议,RIP最大的问题就是跳数的最大值为15,于是有了后来的OSPF;IGRP不行,就有了增强型的EIGRP。EGP不行,就有了BGP……你可以简单的说,传统网络实际上是“协议定义网络”。
就拿路由协议来说吧,不管是OSPF、EIGRP还是BGP,都各自有各自的优点和弊端。比如,OSPF支持大型网络,也能保证完全无环路,但是OSPF效率不够高,而且无法实现分流:
所以,在一张规模较大,功能较多的网络环境中,往往存在着多种路由协议并且还有重分发。比如非Cisco网络环境要用OSPF,遇到分支分流又要用RIP,遇到骨干分流又要用BGP,这会使得网络的运维难度加大。对于充斥着2—3个路由协议大型的骨干网络运维,一般的网络工程师很难胜任。但是,招技术水平更高的网络工程师,那是要钱的。所以,现在厂家对运维的要价也越来越高,因为运维确实不好做。
看起来,传统网络各个协议之间从客观上来说也存在“优缺点互补”,但是对于目前用户对网络的需求也越来越高,协议的开发也显得“时不我待”。当我们要部署一个新业务时,就必须先去商讨这些标准,商讨完后,再进行开发,验证,最后,由于网络中每台设备都需要了解这些标准,所以我们需要在每台设备上都进行更新。这么一套下来,没有个3、 5年还真是难以完成。所以就像李云龙的那句话:“等你把新协议和新标准研发出来,黄花菜都凉了”。
就算你的协议能在三个月之内就研发出来交付使用,但是现在的协议,不管是私有协议还是通用协议也是越来越多。如此多的协议,你别说是各个精通,就算是都学一遍都是要命的事情。就拿路由协议来说吧,你学OSPF花了多久?你学BGP花了多久?
一直以来,网络都是被一众运营商和一堆大佬厂商把持着,几乎是被垄断了。但是随着互联网的飞速发展,传统网络越来越难以满足新业务的需求。矛盾越来越难以调和,大佬们不得不出来通过添加新协议、新设备等手段来缓解问题,但是却成效甚微。于是,人民群众中滋生了革命的想法,现有的网络架构既然无法继续演进发展,为何不推倒重来,重新定义网络呢?于是,越来越多人的加入“革命者”行列,意欲将网络打造成一个开放的,可重定义的环境。在一群人的努力之下,2006年就提出了SDN的概念。
SDN,即(Software Defines Network),软件定义网络,和传统的协议定义网络成了一个相对的概念。
二、SDN的魅力:转控分离
2.1、SDN与传统网络的本质区别
咱就拿传统网络的OSPF路由协议来说吧。在传统网络中,一个收敛范围内的所有路由器都运行了OSPF路由协议,各个设备之间通过建立邻居,通告路由并学习,从而形成了路由表。这个就是路由的控制层面。而数据转发,则是根据路由器上的路由表记录的网段信息和下一跳地址进行转发,这个就是数据的转发平面。可以这么说,传统网络的控制和转发,都是由网络设备自身来完成,这叫做转控一体。
但是路由协议毕竟不是人脑袋,它可分辨不出来哪条链路拥塞,哪条链路空闲。路由器在通过路由协议计算最优路径的时候,只能“盯着”固定的参数,比如带宽,比如设置的Metric。这样很容易导致一条链路拥塞,一条链路空闲。
而SDN和传统网络最大的区别,或者说是本质区别就是,SDN是转控分离的。在SDN网络中,路由器、交换机这样的网络设备只负责数据转发,而规划路由表内的目标网络、下一跳地址这些控制转发的内容都由控制器进行。
到这里,我们已经将SDN的大致思想解释了一下,光有思想还不行,还需要有能实打实落地的手段,否则那就不叫思想了,只能叫梦想。在下一章中,我们就来看看SDN如何实现转控分离的网络架构。
2.2、SDN的调度协议:Openflow
在上一节说了,SDN的核心思想就是转控分离,交换路由设备只负责转发,路由学习,收敛,选路这些控制性的内容就交给控制器了。现在的问题就是:如何让控制器获取到网络的信息,从而下发指令给网络设备呢?
SDN有一个新的协议叫做Openflow,这个协议是用于控制器和网络设备之间进行沟通,并指导转发器(网络设备)进行数据转发。Openflow需要解决下列几个问题:
建立控制器和网络设备之间的沟通通道。Openflow规定了控制器和转发器(网络设备)之间必须要用一条三层可达的链路。通过该链路建立TCP连接,并采用了安全的算法进行加密(比如TLS)。同时,链路需要通过定时的Hello进行保活,保证链路出现问题时能及时发现。
收集每台网络设备的状况。例如,各个设备有多少个二层/三层接口?互联链路带宽如何?互联链路是否连接质量良好,负载多少?每隔设备的设备表项情况如何(路由表、ARP表、MAC地址表、协议邻居表等)。这部分内容,都需要每个网络设备传递给控制器。
指挥网络设备转发数据。控制器会根据收集到的网络设备的状况,会形成一张汇总后的转发表,再传递给网络设备,指挥网络设备根据控制器的指令进行数据转发。网络设备会根据控制器的指令,对后续的同类型的流量进行相同动作的转发处理。
在Openflow的后续版本中,又进行的各种优化,以提升运行效率和数据转发效率。
所以,SDN设想的网络情况是这样的:
1、所有交换机、路由器全部都白牌化,或者说白盒化。只需要将其用网线连接起来。甚至连IP地址都已经在底层写死了,都无需后续配置了。
2、所有的流量调整都在控制器上进行,而控制网络的不再是协议,而是控制器上的软件。这些软件甚至都是开源的,都允许二次开发。
既然SDN技术“来势汹汹”,而运营商和设备厂商大佬们却不太高兴。因为新的网络架构让网络彻底软件化,自己辛辛苦苦建立起来的基础设施彻底失去控制权,而沦为转发管道。彻底丢失对网络的控制权,让自己研制的网络协议成为废纸,这是所有大佬都无法容忍的,但是思科、华为等大佬厂商毕竟纵横网络世界几十年,自然不可能坐以待毙。这些大佬在网络协议方面的技术还是有明显优势,数据转发也是他们的老本行。你SDN再牛,硬件上也无法离开思科、华为、H3C这些设备嘛。
于是,这些大佬在考虑到不损失自己根本利益,又不至于被人说成是“为了利益阻碍SDN研究的绊脚石”,所以大佬们提出了SDN的另外一种方案,那就是Overlay。
2.3、Underlay和Overlay
Underlay网络和Overlay网络这两个概念,分开讲就不好说了。我们先看一下目前SDN的一种既能满足用户的需求,也能保证厂商利益的方案。那就是底层网络(Underlay)仍然采用传统的架构,仍然跑着各种路由协议;但是上层网络(Overlay)则是在底层网络之上,构建出来的一个逻辑的网络,这个架构大概是这个样子:
对于网络中的各个终端来说,物理网络到底是什么样子它们不需要知道。只需要知道的是这个物理网络是基于IP转发的,所以报文要到哪里去,提供目标IP地址就可以了。
举个例子来看,Server-A要访问Server-B,连接在不同的Leaf设备下,但是IP网段却相同:
那么,在Server-A访问Server-B的报文之前,封装的源IP地址应该是10.112.98.25,目标IP地址应该是10.112.98.26。先封装一个普通的报文:
第二件事情就是要告知物理网络,把数据报文送到Server-B那里,于是向物理网络提供目标IP地址是10.112.98.26。在Overlay网络中,可能没有直接到10.112.98.26的路由,于是就在原来的三层报文外面,再加一层IP网络的封装,就像这样:
在包头面前在增加一个外层包头,其实就是Overlay的基本思想。我们在上一章说的VXLAN,其实也是Overlay的一种典型应用,只不过,VXLAN是在三层包头外部封装的是MAC包头。
我们再来总结一下overlay技术,可以看到,实际上,物理网络成了我的一个工具,为我进行单纯的IP转发,而实际的逻辑网络再也不用看物理网络的脸色了,我想怎么部署就怎么部署,后面转发的时候我给你物理网络封装一个IP报头,你帮我转发就行了。这个封装和解封装的过程可以放在服务器上通过软件实现。不管物理网络是基于IP、基于MPLS、或者基于其他,都不要紧,你是基于什么转发,我就给你外面加一个你需要报头就可以了。
所以overlay技术很大程度的提高了网络的灵活性,并且不用对现有物理网络做任何变动。同时,封装的过程和内容可以通过软件实现,这就是为什么大佬们认为overlay技术也继承了SDN的思想,并且相对openflow有其优势。这种方案不像openflow那样激进,属于对现有网络的改良。
但是,事情真的是那么简单嘛?
对于坚持推送Openflow的这一批“革命派”,坚定的是支持基于Openflow的转控分离,从根本上改变目前的网络架构,他们认为Overlay仍然是换汤不换药。目前,也有一些厂商推出了Openflow控制器和基于Openflow的白盒交换机,但是总体来说,这个路线目前不够成熟,解决方案也不成体系。而且,Openflow目前也没有定义出完善的流量转发模型,连流表都不统一,控制器的兼容也不好。而SDN目前只是定义的控制面和转发面,对于设备网管的问题却一直没有解决。还有,不管是用Linux还是Windows做SDN的控制器,也容易遭遇攻击,安全性不敢保证。所以,SDN真正想“革命”成他们想要的样子,即控制器+白盒机,还需要走很长一段路。总的来说,这种革命极有可能走当年ISO/OSI七层模型要“革命”TCP/IP五层协议族一样, ISO/OSI七层模型弄得太完美,完美到完全无法落地使用。
而对于这次Overlay的“改良派”,他们通过一系列网络虚拟化技术提升的网络的灵活性、缓解了传统网络的顽疾。软件Overlay一类的技术自己也是可以编程的,在Overlay网络中,也可以用控制器来决定数据流在Underlay网络中的传递路径。但是,这毕竟不是彻底的“转控分离”,Overlay上的转控分离还是受到了Underlay的限制,所谓“根基不牢”嘛。同时, overlay技术本身也并不是完美无瑕,其在和传统二三层网络互通,网关处理方面也同样存在一些缺陷。
三、数据中心的SDN应用
3.1、数据中心为何需要SDN?
随着大数据时代的到来,数据中心部署的业务数量成倍增长,新业务上线要求越来越快,数据中心网络规模也急速扩张,根据IDC的数据显示,预计到2020年,全球数据中心网络规模将增长10倍。越来越多的业务部署和越来越大的网络规模,使得传统数据中心的发展面临了一系列挑战:
A、网络要能适应业务的快速增长和灵活扩展
据统计,到2020年,服务器的总量增长10倍,全球数据增长50倍,为了承载指数级增长的流量,数据中心网络架构的可伸缩性显得尤为重要。除了要支持STP,CSS, SVF, M-LAG等传统的组网方案以外,也需要支持TRILL, VXLAN等大二层技术,以及VPLS, EVN, EVPN等多数据中心二层互联技术,以便云数据中心虚拟机可在大二层网络中任意迁移,实现IT资源高效利用和灵活共享,同时满足海量服务器接入。数据中心只有构建弹性扩展和适应业务快速增长的网络,才能在数字化时代占得先机。
B、业务发放和部署效率要求越来越高
传统数据中心的业务系统基于物理分区部署,当需要支持新建业务或扩展已有业务能力时,需要对现有数据中心扩容,不仅建设成本高昂,并且由于必须进行前期业务系统与对应网络规划,后期网络手工配置、业务调试上线等等措施,致使业务上线时间长达数周甚至数月。面对大数据时代业务快速创新需求,传统数据中心出现了业务适应缓慢和部署低效的问题,网络商用速度远远落后于业务需要。云计算业务发放效率已经成为制约数据中心快速发展的关键。如何更加快速部署业务应用,为企业业务系统提供更及时、更便利的网络服务,提升企业的运行效率与竞争实力,是当前企业数据中心使用中面临的挑战之一。当前数据中心建设必须考虑如何实现业务快速上线,需求快速响应,提高部署效率。
C、多元化的生态系统要求开放架构,不被厂商锁定
随着虚拟化、云计算的不断发展,数据中心形成了多元化生态系统,开放和开源是客户和产业链的共同选择。开放能激发产业链创新能力,有助于云生态健康快速发展;对客户来说,不被厂商锁定,业务灵活扩展的数据中心网络,是基础网络的核心诉求。
SDN提出了用软件定义网络的思路,具有转发和控制分离、控制逻辑集中、网络虚拟化、网络能力开放化等特点。正如雪中送炭一般, SDN技术能很好地契合数据中心网络在集中网络管理、业务快速部署、灵活组网多路径转发、虚拟机部署和智能迁移、虚拟多租户、硬件资源整合等方面的需求,非常适合在数据中心网络中应用。因此, 基于SDN的云计算数据中心网络是未来数据中心网络发展的趋势。但是,SDN技术由于成熟度不够,技术不成体系,加上目前大部分企业用的仍然是传统架构,不可能在一朝一夕之间完成SDN改造。即使是用Overlay的SDN,也是在数据中心内部署一个开发测试区域网络。
3.2、基于SDN的数据中心
新一代华为数据中心采用了典型的SDN四层架构,包括:业务协同层、网络控制层、Fabric网络层和服务器层。同时增加了对网络资源进行统一监控的网络运维平台和实现计算资源管理的VMM虚拟机管理系统。
服务器层:
作为数据中心最基本的元素,随着服务器虚拟化在数据中心中大行其道,大量VM(即虚拟机)的出现使得虚拟化管理平台的出现成了必然。服务器层由计算终端和虚拟化管理平台组成。
当前采用的计算终端主要包括VM、物理机、裸金属机几种。
采用的虚拟化管理平台主要包括Hyper-V、 ESXi、 KVM,将Host主机虚拟化成VM进行管理。
网络控制层:
作为实现SDN网络架构中的大脑,功能十分强大。它基于SDN架构分层解耦,提供标准的南北向接口和编程能力,构建开放生态圈。感知云管理平台的网络资源和VMM的虚拟资源的变化,实现Fabric网络和服务器资源统一控制,通过业务策略编排,完成网络建模和业务自动化部署。当前采用华为公司提供的AC控制器( Agile Controller)。
Fabric网络层:
作为SDN网络架构中的骨干,是由物理网络设备组成的Underlay网络,承载着Overlay网络。Fabric网络层通常包括Fabric网络和增值业务组两部分。Fabric网络:提供L2、 L3层业务,主要采用CE系列交换机,充当接入交换机(可以是硬件交换机或者软件交换机vSwitch)、汇聚交换机和三层网关的角色。增值业务服务:提供L4~L7层业务,主要由防火墙(硬件防火墙或者软件防火墙vFW)、负载均衡器(硬件负载均衡器或者软件负载均衡器vLB)、 DHCP服务器、邮件服务器和RADIUS/AD认证服务器组成。
业务呈现/协同层:
统一管理业务资源,是部署业务的入口。包括云管理平台和运维平台两部分。云管理平台:实现计算、存储和网络资源的协同调度。同时提供面向客户(租户)的计算、存储、网络业务界面。当前可以采用华为公司的FusionSphere,标准的OpenStack( Kilo)或者其他第三方应用平台。
运维平台:
面向数据中心业务,提供场景化运维操作和可视化的状态、风险、效率分析能力,能够基于分析结果与服务中心配合完成数据中心自我优化和自愈。
当前可以采用华为公司的ManageOne( OperationCenter)或者其他第三方运维平
台。
VMM( virtual machine management,虚拟机管理):
主要实现计算资源管理,如虚拟机的创建、删除和迁移。
当前可以与VMware的vCenter、 ESXi, Microsoft的SystemCenter、 Hyper-V,或者KVM对接协同。
网络运维平台:
对网络资源进行统一监控的系统。
可以采用由华为公司提供的网络运维系统eSight,或者其他第三方网络运维系统。
3.3、VXLAN Fabric网络
华为数据中心SDN方案中使用VXLAN技术构建Overlay网络,实现业务网络按需部署。数据中心网络从功能上划分为承载网络( Underlay)与业务逻辑网络( Overlay)。
Underlay网络采用成熟的Spine+Leaf架构,支持横向扩容。Leaf与Spine做物理上的全互联链路,等价多路径提高了网络的可用性。
Spine节点: Spine节点一般部署两台大容量交换设备, Spine节点同Leaf节点相连的以太网口配置为三层路由接口,构建IP Fabric网络。
Leaf节点: Leaf节点推荐部署CE6800系列交换机,同每个Spine节点相连构建全连接拓扑;同时Leaf节点作为underlay网络的L2/L3分界,同Spine节点相连的以太网口配置为三层路由接口。Leaf节点的ToR设备数量较多,可以通过ZTP自举的方式部署ToR设备,降低部署复杂度。
可以根据需求对Leaf接点进行单机部署或堆叠、M-LAG部署。
Overlay仍然采用VXLAN,DCN SDN网络中使用VXLAN技术构建Fabric网络:
数据中心分区Overlay网络使用VXLAN技术构建大二层网络环境,按照VTEP与VXLANL3 GW由物理交换机还是服务器上的软件vSwitch实现,当前VXLAN方案可以划分为硬件Overlay组网方案、软件Overlay组网和混合Overlay组网三种主要方案:
NVE是实现虚拟网络的关键模块,它可以实现为Hypevisor的虚拟交换机的功能,也可以在物理交换机或路由器中实现。
硬件(网络) overlay方案: Nve部署在物理交换机上。这是当前敏捷数据中心SDN主要采用的方案。新建物理网络,通过VXLAN Overlay网络,实现自动化业务发放。
软件(主机) overlay方案:Nve部署在软件vSwitch交换机上。不改造现有物理设备,与具体厂商硬件设备解耦,无需配置物理网络,实现大规模逻辑二层网络的自动创建。
混合overlay方案: Nve同时部署在硬件交换机和软件vSwitch交换机上。通过SDN实现对虚拟网络及物理网络(交换机、防火墙及F5)的配置管理和自动化业务发放。
当前华为敏捷数据中心SDN主要采用纯硬集中式Overlay的方案, NVE部署在物理交换机上,由网关物理交换机担任VTEP。业务L3网关集中部署在固定的网关交换机上。如下图, L3网关根据组网需要由Spine或专门的Service Leaf担任。
在目前的网络环境中,对于网络工程师来说,要想部署SDN网络,就需要先在底层部署VXLAN Fabric网络。而部署VXLAN Fabric网络呢,也是有着固定的套路来完成,比如华为、H3C都有标准的交付手册,所以实施起来难度并不算太大。而真正有一些挑战的的,实际上还是玩上面的控制器。
四、总结
本文介绍了当前的网红技术——SDN,从传统网络的弊端开始说起,说到了SDN兴起的原因。实际上,SDN的核心思想就是“转控分离”,让交换机和路由器都沦为“转发器”,而网络选路、流量控制都由控制器进行集中控制。在目前,因为SDN的技术还不够成熟,Openflow也没有一个成体系的解决方案,再考虑到目前各个厂商的利益问题,所以目前的SDN都采用的是Overlay解决方案。要说SDN有用吗?那也是确实有用,因为传统网络确实存在着设计难度大,运维难度大,成本高的一些问题。但是SDN要是真正要完全成熟而全面推广,还是需要一定的时间。