开源SDN平台的可扩展性与部署要点 丨FNDC演讲实录



  • 未来网络是什么样的?

    在刚刚结束的“第四届未来网络发展大会”上,多位专家就未来网络的架构、生态、创新与发展等话题,进行了富有前瞻性的高峰对话,不仅是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编写。
    4a1fd1ab-0510-4ee7-aacd-4f50056002a3-image.png

    回顾Tungsten Fabric的技术发展,Tatsuya提到,最初Tungsten Fabric只是一个支持MPLS over IP的软件路由器,随着协议标准和数据平面技术的发展,Tungsten Fabric能够支持L2/L3 VXLAN,并可作为具有EVPN/VXLAN的VTEP软件来使用,带来了更多的可扩展性。

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

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

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

    在有多个控制器可用时,控制器将基于它们之间的iBGP连接交换到其它虚拟机的路由,以同步它们之间的所有路由,从vRouter的视角可看作是active/active的高可用模式。
    958badb4-d778-4466-b8e2-80f27db6513e-image.png
    因此对于vRouters,不需要连接到所有控制器节点,并且就其性质而言,即使有更多的控制器节点可用,vRouter也会仅建立两个XMPP连接。

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

    2、路由目标过滤

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

    为了理解这种行为,路由目标是一个关键概念,它在内部用virtual-network号标记每个前缀,以形成每个虚拟网络中每个前缀的完整表集,也就是VPNV4表。
    a0a34362-6c6c-4d10-8a4c-2fd9f9d4a58a-image.png
    当在它们之间建立iBGP时,控制进程首先协商它们当前具有的路由目标,然后请求其它控制进程仅发送VPNV4表。

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

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

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

    3、ERM-VPN

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

    由于BUM需要复制到许多节点,因此即使需要从一个vRouter发送少量流量,最终也可能是很大的流量,如果有1000个节点,那么它就需要发送1000次。
    3693219f-a8d7-4b8d-af10-4b913afe6470-image.png
    从EVPN标准来看,一种选择是使用入口复制(ingress-replication),这基本上意味着情况没变化,vRouter需要将BUM流量发送到其它节点1000次,这可能导致一个特定vRouter上的CPU峰值。

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

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

    有了ERM-VPN,即使需要大量的BUM复制也不是太大的问题,因此vRouter可以作为VTEP控制器的良好来源,尤其是需要支持大量的vRouter和租户组合的时候。
    dc446691-c743-43c9-b0e0-78911d91862e-image.png

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

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

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

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

    针对上述三个功能,Tatsuya尝试了几种设置进行测验,包括具有15个控制节点的1000个vRouter节点,以及具有5个控制节点的2000个vRouter节点,都证明了Tungsten Fabric具有实现大规模软件VTEP集群的良好特性。
    325eb12b-c07a-4b78-ad74-cd9e5c59c7a1-image.png

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

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

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


Log in to reply