Como capturar pacotes em roteadores Cisco IOS e IOS XE.

De Wiki BPF
Revisão de 15h52min de 18 de fevereiro de 2026 por Ohorezende (discussão | contribs)
Ir para navegação Ir para pesquisar

Na vida de um administrador de redes, poucos cenários são tão frustrantes quanto solucionar problemas intermitentes de conectividade ou analisar comportamentos suspeitos de aplicações sem ter visibilidade do que realmente trafega pelo fio. Antigamente, isso exigia o deslocamento físico até o equipamento, a configuração de portas SPAN (espelhamento) e o uso de laptops com softwares externos, como o Wireshark.

No entanto, a evolução dos sistemas operacionais da Cisco (IOS e IOS XE) trouxe uma funcionalidade poderosa que muitas vezes é subutilizada: o Embedded Packet Capture (EPC). Esse recurso permite que o roteador capture pacotes, armazene-os em um buffer na memória DRAM e os exporte para análise, transformando o próprio dispositivo em um sniffer de rede ativo.

Este artigo técnico explora como configurar, gerenciar e exportar capturas de pacotes em roteadores Cisco, abrangendo tanto as arquiteturas modernas do IOS XE quanto as configurações legadas do IOS clássico.

O que é o Embedded Packet Capture?

O EPC é uma funcionalidade de captura de pacotes onboard. Ele permite capturar dados que fluem para, através e a partir do dispositivo. Essa funcionalidade simplifica drasticamente as operações de rede, permitindo que os dispositivos participem ativamente do gerenciamento e da segurança da infraestrutura.

É importante notar que o EPC consome recursos de CPU e memória durante sua operação. O buffer de captura é armazenado na memória DRAM e não persiste após uma reinicialização do equipamento (reload). Portanto, trata-se de uma ferramenta de assistência temporária para troubleshooting, e não de um sistema de arquivamento permanente.

Cenário 1: A Abordagem Moderna (Cisco IOS XE)

O Cisco IOS XE (presente em plataformas como ASR 1000, 1002-X e 1006) introduziu uma sintaxe simplificada e mais poderosa para o EPC a partir da versão 3.7S. Diferentemente do IOS clássico, o IOS XE unifica diversos comandos, tornando o processo mais intuitivo.

1. Definindo o ponto de captura

O primeiro passo é criar uma instância de captura e definir onde ela ocorrerá. Você pode capturar tráfego em interfaces físicas, subinterfaces e interfaces de túnel.

Para configurar uma captura chamada “MYCAP” na interface GigabitEthernet0/0/1, podemos utilizar a seguinte sintaxe:

lab-Octavio# monitor capture MYCAP interface GigabitEthernet0/0/1 both/in/out

2. O Poder dos filtros

Capturar todo o tráfego de uma interface raramente é recomendado, pois o buffer será preenchido em milissegundos e a CPU do roteador poderá sofrer picos de utilização. O IOS XE permite associar filtros de duas formas: por meio de Access Control Lists (ACLs) ou de definições em linha (inline).

Para capturar apenas tráfego IPv4 do protocolo TCP, você pode configurar um filtro direto:

lab-Octavio# monitor capture MYCAP match ipv4 protocol tcp any any

Para capturar apenas o tráfego IPv6 do protocolo UDP, você também pode configurar um filtro direto:

lab-Octavio# monitor capture MYCAP match ipv6 protocol udp any any

Alternativamente, para obter um controle mais granular, você pode criar uma ACL estendida e associá-la à captura.

3. Configurando o buffer e limites

O buffer é onde os pacotes permanecem antes de serem exportados. Existem dois tipos principais de buffer:

  • Linear: a captura é interrompida quando o buffer está cheio.
  • Circular: quando o buffer enche, os dados mais antigos são sobrescritos pelos novos.

Além disso, é possível definir limites de segurança para a captura, como uma duração em segundos ou um número máximo de pacotes, garantindo que o processo seja interrompido automaticamente.

Exemplo de configuração de buffer circular e limite de tempo:

lab-Octavio# monitor capture MYCAP buffer circular size 10

lab-Octavio# monitor capture MYCAP limit duration 1000

Nota: O tamanho do buffer geralmente varia de 1 MB a 100 MB, dependendo da plataforma.

4. Executando a captura

Com tudo configurado, o processo de início e parada é manual e simples.

Para iniciar:

lab-Octavio# monitor capture MYCAP start

Para parar:

lab-Octavio# monitor capture MYCAP stop

Durante a captura, você pode verificar o status ou visualizar um resumo rápido dos dados capturados, sem precisar exportá-los imediatamente:

lab-Octavio# show monitor capture MYCAP buffer brief

5. Exportação para análise (PCAP)

A visualização no terminal (dump hexadecimal) é útil para verificações rápidas, mas, para uma análise mais aprofundada, o ideal é exportar o arquivo no formato .pcap. Esse arquivo pode ser aberto nativamente no Wireshark.

