Home/Labs/YANG
Cursosfundamentals

YANG

Desenvolvimento de Módulos YANG

Introdução

Antes de começar:

sudo apt update && sudo apt install procps -y && sudo apt install libyang-tools -y

O que você irá aprender

Neste laboratório, você irá desenvolver competências práticas fundamentais para trabalhar com YANG (Yet Another Next Generation), a linguagem de modelagem de dados padrão para configuração e gerenciamento de dispositivos de rede.

Objetivos de Aprendizado

Ao concluir este laboratório, você será capaz de:

  1. Compreender a estrutura de módulos YANG

    • Entender a sintaxe e semântica da linguagem YANG
    • Conhecer os principais elementos: containers, lists, leafs e leaf-lists
    • Trabalhar com namespaces, prefixos e imports
  2. Desenvolver módulos YANG do zero

    • Criar módulos YANG para modelar interfaces de rede
    • Implementar configurações IPv4 em interfaces
    • Modelar dispositivos de rede complexos com ACLs
    • Diferenciar dados de configuração (read-write) de dados operacionais (read-only)
  3. Validar e testar módulos YANG

    • Utilizar ferramentas de validação como pyang e yanglint
    • Interpretar saídas em formato de árvore
    • Identificar e corrigir erros de sintaxe e estrutura
  4. Trabalhar com dados de instância

    • Criar arquivos de dados em JSON e YAML compatíveis com módulos YANG
    • Validar dados de instância contra schemas YANG
    • Converter entre diferentes formatos de dados
  5. Estender módulos existentes

    • Utilizar o comando augment para adicionar funcionalidades
    • Implementar extensões condicionais com when
    • Criar módulos modulares e reutilizáveis

Estrutura do Laboratório

O laboratório está organizado em 4 exercícios progressivos:

  • Exercício 1: Módulo IETF Interfaces (básico)
  • Exercício 2: Módulo Device com ACLs e Interfaces (intermediário)
  • Exercício 3: Criação e Validação de Dados de Instância
  • Exercício 4: Augmentação de Módulos (avançado - bônus)

Ferramentas Utilizadas

  • pyang: Validação e visualização de módulos YANG
  • yanglint: Validação de dados de instância
  • yang2dsdl: Conversão e validação de dados

Como Navegar

Acesse a pasta tasks/ para encontrar as instruções detalhadas de cada exercício:

  • Exercício 1: Módulo IETF Interfaces
  • Exercício 2: Módulo Device (ACLs e Interfaces)
  • Exercício 3: Criação de Dados de Instância
  • Exercício 4: Augmentação de Módulos (Bônus)

As soluções completas estão disponíveis na pasta solutions/ para consulta após completar cada exercício.


Comandos Úteis do Pyang

# Visualização em árvore
pyang -f tree module.yang

# Validação de sintaxe
pyang module.yang

# Geração de esquema JSON
pyang -f jsonschema module.yang -o module.jsonschema

# Geração de documentação HTML
pyang -f jstree module.yang -o module.html

# Verificar dependências
pyang --print-depends module.yang

# Visualização detalhada com tipos
pyang -f tree --tree-print-types module.yang