理论用于实践!华为配置管理研究获SIGCOMM 2022最佳论文奖( 三 )


SNA(Software-definedNetworkAssimilation , 软件定义网络同化)分为两个阶段:厂商设备配置模型构建阶段(VDMConstructionPhase)和配置模型映射阶段(VDM-UDMMappingPhase) 。 下图1为NAssim架构概览 。 针对上述两个阶段 , NAssim设计了三个核心模块:解析器框架(ParserFramework)、校验器(Validator)和映射器(Mapper) 。
理论用于实践!华为配置管理研究获SIGCOMM 2022最佳论文奖
文章图片
在设备配置模型构建阶段 , NAssim的目标是基于配置手册构建出精确可靠的设备配置模型 。 NAssim使用了语义增强的树形结构刻画设备的原生配置模型 , 树的每个节点代表一个配置命令模版 , 树的每条边代表配置命令模版之间的层级关系 , 每个节点链接到一个从配置手册提取出来的配置语义语料 。 整个结构包含了设备所支持的配置命令集合、配置命令集合的层级关系和配置命令的语义信息 。 如下图2所示 , 设备配置模型构建阶段的核心设计是解析器框架(ParserFramework)和校验器(Validator) 。
理论用于实践!华为配置管理研究获SIGCOMM 2022最佳论文奖
文章图片
NAssim解析器框架(ParserFramework)
解析器框架的主要目标是将手册的核心配置信息提取出来 , 并归一化不同厂商的手册制式到统一的格式以便后续处理步骤 。 基于对主流设备厂商手册的深入调研分析 , NAssim设计了基于JSON的格式(如下表3所示)来承载核心的配置信息:设备所支持的所有配置命令及其功能、配置命令的工作视图、配置参数及其含义描述和配置样例 。 下图3展示该解析器框架生成的一个配置语料样本 。
理论用于实践!华为配置管理研究获SIGCOMM 2022最佳论文奖
文章图片
如上图2所示 , 由于同一设备商不同设备款型的手册通常有相对统一的制式 , 因此 , 在NAssim解析器框架中 , 每个主流设备商原则上只需要定制一次解析器子类 。 由于配置手册解析位于整个SNA流程的最上游 , 解析的完整性和可靠性十分关键 。 因此 , NAssim为解析器子类的构建制定了测试驱动的原则 , 保障为主流设备商定制解析器的过程更为高效和可靠 。
理论用于实践!华为配置管理研究获SIGCOMM 2022最佳论文奖
文章图片
NAssim校验器(Validator)
前述NAssim解析器框架的设计原则是尽可能减少解析错误造成的配置信息损失 。 但配置手册是由人撰写的文档 , 在文档维护过程中难以避免会出现人工错误 , 这些源手册的歧义性错误信息会留存在NAssim解析器框架输出的解析器语料中 。 为了减少这些错误信息对后续步骤的影响 , NAssim进一步设计了校验器 , 对初步解析的配置语料进行了严谨的校验 , 从而生成精确可靠的设备配置模型 。
在命令级层面 , NAssimValidator主要目标是校验配置解析语料中的配置命令模版 。 配置命令模版对手册的错误信息十分敏感 , 因为一个包含语法错误的配置命令是不能被网络设备接收和执行的 。 每本配置手册的序言部分通常会对手册配置模版语法进行说明 , 例如许多配置手册都采用花括号代表选择分支 , 中括号代表可选分支 , 如下图4所示 。 因此 , 研究者将这些语法说明形式化为BNF范式 , 并用解析器生成工具生成语法解析器 , 下图5展示了可以生成符合图4语法说明的语法解析器的代码片段(基于解析器生成工具pyparsing) 。 NAssimValidator调用生成的语法解析器对配置解析语料中的配置命令模版域进行自动化校验 , 快速识别有问题的部分 , 提供给运维工程师进行针对性审阅 。
理论用于实践!华为配置管理研究获SIGCOMM 2022最佳论文奖