# [off] tcpdump récalcitrant (résolu)

## El_Goretto

Vous sauriez pourquoi, quand je fait un tcpdump avec comme entrée un fichier pcap bien formé, n'importe quel filtre appliqué échoue et tcpdump ne renvoit aucune trame?

Plus précisément:

```
tcpdump -n -r <fichier.pcap> host <@IP>
```

Ne sort rien, pas plus que 

```
tcpdump -n -r <fichier.pcap> tcp 80
```

Alors que :

```
tcpdump -n -r <fichier.pcap> | grep <@IP>
```

me sort un paquet de lignes (haha), dont mon traffic http sur l'IP en question.

Bref, dès qu'il y a une expression de filtrage, rien n'est affiché.

Ca sent fortement le bug, ou bien "c'est pas un bug, c'est conçu comme çà".

----------

## El_Goretto

Dans la série, je me réponds tout seul, ça donne:

Si je fais un:

```
tcpdump -n -r <fichier.pcap> not ip
```

Je récupère bien tout.

Oui, et là je me rends compte que mon traffic est taggué 802.1Q.

Et paf pastèque, le module d'interprétation "visuel" de tcpdump interprète sans problème ce genre de traffic, mais pas le moteur de filtrage... beurk.

Bref, il faut spécifier explicitement que  votre traffic est taggué. Ou pas.

Du coup, pour avoir une capture correcte dans un environnement 802.1.Q, il faut faire un truc sale:

```
tcpdump <options> vlan and not vlan
```

Carton rouge à tcpdump sur ce coup.

Et carton rouge à debian pour ses manpages qui ne mentionnent même pas le mot clé "vlan"...   :Evil or Very Mad: 

(et oui, je n'étais pas sous gentoo, on ne fait pas toujours ce qu'on veut...  :Smile: )

----------

## truc

ouch! C'est bien tordu ça! Par contre, je n'suis pas sûr d'avoir eu le fin mot de l'histoire, une fois que ta capture est faite ce cette manière, les filtres fonctionnent avec ton fifchier pcap en entrée?

----------

## guilc

Ah mais question bete, sur du vlan tagué, faudrait pas que tu précises l'interface de capture ? Genre tcpdump -i eth0.vlanid ?

Ca me semblerait logique en fait, et sur l'interface du vlan, le kernel doit avoir retiré le tag à priori, donc tu retrouve du trafic "normal"...

[EDIT]

Je viens de tester, c'est bien ça  :Wink: 

- Si tu captures sur eth0, tu récupère le trafic de tous les vlan qui passent par eth0, avec tags

- Si tu captures sur eth0.vlanid tu récupère que le trafic du vlan voulu sans tag

Et pas besoin de truc sale  :Wink: 

----------

## El_Goretto

@guilc: Le truc était plus sioux: la capture n'avait pas été faite par un pur linux, mais sur une autre bestiole, un load-balancer. Avec le recul, il fallait bien pomper sur l'équivalent de eth0, puisqu'il y a nombre de VLANs impliqués dans le flux qu'on cherchait.

Le but étant ensuite de filtrer un max cet énorme fichier de capture, afin de récupérer ce qui va bien et l'envoyer au support (vous imaginez bien la gueule de la messagerie avec un .pcap initial de 2Go  :Smile: ).

C'est là qu'on voit la force d'un chti tcpdump en CLI qui va relire le fichier et appliquer les filtres au passage (genre streaming)  plutôt que wireshark qui va essayer de charger tout le fichier avant de pouvoir faire quoi que ce soit (chose qui n'est pas faisable avec 4Go de RAM (par curiosité, j'ai pas été jusqu'au bout, ça a swapé)).

@truc: oui, une fois le mot clé vlan spécifié (en premier, et pas à la fin du filtre!), j'ai pu trouver ce que je cherchais.

Genre (si tout est taggé): 

```
tcpdump -n -r <fichier.pcap> vlan host <@IP>
```

----------

## truc

 *El_Goretto wrote:*   

> Et carton rouge à debian pour ses manpages qui ne mentionnent même pas le mot clé "vlan"...   

 

Un mini up, juste pour info (oui, j'fais finalement effectivement joujou avec ça aussi  :Smile:  ), le mot clé vlan apparait dans le manuel de pcap-filter, j'imagine que tous les mots clés sont supposé se trouver dans ce manuel d'ailleurs!?

----------

