Filtrando pacotes enacpsulados GRE com tcpdump

2

Eu posso pedir ao tcpdump para me mostrar os pacotes GRE encapsulados simplesmente com tcpdump -ni any proto gre :

15:02:57.209082 IP 10.14.0.3 > 10.14.0.2: GREv0, key=0x1, length 106: IP 10.10.10.11 > 10.10.10.1: ICMP echo request, id 21073, seq 2784, length 64
15:02:57.209138 IP 10.14.0.2 > 10.14.0.3: GREv0, key=0x1, length 106: IP 10.10.10.1 > 10.10.10.11: ICMP echo reply, id 21073, seq 2784, length 64
15:02:57.345098 IP 10.14.0.2 > 10.14.0.3: GREv0, key=0x1, length 74: IP 169.254.192.1 > 224.0.0.18: VRRPv2, Advertisement, vrid 1, prio 50, authtype none, intvl 2s, length 20

Mas é possível filtrar, por exemplo, apenas pacotes icmp encapsulados ou qualquer outra expressão arbitrária?

    
por DazWorrall 22.04.2015 / 14:56

3 respostas

2

Desde que isso foi útil para mim, atualizando esta resposta.

Se você quiser olhar para um proto dentro de outro proto, você não pode simplesmente usar proto no jogo.

protochain funciona como proto , no entanto, ele altera especificamente o deslocamento para a próxima correspondência para esse fim exato.

Em vez disso, use:

protochain GRE && proto ICMP

Fonte: pcap-filter (7)

    
por 04.01.2016 / 23:21
2

Caso sua versão tcpdump não suporte protochain como a da Debian 8, por exemplo, você pode calcular manualmente a posição, onde o número do protocolo do pacote IP dentro do túnel GRE é determinado.

O ICMP tem o número do protocolo 0x01. E é armazenado no 10º byte do pacote. GREv0 tem 24 bytes, mais nove (porque um conta de zero) é igual a 33:

tcpdump -i any proto 47 and ip[33]=0x01
    
por 24.01.2018 / 03:30
1

tcpdump usa a sintaxe do filtro pcap

Filtre XX dentro de YY ;

proto YY && proto XX

ICMP dentro de GRE :

proto GRE && proto ICMP
    
por 29.07.2015 / 13:46

Tags