POD 0.引言

身为一个IT领域人士,新鲜事物进入到我们的视野中是稀疏平常的事。

这几年来,SDN、SD-WAN、Openstack、Docker、NFV、边缘计算等等新名词频繁出现在媒体报告、厂家的PPT之中。

对于大多数一线技术人员来说,媒体、厂家对于这些新技术的宣传总是令人激动的、牛逼板板的,宣传中总给人一种这个技术是下一代的。比如这个技术能XXX解决问题12345,能让我们的未来多么美好。总是给人一种这个技术多么牛逼,是下一代的,是未来的方向。

以SDN为例,SDN这几年一直如日中天,可以说一直雷声震天,气势汹汹要来取代我们的传统网路,但过了两年大家发现似乎有点雷声大雨点小,好像一直活在传说之中,没对我们造成什么大的影响。

本文会从几个方面来简单阐述下真实的SDN,以及我们应该如何看待SDN。

另外才疏学浅,班门弄斧。如有错误,也请各位大神多指正。

POD 1. SDN为何而来

关于SDN的历史简介相信大家都有所了解

大概就是斯坦福的大神写了一篇论文提出一种新的控制网路的思路然后在校园网里捣鼓,这个就是openflow。然后谷歌发现不错,拿来实用化了后让openflow名声大噪,浩浩荡荡进入了市场,开始了各方争斗的一块新大陆。

虽然openflow不能完全代表SDN,但实际上来说几乎就是主心骨。

openflow的核心思路是转控分离、控制层面集中化管理,这点几乎所有和SDN有关的资料都会描述到,但这点特性实际上是如何体现出价值的呢?

这里首先要说下第一个商业化的SDN网路Google B4广域网。

Google B4

这张网是Google用来连接他在全球的各个数据中心的(DCI),openflow在其中解决的主要问题是数据中心之间链路的利用率的问题。

效果也非常好,SDN集中式对全局流量管理非常出色,可以做到95%的网路利用率(运营商约为40%),也可以做到更好的QOS、更好的业务上线速度和更好的故障处理速度。

但如此光鲜的成就背后其实也有很多特殊性条件,决定了这种效果的可复制性的难度非常大,比如:

  1. Google的开发能力(不是针对某个人,而是在座各位都是LJ)
  2. 网路节点较少(对比运营商这节点真的够少的)
  3. 私有的封闭式网路(非常方便的统一规划和部署)

自SDN名声大噪以来,各个标准化组织和厂商都进入了战场,想主导这个下一世代网路构架的话语权,并且根据利益相关分出了几大派系:

学院派

ONF(开放网路联盟)为代表,SDN最早的流派,象牙塔里的大神,以理想化为目标要改造世界!世界人命早已苦你们厂商搞硬体捆绑来捆绑去久矣,还在一台机器一台机器桥配置?让我软体来净化一切!

厂商派

以ODL(CISCO)为代表,学院派风头正盛,这种搞法搞下去以后就只能喝汤了。变是肯定要变的,变的目的是SDN化了我也能挣大钱,抢到SDN话语权才能持久吃鸡。看看ODL官网的使命:(谷歌机翻)

ODL

大概意思就是:我,牛逼,打钱。等下对比后面ONOS的画风都不一样,再看看主要会员,主要看白金的(2019年1月),

ODL合作伙伴

谁是领头羊,代表著谁的利益一目了然。

运营商派

我运营商(包括传统电信运营商和云计算运营商如阿里)是网路设备购买大户,你们厂商瞎鸡脖搞出一堆东西后总想著捆绑我然后还卖那么贵最后受害的是我,小型机的亏我已经吃够了,所以我也要搞SDN争取主导地位,卖家少挣钱,买家少花钱!但运营商开发能力相对还是比较差,不过发现ONF的思想深得我意,解耦、NFV、白盒化什么的,不都是我想要的么?纷纷加入ONF的ONOS项目

看看ONOS官网的使命:(依旧机翻)

ONOS

看这介绍,一脸「天下苦秦久矣」的样子,SDN的目标除了创新,更重要的是解耦、降成本,再看看项目会员(2019年1月):

ONOS合作伙伴

和ODL会员对比一下,非常鲜明。

总体来看,SDN这块新大陆暗流涌动,各路势力代表著自己的利益互相角逐,也因此更需要关注为什么需要SDN,想清楚SDN是否符合我们的利益,毕竟目前厂商出来推销的SDN解决方案一定是符合厂商的利益的,而不一定是使用者的。

POD 2.关于SDN的几个特性

下面随便聊聊关于几个SDN常说的特性和名词