lab-Octavio# monitor capture MYCAP export tftp://10.1.88.9/mycap.pcap

Após a exportação e a análise, é uma boa prática remover a configuração de captura para liberar recursos:

lab-Octavio# no monitor capture MYCAP

Cenário 2: A abordagem clássica (Cisco IOS)

Para equipamentos que rodam versões do Cisco IOS anteriores ao XE (como a série 1900, 2900, 3900 ou versões 12.4T/15.x antigas), a configuração é mais modular. O conceito exige que você configure o buffer e o ponto de captura separadamente e depois os associe.

1. Definindo o buffer

No IOS clássico, definimos explicitamente o buffer e suas características (tamanho, tamanho máximo do pacote e tipo circular ou linear):

lab-Octavio2# monitor capture buffer BUF-NAME size 2048 max-size 1518 linear

2. Aplicando filtros (Obrigatório ACL)

Diferentemente do IOS XE, que aceita filtros inline com facilidade, no IOS clássico a melhor prática é definir uma ACL e aplicá-la ao buffer.

lab-Octavio2(config)# ip access-list extended MEU-FILTRO

lab-Octavio2(config-ext-nacl)# permit ip host 192.168.1.1 host 172.16.1.1

lab-Octavio2# monitor capture buffer BUF-NAME filter access-list MEU-FILTRO

3. Definindo o ponto de captura

O ponto de captura define a interface e o caminho de processamento (CEF ou Process Switching). Essa é uma distinção importante no IOS clássico:

lab-Octavio2# monitor capture point ip cef POINT-NAME fastEthernet 0 both

4. Associação e Execução

O passo final, antes de iniciar a captura, é “associar” o buffer ao ponto de captura:

lab-Octavio2# monitor capture point associate POINT-NAME BUF-NAME

Os comandos de start e stop seguem a lógica do ponto de captura:

lab-Octavio2# monitor capture point start POINT-NAME Router# monitor capture point stop POINT-NAME

Método alternativo: Exportação de tráfego IP

Caso o EPC não esteja disponível ou não seja adequado, existe um método mais antigo chamado IP Traffic Export (RITE). Esse método exporta pacotes recebidos em interfaces WAN ou LAN para uma interface Ethernet de saída, onde um analisador externo estaria conectado.

Embora funcional, esse método possui desvantagens significativas em comparação ao EPC moderno:

  1. A interface de destino da exportação deve ser obrigatoriamente Ethernet.
  2. Não há suporte para captura de tráfego IPv6.
  3. As informações da Camada 2 (como cabeçalhos Ethernet) não são preservadas; captura-se apenas da Camada 3 em diante.

A configuração envolve a criação de um perfil (ip traffic-export profile) e sua aplicação à interface desejada.

Dicas avançadas e Troubleshooting

Para garantir que suas capturas sejam bem-sucedidas e não impactem a rede, considere as seguintes observações técnicas, extraídas da documentação oficial:

1. Sobrevivência ao Reload

É crucial lembrar que a configuração do EPC no IOS não é armazenada na NVRAM por padrão, e os dados do buffer permanecem na DRAM. Se o roteador for reiniciado, tanto a configuração da ferramenta quanto os pacotes capturados serão perdidos. Planeje suas janelas de manutenção com isso em mente.

2. Limitações de Multicast

O EPC possui uma limitação conhecida: pacotes multicast são capturados apenas na entrada (ingress). Pacotes replicados na saída (egress) não são capturados.

3. Visualização sem exportação

Se você não tiver acesso a um servidor TFTP/FTP para exportar o arquivo .pcap, poderá visualizar o dump hexadecimal diretamente no terminal:

lab-Octavio# show monitor capture MYCAP buffer dump

Embora a saída seja ilegível à primeira vista, é possível copiar o texto hexadecimal e utilizar conversores on-line ou ferramentas específicas para reconstruir o pacote. Ainda assim, esse processo é muito menos prático do que a exportação direta.

4. Depuração (Debugging)

Se a captura não estiver funcionando como esperado, o IOS XE oferece comandos de debug específicos para verificar o provisionamento e o funcionamento dos pontos de captura:

lab-Octavio# debug epc provision

lab-Octavio# debug epc capture-point

Esses comandos exibem logs detalhados sobre a criação de classes, políticas e a ativação das interfaces em nível de sistema, permitindo diagnosticar falhas na aplicação das regras de captura.

Conclusão

O Embedded Packet Capture é uma ferramenta indispensável no arsenal de qualquer engenheiro de redes Cisco. Seja utilizando a sintaxe moderna e unificada do IOS XE ou a abordagem modular do IOS clássico, a capacidade de visualizar o tráfego real sem a necessidade de hardware adicional agiliza o diagnóstico de falhas e a análise de segurança.

Ao dominar os comandos de filtro, buffer e exportação, você garante total visibilidade sobre sua infraestrutura, independentemente de onde esteja fisicamente.

Referências: