前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源SDN平台的可扩展性与部署要点

开源SDN平台的可扩展性与部署要点

原创
作者头像
Tungsten Fabric
修改2020-08-26 18:08:20
6430
修改2020-08-26 18:08:20
举报

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

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

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

社区连载文章“Tungsten Fabric入门宝典”和“Tungsten Fabric知识库” 即由Tatsuya Naganawa编写。

4a1fd1ab-0510-4ee7-aacd-4f50056002a3-image.png
4a1fd1ab-0510-4ee7-aacd-4f50056002a3-image.png

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

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

回顾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
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
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
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
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
325eb12b-c07a-4b78-ad74-cd9e5c59c7a1-image.png

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、控制器之间的两个XMPP连接和iBGP
  • 2、路由目标过滤
  • 3、ERM-VPN
相关产品与服务
VPN 连接
VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档