」转控分离」

这点可以说是SDN提到最多的字眼了。

其实网路设备的控制层面和转发层面本身就是分离的,SDN里的专控分离所带来的变化其实的是控制层面的自治转变到集权控制。

也就是说,转控分离这点更多要研究的是网路控制层面上是要做自治,还是集权。

传统网路考虑的思路是网路这么大,覆盖范围这么广,网路的管理得是自治的,你管你的网,我管我的网。因此控制相对独立,大家如何统一步伐靠的是协议,大家遵守一样的规范那就没有问题了,事实上几十年来也做的非常好。

而SDN化后就要做集权控制了,一个网路中天下归一。

然后为什么SDN要集权呢?主要矛盾还是每个网路设备的配置都是独立的,运行都是自治的,这就带来了在于业务比较复杂的网路环境中新增或调整一些业务经常要挨个设备去调,这在一些有快速业务变更的场景里来说或者说想实现快速实时的业务变更简直是一个灾难。

而且对于比较小的网路(包括Google B4,从节点上来说还是蛮小的),而且责权十分清楚,网里都是我的设备。这种情况下做SDN式集权是现实的,不会带来显著的负面影响和困难。

但对于大规模网路或分区域自治的网路,这种集权式的网路对控制器的性能、调度演算法、设备厂家多样性、可维护性和行政问题等各方面都带来了很大的挑战。虽然现在也有多级的方案来探索解决,但这也是一个不能忽视的问题。得掂量下SDN化后得到的东西和失去的东西。

转控分离另外个问题是控制层面分离的还不够彻底,openflow把流表控制权拿走了,但设备管理还丢那没人管呢,配过设备的都知道刷脚本一半是业务的,还有一半是管理的,管理配置目前的方案还是依赖一些其它手段比如netconf等甚至CLI。可以这么说,某些厂商的园区SDN解决方案里面,netconf的作用比openflow的大多了。然而依赖其它手段又是一吨私有的内容,开放兼容遥遥无期。

开放性

开放性这里指的是对北向的开放,就是那些个北向介面,不论是哪个阵营哪家的SDN控制器,都可以提供可观的介面,可以使用这些介面开发上层应用、对接openstack这些。

众所周知,说到介面就是开发,也就是这点是说给有开发能力的人和需要进一步开发来匹配自己网路需求的人说的。不会开发的就只能等厂商开发好应用卖给你,或者说……不做又不是不能用。

关于简化运维

从理论上是的,SDN推进软体化后,厂商可以写出不少好东西来简化我们的运维,工作量肯定是可以大幅度下降。在各厂商的SDN网路方案中基本都有不少简化运维的特性。

但我们需要清晰的看到SDN简化运维的另一面,长远来看就是运维的深度要求会大幅度提高,技能也会完全改变。因为网路控制的软体化,网路会逐渐变成一个黑盒,故障排查这件事会变成debug。以前基於单个自治系统的排查故障的方式和工具一下就全部没用了。

长远来说这应该是个好事情,毕竟debug是厂商的事。不过以目前SDN深化的程度,现状是厂商针对某个场景的写了个比较好的简化运维手段的应用,很符合我们的业务、运维实际情况,然后我们经过学习使用后可以在这个场景下大幅度降低运维工作量。

到这里又会遇到兼容性问题了,控制层面分离的还不够彻底,配置这块都是厂家私有的东西搞的,就不要想什么兼容了,宣传兼容的背后肯定多少要牺牲一些宣传的特性,至少华三的方案是核心汇聚都需要全部使用华三某些指定型号的产品,接入可以换其他厂家,但会损失一些自动化运维的功能。

关于兼容性

这点可以说是SDN最大的诟病所在了。

众所周知,我们把思科的、华为的、华三的、锐捷的甚至迈普烽火TPLINK的路由器、交换机拼在一起使用,我想大家从来不会担心互相的兼容性问题,像802.1Q、RSTP、OSPF等传统网路协议的标准化是非常成熟的

但SDN这块把以上厂家里做SDN的拉在一起问问他们,不开发的情况下谁敢说能够互相兼容?

上面提到的转控分离、北向开放、简化运维里面带来的各种优势都可以被这一条撂翻。

如果按照某些厂商的方案思路,我们买了他的SDN解决方案,那结果是我们要换掉网路中几乎所有的设备,而且局限于这个厂家的某一些产品。也许厂家会说可以兼容什么的,但相信我,他们提的5个亮点,你每用一种其它厂家的设备就要牺牲其中某个亮点。

