¿Lenguaje abstracto para describir las implementaciones de red?

8

¿Existe algún estándar o especificación más o menos, neutral para el proveedor, para el lenguaje de configuración de red? Digamos que una VPC con redes y máquinas virtuales se convertiría en un archivo XML o JSON.

Algo como,

<deployment>
<vpc name="Test">
<appliances>
  <vm id="1" />
</appliances>
</vpc>
</deployment>
J. Doe
fuente
No en realidad no. El problema es que no todos los proveedores admiten todo, y todos lo hacen de manera diferente. Este ha sido un objetivo durante mucho tiempo, pero ha resultado ser muy difícil. En cualquier caso, las VPC y las máquinas virtuales están fuera de tema aquí.
Ron Maupin
¿Desea documentar la red o usar esto como fuente de datos para automatizar la configuración de la red?
JFL
@JFL idealmente, ambos
J. Doe

Respuestas:

10

YANG es la respuesta aquí. Para citar de RFC8345, que define YANG:

Este documento define un modelo de datos YANG abstracto (genérico o base) para topologías de red / servicio e inventarios. El modelo de datos sirve como modelo base que se complementa con detalles específicos de la tecnología en otros modelos de datos de topología e inventario más específicos.

Protocolos como NETCONF pueden usar YANG para representaciones de configuraciones de red.

Teun Vink
fuente
4

Terraform de Hashicorp tiene un lenguaje de configuración neutral de proveedor (pero no de diagnóstico). Los VPC de AWS se ven así:

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

  tags = {
    Name = "Test"
  }
}
Jacob Krall
fuente
3

Ansible se puede usar para construir (parte de) una red como código. Utiliza la sintaxis YAML y puede leer JSON.

Existen roles ansibles existentes para los equipos de los principales proveedores, y puede crear sus propios roles.

Pero los roles existentes no siempre están actualizados y escritos, y el mantenimiento del suyo puede llevar mucho tiempo.

JFL
fuente
3

Para las VPC de AWS específicamente, puede usar CloudFormation para generar un archivo de "configuración", que se puede usar para recrear la VPC y todos los componentes relacionados. Creo que está en formato JSON.

Para las redes en general, no existe tal cosa. Descubre cómo hacerlo y podrás retirarte cómodamente.

Ron Trunk
fuente