厦门大学系统与网络课题组的一项研究成果被网络领域内最有影响力的研讨会ACM SIGCOMM HotNets 2022录用。第21届 “ACM网络热点专题研讨会”(HotNets’22 Twenty-First ACM Workshop on Hot Topics in Networks)将于2022年11月14-15日在美国德克萨斯州奥斯汀召开。
Qiao Xiang (Xiamen University), Ridi Wen (Xiamen University), Chenyang Huang (Xiamen University), Yuxin Wang (Xiamen University), Franck Le (IBM Research). Network Can Check Itself: Scaling Data Plane Checking via Distributed, On-Device Verification. Twenty-First ACM Workshop on Hot Topics in Networks (HotNets’22)
网络规模越来越大,设备上的数据平面也越来越复杂,一旦发生网络错误,工业界将要面临巨大的经济损失,而当前的数据平面验证工具都采用集中式架构,即利用一台/组高性能服务器作为验证器,通过管理网络,收集所有网络设备的数据平面信息(路由表、ACL等),再通过设计不同的验证算法,在验证器上执行算力/内存密集型计算任务,实现数据平面的网络正确性检测。集中式设计的数据平面验证工具存在如下局限性:
验证器-网络间需时刻保持可靠连通,一旦数据平面信息收集不全,则验证结果不准确。
验证器成为性能瓶颈,因为网络越大,部署验证器所需算力越多。
验证器成为单点失效瓶颈。一旦验证器出错,验证无法完成。
网外验证,控制路径长。验证与响应需两次穿越控制网络,那么,大规模网络无法快速响应网络错误,影响网络可用性。
为了解决集中式架构固有的问题,本工作思考能否通过分布式的网络设备自验证框架,实现对任意规模网络的快速、高效的数据平面验证。
我们提出了一种分布式的网络设备自验证框架,增强数据平面验证工具的可伸缩性和提高其时间效率。其基本思想是将算力/内存密集型的验证计算分解为轻量、设备级验证子任务,下放到网络设备上分布式执行,实现大规模网络数据平面网内快速自检。如下图所示,该框架的基本设计包括:
(1)验证规划器接收数据平面验证需求、网络拓扑及设备-IP前缀映射信息;(2)验证规划器基于数据平面验证需求和网络拓扑结构,生成有向无环网络图DVNet;(3)验证规划器将计数任务进行分解为设备子验证任务,并将它们下发给网络中各个设备;(4)网络中的各个设备接收设备子验证任务,设备自验证器通过在所在设备上读取本地转发表,对子验证任务进行计算,并将计算结果与邻接设备依照分布式验证协议进行交换,最终得到完整的验证结果,实现数据平面的网内快速自检。此外,我们还设计了一种分布式验证协议来实现各个设备关于验证结果的通信,确保验证结果的正确性和验证过程的高效性。
1、针对数据平面的全量更新场景下快速、高效、准确的数据平面验证,验证fattree(k=48)时,本框架比APKeep快813.16倍。
2、针对数据平面的增量更新场景下快速、高效、准确的数据平面验证,验证Airtel1时,80%情况下,本框架比该数据集上最快的工具快了24.50倍。
另外,
3、在三款商用交换机(Mellanox SN2700、Edgecore Wedge32-100X 、Barefoot S9180-32X)上进行的测试表明,本框架下的设备自验证器所需的CPU与内存开销极小。这表明,现有商用设备无需进行硬件升级,即可直接运行本框架。
在进行理论创新与广泛实验的基础上,我们还在开源网络操作系统SONiC社区上提出将这一分布式网络设备自验证框架融入SONiC生态。目前该提案的high-level design (HLD)正在社区接受评估(https://github.com/sonic-net/SONiC/pull/948)。
本工作是厦门大学系统与网络课题组在数据平面验证方面的进一步探索,之前的研究工作包括Solvability Digraph (INFOCOM’21),更多内容可访问:
(1)功能展示: http://distributeddpvdemo.tech/
(2)文章完整版: https://arxiv.org/abs/2205.07808