SD-WAN到底怎么了?

最近SD-WAN在业界火热,越来越多的企业客户正在准备或已经推出SD-WAN。这时候各种SD-WAN供应商自然轮番出招,应接不暇。在深入接触了国外一些主流商用SD-WAN厂商的技术方案后,希望分析一下这些主流商用SD-WAN方案中采用的最根本的SDN特性,供大家讨论。

说实话,在深入了解业界主流商用SD-WAN之前,对以SD-WAN之名定义的软件的认知,更多的是局限于传统SDN所强调的控制平面与转发平面分离的模糊概念。笔者曾先入为主地认为,SD-WAN采用的转移与控制分离,是沿袭了学术SDN的经典套路,采用了类似Google基于Openflow跨全球数据中心搭建的B4 SD-WAN的思路——毕竟Google的B4 WAN才是SD-WAN的鼻祖。

然而,在初步接触了几大商用SD-WAN厂商的技术方案后,笔者突然觉得被骗了:这些SD-WAN方案中所谓的“SDNController”其实相当于一个大家已经用了近20年的BGP RouteReflector,与SDN无关。这完全颠覆了作者的世界观,让我非常失望和不安。

然而,随着进一步深入了解,笔者发现这些所谓的“SDN控制器”与传统的BGP路由反射器类似,但实际上是不同的。具体来说,这些假冒的“SDN控制器”虽然没有学术界或者Google B4 SD-WAN所用的SDN控制器那么理想和纯粹,但确实继承了SDN的一些魅力。结果SD-WAN这个名字也不尽如人意。请慢慢听我说:

首先来说说主流商用SD-WAN方案中的这些所谓的“SDN控制器”和传统的BGP路由反射器有多相似。我们用一个全球SD-WAN Top 2厂商Viptela的系统架构图(图1)来解释一下。(注:目前Viptela和VeloCloud谁是SD-WAN的市场主导者还存在争议,但他们和大多数SD-WAN厂商的系统架构都非常相似。另外,有意思的是,这两个Top 2厂商最近分别被思科和VMware收购,可见这个市场的热度、竞争的激烈和日益饱和)。

图1: Viptela SD-WAN系统架构

在图1中,vSmart控制器就是Viptela所谓的“SDN控制器”,用来与用户各个站点的CPE设备(图中的vEdgeRouters)进行通信,以便在用户各个站点之间交换路由信息。因此,从控制平面来看,各个站点的CPE设备不再相互交换路由信息,而是统一发送给中央控制器。之后,中央控制器将路由信息发送给其他CPE设备。这种集中控制的思想是SDN的精髓。但是,如果我们仔细观察这些CPE设备如何与中央控制器交换路由信息,我们会发现主流SD-WAN厂商都在使用基于BGP的路由交换。BGP?是的,你没有看错。永远被祝福的是BGP,并不是因为SDN炒的火热的新贵OpenFlow(注:SD-WAN厂商通常会在BGP的基础上做一些改动和扩展。例如,Viptela将修改的BGP协议称为覆盖管理协议(OMP)。详情请参考他们的OMP专利申请:/patents/US9467478。)

看到这里,读者可能会有这样的疑问:如果CPE设备和中央控制器都是基于BGP路由交换,那么这和传统的BGP路由反射器有什么区别?(注:这里是一个传统BGP路由反射器的示意图,供您参考。它的中心思想是不再在BGP路由器之间建立网状BGP会话来交换路由,而是以统一的方式发送到中央BGP路由反射器,然后传递给所有其他BGP路由器。可见它和SD-WAN中的SDN控制器是多么的相似)。

图2:传统的BGP路由反射器架构

BGP路由反射器早就有了,比今天大家都在猜测的SDN早了20年。这些主流SD-WAN厂商采用的技术是真的SDN,还是挂羊头卖狗肉?

这个疑问伴随了笔者很久,直到笔者仔细研究了这些SD-WAN厂商对BGP协议的改动和扩展,以及这些解决方案中对集中式策略的强调和使用,才发现SD-WAN中的SDN控制器大大超出了传统BGP路由反射器的能力。以下是笔者总结的所谓SDN控制器与传统BGP路由反射器的主要区别:

1.不同的目标

传统的BGP路由反射器主要是解决iBGP网络中BGP路由器之间的全网状互联问题。BGP路由反射器可以有效地将BGP会话的总数量从全网状网络中的N 2个减少到轴辐网络中的N个。这对于降低超大规模BGP网络的复杂性非常重要。

另一方面,SD-WAN中SDN控制器的主要目的是提供一种工具,用于对覆盖网络进行集中管理和配置。同时,SDN控制器不仅提供中心辐射模式的路由交换,还提供简化的安全密钥交换(用于在数据平面CPE设备之间建立IPSec隧道)、集中策略控制、VPN标签分发等等。因此,SD-WAN中SDN控制器的目标和功能远远超出了传统BGP路由反射器的简单路由交换。

2.路由的不同实现方法。

当交换路由时,传统的BGP路由反射器简单地将从一个CPE路由器接收的路由信息原封不动地“反射”到所有其他CPE路由器,这就是路由反射器名称的由来。

但是,SD-WAN中的SDN控制器在接收到来自CPE路由器的路由信息后,在SDN控制器中进行大量的计算和处理,然后将过滤和处理后的路由信息发送给相应的CPE路由器(注意,不一定是所有其他CPE路由器)。通常SDN控制器做如下处理:根据用户自定义的策略修改路由参数,综合所有接收到的路由信息计算出到任意用户子网的最佳路由,并将计算出的最佳路由信息发送给一些特定的CPE路由器(具体由用户的策略决定)。从这里我们可以看出,SD-WAN中的SDNController比传统的BGP RouteReflector要复杂和强大得多。

当然,除了上面总结的两个主要区别,它们之间还有其他一些小的区别,比如路由携带的参数信息,最佳路由的算法,这里就不展开了。

如果你能坚持看到自己没有睡着,没有换朋友圈,那么恭喜你!-您已经掌握了市场主流SD-WAN厂商使用的核心路由技术及其与SDN的真实关系。当然,SD-WAN不仅仅是SDN,我们今天讨论的路由技术也只是SD-WAN使用的众多技术之一。虽然笔者认为如何在覆盖层构建路由是SD-WAN的核心技术,但我们不得不承认,SD-WAN在覆盖路由的基础上提供的多种功能和服务(如应用感知路由、集中式和接口策略控制、零接触供应(ZTP)、VPN和分段)才是SD-WAN真正吸引客户的地方。关于SD-WAN那些吸引顾客争相掏出钱包的眼花缭乱的功能,下次找个特别的机会再说吧。

——摘自SD-WAN。这是怎么回事?

如有违反,请及时通知并删除。