最近SD-WAN在业界炙手可热,越来越多的企业客户准备或已经上马SD-WAN。在此风生水起之际,各式各样的SD-WAN供应商自然轮番出招、应接不暇。笔者在深入接触了一些国外主流商用SD-WAN厂家的技术方案后,希望能对这些主流商用SD-WAN方案中所采用的最根本的SDN特性进行一些分析,供大家讨论。
![](https://i-blog.csdnimg.cn/blog_migrate/445dca7c86b8320df96eff7530f1920d.jpeg)
说实话笔者在深入了解业界主流商用SD-WAN之前,对SD-WAN名字中Software Defined的认知更多的停留在传统SDN所强调的控制面和转发面分离的模糊概念上。笔者曾先入为主的以为SD-WAN中采用的转控分离就是沿袭学术界SDN的经典套路,采用类似Google基于Openflow构建的横跨全球数据中心的B4 SD-WAN的思路--毕竟Google的B4 WAN是 SD-WAN的鼻祖啊。
然而在初步接触了几大商用SD-WAN厂商的技术方案之后,笔者骤然有种被欺骗的感觉:这些SD-WAN解决方案中所谓的“SDNController”其实就相当于一个大家已经使用了快20年的BGP RouteReflector,和 SDN没什么关系。这完全颠覆了笔者的世界观,令我非常的失望和不安。
但随着进一步的深入了解,笔者发现这些所谓的“SDN Controller”和传统的BGP Route Reflector虽有神似,实则不同。具体说来,这些冒牌的"SDN Controller"虽然没有像学术界或Google B4 SD-WAN所使用的SDN Controller中转控分离做的那么理想和纯粹,但确实也继承了SDN的一些神韵。如此一来,SD-WAN的名字也算差强人意。下面就请听我慢慢道来:
首先我们来讲讲主流商用SD-WAN方案中这些所谓的"SDN Controller"和传统的 BGP Route Reflector究竟有多么的相似。我们借用全球SD-WAN Top 2厂商 Viptela的一张系统架构图(图一)来解释一下。(注:目前Viptela和 VeloCloud谁是SD-WAN市场老大还存在争议,但他们两个以及绝大多数SD-WAN厂商的系统架构都非常类似。另外有趣的是,这两个Top 2 Vendors最近分别被Cisco和VMware收购了,可见这个市场的热度,竞争的激烈,以及日趋饱和)。
![](https://i-blog.csdnimg.cn/blog_migrate/f54662250393a733eae2fed6bdc47278.jpeg)
图一:Viptela SD-WAN系统架构
在图一中,vSmart Controller就是Viptela所谓的 “SDN Controller”,用来负责与用户各个站点的CPE设备(图中的vEdgeRouters)进行通信从而交换用户各个站点之间的路由信息。所以从控制平面来看,各站点的CPE设备彼此之间不再交换路由信息,而是统一发送给中心控制器。之后再由中心控制器将路由信息传递给其他的CPE设备。这种集中控制的思想正是SDN的精髓所在。然而如果仔细来看这些CPE设备与中心控制器之间是如何来交换路由信息的话,我们发现目前主流SD-WAN厂商都是采用基于BGP协议的路由交换 。BGP?是的,您没有看错,正是那仙福永享,寿与天齐的BGP,而不是因为SDN炒的火热的新贵小开OpenFlow(注:通常SD-WAN厂商都会在BGP的基础上做些改动和扩展,比如Viptela将改动后的BGP协议称为OverlayManagement Protocol (OMP),具体细节可以参见他们为OMP申请的专利:https://www.google.com/patents/US9467478。)
看到这里,各位看官可能会有这样的疑惑:如果CPE设备和中心控制器都是基于BGP的路由交换,那么这和传统的BGP Route Reflector有什么区别呢?(注:这里附上一个传统的BGP Route Reflector的架构图供您参考,其中心思想就是各个BGP Router之间不再建立网状的BGP Session来交换路由,而是统一发给中心的BGP Route Reflector ,再由他传递给其他所有的BGPRouters。可见其与SD-WAN里的SDN Controller多么的相似)
![](https://i-blog.csdnimg.cn/blog_migrate/a843957cea94285b880f3c8ee21c1e31.jpeg)
图二:传统的BGP Route Reflector架构
BGP Route Reflector早就有了,比今天大家热炒的SDN早了快20年。这些主流SD-WAN厂商所采用的技术真的算是SDN吗,还是挂羊头卖狗肉,新瓶装旧酒?
这种疑惑伴随着笔者许久,直到笔者仔细研究了这些SD-WAN厂商对BGP协议的改动和扩展,以及这些解决方案中对集中式Policy的强调和使用,才发现SD-WAN里的SDN Controller大大超出了传统BGP Route Reflector的能力范围。下面是笔者总结的所谓的SDN Controller与传统BGP Route Reflector的几个主要区别:
1.目标的不同
传统的BGP Route Reflector主要是为了解决iBGP网络里对BGP Router之间需要Full Mesh互联的问题。BGP Route Reflector可以有效的将所需的BGP Session的总量从Full Mesh时的N^2的数量级降低到Hub-Spoke时的N的数量级。这对减少超大规模的BGP网络的复杂度非常重要。
而反观 SD-WAN里的 SDN Controller,它最主要的目的是提供一个集中管理和配置Overlay网络的工具。同时SDN Controller除了提供以Hub-Spoke方式的路由交换,还提供了简化的安全密钥交换(用于数据平面CPE设备之间IPSec隧道的建立),中心化的Policy控制,以及VPN标签的分配,等等。所以SD-WAN中的SDN Controller的目标和功能远远超出了传统BGP Route Reflector单纯的路由交换。
2.路由传递实现方式的不同
传统的BGP Route Reflector在交换路由时,只是简单的将从一个CPE Router处收到的路由信息原封不动的“反射”给其他所有的CPE Routers,这也正是Route Reflector (路由反射)名字的由来。
然而 SD-WAN里的SDN Controller在收到从一个CPE Router发出的路由信息之后,在SDN Controller做了很多的计算和处理,然后才将过滤和处理后的路由信息发给相应的CPE Routers (注意不一定是其它所有的CPE Routers)。通常SDN Controller所做的处理包括:根据用户定义的Policy来修改路由的参数,综合所有已收到的路由信息计算出到达任何用户子网的最佳路由,将上面计算出的最佳路由信息发送给某些特定的CPE Routers(具体由用户Policy决定)。从这里我们再次可以看到 SD-WAN里的SDNController比传统的BGP RouteReflector要复杂得多,功能也要强大的多。
当然除了以上总结的两点主要区别以外,他们之间还有其它一些小的区别,比如路由所携带的参数信息,最佳路由的算法等,此处不再展开。
如果您能坚持看到这里还没有睡着或者改刷朋友圈的话,那么恭喜您!-您已经掌握了目前市场上主流SD-WAN厂商所使用的最核心的路由技术及其与SDN这个大帽子的真正关系。当然SD-WAN不仅仅是SDN,我们今天所讨论的路由技术也只是SD-WAN所使用的众多技术中的一个。虽然笔者认为如何在Overlay层面构建路由是SD-WAN最核心的关键技术,然而我们不得不承认SD-WAN在Overlay路由基础之上所提供的多种多样的功能和服务(比如Application Aware Routing,集中化和界面化的Policy Control, Zero Touch Provisioning (ZTP), VPN和 Segmentation )才是SD-WAN真正吸引客户的地方。关于SD-WAN那些琳琅满目,吸引客户争先恐后掏出荷包的功能,我们下次再专门找个机会聊一聊。