对于网络配置语言,是否有或多或少的与供应商无关的标准/规范?假设具有网络和虚拟机的VPC将成为XML或JSON文件。

类似,

<deployment>
<vpc name="Test">
<appliances>
  <vm id="1" />
</appliances>
</vpc>
</deployment>


评论

不,不是。问题在于,并非每个供应商都支持所有东西,而且他们都以不同的方式来做。长期以来,这一直是一个目标,但事实证明这非常困难。无论如何,VPC和VM不在这里。

您是要记录网络还是将其用作数据源来自动执行网络配置?

理想情况下,@ JFL都

#1 楼

杨就是答案。引用定义YANG的RFC8345:本文档定义了用于网络/服务拓扑和清单的抽象(通用或基本)YANG数据模型。数据
模型用作基本模型,并在其他更具体的拓扑和库存数据模型中增加了特定于技术的详细信息。


诸如NETCONF之类的协议可以使用YANG来表示网络配置。

评论


我从两年前就遇到了这个问题。目前的方向是YAML和Ansible。也许有一天,每个人都会安定下来。我已经听到很长时间了,所有供应商都应将SONiC作为网络操作系统运行。

–罗恩·莫潘♦
1月3日5:35

#2 楼

Hashicorp的Terraform具有与供应商无关的语言(但与供应商无关)。 AWS VPC外观如下:

resource "aws_vpc" "Test" {
  cidr_block       = "10.0.0.0/16"
  instance_tenancy = "dedicated"

  tags = {
    Name = "Test"
  }
}


#3 楼

Ansible可以用作代码来构建网络(的一部分)。
它使用YAML语法并可以读取JSON。

主要供应商的设备已有ansible角色,您可以构建自己的网络自己的角色。

但是现有角色并不总是最新的,编写,维护自己的角色可能很耗时。

#4 楼

特别是对于AWS VPC,您可以使用CloudFormation生成“配置”文件,该文件可用于重新创建VPC和所有相关组件。我相信它是JSON格式。

对于一般的网络来说,没有这种东西。弄清楚如何做,就可以轻松退休。