📚 Boris School
← Voltar ao curso

Automation and Programmability

Intent-Based Networking e Telemetria

Intent-Based Networking (IBN)

Rede baseada em intenção: o administrador declara o resultado desejado (o "o quê"), e o sistema descobre "como" implementar.

Ciclo IBN (Cisco):

  1. Tradução: Intenção humana convertida em política de rede (declarativa → YANG)
  2. Ativação: Política implantada nos dispositivos (automation)
  3. Monitoramento: Dados de telemetria coletados continuamente (assurance)
  4. Garantia: Se desvios são detectados, o sistema corrige ou alerta

Exemplo de Intenção:

"A rede de vendas (VLAN 10) deve ter acesso HTTP ao servidor web, mas não acesso SSH."

O DNA Center traduz isso em ACLs, rotas, etc., e configura os dispositivos automaticamente.

Telemetria (Model-Driven Telemetry)

Substitui o polling SNMP tradicional. O dispositivo empurra dados para um collector:

| Técnica | Polling (SNMP) | Streaming Telemetry | |---------|----------------|---------------------| | Direção | Pull (NMS pergunta) | Push (dispositivo envia) | | Frequência | 5-15 min (típico) | Segundos ou sub-segundos | | Dados | Amostragem | Fluxo contínuo | | Padrão | Estático | Model-driven (YANG) | | Eficiência | Alta overhead | Baixa overhead |

Formatos de codificação:

  • JSON: Legível por humanos, mais verboso
  • XML: Verboso, usado em NETCONF
  • YANG/XML: Padrão NETCONF
  • Protocol Buffers (gRPC): Binário, rápido, baixo overhead — Cisco usa em telemetria moderna

DevOps na Rede (NetDevOps):

Aplicação de práticas DevOps (CI/CD, versionamento, testes) à infraestrutura de rede:

  1. Versionamento: Configurações em Git (git diff mostra mudanças)
  2. Testes: Validar mudanças em laboratório antes de produção
  3. CI/CD: Pipeline automatizado (Git push → Ansible playbook → deploy)
  4. Documentação como código: Diagramas gerados de configurações reais

Padronização de Configuração (templates):

interface {{ interface_name }}
 description {{ description }}
 ip address {{ ip_address }} {{ subnet_mask }}
{% if mtu is defined %}
 mtu {{ mtu }}
{% endif %}
 no shutdown

Usado com Ansible (template module) ou Python (Jinja2) para gerar configurações consistentes.