问题来自哪里呢,首先是openflow,openflow看起来似乎是一个规范标准的协议,但里面有的是厂商自己的私有扩展,而那些解决方案都是高度依赖这些私有的内容的。

另外就是之前提到的openflow对设备控制的不全面,除了流表的控制基本都是厂商自己定义,这点短时间内几乎无解。

白盒化

这是一个卖方少挣钱,买方少花钱的故事。上一个白盒化的IT基础设施是伺服器,结果大家非常清楚,伺服器杀成白菜价,阿猫阿狗都能做伺服器。软体也与硬体完全解耦,伺服器上装啥操作系统都行。

这个事最大的反对者就是思科,最大的支持者是运营商、白盒厂家,还有些打不过思科的小厂家。比如阿里买数据中心交换机居然会大批量买锐捷的,而且动不动几千万的买。按照常理来说阿里这么有钱这么牛逼为什么要买一个小厂家的交换机,背后一定有PY交易。

事实情况是顶端的玩家真的不在乎这些大厂提供的解决方案了,这些解决方案根本解决不了问题,拿来还得开发,还卖的死贵。所以对于阿里这种公司来说白盒化程度越高越好,机子稳定性能够就行,我要的1234基本功能567介面你给我准备好就行,其它花架子软体反正都是我要自己写的。

目前白盒化SDN这块算是有点眉目了,可以了解下P4和stratum项目,这次是想要实现全面的控制了(真不要netconf了)

不过目前来看还是各运营商主要考虑的事,和园区网关系不大。园区网还是这些传统大厂褥羊毛。

随便说下对NFV的看法

没错这是NFV

字面意思 软体功能虚拟化,大概就是,要什么路由器、丢虚拟机里去,要什么防火墙,丢虚拟机里去,要什么负载均衡,丢虚拟机里去。

仔细想了想,我在家里的虚拟机上跑了ROS软路由作为主路由,应该算是赶上NFV的时髦了。

NFV的愿景总结两个词就是省钱和灵活。

目前最大的阻碍是厂商和X86平台的性能,首先传统厂商对于NFV是抗拒的,NFV了我还卖锤子硬体,我一台BRAS几十万,一台伺服器才几万块钱。然后为了适应潮流不被新兴厂家找到空子插了足也还是出了NFV产品,然后卖的比盒子还贵。

第二是性能问题,即使是加了DPDK,X86平台的性能还是十分吃紧,20G-40G的转发对于专业设备来说还是na?ve。

似乎网路边缘的性能要求不高的地方但还是有完整的多业务需求的地方似乎是个不错的选择。这就是另外个话题了,有兴趣可以了解下边缘计算、ONF的另外个项目CORD。

POD 3.从业务来看SDN

由于不同行业、不同客户的业务及业务背后引发出的需求完全不一样,我也只从2个我相对比较熟悉的行业来看看SDN目前融合业务的情况。

园区网

先说结论,大部分园区网SDN并不能对业务带来很大提升或者在业务上存在刚需。

首先定义一下我这里所说的园区网一般包含什么,一般来说是一个企业园区、单个大楼、工厂、学校、医院或者类似的网路。不含金融,这个太特殊。

园区网大点的OSPF都要起多个域,小点的默认路由+NAT permit any any,不同行业、不同规模对于业务的需求也都完全不一样。但从整体业务上来看,80%的业务需求是上网,还有10%是要跑些业务,比如医院内网、校园一卡通、监控网之类的

如果只是上网的话,个人的理解是网路越简单越好,网路大解决好广播域和接入安全什么的就可以了,运营商的PPPOE接入就是一个极端例子,直接隧道点对点送过来,不要考虑那么多,只有上网需求,网通了就行,就是一个字,干!

如果说什么东西在园区需要用一些新技术来解决的,这个真的需要抓脑壳好好想想,园区网大多数情况还是处于没有SDN也没多少解决不了的问题,或者不解决也没啥影响的问题。以下几个是我们的各路厂家给出的思路(其实是先做SDN,然后看看SDN能解决什么问题)

  • 安全资源池引流,就是防火墙、IPS、流控这些个东西都旁挂,业务A的流量丢防火墙里过一下、B流量的丢流控里,C流量直接过,顺带还送个bypass功能,属于SDN方案万金油,openflow拿手好戏,到哪都能用。
  • 准入认证策略迁移的问题,就是园区认证后如果对安全策略控制有些要求的单位,搞了SDN这个安全策略可以跟著人跑,不受接入层配置的限制
  • 大量哑终端准入认证问题
  • 简化运维,接入汇聚上线时、替换时搞些模板化配置就行了,其它的交给SDN控制器或者overlay来解决

