描述网络部署的抽象语言?

网络工程 网络 建筑学
2021-07-20 20:01:43

对于网络配置语言,是否有更多或更少的标准/规范,即供应商中立的?比如说,一个带有网络和虚拟机的 VPC 将变成一个 XML 或 JSON 文件。

就像是,

<deployment>
<vpc name="Test">
<appliances>
  <vm id="1" />
</appliances>
</vpc>
</deployment>
4个回答

是这里的答案。引用定义 YANG 的 RFC8345:

本文档定义了网络/服务拓扑和清单的抽象(通用或基础)YANG 数据模型。该数据模型用作基础模型,在其他更具体的拓扑和库存数据模型中增加了特定于技术的细节。

NETCONF协议可以使用 YANG 来表示网络配置。

Hashicorp 的Terraform具有供应商中立(但不是不可知)的配置语言。AWS VPC 看起来像:

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

  tags = {
    Name = "Test"
  }
}

Ansible可用于构建(部分)网络即代码。它使用 YAML 语法并且可以读取 JSON。

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

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

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

对于一般的网络,没有这样的事情。弄清楚如何去做,你就可以舒适地退休了。