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:
-
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 -
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) -
Validar e testar módulos YANG
- Utilizar ferramentas de validação comopyangeyanglint
- Interpretar saídas em formato de árvore
- Identificar e corrigir erros de sintaxe e estrutura -
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 -
Estender módulos existentes
- Utilizar o comandoaugmentpara adicionar funcionalidades
- Implementar extensões condicionais comwhen
- 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