M7 · Automação e SDN

APIs e redes definidas por software

# APIs e redes definidas por software

## O que é SDN

SDN (Software-Defined Networking) separa o plano de controle do plano de dados. Em redes tradicionais, cada dispositivo toma decisões de encaminhamento de forma independente. No modelo SDN, um controlador centralizado assume o plano de controle, e os dispositivos de rede passam a ser simples elementos de encaminhamento.

### Planos de rede

| Plano | Função | Exemplo |
|-------|--------|---------|
| **Dados** | Encaminha pacotes | Tabela MAC, tabela de roteamento |
| **Controle** | Decide como encaminhar | OSPF, STP, ARP |
| **Gerenciamento** | Configuração e monitoramento | SSH, SNMP, NETCONF |

No SDN, o plano de controle sai do dispositivo e vai para o **controlador SDN** (software centralizado).

---

## APIs em redes

API (Application Programming Interface) é a interface que permite que softwares se comuniquem entre si. Em automação de redes, as APIs substituem a configuração manual via CLI.

### Tipos de API

**Northbound API** — interface entre o controlador SDN e as aplicações de negócio. Permite que sistemas externos programem a rede.

**Southbound API** — interface entre o controlador SDN e os dispositivos de rede. Protocolos comuns:
- **OpenFlow** — protocolo padrão de southbound
- **NETCONF** — usa XML e SSH
- **RESTCONF** — versão REST do NETCONF, usa JSON ou XML sobre HTTPS

**East/Westbound APIs** — comunicação entre controladores SDN em ambientes distribuídos.

---

## REST APIs

REST (Representational State Transfer) é o estilo de API mais usado em automação de redes modernas. Características:

- Comunicação via HTTP/HTTPS
- Dados em formato **JSON** ou **XML**
- Operações baseadas em verbos HTTP:

| Verbo HTTP | Ação CRUD |
|------------|-----------|
| GET | Ler (Read) |
| POST | Criar (Create) |
| PUT/PATCH | Atualizar (Update) |
| DELETE | Deletar (Delete) |

---

## NETCONF e RESTCONF

### NETCONF

Usa SSH (porta 830) e XML. Permite ler e escrever configurações de dispositivos de forma estruturada.

### RESTCONF

Versão simplificada do NETCONF sobre HTTP/HTTPS. Mais fácil de usar com ferramentas modernas como Python `requests` ou Postman.

---

## Cisco DNA Center e SD-Access

O **Cisco DNA Center** é o controlador SDN da Cisco para redes empresariais. Oferece:
- Interface gráfica para automação
- REST API northbound para integração com sistemas externos
- Provisionamento automático de dispositivos

O **SD-Access** é a arquitetura Cisco que usa o DNA Center para criar redes com políticas baseadas em intenção (IBN — Intent-Based Networking).

---

## Ansible, Puppet e Chef

Ferramentas de automação usadas com ou sem SDN:

| Ferramenta | Protocolo | Agente no dispositivo? |
|------------|-----------|----------------------|
| **Ansible** | SSH / NETCONF | Não (agentless) |
| **Puppet** | HTTPS | Sim |
| **Chef** | HTTPS | Sim |

O **Ansible** é o mais cobrado no CCNA por ser agentless e usar YAML para definir playbooks.

---

## Configuração mínima para NETCONF no IOS-XE

Router(config)# netconf-yang Router(config)# ip ssh version 2 Router(config)# aaa new-model


Verificação:

Router# show netconf-yang sessions


---

## Pontos críticos para o exame

- SDN separa plano de **controle** do plano de **dados**
- Northbound API = controlador ↔ aplicações
- Southbound API = controlador ↔ dispositivos (OpenFlow, NETCONF)
- REST usa HTTP + JSON; verbos: GET, POST, PUT, DELETE
- Ansible é **agentless**; Puppet e Chef precisam de agente
- DNA Center usa **IBN** (Intent-Based Networking)