机器之心专栏
机器之心编辑部
在第36届SIGCOMM 2022大会上,来自华为的研究人员受到生物学中同化作用的启发,首次提出了SNA(软件定义网络同化)的概念。
网络是现代社会高效运转的重要基础设施。从运营商网络时代到云数据中心网络时代,大型网络的管理者通常从多个设备供应商处采购和运营设备,并不断将新设备型号和新厂商的设备引入网络。将多种设备高效吸收到统一的配置管理框架中,是支撑海量网络应用的核心基础能力。
然而,长期以来,不同供应商的网络设备缺乏统一的配置管理接口。目前,网络配置管理的实践严重依赖于操作和维护工程师的人力。他们需要阅读大量的几个设备厂商的配置手册,了解每个设备厂商的配置模型,编写规则将设备的原生配置命令映射到中央控制器的统一配置模型。这个过程非常繁琐并且容易出错。
面对网络基础设施吸收新设备的长期持续需求,高效准确地获取设备原生配置模型与网络统一配置管理模型之间的映射关系是一个核心挑战。在8月22日-26日举行的第36届SIGCOMM 2022大会上,华为研究人员针对这一问题提出了一个全新的思路。受生物学中同化作用的启发,首次提出了SNA(软件定义网络同化作用)的概念。研究人员引入了一个辅助框架NAssim,它有助于网络配置管理的最后一英里。它将现有网络中新设备“消化、理解、吸收”的过程尽可能自动化,提出用网络配置NetBERT的语义模型直接“阅读”配置指令,将运维工程师从繁琐易错的工作中解放出来,大大提高了网络运维的效率。目前这项工作正在华为Datacom产品线进行试点。
SIGComm(数据通信特别兴趣小组)是由美国计算机协会ACM(计算机械协会)组织的通信网络领域顶级旗舰会议。每年吸引全球近千名网络与通信领域的顶尖专家,学术地位极高。据了解,本届投稿论文281篇,收到55篇,录取率约19.57%。软件定义的网络分配:用Nassim桥接最后一英里塔集中式网络配置管理是国内第一篇获得本次大会最佳论文奖的论文。
地址:https://dl.acm.org/doi/10.1145/3544216.3544244
接下来我们将详细讲解华为推出的配置管理系统NAssim。
设计理念和系统概述
我们先来看看的设计思路。SNA(软件定义网络同化)是指将异构设备配置模型(包括传统设备和新引入的设备厂商的设备)整合到现有集中控制网络中的过程,其核心问题是解决各种厂商特定设备模型(VDM)和中央控制器统一配置管理模型(UDM)之间的映射问题。
现有的SNA过程严重依赖于运维工程师的专家知识进行手动映射,因此研究人员试图找到一种更高效和自动化的方法来加快SNA过程,从而将运维工程师从繁琐和容易出错的工作中解放出来。受现有运维实践的启发,研究人员提出设计一个能像运维工程师一样“读懂”配置手册的系统。该系统能够对配置手册进行消化和理解,从中自动提取设备的原生模型,并基于手册中丰富的配置语义描述信息,自动推断设备的原生配置模型与控制器的统一配置模型之间的映射关系。
为了实现这一设计,研究人员需要解决以下挑战:
配置手册格式的异构性:不同设备厂商的手册格式没有统一的规范,由各个设备厂商自行组织编写,对自动“阅读”手册提出了挑战。
配置手册的歧义错误:手册是人写的文档,文档维护过程中难免出现人为错误。由于配置手册可能包含数以万计的配置命令说明页,因此手动逐个检查是不现实的。自动解决这一难点是从手册中提取准确可靠的设备配置模型的关键。
设备原生配置模型与控制器统一配置模型之间的异构性:随着设备功能的逐步升级,通常会有大量可选的配置命令和参数,手动配置模型映射繁琐且容易出错。自动配置语义推理和映射需要一个强大的配置语义理解模型。
最后,研究者设计了一个辅助框架NAssim来帮助最后一公里的网络配置管理,并在以下三个方面进行了创新。
首先,NAssim设计了统一的手工解析框架,解决了异构配置手册的挑战。在对一些主流设备制造商的手册进行深入调查和分析的基础上,研究人员发现配置手册的基本功能“向用户展示如何配置设备”保持不变,即使许多设备制造商的配置手册有所不同。因此,手册通常需要描述设备支持的所有配置命令及其功能、配置参数及其含义、配置命令的工作视图和配置示例。基于这种见解,研究人员设计了一种独立于设备供应商的统一格式,用于规范不同设备供应商的配置手册的标准差异,同时平衡可扩展性和可读性。研究人员进一步设计了测试驱动的过程,以确保为主流设备供应商定制解析器的过程更加高效和可靠。
其次,NAssim设计了一个严格的检查器来解决配置手册中的歧义错误的挑战。研究人员设计了三个层次的验证。在命令级,研究者将配置手册序言的语法描述形式化为BNF范式,并使用解析器生成器生成语法解析器来自动检查配置命令模板。在命令关联层面,研究人员利用配置手册的配置样本,推导出配置命令之间的层次关系,提取出语义信息丰富的设备配置层次模型,并对可能存在歧义的推理进行描述。在命令片段级别,研究人员通过使用现有网络中具有正确性保证的配置文件来进一步检查设备配置模型。
最后,NAssim设计了基于配置语义模型的映射器,解决了设备原生配置模型和控制器统一配置模型之间异构的挑战。研究人员设计了配置语义理解人工智能模型NetBERT,用于自动配置语义推理和映射。通过语义相似度计算,NetBERT输出异构配置模型间的映射建议,可由运维专家进一步审核确认,提高运维效率。
NAssim的效果如何?研究员对厂商的设备配置模型构建阶段和配置模型映射阶段做了详细的评估。自动构建阶段的评测表明,NAssim解析器框架+检查器可以从四个主流设备厂商的配置手册中成功构建出可靠的设备配置模型。在构建过程中,检查人员在配置手册中发现了200多个模糊错误。映射阶段的评测表明,适应配置领域的NetBERT模型取得了最好的配置映射推荐效果。以top k召回率(recall@top k)为指标,在华为设备配置模型到统一控制器模型的映射实验中,recall@top 10为89%,也就是说如果推荐10个映射,只有11%的时候,运维工程师需要翻阅配置手册,这让运维工程师的效率提高了9倍。
在本研究工作中,发布了经过验证的多厂商配置语料库数据集,以促进网络配置管理领域的后续研究。
NAssim系统架构:集中式网络配置管理最后一英里的辅助框架
SNA(软件定义网络同化)可以分为两个阶段:厂商设备配置模型构建阶段和配置模型映射阶段。下图显示了NAssim架构的概况。根据以上两个阶段,NAssim设计了三个核心模块:解析器框架、验证器和映射器。
在设备配置模型构建阶段,NAssim旨在基于配置手册构建准确可靠的设备配置模型。NAssim使用语义增强的树结构来描述设备的本地配置模型。树的每个节点代表一个配置命令模板,树的每个边代表配置命令模板之间的层次关系,并且每个节点链接到从配置手册中提取的配置语义语料库。整个结构包括设备支持的配置命令集、配置命令集的层次关系和配置命令的语义信息。如下图2所示,设备配置模型构建阶段的核心设计是解析器框架和验证器。
NAssim解析器框架
解析器框架的主要目标是提取手册的核心配置信息,将不同厂商的手册规范化为统一的格式,以便后续处理。NAssim在深入调研和分析主流设备厂商手册的基础上,设计了一种基于JSON的格式(如下表3所示)来承载核心配置信息:设备支持的所有配置命令及其功能、配置命令的工作视图、配置参数及其含义的描述、配置实例。图3显示了由解析器框架生成的一个示例配置语料库。
如上图2所示,由于同一设备厂商不同设备型号的手册通常有一个相对统一的标准,所以在NAssim解析器的框架下,每个主流设备厂商原则上只需要定制一次解析器子类。由于配置手册的分析位于整个SNA流程的顶端,因此分析的完整性和可靠性至关重要。因此,NAssim为解析器子类的构造制定了测试驱动原则,保证了为主流设备厂商定制解析器的过程更加高效可靠。
NAssim验证器
前面提到的NAssim解析器框架的设计原则是最小化由解析错误引起的配置信息的丢失。但是配置手册是人写的文档,文档维护过程中很难避免人为错误。这些源手册的歧义错误信息会保留在NAssim解析器框架输出的解析器语料库中。为了减少这些错误信息对后续步骤的影响,NAssim进一步设计了检查器,对初步分析的配置语料库进行严格检查,从而生成准确可靠的设备配置模型。
在命令级,NAssim验证器的主要目标是验证配置解析语料库中的配置命令模板。配置命令模板对手册中的错误信息非常敏感,因为带有语法错误的配置命令不能被网络设备接收和执行。每个配置手册的前言通常会解释手册配置模板的语法。例如,许多配置手册使用花括号来表示选择的分支,用括号来表示可选的分支,如下图4所示。因此,研究者将这些语法描述形式化为BNF范式,并使用语法分析器生成器来生成语法分析器。下面的图5显示了一个代码片段(基于解析器生成器pyparsing ),它可以生成符合图4中语法描述的语法解析器。NAssim验证器调用生成的语法解析器,自动验证配置解析语料库中的配置命令模板字段,快速识别出有问题的部分,提供给运维工程师进行针对性的审核。
在命令关联级别,NAssim验证器使用配置手册中的配置示例来推导配置命令之间的层次关系。设备配置模型的配置命令通常是树状的,但很多配置手册并没有明确显示配置层次结构的信息。然而,分析型配置语料库中的配置实例隐含着层级结构的信息。配置样本通常是当前配置命令模板的实例化片段,其还包含当前配置命令的父命令。因此,通过配置实例和配置模板的匹配,可以推导出配置命令模板之间的层级关系,如下图所示。
要推导出配置命令的层次关系,需要一个基本的算法:判断一个配置实例是否匹配一个配置命令模板。为此,研究人员分别设计了“配置命令图模型构建算法”和“基于配置命令图模型的配置实例-模板匹配算法”(如下图),可以高效支持基于配置实例的配置命令层次推理算法。
由于组态手册中的歧义错误,上述组态命令层次的推理算法有时不能完全保证构建一个完整的层次。如下面的图7所示,两个工作视图共享一个配置示例,因此不可能完全确定msdp命令是第一个视图、第二个视图还是两个视图的父视图。因此,研究人员进一步设计了衡量每个层次视图的推理可靠性的步骤,并记录了可能存在歧义的推理,提交给运维工程师进行有针对性的审核。
在命令片段级别,NAssim验证器进一步使用现有的网络配置文件来验证设备配置模型。与配置手册中的信息相比,现有的网络配置文件保证是正确的。如下图8所示,对于每个配置文件中的每一行配置实例及其上层配置命令,检查它们是否能在配置手册构建的设备配置模型中找到对应的配置模板,并形成正确的层次关系。
通过解析器框架和验证器,NAssim系统从配置手册中提取出准确可靠、富含语义信息的设备配置模型。
在配置模型映射阶段,NAssim旨在语义映射设备的原生配置模型和控制器的统一配置模型。如下面的图9所示,配置模型映射阶段的核心设计是映射器。
纳西姆映射器
前述的解析器框架+验证器生成了富含语义信息的设备配置模型(VDM)。运维工程师在定义控制器统一配置模型(UDM)时,通常会给每个配置项添加一个自然语言描述,方便运维团队使用。因此NAssim mapper的核心设计思想是利用自然语言处理领域的最新技术,设计和训练一个强大的配置语义理解模型,并基于两个异构配置模型上的配置语义信息进行自动推理和映射。
如上图9所示,映射器的工作流程分为三步:配置语义上下文提取、配置语义编码、配置语义相似度计算和映射。
在提取配置语义上下文部分,对于设备的原生配置模型,实验中发现重要的语义信息包括配置参数的名称及其对应描述、参数所在的配置命令模板、其功能描述和工作视图。对于统一的配置模型,可以提取每个配置项的描述信息。不同的配置模型可以提取不同数量的文本信息作为配置语义上下文。
在配置语义编码部分,NAssim mapper采用了最先进的语义编码器BERT,对于自然语言描述的文本序列,BERT基于Transformer架构输出其vectors 空之间的嵌入式表示。由于不同的配置模型可以提取不同数量的配置语义上下文,NAssim mapper将使用BERT分别对每个信息进行编码,并输出嵌入的向量矩阵。
在配置语义相似度计算和映射部分,对于一对来自不同配置模型的配置参数项,NAssim mapper通过度量它们对应的嵌入向量矩阵的行余弦相似度来计算它们的配置语义相似度,并进一步通过对配置语义相似度排序来做出映射推荐。
Nassim mapper的核心是通过将预训练模型SBERT适配到网络配置域,来理解AI模型NetBERT的配置语义。SBERT是基于BERT的孪生网络,在大型自然语言推理数据集上进行训练,目标是句子匹配。SBERT可以将语义相似的自然语言文本映射到vectors 空之间的相似向量。但是对于训练语料中没有出现的领域,比如网络配置描述,模型的效果会打折扣。因此,NAssim mapper利用运维工程团队以往手工积累的设备配置模型和控制器统一配置模型的映射数据(正样本),结合负样本采样技术,生成网络配置领域的小数据集,然后对网络配置领域的SBERT进行自适应优化,得到NetBERT模型。NET基于配置语义进行推理和映射,输出异构配置模型间的映射建议,可由运维专家进一步审核确认,提高运维效率。
评估实验
在评估部分,研究者从SNA的两个阶段评估了NAssim的性能,一个是厂商设备配置模型构建阶段的有效性和可靠性,另一个是配置模型映射阶段的准确性。
在评估的第一阶段,研究者展示了基于四家主流设备厂商(华为、思科、诺基亚/阿朗、华三)的配置手册,使用NAssim parser+verifier构建设备原生配置模型的实践经验。详细的实验结果如下表4所示。
实验结果表明,NAssim解析器框架+checker能够从四家主流设备厂商的配置手册中成功构建准确可靠的设备配置模型。在构建过程中,检查人员在配置手册中发现了200多个不明确的错误。
在第二阶段的评测中,研究者使用了前k个召回率(recall@top k)作为指标来评测NAssim mapper配置映射推荐的效果,即正确映射前k个推荐项的百分比。k值越小,召回率越高,说明推荐的配置映射效果越好。详细的实验结果如下表5所示。
实验采用了以下基线模型:(1) IR:基于信息检索的映射方法,研究者选择了最经典的TF-IDF方法。(2)SBERT
(3)SimCSE (4)IR+DL:复合模型,先用IR方法进行top 50粗筛选,再用深度学习模型进行细粒度的配置语义相似度计算和排序。
实验结果表明,适应配置域的NetBERT模型结合IR粗筛选达到了最佳的配置映射推荐效果。在华为设备配置模型到控制器统一配置模型的映射实验中,recall@top 10是89%,也就是说如果推荐10个映射,只有11%的时候,运维工程师需要翻看配置手册,提高了运维工程师9倍的效率。
更多详情请阅读原文。
剧终
授权请联系本微信官方账号。
投稿或寻求报道:content@jiqizhixin.com