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):
- Tradução: Intenção humana convertida em política de rede (declarativa → YANG)
- Ativação: Política implantada nos dispositivos (automation)
- Monitoramento: Dados de telemetria coletados continuamente (assurance)
- 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:
- Versionamento: Configurações em Git (git diff mostra mudanças)
- Testes: Validar mudanças em laboratório antes de produção
- CI/CD: Pipeline automatizado (Git push → Ansible playbook → deploy)
- 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.