Entendendo os módulos YANG do Junos
A Juniper Networks publica o esquema de dispositivos Junos usando modelos YANG para configuração e dados de estado operacional, comandos operacionais e extensões Junos. As seções a seguir discutem os módulos YANG nativos do Junos.
Visão geral dos módulos Junos YANG
A Juniper Networks oferece módulos YANG que definem as hierarquias de configuração, comandos operacionais e dados de estado, bem como extensões e tipos YANG, para dispositivos que executam o Junos OS e dispositivos que executam o Junos OS Evolved. A partir do Junos OS Release 17.2, os módulos YANG são específicos para uma família de dispositivos. A Tabela 1 descreve os identificadores para as diferentes famílias de dispositivos e indica quais plataformas estão incluídas em cada família. A partir do Junos OS Evolved Release 23.4R2, todas as plataformas Junos OS Evolved usam o identificador da junos
família de dispositivos.
Identificador da família de dispositivos |
Plataformas Junos OS |
Plataformas evoluídas do Junos OS |
---|---|---|
junos |
Série ACX |
Série ACX |
junos-es |
Série J |
– |
junos-ex |
Série EX (certas plataformas) |
– |
junos-qfx |
Série QFX |
Série QFX (23,2 e anterior) |
Plataformas diferentes dentro da mesma série podem ser categorizadas em diferentes famílias de dispositivos. Em dispositivos que executam o Junos OS Evolved Release 23.4R1 e anteriores e dispositivos que executam o Junos OS, você pode verificar a família para um dispositivo específico executando o comando de show system information
modo operacional ou o <get-system-information/>
RPC no dispositivo. O valor do Family
campo na saída de comando ou no <os-name>
elemento na resposta do RPC indica a família do dispositivo.
A partir do Junos OS Release 17.4R1, o módulo YANG de configuração é dividido em um módulo raiz que é aumentado por vários módulos menores. Além disso, os módulos JUNOS YANG nativos usam uma nova convenção de nomenclatura para nome, nome de arquivo e namespace do módulo. O nome do módulo e o nome do arquivo incluem a família de dispositivos e a área da configuração ou hierarquia de comando à qual o esquema no módulo pertence. O nome do arquivo do módulo também inclui uma data de revisão. A Tabela 2 resume os módulos YANG nativos dos dispositivos Junos e identifica a versão em que os diferentes nomes dos módulos são usados.
Módulos que não exigem esquemas específicos da família e que são comuns a todas as plataformas usam a família de junos
dispositivos para nome, nome de arquivo e namespace do módulo.
Módulo Junos YANG |
Descrição |
Nome do módulo |
Libera |
---|---|---|---|
Módulos de configuração |
Defina o esquema para a hierarquia de configuração do Junos. A partir do Junos OS Release 17.4R1, o módulo YANG de configuração é dividido em um módulo raiz (family-conf-root) que é aumentado por vários módulos menores. |
|
14,2 a 17,3 |
|
17.4R1 e posterior |
||
Módulos de comando operacionais |
Represente a hierarquia de comando operacional e o grupo coletivo de módulos que definem as chamadas de procedimento remoto (RPCs) para comandos de modo operacional. Existem módulos separados para as diferentes áreas da hierarquia de comando. |
|
16,1 a 17,3 |
|
17.4R1 e posterior |
||
junos-state módulos de estado |
Conjunto curado de módulos YANG para dados de estado operacional. | junos-state-area |
22.2R1 e posterior |
|
Definir modelos de dados YANG para estado operacional. Os modelos expõem um subconjunto de dados de comando de exibição por meio do RPC gNMI |
|
24.2R1 e posterior (Junos OS Evolved) |
Módulo de extensões DDL |
Contém declarações da Linguagem de definição de dados (DDL) para dispositivos Junos. Este módulo inclui as |
|
15,1 a 17,3 |
|
17.4R1 e posterior |
||
Módulo de extensões ODL |
Contém declarações da linguagem de definição de saída (ODL) que podem ser usadas para criar e personalizar a saída ASCII formatada para RPCs executados em dispositivos Junos. |
|
16,1 a 17,3 |
|
17.4R1 e posterior |
||
Módulo de extensões de anotações de metadados |
Define anotações de metadados para operações de configuração. As anotações são definidas no RFC 7952, definindo e usando metadados com YANG. |
junos-configuration-metadata |
22.2R1 e posterior (Junos OS Evolved) |
Módulo de tipos |
Contém definições para tipos YANG. |
|
17.4R1 e posterior |
Para oferecer suporte a módulos YANG para diferentes famílias de dispositivos em diferentes versões, os módulos baixados são organizados pela família de dispositivos, e o nome, nome de arquivo e namespace de cada módulo reflete a família de dispositivos à qual o esquema no módulo pertence.
Para obter informações sobre a obtenção dos módulos, consulte Baixar e gerar módulos YANG do Junos.
Para obter informações sobre os namespaces do módulo, consulte Understanding Junos YANG Module Namespaces and Prefixes.
Baixe e gere módulos YANG do Junos
Você pode recuperar os módulos JUNOS OS e Junos OS Evolved YANG por:
-
Baixar os módulos do site da Juniper Networks em https://www.juniper.net/support/downloads
-
Baixar os módulos do repositório Juniper/yang GitHub
-
Gerando os módulos em um dispositivo da Juniper Networks
A partir do Junos OS Evolved Release 23.4R1, publicamos os módulos Yang nativos do Junos OS Evolved no site de download da Juniper Networks e no GitHub. Em versões anteriores, você deve gerar os módulos no dispositivo.
No Junos OS Release 17.1 e anteriores, os módulos YANG para a configuração e as hierarquias de comando do Junos OS que são publicados no site da Juniper Networks e no GitHub definem o esquema para todos os dispositivos em execução que o Junos OS lança. Por outro lado, os módulos YANG gerados no dispositivo local definem o esquema específico para esse dispositivo. O esquema específico do dispositivo inclui nós tanto de módulos nativos quanto de quaisquer módulos padrão ou personalizados que foram adicionados ao dispositivo.
A partir do Junos OS Release 17.2, os módulos Junos YANG são específicos para uma família de dispositivos e o namespace de cada módulo reflete a família de dispositivos à qual o esquema no módulo pertence. Como resultado, o pacote de download e o repositório do GitHub incluem um diretório separado para os módulos de cada família de dispositivos e um diretório comum para os módulos que são comuns a todas as famílias de dispositivos. Cada diretório específico da família usa o identificador da família de dispositivos como nome do diretório e contém os módulos de configuração e comando operacional que são suportados nas plataformas dessa família. Os identificadores da família de dispositivos são definidos na Tabela 1. Os módulos YANG gerados em um dispositivo local que executa o Junos OS Release 17.2 ainda definem o esquema específico para esse dispositivo.
A partir do Junos OS Release 17.4R1, os módulos YANG gerados em um dispositivo local, por padrão, contêm esquemas específicos da família, que são idênticos em todos os dispositivos da família de dispositivos. Para gerar módulos específicos do dispositivo, configure a declaração de device-specific
configuração no nível de [edit system services netconf yang-modules]
hierarquia.
A Tabela 3 resume o escopo do esquema nos módulos YANG baixados e gerados para diferentes versões do Junos OS.
Versão do Junos OS |
Escopo do schema em módulos baixados |
Escopo do esquema em módulos gerados |
---|---|---|
17.1 e mais cedo |
Todos os dispositivos |
Dispositivo |
17,2 a 17,3 |
Família de dispositivos |
Dispositivo |
17.4R1 e posterior |
Família de dispositivos |
Família de dispositivos |
A partir do Junos OS Evolved Release 23.4R1, publicamos os módulos YANG do Junos OS Evolved no site de download da Juniper Networks e no GitHub. Em versões anteriores, você deve gerar os módulos no dispositivo.
Além disso, a partir do Junos OS Release 23.4R1 e junos OS Evolved Release 23.4R1, fornecemos todos os modelos de dados YANG para um determinado SO e versão em um único pacote de download e pasta de repositório GitHub. A pasta de pacotes e repositórios inclui:
-
Modelos de dados nativos de configuração, estado e RPC
-
Configuração do OpenConfig e modelos de estado suportados por esse OS
-
Modelos IETF suportados por esse OS
Para obter mais informações sobre como baixar ou gerar os módulos YANG do Junos OS, consulte use módulos YANG da Juniper Networks.
Entendendo os namespaces e prefixos do módulo Junos YANG
No Junos OS Release 17.1 e anterior, os módulos Junos YANG usam um identificador exclusivo para diferenciar o namespace para cada módulo.
namespace "http://yang.juniper.net/yang/1.1/module-id;
A partir do Junos OS Release 17.2R1, os módulos Junos YANG são específicos para uma família de dispositivos. Para oferecer suporte a módulos YANG distintos para diferentes famílias de dispositivos em uma determinada versão, os módulos YANG usam um namespace que inclui o nome do módulo, a família de dispositivos e a string de versão do Junos OS, além do identificador. Por exemplo:
namespace "http://yang.juniper.net/yang/1.1/module-id/module-name/device-family/release";
A partir do Junos OS Release 17.4R1, o namespace é simplificado para incluir a família de dispositivos, o tipo de módulo e um identificador exclusivo para cada módulo e que diferencia o namespace do módulo do de outros módulos.
namespace "http://yang.juniper.net/device-family/type/identifier";
As definições a seguir se aplicam a todas as versões do namespace em que essa variável aparece:
device-family |
Identificador para a família de dispositivos à qual o esquema no módulo pertence, por exemplo, Módulos com esquemas e módulos específicos do dispositivo com esquemas específicos da família usam o mesmo identificador da família de dispositivos no namespace.
Nota:
Os módulos comuns usam o identificador da |
identifier |
String que diferencia o namespace do módulo do de outros módulos. Os módulos de configuração e comando do Junos incluem um identificador que indica a área da configuração ou hierarquia de comando à qual o esquema no módulo pertence. |
module-id |
Identificador exclusivo específico do módulo, por exemplo, |
module-name |
Nome do módulo YANG incluído nesse arquivo, por exemplo, |
release |
Junos OS ou Junos OS Evolved versão em que o esquema nesse módulo é suportado. |
type |
Tipo de módulo. Os valores possíveis incluem:
|
A Tabela 4 descreve o namespace URI e o prefixo de cada módulo (conforme definido pela declaração do prefix
módulo) nas diferentes versões. A partir do Junos OS Release 17.2, o prefixo para cada módulo de comando operacional reflete a área de hierarquia de comando dos RPCs incluídos nesse módulo. Da mesma forma, a partir do Junos OS Release 17.4R1, o prefixo para cada módulo YANG de configuração reflete a hierarquia de declaração de configuração que está incluída nesse módulo. Os módulos de extensão e tipo Junos YANG usam o identificador da junos
família de dispositivos no namespace, mas os módulos são comuns a todas as famílias de dispositivos.
Módulo YANG |
Soltar |
Namespace URI |
Prefixo |
---|---|---|---|
Módulos de configuração |
17.1 e mais cedo |
http://yang.juniper.net/yang/1.1/jc |
|
17,2 a 17,3 |
http://yang.juniper.net/yang/1.1/jc/configuration/device-family/release |
|
|
17.4R1 e posterior |
http://yang.juniper.net/device-family/conf/hierarchy |
|
|
Módulos de comando operacionais |
17.1 e mais cedo |
http://yang.juniper.net/yang/1.1/jrpc |
|
17,2 a 17,3 |
http://yang.juniper.net/yang/1.1/jrpc/module-name/device-family/release |
hierarchy |
|
17.4R1 e posterior |
http://yang.juniper.net/device-family/rpc/hierarchy |
hierarchy |
|
junos-state módulos de estado |
22.2R1 e posterior | http://yang.juniper.net/junos/state/state-area |
js-area |
|
24.2R1 e posterior |
|
|
Módulo de extensões DDL |
17.1 e mais cedo |
http://yang.juniper.net/yang/1.1/je/ |
|
17.2 e posterior |
http://yang.juniper.net/yang/1.1/je/junos-extension/junos/release |
|
|
17.4R1 e posterior |
http://yang.juniper.net/junos/common/ddl-extensions |
|
|
Módulo de extensões ODL |
17.1 e mais cedo |
http://yang.juniper.net/yang/1.1/jodl |
|
17,2 a 17,3 |
http://yang.juniper.net/yang/1.1/jodl/junos-extension-odl/junos/release |
|
|
17.4R1 e posterior |
http://yang.juniper.net/junos/common/odl-extensions |
|
|
Módulo de extensões de anotações de metadados |
22.2R1 e posterior |
http://yang.juniper.net/junos/jcmd |
jcmd |
Módulo de tipos |
17.4R1 e posterior |
http://yang.juniper.net/junos/common/types |
|
Começando pelo Junos OS Release 17.2, quando você configura a rfc-compliant
declaração no nível de [edit system services netconf]
hierarquia e solicita dados de configuração em uma sessão NETCONF, o servidor define o namespace padrão para o <configuration>
elemento no mesmo namespace que no modelo YANG correspondente. Por exemplo:
<rpc> <get-config> <source> <running/> </source> </get-config> </rpc> ]]>]]> <nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/17.2R1/junos"> <nc:data> <configuration xmlns="http://yang.juniper.net/yang/1.1/jc/configuration/junos/17.2R1.13" junos:commit-seconds="1493761452" junos:commit-localtime="2017-05-02 14:44:12 PDT" junos:commit-user="user"> ... </configuration> </nc:data> </nc:rpc-reply> ]]>]]>
Tabela de histórico de mudanças
O suporte de recursos é determinado pela plataforma e versão que você está usando. Use o Feature Explorer para determinar se um recurso é suportado em sua plataforma.
junos
família de dispositivos em vez de
junos-qfx
.
junos:command
declaração de extensão em esquemas emitidos com extensões.