NLP在SDN的应用:Software-Defined Network Assimilation (SIGCOMM 2022最佳论文奖)

本文介绍一篇关于软件定义网络(SDN)集成的研究论文,标题为《Software-Defined Network Assimilation: Bridging the Last Mile Towards Centralized Network Configuration Management with NAssim》。

本文是华为在配置管理上的实际应用,获得了SIGCOMM 2022最佳论文奖。

一、研究背景:

在现有的SDN网络中引入新设备对网络运维(NetOps)团队来说是一项挑战,因为需要大量的专家工作来弥合新设备配置模型与SDN控制器统一数据模型之间的差距。 作者提出了一个名为NAssim的辅助框架,旨在帮助NetOps加速将新设备集成到SDN网络中。

NAssim框架:

包含统一的解析器框架,用于将不同设备的用户手册解析为初步配置模型。

严格的验证器,通过正则语法分析、模型层次验证和经验数据验证来确认模型的正确性。

于深度学习的映射算法,使用神经网络处理技术来生成人类可理解的推荐映射。

二、主要贡献:

构建了一个解析器框架,用于定制化解析网络设备的手册。

设计了一个严格的验证框架,包括正式语法验证、模型层次验证和经验数据验证。

发布了一个经过解析、验证和专家策划的设备手册语料库数据集,供未来研究使用。

使用BERT模型的领域适应版本NetBERT进行配置模型映射,实现了高准确率的映射。

三、评估结果:

NAssim能够将集成过程加速9.1倍。 在应用过程中,作者还识别并纠正了四个主流厂商设备手册中的243个错误。

四、BERT的使用

在论文中提到了BERT(Bidirectional Encoder Representations from Transformers)模型,并对其进行了领域适配(Domain Adaptation)以创建NetBERT模型。

BERT是一个预训练的深度学习模型。

在NAssim框架中,BERT模型被用于以下几个方面:

上下文编码:BERT模型用于将网络配置相关的文本序列编码成向量表示,这些向量捕捉了配置参数的上下文信息。

相似性度量:通过计算BERT生成的上下文嵌入向量之间的相似性,可以评估VDM和UDM之间参数的对应关系。

领域适应:为了使BERT模型更好地适应网络配置领域,作者对BERT进行了微调。也就是说,它在特定的网络配置数据集上进行了额外的训练。

VDM怎么映射到UDM

UDM的作用:UDM在SDN中用于统一管理来自不同厂商的网络设备,使得SDN控制器能够以一致的方式配置和管理这些设备。

VDM(Vendor-specific Device Model,厂商特定设备模型)到UDM(Unified Device Model,统一设备模型)的映射是通过NAssim框架中的Mapper组件实现的。

 

这个过程涉了几个关键步骤:

上下文提取:从VDM中提取每个参数的上下文信息,这可能包括参数名称、CLI命令描述、父视图、参数描述等。同样地,从UDM中直接检索每个参数的上下文信息。

映射推荐:对于VDM中的每个参数,Mapper会生成一个推荐列表,列出与UDM中参数最相似的候选参数。这个推荐列表是基于上下文嵌入向量相似性计算得出的。

 

在文中提到的设备模型语料库格式是一个JSON(JavaScript Object Notation)格式,它被设计为与厂商无关,以便能够标准化和统一不同厂商用户手册中的配置信息。这个格式包含了网络设备配置命令的关键信息,如CLI命令模板、功能定义、视图层次、参数定义和配置示例等。

以下是一个简化的例子,表示这种设备模型语料库格式的结构:

{
  "CLIs": [
    "show ip interface brief",
    "configure terminal",
    "interface GigabitEthernet0/0",
    "ip address 192.168.1.1 255.255.255.0"
  ],
  "FuncDef": "Display brief information about IP interfaces.",
  "ParentViews": [
    "enable",
    "configure"
  ],
  "ParaDef": [
    {
      "Paras": "ip address",
      "Info": "Specifies the IP address and subnet mask for the interface."
    },
    {
      "Paras": "interface GigabitEthernet0/0",
      "Info": "Selects the interface for configuration."
    }
  ],
  "Examples": [
    "To display brief information about IP interfaces, enter 'show ip interface brief'.",
    "To configure the IP address of GigabitEthernet0/0, enter 'interface GigabitEthernet0/0' followed by 'ip address 192.168.1.1 255.255.255.0'."
  ]
}

在这个例子中:

  • CLIs 字段包含了一系列的CLI命令字符串。
  • FuncDef 字段描述了CLI命令的功能。
  • ParentViews 字段列出了执行这些CLI命令之前需要进入的视图或模式。
  • ParaDef 字段定义了CLI命令中的参数及其相关信息。
  • Examples 字段提供了使用这些CLI命令的示例。

References

1. Software-Defined Network Assimilation: Bridging the Last Mile Towards Centralized Network Configuration Management with NAssim

 

posted @ 2023-11-29 22:52  stackupdown  阅读(19)  评论(0编辑  收藏  举报