未来网络是什么样的?

在刚刚结束的“第四届未来网络发展大会”上,多位专家就未来网络的架构、生态、创新与发展等话题,进行了富有前瞻性的高峰对话,不仅是5G、云网融合、工业互联网等看得见的网络形态,更有充满想象力的创新构想。

【直播视频回放】
https://v.qq.com/x/page/k3138tyukxl.html

【pdf文档下载】
https://tungstenfabric.org.cn/assets/uploads/files/tungstenfabric-for-scalabiilty-deployment.pdf

有专家认为,在万物互联的未来网络世界,网络架构将发生进一步演化,如何解决可扩展性、移动性、安全性等挑战,考验着人们的智慧。

对此,Tungsten Fabric开源社区技术专家Tatsuya Naganawa就“开源SDN平台的可扩展性”问题进行了探讨。

Tatsuya多年来一直参与瞻博网络Contrail产品的研发,同时支持客户开展IaaS、NFVI、5G等方面的项目部署,具有丰富的实践经验。

社区连载文章“Tungsten Fabric入门宝典”
和“Tungsten Fabric知识库” 即由Tatsuya Naganawa编写。
开源SDN平台的可扩展性与部署要点 丨FNDC演讲实录_第1张图片
回顾Tungsten Fabric的技术发展,Tatsuya提到,最初Tungsten Fabric只是一个支持MPLS over IP的软件路由器,随着协议标准和数据平面技术的发展,Tungsten Fabric能够支持L2/L3 VXLAN,并可作为具有EV P N/VXLAN的VTEP软件来使用,带来了更多的可扩展性。

通过核心组件vRouter,Tungsten Fabric实际具有很多增加可扩展性的功能,Tatsuya主要介绍了其中三个关键功能:

1、控制器之间的两个XMPP连接和iBGP

当vRouter首先启动时,将基于XMPP连接从控制器接收来往其它虚拟机的路由。

在有多个控制器可用时,控制器将基于它们之间的iBGP连接交换到其它虚拟机的路由,以同步它们之间的所有路由,从vRouter的视角可看作是active/active的高可用模式。
开源SDN平台的可扩展性与部署要点 丨FNDC演讲实录_第2张图片
因此对于vRouters,不需要连接到所有控制器节点,并且就其性质而言,即使有更多的控制器节点可用,vRouter也会仅建立两个XMPP连接。

XMPP的keepalive数据包会消耗大量的CPU周期,如果只使用1个控制器,将16个CPU节点用作控制器节点,则它可以服务有限数量的vRouter,例如500个。如果再添加更多的控制节点(例如15个),CPU使用率将大大降低。

2、路由目标过滤

由于控制进程之间具有iBGP,乍一看,好像每个控制进程在内部具有相同的前缀。实际情况并非如此,每个控制进程的前缀都略有不同,并且它们的路由表彼此不匹配。

为了理解这种行为,路由目标是一个关键概念,它在内部用virtual-network号标记每个前缀,以形成每个虚拟网络中每个前缀的完整表集,也就是V P NV4表。
开源SDN平台的可扩展性与部署要点 丨FNDC演讲实录_第3张图片

当在它们之间建立iBGP时,控制进程首先协商它们当前具有的路由目标,然后请求其它控制进程仅发送V P NV4表。

因此,即使集群本身具有大量控件和vRouter,每个控件和vRouter也只需要知道该表的一部分,这样可减少RIB表的大小和所需的物理内存。

此外,此iBGP行为还允许将流量直接联合到其它的Tungsten Fabric集群,因为如果它具有相同的路由目标,则是否在相同的集群这一点并没有关系。

路由目标过滤功能允许在多个Tungsten Fabric集群之间形成更大的V P N V4表,并导入和导出前缀,这是本地vRouter和控制进程所需要的。

3、ERM-V P N

ERM-V P N是Tungsten Fabric的一个独特功能,主要是为了面向大量vRouter优化BUM复制。

由于BUM需要复制到许多节点,因此即使需要从一个vRouter发送少量流量,最终也可能是很大的流量,如果有1000个节点,那么它就需要发送1000次。
开源SDN平台的可扩展性与部署要点 丨FNDC演讲实录_第4张图片
从EV P N标准来看,一种选择是使用入口复制(ingress-replication),这基本上意味着情况没变化,vRouter需要将BUM流量发送到其它节点1000次,这可能导致一个特定vRouter上的CPU峰值。

为了克服此问题,Tungsten Fabric使用了ERM-V P N功能。ERM-V P N的一个要点是首先在一个控制进程中形成BUM树,然后在控制进程之间通过iBGP来缝合一些边缘vRouter节点,以形成更大的BUM树,其中包括所有vRouter。

由于每个vRouter都包含在该BUM树中,因此当它们需要转发BUM数据包时,将仅发送BUM数据包到该BUM树直接连接的vRouter。接收到BUM数据包的vRouters会将该数据包发送到BUM树中的其它节点,最终将发送到所有vRouter,以满足BUM复制要求。

有了ERM-V P N,即使需要大量的BUM复制也不是太大的问题,因此vRouter可以作为VTEP控制器的良好来源,尤其是需要支持大量的vRouter和租户组合的时候。
开源SDN平台的可扩展性与部署要点 丨FNDC演讲实录_第5张图片

作为说明,上图描述了将3个vRouter连接到control1和control3时将形成的BUM树。

它首先在一个特定的控制器中形成树,创建了两组3个节点的树,一个是vRouter11、vRouter12、vRouter13,另一个是vRouter21、vRouter22、vRouter23。

之后,ERM-V P N识别该树中的最后一个路由器ID,并通过连接它们形成更大的BUM树。

图中vRouter13和vRouter23已连接,同时形成了一个更大的BUM树,包括了所有vRouter。

针对上述三个功能,Tatsuya尝试了几种设置进行测验,包括具有15个控制节点的1000个vRouter节点,以及具有5个控制节点的2000个vRouter节点,都证明了Tungsten Fabric具有实现大规模软件VTEP集群的良好特性。
开源SDN平台的可扩展性与部署要点 丨FNDC演讲实录_第6张图片

Tatsuya在“控制平面可扩展性”及“ERM-V P N”方面的更多讨论,欢迎关注“Tungsten Fabric入门宝典”
和“Tungsten Fabric知识库”两个社区连载系列文章。

开源是通向未来网络的一把钥匙。Tungsten Fabric作为开源SDN的代表,正积极依靠社区的力量,以“云原生”为技术方向,探索未来网络的边界和解决方法。

欢迎大家加入TF中文社区,了解开源SDN最新信息,参与“未来网络”超级工程的建设。

开源SDN平台的可扩展性与部署要点 丨FNDC演讲实录_第7张图片
开源SDN平台的可扩展性与部署要点 丨FNDC演讲实录_第8张图片