基于SONiC迈向全三层数据中心网络

作者简介:张渐修,任职于上海同悦信息科技有限公司从事P4可编程交换机市场工作,Wechat: Tooyumzjx。

导语:SONiC如何从云数据中心走向企业数据中心,SONiC特性是否满足企业数据中心的需求,SONiC当前在企业数据中心现状如何,专注于再营销优化的技术提供商RTB House尝试通过自家网络架构的变迁来回答上述问题。

第一代机架-交换机堆叠

在2013/2014年,由外部供应商提供的网络在容量/稳定性等方面不令人满意,我们决定自己部署私有机架。一开始,我们使用博科ICX6610交换机,并将它们堆叠成80Gbps的环路。

这张网任何主机之间带宽可以达到1Gbps,通过VLAN隔离来实现安全部署,例如前端服务器的DMZ。从当时的成本角度来看,这个设计是最佳的,但我们面临三个问题。

  • 延迟:1Gpbs带宽不够用,从数据库(当时的Cassandra)传输1MB的用户资料需要10ms。
  • 可扩展性:无法在堆叠设计之外额外扩展,堆叠连接出现瓶颈。
  • 可用性:我们的堆叠不支持HA/MLAG,如果一台交换机下线,那么连接该交换机的服务器都会无法服务。

白牌交换机:Cumuls Linux + CLAG/MLAG

2015年,我们部署了第一个白牌交换机机架,网络基于裸交换机Supermicro SSE-X3648R和网络操作系统Cumulus Linux,并使用4x10Gbps LACP上行链路将它们连接到现有的Brocade堆叠设备。在那个时候,裸机的概念和DAC电缆都是新兴的技术,Cumulus Linux非常不成熟,我们的错误报告一度成为Cumlus技术支持部门的垃圾邮件。尽管如此,我们还是实现了我们的大部分目标:

  • 由于硬件相对便宜,新的10Gpbs基础设施与旧的1Gbps相比网络成本增加很少;
  • 由于采用DAC和10Gbps的网卡,从数据库向计算服务器传输1MB的用户资料只需要1ms的时间;
  • 可用性:MLAG允许服务器连接两个冗余设备。

但是这种实现方式也不完美,我们面临一些新的问题。MLAG LACP的快速模式需要等待3-4秒来禁用某个组中的接口,这会导致一些服务器集群节点翻转;Cumulus MLAG设计不成熟,因而会产生一些问题但我们却无法重现(例如,时不时就有一对交换机通过Peer Link无法看到对方)。

VXLAN BGP EVPN

简单的二层网络不能无限地扩大规模。随着机架数量的增加,我们需要扩展基础设施并保证稳定性。几个月后Cumulus Linux推出了一个新版本,增加了EVPN功能。我们认为VXLAN BGP EVPN是解决我们的扩展性和稳定性问题的潜在方案,该版本很快被部署到生产环境中。思科出版了一本不错的书:Building Data Centers with VXLAN BGP EVPN,基于思科的指导方针我们建立了基本的EVPN网络。Leaf交换机将L2封装成VXLAN隧道,SPINE交换机成为L3路由器。这种设计消除了第二层和第三层网络的潜在L2环路。经过几年的运行,我们总结VXLAN BGP EVPN网络架构的结论如下。

1)稳定性/可视性/调试手段不足:每当网络设备出现故障时,我们会观察到一些奇怪的事情,例如一些交换机会随机的宣告虚假的网络层可达信息(NLRI)。我们无法复现这个问题,而且这个问题在生产中出现过几次;
2)早期的交换芯片缺失某些功能可能会造成严重影响;
3)一旦部署,VXLAN BGP EVPN很难在生产中扩展和修改。

在一个案例中,我们试图启用ARP/ND抑制,但它阻止了keepalived流量;

当我们为大多数设备启用ARP/ND抑制时,网络突然在没有明显原因的情况下变得非常不稳定,唯一能快速恢复的方法是回滚配置并重新启动数据中心的所有交换机。这种不稳定性只有在大规模生产部署时才出现。可以想象这不是个好事情;

我们对EVPN路由的实验表明,它在Vagrant测试环境中运行良好,但当我们把配置放在物理设备上时就会碰到老芯片功能限制问题,精心的规划最终功亏一篑。

SONiC部署

如果要想有更大的规模,我们需要这样的网络架构,即:

  • 更具扩展性
  • 易于管理/调试/部署
  • 能够在成本最优的交换机芯片上运行
  • 在裸金属服务器之间保持现有的VLAN/VXLAN分离

最终我们把交换机NOS更换为更开放、更常用但功能更少的SONIC。

L3网络层ID/隔离

我们打算用VRF号来代替VLAN/VXLAN作为网络标识符,以此实现网络层的隔离。此时某些服务器可能需要在多个网络中,例如前端服务器需要连接到DMZ VLAN/VRF(网络)和后台VLAN/VRF(网络)。在L3中,我们可以为交换机设备上的每个以太网端口创建专用的子端口,然后将这个子端口与所选择的VRF绑定。下面的例子显示了生产网络ID “2 “和ID “3”,它们将在 “302 “和 “303 “子端口接口上提供给服务器。

如何将这些L3 SONIC交换机连接到旧的EVPN/BGP网络? 纯三层BGP是未来发展最明显的选择,但新的网络需要与旧的网络连接。我们需要能够保持CLOS拓扑结构(Spine设备的吞吐量是Tbps),以便满足延迟和吞吐量的需求。对于每个旧的L2 vlan,我们部署一对路由反射器。这个路由反射器RR将在L2服务器和边界SONIC L3交换机之间转发NLRI信息。

每个连接到旧的大平面/L2网络的服务器都需要首先与RR对等,以便能够连接到新的仅有L3-BGP的服务器。当iBGP对等关系建立后,路由反射器将向其客户-对等者公布NLRI,而不修改属性—目的是为了避免路由循环。BIRD路由守护程序对我们来讲是很良好的体验—配置文件是人类可读的,可以很容易地使用puppet或ansbile等工具实现自动化。

现 状

随着流量不断增长,我们的互连架构由16x100Gbit/s端口组成,在每个Spine和Leaf对直接提供3.2Tbit/s的总带宽。目前我们最大的DB集群在峰值时使用约600Gbit/s的带宽,并且仍在增长。集群中每台服务器都能很好地提供超过70Gbit/s的TCP流量!

设备互联可以在任何级别进行,Leaf到Leaf,Leaf到Spine,Spine到超级Spine等等。由于CLOS架构没有瓶颈,CLOS或者胖树架构的特点是互连交换机(Spine交换机)和接入交换机(Leaf交换机)之间有多个连接,因此可以支持高性能的计算集群。目前除了在边缘扁平化的二层网络外,基本实现了了一个无阻塞、低延迟的网络结构。

总 结

从商用交换机到白牌交换机再到SONiC,RTB House的数据中心案例表明SONiC作为旧时大厂堂前燕,目前已经飞入寻常百姓家。不仅仅是互联网厂商可以轻松驾驭SONiC,企业数据中心部署也正当时!


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/25660.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于22-03-16
0