SNMP
Na supervisão da infraestrutura da casa inteligente, SNMP resolve o problema de coletar métricas e alarmes de switches, UPS, roteadores, access points e gateways sem API proprietária. SNMPv1 surgiu em 1988; SNMPv3 usa o framework da RFC 3411 e pode oferecer autenticação e privacidade pelo USM da RFC 3414. A porta usual é UDP 161, com traps em 162. Para implantação segura, desabilitar comunidades `public/private`, preferir authPriv e restringir gerentes por ACL.
SNMP é uma família de protocolos e modelos para gerenciamento de dispositivos IP. Um gerente ou Network Management System consulta agentes instalados em switches, roteadores, UPS, access points, servidores, controladores e gateways. Os dados são organizados como objetos com OIDs numa árvore. As definições ficam em MIBs, escritas em SMI. Um OID como `1.3.6.1.2.1.1.3.0` representa sysUpTime no MIB-II. O gerente usa GET para ler um objeto, GETNEXT para navegar, GETBULK em versões posteriores para ler tabelas eficientemente, SET para alterar quando permitido e recebe TRAP ou INFORM para notificações. O agente normalmente escuta UDP 161; traps e informs usam UDP 162 no receptor. TCP pode existir em extensões, mas UDP é o padrão comum. SNMPv1 foi definido no fim da década de 1980 e popularizou comunidades como strings de acesso. SNMPv2 trouxe melhorias, GETBULK e novos tipos; SNMPv2c manteve comunidades sem segurança criptográfica. SNMPv3, definido pelo framework das RFCs 3411–3418 em 2002, adiciona arquitetura, engine IDs, usuários, autenticação, privacidade, controle de acesso e modelo de processamento. USM, RFC 3414, oferece noAuthNoPriv, authNoPriv e authPriv. Para redes atuais, authPriv é a escolha segura, usando algoritmos suportados e atualizados. Implementações antigas usam MD5 e DES, que devem ser evitados quando SHA e AES estão disponíveis. Extensões modernas definem SHA-2 e AES. VACM controla quais OIDs cada usuário pode ler ou alterar. O engine boots/time ajuda proteção contra replay. Relógios e engine ID precisam estar corretos. Descoberta do engine ocorre. Em casa inteligente avançada, SNMP monitora temperatura da UPS, carga, bateria, potência, portas de switch, PoE, tráfego, erros, clientes de access point, estado de links e sensores ambientais. Um switch PoE pode informar consumo por porta. Um NMS como Zabbix, LibreNMS, PRTG ou Prometheus via exporter coleta a cada 30–300 s. Home Assistant possui integrações SNMP para sensores e comandos, mas polling excessivo aumenta carga. MIBs padrão fornecem IF-MIB, SNMPv2-MIB, ENTITY-MIB, UPS-MIB e LLDP-MIB. Fabricantes adicionam OIDs privados sob sua enterprise. O arquivo MIB traduz números em nomes e tipos. A presença da MIB não garante que o modelo implemente todos. O integrador consulta. Índices de tabela podem mudar após reboot. Interfaces devem ser correlacionadas por ifName/ifAlias, não apenas ifIndex quando persistência não é garantida. Contadores de 32 bits transbordam rapidamente em links rápidos; usar Counter64 em ifHCInOctets/ifHCOutOctets. Para calcular taxa, fazer diferença e dividir pelo tempo, tratando wrap e reboot. sysUpTime ajuda. Traps são não confirmados; INFORM recebe confirmação. Não depender apenas de trap para estado crítico. Polling reconcilia. SET é poderoso e arriscado. Deve ser desabilitado ou restrito. Uma automação não deve desligar porta PoE por community pública. SNMP não é discovery de usuário final. É gerenciamento. Firewalls permitem apenas do NMS para agentes. UDP 161/162 nunca fica exposto à Internet. Comunidades v2c podem aparecer em captura; usar v3. O protocolo também pode ser usado em dispositivos sem suporte a TLS. authPriv fornece segurança própria, mas a configuração é complexa. Logs e rotação de credenciais são necessários.
- Padroniza monitoramento de equipamentos de rede e energia de múltiplos fabricantes por OIDs e MIBs comuns.
- SNMPv3 oferece autenticação, privacidade e controle de acesso granular sem depender de TLS externo.
- GETBULK e contadores estruturados permitem coletar muitas interfaces e métricas com overhead moderado.
- Traps e informs fornecem eventos assíncronos, complementando polling para detectar falhas rapidamente.
- Possui ampla integração com Zabbix, LibreNMS, PRTG, SolarWinds, Prometheus exporters e Home Assistant.
- SNMPv1 e v2c transmitem community strings sem criptografia e continuam comuns, criando risco de exposição.
- MIBs privadas, índices e escalas variam entre fabricantes; interoperabilidade exige testes e documentação.
- Configurar SNMPv3, engine IDs, usuários, algoritmos e VACM é mais complexo e pode falhar entre implementações antigas.
- UDP pode perder traps e respostas; polling, retry e reconciliação continuam necessários.
- SET pode alterar equipamentos de forma perigosa; privilégios excessivos e comunidades de escrita devem ser evitados.