Entender YANG em dispositivos que executam o Junos OS
YANG é uma linguagem de modelagem de dados extensível e baseada em padrões que é usada para modelar os dados de estado operacional e de configuração, chamadas de procedimentos remotos (RPCs) e notificações de eventos de servidor de dispositivos de rede. O grupo de trabalho NETMOD da IETF originalmente projetou o YANG para modelar dados de gerenciamento de rede e fornecer um padrão para a camada de conteúdo do modelo de protocolo de configuração de rede (NETCONF). No entanto, YANG é independente do protocolo, e os modelos de dados YANG podem ser usados independentemente do protocolo de transporte ou RPC e podem ser convertidos em qualquer formato de codificação suportado pelo protocolo de configuração de rede.
A Juniper Networks fornece módulos YANG que definem a hierarquia de configuração e os comandos operacionais do Junos OS e as extensões Do Junos OS YANG. Você pode baixar os módulos YANG no site da Juniper Networks ou no repositório GitHub da Juniper Networks para YANG, ou gerar os módulos no dispositivo que executa o Junos OS.
YANG usa uma sintaxe semelhante a C, uma organização hierárquica de dados, e fornece um conjunto de tipos integrados, bem como a capacidade de definir tipos derivados. YANG enfatiza a capacidade de leitura, e oferece modularidade e flexibilidade por meio do uso de módulos e submodules e tipos e grupos de nós reutilizáveis.
Um módulo YANG define um único modelo de dados e determina a codificação para esses dados. Um módulo YANG define um modelo de dados por meio de seus dados, e a organização hierárquica de e restrições a esses dados. Um módulo pode ser uma entidade completa e autônoma, ou pode fazer referência a definições em outros módulos e submodules, bem como aumentar outros modelos de dados com nós adicionais.
Um módulo YANG define não só a sintaxe, mas também a semântica dos dados. Ela define explicitamente as relações entre e restrições sobre os dados. Isso permite que você crie dados de configuração syntacticamente corretos que atendem aos requisitos de restrição e permite que você valide os dados contra o modelo antes de carregá-los e empenhá-los em um dispositivo.
A YANG usa módulos para definir dados de configuração e estado, notificações e RPCs para operações de rede de maneira semelhante à forma como a Estrutura de Informações de Gerenciamento (SMI) usa MIBs para modelar dados para operações de SNMP. No entanto, a YANG tem o benefício de poder distinguir entre dados operacionais e de configuração. YANG mantém a compatibilidade com a versão SMI 2 (SMIv2) do SNMP, e você pode usar libsmi para traduzir módulos SMIv2 MIB em módulos YANG e vice-versa. Além disso, quando você não pode usar um parser YANG, você pode traduzir módulos YANG em YANG Independent Notation (YIN), que é uma sintaxe XML equivalente que pode ser lida por parsers XML e scripts XSLT.
Você pode usar ferramentas baseadas em YANG existentes ou desenvolver aplicativos personalizados de gerenciamento de rede para utilizar módulos YANG para obter programabilidade de rede mais rápida e precisa. Por exemplo, um aplicativo do cliente poderia aproveitar módulos YANG para gerar dados de configuração específicos do fornecedor para diferentes dispositivos e validar esses dados antes de enviá-los para o dispositivo. O aplicativo também poderia lidar e solucionar problemas de respostas e erros inesperados de RPC.
Para obter informações sobre YANG, consulte RFC 6020, YANG - Uma linguagem de modelagem de dados para o protocolo de configuração de rede (NETCONF) e RFCs relacionados.