El protocolo NETCONF
NETCONF (Network Configuration Protocol) es un protocolo estándar de la
IETF diseñado para gestionar la configuración de dispositivos de red de
forma programática. Surge para superar limitaciones de enfoques anteriores
como SNMP (orientado principalmente a monitoreo) y la configuración
manual por CLI. NETCONF permite a las aplicaciones cliente instalar,
manipular y borrar configuraciones en routers, switches, cortafuegos u
otros equipos mediante una interfaz unificada (Enns et al., 2011). Para lograr
esto, utiliza mensajes codificados en XML que viajan sobre una sesión segura
SSH (usualmente por el puerto 830). Cada mensaje NETCONF es
esencialmente una llamada a procedimiento remoto (RPC) que el dispositivo
interpreta para leer o cambiar su configuración.
Una característica clave de NETCONF es que es “model-driven”,
apoyándose en modelos de datos YANG para describir de forma estándar la
estructura de la configuración y estado de los dispositivos. El protocolo
define un conjunto de operaciones básicas (como get, get-config, edit-
config, copy-config, delete-config, entre otras) equivalentes a comandos
de configuración del CLI tradicional. Por ejemplo, un cliente puede enviar un
RPC <get-config> para obtener parte o la totalidad de la configuración de un
dispositivo, o un <edit-config> para aplicar cambios de configuración.
NETCONF maneja además múltiples datastores o almacenes de
configuración (por ejemplo, running, startup y candidate), lo que
posibilita editar cambios en un candidato y luego confirmarlos (commit) de
forma atómica al running. Esto proporciona mayor seguridad y consistencia
en los cambios, evitando inconsistencias por configuraciones a medias. En
resumen, NETCONF ofrece una interfaz estandarizada y segura para la
administración automatizada de redes, ampliamente soportada por
fabricantes desde su estandarización en RFC 6241 (2011).
El protocolo RESTCONF
RESTCONF (RESTful Configuration Protocol) es otro protocolo de gestión de
redes definido por IETF que complementa a NETCONF ofreciendo una
alternativa más sencilla basada en principios REST. Publicado en 2017 (RFC
8040), RESTCONF proporciona un interface HTTP/HTTPS para interactuar
con dispositivos utilizando los métodos típicos de la web: GET, POST, PUT,
PATCH y DELETE (Bierman et al., 2017). En lugar de sesiones persistentes
con RPC XML, RESTCONF sigue un modelo estateless (sin estado) donde
cada petición HTTP es independiente – similar a cualquier API REST – lo que
simplifica la comunicación y la integra mejor con aplicaciones web. Las
operaciones de RESTCONF logran en gran medida resultados equivalentes a
las de NETCONF (por ejemplo, un GET de RESTCONF recupera datos como un
get de NETCONF, un PATCH/PUT modifica configuración como edit-config,
etc.), pero sin algunas funciones avanzadas de NETCONF como el bloqueo de
configuración o manejo de múltiples datastores de forma nativa.
En RESTCONF, los datos de configuración también se modelan mediante
YANG, igual que en NETCONF, pero pueden representarse en formato JSON
(además de XML) para mayor facilidad de uso. Cada recurso accesible via
RESTCONF corresponde a una ruta en el modelo YANG del dispositivo,
exponiendo de forma jerárquica la configuración y estado. Por ejemplo, un
GET a la URL de cierta interfaz devuelve su información en JSON
estructurado según el modelo YANG. Al apoyarse en estándares web,
RESTCONF resulta familiar para desarrolladores acostumbrados a APIs
RESTful y suele tener una barrera de entrada menor que NETCONF,
especialmente gracias a JSON y la ausencia de sesiones SSH persistentes. Si
bien RESTCONF no reemplaza por completo a NETCONF (ya que este último
sigue siendo más completo en algunas áreas), sí ofrece una vía más ligera y
amigable para integrar la programación de la red con herramientas
modernas, facilitando la adopción de APIs de configuración en entornos
DevOps de redes.
El uso de APIs en la automatización y orquestación de
redes
En la actualidad, las redes han crecido en tamaño y complejidad al punto
que la configuración manual dispositivo por dispositivo se vuelve
impracticable. La automatización de redes consiste en usar software y
scripts para configurar, gestionar, probar y operar dispositivos de red
con mínima intervención humana (China, s.f.). Esto reduce errores humanos
y acelera despliegues, ya que tareas repetitivas (por ejemplo aprovisionar un
switch nuevo, actualizar la política de enrutamiento, etc.) se ejecutan
automáticamente siguiendo reglas predefinidas. En este contexto, las APIs
juegan un papel fundamental: proporcionan una interfaz programática para
que las herramientas de software “hablen” con los equipos de red.
Protocolos como NETCONF y RESTCONF son ejemplos de APIs estandarizadas
que permiten a un script o aplicación configurar un router de forma tan
sencilla como una aplicación web consulta una base de datos. De hecho, la
disponibilidad de estas APIs, junto con librerías en lenguajes como Python,
habilita la creación de scripts y playbooks (Ansible, por ejemplo) que aplican
configuraciones coordinadas en múltiples dispositivos al mismo tiempo,
logrando coherencia y rapidez a escala.
La orquestación de redes, por su parte, se refiere a la automatización de
procesos completos que involucran múltiples elementos y sistemas en la red.
Es decir, no solo se automatiza una tarea aislada, sino la secuencia end-to-
end de diversas tareas en distintos dispositivos para lograr un objetivo
mayor (Flinn, 2023). Por ejemplo, el aprovisionamiento de un nuevo servicio
en la nube podría implicar crear VLANs en varios switches, actualizar reglas
de firewall y ajustar rutas en routers; la orquestación busca encadenar y
automatizar todos esos pasos de forma coordinada. Las APIs de red permiten
a plataformas de orquestación (como controladores SDN o sistemas de
gestión) comunicarse con cada elemento de la infraestructura para enviarle
las configuraciones apropiadas. Gracias a ellas, la orquestación puede
garantizar que la configuración distribuida sea consistente y se aplique
conforme a políticas globales, todo ello sin intervención manual. En
suma, el uso de APIs en la automatización y orquestación de redes ha sido
un habilitador clave de la programabilidad de la infraestructura: las
redes modernas se tratan cada vez más como “infraestructura como
código”, donde mediante llamadas API estandarizadas (NETCONF,
RESTCONF, gNMI, APIs REST de fabricantes, etc.) se logra que la red
configure y adapte su comportamiento rápidamente al ritmo que requieren
las aplicaciones y servicios actuales. Esto conlleva redes más ágiles,
escalables y fáciles de administrar, alineando la operación de la red con las
prácticas DevOps y reduciendo costos operativos a largo plazo.
Referencias
Bierman, A., Björklund, M., & Watsen, K. (2017). RESTCONF Protocol
(RFC 8040). Internet Engineering Task Force.
China, C. R. (s.f.). ¿Qué es la automatización de redes? IBM Think Blog.
Recuperado de [Link]
automation
Enns, R., Björklund, M., Schönwälder, J., & Bierman, A. (2011). Network
Configuration Protocol (NETCONF) – RFC 6241. Internet Engineering
Task Force.
Flinn, J. (2023, 24 de enero). Orquestación de redes: Qué es, en qué se
diferencia de la gestión de redes y por qué la necesita. Digi
International Blog. Recuperado de
[Link]
management