以上内容不代表SDN能在园区网里做这些功能,只是各厂家自己通过SDN搞出来的一些功能,基本只能或其中某些关键设备只能使用这个厂家的设备。而且里面某些功能并不是基于openflow搞出来的。

其它一些SDN的特性呢?

转控分离:没啥坏事,全网设备都是我的,我集权理所应当,也确实能解决一些问题,但没有啥刚需问题需要转控分离来解决的。

北向介面开放:开玩笑,园区网管撸代码?只能等厂商开发好喂嘴里了。不过个别有志之士和比较牛逼的大学信息中心确实可以干这个。毕竟openflow就是斯坦福大学里搞出来的。

兼容性:可能是园区网SDN化的一个阻碍,上来就要换掉全网设备,要不效果总要打点折扣。后期扩容、升级、故障替换都得用这个厂家的,否则轻则损失部分功能,重则要停掉SDN恢复成传统状态。不过厂商关系做透了+用户有钱这个问题就不是问题了。

简化运维:SDN简化运维更多的还是来源于统一设备后的厂家提供的统一配置

关于国内各做园区网的厂家是怎么玩园区网的方案的,华为、锐捷是以SDN控制器+支持SDN的交换机做流表控制或直接下发配置来解决一些以前扁平化和三层网路方案的一些问题。华三相对比较激进一些,是直接采用VXLAN构建overlay的方式来做,各有特点,哪种方式是否适合园区网或者是否有新的思路或解决方案还需要时间和市场来做定论。

对于园区网,SDN大部分情况还是一种有则更好,但也没啥问题一定要SDN的状况,根源在于SDN解决的问题不是业务的问题,也不是啥不做就会死的刚需。在这种情况下,SDN更多的是一种尝试探索、引领潮流甚至只是门面、政绩工程。

数据中心

先说结论,提供云服务数据中心SDN属于业务刚性需求,其它数据中心也可以使用SDN来改善业务的。

讲实话数据中心个人理解还不够深入,尤其是超大规模的数据中心,在这里班门弄斧分析一下。

首先,大家可能默认已经认为SDN在数据中心里有非常广泛的应用了,似乎不搞SDN的数据中心都已经脱离的潮流了。

这点在云数据中心应该是正确的。SDN在对外提供云服务的数据中心比如阿里云、腾讯云这些云服务商有刚需需要通过SDN技术来配合云管平台给租户开放业务时能够自动的配置网路数据,这种需求是数据中心使用SDN最重要的理由之一了,属于业务刚需。

某厂的自动化部署方案

再者就是安全资源池引流,这里对比园区网就可以体现出很高的价值了,业务种类非常多,由SDN来引流可以实现自动和自助化,也可以给云数据中心的业务带来价值。

资源池引流

另外还有多数据中心DCI的流量调度,也就是Google B4案例所做的事情。某公司分布在各个地方多个数据中心DCI链路成本还是非常高的,一条路径跑满了另外条还是半空的对业务体验也会造成不良影响,如何提高DCI的利用率关系到钱和服务质量的问题。这个是SDN对业务层面上对业务有很大提升的一个方面。

另外提一点,其实很多数据中心的交换机上都是没有开SDN功能的,但是数据中心里上了全套的SDN+VXLAN。这里是把数据中心租户的网关、VXLAN的VTEP做到了vswitch上面,SDN控制的交换机是这个vswitch,外面的交换机主要就负责转发。这样最大的好处就是又用了SDN,享受SDN带来对业务的提升,在实现完全白盒化之前又避免了厂商绑定,外面的交换机能跑常见的L2、L3协议就行了,这些协议的互通传统设备肯定是没有问题的,比如阿里云和移动的几个大资源池就是这么干的,Vmware的NSX解决方案也是这样。

POD 4.总结

一个新技术的出现,目的总是为了解决业务中的一个或某一类问题,但我们的网路的场景实在太多了,园区网、数据中心、运营商等等不同的场景要解决的问题完全不一样

有的场景中比如数据中心,SDN带来的价值非常符合数据中心的业务需求

而大部分园区网,SDN能解决的基本都是非核心业务类问题,再加上厂商磨刀霍霍的声音,是否选择上SDN还真得认真考虑下。

另外SDN内部也是出于一种各方角逐的状态,学术派和设备厂商也难以达成一个共识,还有运营商和白盒厂家搅搅事情。

因此以SDN目前的力量还很难达成普世性,SDN成为救世主还有很长的路要走。


推荐阅读:
相关文章