Hasty Briefsbeta

双语

BYO NOS: Building a maintainable, SRE-friendly switch

6 hours ago
  • #mlxsw
  • #whitebox-switching
  • #networking
  • 作者之前使用了一台接近生命末期的Arista 7050QX2-32S交换机,由于供应商对BIRD等第三方守护程序的独特支持,开始寻找替代方案。
  • 考虑了如SONiC和DENT等白盒交换选项;DENT使用switchdev实现Linux内核集成,允许类似Arista的硬件卸载。
  • 选择了一款支持switchdev的Mellanox SN2010交换机(采用Spectrum ASIC),并在配置mlxsw所需的内核和udev规则后安装了Debian系统。
  • 使用devlink配置了分路电缆,并通过systemd-networkd管理网络接口,尽管这需要详细的配置。
  • 路由方面的挑战包括有限的ASIC路由容量;解决方案涉及资源重新分配、ECMP默认路由,以及通过自定义Go工具将路由从约120万条压缩到约9.2万条。
  • 使用TC(流量控制)实现ACL,利用块和链模板等功能优化硬件卸载和资源使用,包括goto、trap和pedit等操作。
  • 通过VLAN重写和附加路由表实现出口控制,允许基于DSCP值引导流量而无需重新配置路由器。
  • 监控使用标准工具如Node Exporter和hsflowd,并为devlink指标定制导出器,确保全面的系统和数据平面可视性。
  • 维护简化,因为系统在Debian上运行并采用上游工具,便于轻松更新和配置管理,例如快速内核更新以应对安全漏洞。