network-config-validation
Ajuda seu agente a validar configurações de rede antes da implantação. Verifica comandos perigosos e problemas de segurança.
O que ela faz
Esta ferramenta verifica configurações de rede de roteadores e switches antes de serem aplicadas. Ela procura por comandos perigosos, endereços duplicados, conflitos de rede e outras questões de segurança.
Quando usar
- ✓Antes de aplicar uma mudança em equipamentos de rede.
- ✓Ao revisar configurações geradas por scripts.
- ✓Para garantir que não há comandos que possam causar interrupções.
Exemplo do que pedir para a IA
“Verifique esta configuração de roteador para comandos perigosos e conflitos de IP.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta analisa o texto da configuração linha por linha. Ela usa padrões para identificar problemas como comandos que podem desligar o equipamento ou endereços IP que estão sendo usados em mais de um lugar.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add affaan-m/ECC --skill network-config-validationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/network-config-validation/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Validação de Configuração de Rede
Use esta habilidade para revisar a configuração de rede antes de uma janela de mudança ou antes que uma execução de automação afete dispositivos de produção.
Quando Usar
- Revisando trechos de configuração no estilo Cisco IOS ou IOS-XE antes da implantação.
- Auditando configurações geradas por scripts ou modelos.
- Procurando por comandos perigosos, endereços IP duplicados ou sobreposições de sub-redes.
- Verificando se ACLs, route-maps, prefix-lists ou políticas de linha são referenciados, mas não definidos.
- Construindo scripts leves de pré-voo para automação de rede.
Como Funciona
Trate a validação de configuração como evidência em camadas, não como um analisador completo. Verificações de Regex são úteis para avisos de pré-voo, mas a aprovação final ainda requer que um engenheiro de rede revise a intenção, a sintaxe da plataforma e as etapas de reversão.
Valide nesta ordem:
- Comandos destrutivos.
- Exposição de credenciais e plano de gerenciamento.
- Endereços duplicados e sub-redes sobrepostas.
- Referências obsoletas a ACLs, route-maps, prefix-lists e interfaces.
- Higiene operacional, como NTP, timestamps, registro remoto e banners.
Detecção de Comandos Perigosos
import re
DANGEROUS_PATTERNS: list[tuple[re.Pattern[str], str]] = [
(re.compile(r"\breload\b", re.I), "reload causes downtime"),
(re.compile(r"\berase\s+(startup|nvram|flash)", re.I), "erases persistent storage"),
(re.compile(r"\bformat\b", re.I), "formats a device filesystem"),
(re.compile(r"\bno\s+router\s+(bgp|ospf|eigrp)\b", re.I), "removes a routing process"),
(re.compile(r"\bno\s+interface\s+\S+", re.I), "removes interface configuration"),
(re.compile(r"\baaa\s+new-model\b", re.I), "changes authentication behavior"),
(re.compile(r"\bcrypto\s+key\s+(zeroize|generate)\b", re.I), "changes device SSH keys"),
]
def find_dangerous_commands(lines: list[str]) -> list[dict[str, str | int]]:
findings = []
for line_number, line in enumerate(lines, start=1):
stripped = line.strip()
for pattern, reason in DANGEROUS_PATTERNS:
if pattern.search(stripped):
findings.append({
"line": line_number,
"command": stripped,
"reason": reason,
})
return findings
IPs Duplicados e Sobreposições de Sub-redes
import ipaddress
import re
from collections import Counter
IP_ADDRESS_RE = re.compile(
r"^\s*ip address\s+"
r"(?P<ip>\d{1,3}(?:\.\d{1,3}){3})\s+"
r"(?P<mask>\d{1,3}(?:\.\d{1,3}){3})\b",
re.I | re.M,
)
def extract_interfaces(config: str) -> list[dict[str, str]]:
results = []
current = None
for line in config.splitlines():
if line.startswith("interface "):
current = line.split(maxsplit=1)[1]
continue
match = IP_ADDRESS_RE.match(line)
if current and match:
ip = match.group("ip")
mask = match.group("mask")
network = ipaddress.ip_interface(f"{ip}/{mask}").network
results.append({"interface": current, "ip": ip, "network": str(network)})
return results
def find_duplicate_ips(config: str) -> list[str]:
ips = [entry["ip"] for entry in extract_interfaces(config)]
counts = Counter(ips)
return sorted(ip for ip, count in counts.items() if count > 1)
def find_subnet_overlaps(config: str) -> list[tuple[str, str]]:
networks = [ipaddress.ip_network(entry["network"]) for entry in extract_interfaces(config)]
overlaps = []
for index, left in enumerate(networks):
for right in networks[index + 1:]:
if left.overlaps(right):
overlaps.append((str(left), str(right)))
return overlaps
Verificações do Plano de Gerenciamento
Analise blocos VTY por seção para que as verificações de access-class não se espalhem por linhas não relacionadas.
import re
def iter_blocks(config: str, starts_with: str) -> list[str]:
blocks = []
current: list[str] = []
for line in config.splitlines():
if line.startswith(starts_with):
if current:
blocks.append("\n".join(current))
current = [line]
continue
if current:
if line and not line.startswith(" "):
blocks.append("\n".join(current))
current = []
else:
current.append(line)
if current:
blocks.append("\n".join(current))
return blocks
def check_vty_blocks(config: str) -> list[str]:
issues = []
…
Perguntas frequentes
O que são 'comandos perigosos'?
São comandos que podem causar interrupções inesperadas no serviço, como reiniciar o equipamento ou apagar configurações importantes.
O que são 'conflitos de rede'?
São situações onde dois ou mais dispositivos na rede estão configurados para usar o mesmo endereço IP, o que impede que ambos funcionem corretamente.
Esta ferramenta substitui um engenheiro de rede?
Não, ela é uma ajuda para encontrar problemas comuns rapidamente. A aprovação final e a compreensão do impacto da configuração ainda dependem de um profissional.
Detalhes
Descrição original do autor
Pre-deployment checks for router and switch configuration, including dangerous commands, duplicate addresses, subnet overlaps, stale references, management-plane risk, and IOS-style security hygiene. Use when reviewing a router or switch configuration before deployment.
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #240
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
git-workflow-and-versioning
Organiza o trabalho de código usando o Git. Ajuda a salvar o progresso, gerenciar diferentes versões e evitar conflitos ao trabalhar em equipe.
addyosmani/agent-skills
observability-and-instrumentation
Adiciona ferramentas para monitorar o que o código faz em produção. Ajuda a entender se algo deu errado e por quê, facilitando a correção.
addyosmani/agent-skills
github-pr-workflow
Prepara pull requests no GitHub, garantindo a qualidade do código e a documentação.
paperclipai/paperclip