tcpdump capturar pacotes somente quando a interface é especificada

2

Eu tentei três maneiras diferentes de capturar um fluxo de pacotes que entram no meu servidor. Dois deles trabalham e o terceiro não. Eu estou tentando determinar por que é perdido pela terceira abordagem:

tcpdump -i eth1 udp port 5052
tcpdump -i eth1 -p udp port 5052
tcpdump -i any udp port 5052
tcpdump udp port 5052 #Does not work

Minha teoria era de que qualquer abordagem estava falhando porque a captura não era promíscua e deve ser descartada pelo iptables em algum lugar. No entanto, mesmo quando faço a primeira captura não promíscua (definindo explicitamente -p), ela captura os pacotes. O que mais poderia ser diferente entre os dois?

UPDATE: percebi que não estava fazendo exatamente o que eu pensava. Na verdade, existem quatro variações e a única que está falhando é somente quando não especifico uma interface. O que seria diferente entre não -i flag e -i any ?

    
por Pace 29.04.2015 / 17:54

1 resposta

0

Quando você inicia tcpdump , ele informa em qual interface ele atende:

# tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

A página de manual é muito clara sobre o assunto:

-i Listen on interface. If unspecified, tcpdump searches the system interface list for the lowest numbered, configured up interface (excluding loopback). Ties are broken by choosing the earliest match.

Isso significa que, contanto que você tenha uma interface eth0 configurada, eth1 nunca será selecionado como interface de captura padrão.

    
por 05.09.2015 / 15:44