Descripción de YANG en dispositivos que ejecutan Junos OS
YANG es un lenguaje de modelado de datos extensible y basado en estándares que se utiliza para modelar los datos de configuración y estado operativo, llamadas a procedimiento remoto (RPC) y notificaciones de eventos del servidor de los dispositivos de red. El grupo de trabajo de NETMOD en el IETF diseñó originalmente YANG para modelar datos de administración de red y proporcionar un estándar para la capa de contenido del modelo de Protocolo de configuración de red (NETCONF). Sin embargo, YANG es independiente del protocolo y los modelos de datos de YANG se pueden utilizar independientemente del protocolo de transporte o RPC y se pueden convertir a cualquier formato de codificación admitido por el protocolo de configuración de red.
Juniper Networks publica módulos YANG que definen las jerarquías de configuración, los comandos operativos, los datos de estado operativo y las extensiones de YANG para dispositivos Junos. Puede descargar los módulos de YANG desde el sitio web de Juniper Networks o desde el repositorio de GitHub de Juniper Networks para YANG, o puede generar los módulos en un dispositivo Junos.
YANG utiliza una sintaxis similar a la de C, una organización jerárquica de datos y proporciona un conjunto de tipos integrados, así como la capacidad de definir tipos derivados. YANG enfatiza la legibilidad y proporciona modularidad y flexibilidad mediante el uso de módulos y submódulos y tipos reutilizables y grupos de nodos.
Un módulo YANG define un único modelo de datos y determina la codificación de esos datos. Un módulo YANG define un modelo de datos a través de sus datos, y la organización jerárquica y las restricciones de esos datos. Un módulo puede ser una entidad completa e independiente, o puede hacer referencia a definiciones en otros módulos y submódulos, así como aumentar otros modelos de datos con nodos adicionales.
Un módulo YANG define no solo la sintaxis sino también la semántica de los datos. Define explícitamente las relaciones y restricciones de los datos. Esto le permite crear datos de configuración sintácticamente correctos que cumplan los requisitos de restricción y le permite validar los datos con respecto al modelo antes de cargarlo y confirmarlo en un dispositivo.
YANG utiliza módulos para definir datos de configuración y estado, notificaciones y RPC para operaciones de red de manera similar a como la estructura de información de administración (SMI) utiliza MIB para modelar datos para operaciones SNMP. Sin embargo, YANG tiene la ventaja de poder distinguir entre datos operativos y de configuración. YANG mantiene la compatibilidad con SMI versión 2 (SMIv2) de SNMP, y puede usar libsmi para traducir módulos MIB SMIv2 en módulos YANG y viceversa. Además, cuando no puede utilizar un analizador YANG, puede traducir módulos YANG a notación independiente de YANG (YIN), que es una sintaxis XML equivalente que pueden leer los analizadores XML y las secuencias de comandos XSLT.
Puede utilizar herramientas existentes basadas en YANG, o desarrollar aplicaciones de administración de red personalizadas para utilizar módulos YANG y así lograr una programabilidad de red más rápida y precisa. Por ejemplo, una aplicación cliente podría aprovechar los módulos de YANG para generar datos de configuración específicos del proveedor para diferentes dispositivos y validar esos datos antes de cargarlos en el dispositivo. La aplicación también podría manejar y solucionar problemas de respuestas y errores RPC inesperados.
Para obtener información acerca de YANG, consulte RFC 6020, YANG: un lenguaje de modelado de datos para el protocolo de configuración de red (NETCONF) y RFC relacionadas.