2013-10-28 11 views

risposta

1

Si pone una domanda molto interessante (almeno per me!), Quindi ho iniziato a cercare una risposta.

Sono stato un po 'sorpreso nel vedere che la pagina man e i documenti di tcpdump non includevano alcuna menzione del numero di pacchetto, che avrei pensato avrebbe usato con l'opzione -r (leggendo dal file pcap). Sto iniziando a pensare che il file di output di pcap NON includa un numero di pacchetto?

So che se lo carichi in Wireshark, vedrai un numero di pacchetto nella colonna più a sinistra, ma visto che stai parlando di un file da 100Gb non volevo suggerirti di caricarlo in Wireshark (forse Wireshark su un server Linux può occuparsene? Non so ...)

In ogni caso, ho trovato editcap, che non ho usato in passato, ma è uno strumento da riga di comando che fa parte di Wireshark. editcap ti consente di specificare il numero del pacchetto o il range del numero di pacchetti. Quindi questo mi ha fatto pensare che forse il numero del pacchetto è solo una cosa di Wireshark, e che i file pcap memorizzano solo i pacchetti senza preoccuparsi di etichettare i numeri di ordinazione?

editcap - pagina man: http://www.wireshark.org/docs/man-pages/editcap.html

editcap - manuale d'uso: http://www.wireshark.org/docs/wsug_html_chunked/AppToolseditcap.html

Fare attenzione poiché sembra che editcap funzione principale è quella rimuovere pacchetti (duplicati), in modo da guardare fuori per eventuali comportamenti predefiniti Là!

Spero che questo aiuti, e se qualcuno ha più luce da versare su questo mi piacerebbe sentirlo!

0

Non c'è un modo semplice per farlo, ci sono un paio di modi per mitigare la dimensione del file, così come per prevenire file così grandi. Qui ci sono un paio di arounds di lavoro:

tcpdump -r infile applicare filtri -w outfile

Esempio:

tcpdump -r firstcap.pcap -nn host 192.168.1.177 -w 177file.pcap 

Con questo filtro si analizzare fuori tutti i pacchetti che contengono l'host 192.168. 1.177 in un nuovo file pcap chiamato 177file.pcap; è anche possibile specificare protocolli come tcp, udp, icmp e arp e analizzare questi pacchetti in un file separato.

io non sono sicuro che si può ottenere una gamma specifica facilmente, c'è un lavoro intorno modo in cui si usa la testa e la coda a zero su uno specifico insieme di linee:

Per esempio:

Diciamo che si desidera linee 400-500 in un file di 1000 pacchetti:

tcpdump -r firstcap.pcap -c 500 | tail -100 >> outfile.txt 

Questo stamperà i primi 500 pacchetti, e quindi il tubo che l'uscita alla coda che solo mostrare gli ultimi 100 pacchetti di cattura 500 pacchetti, così efficacemente 400-500. Quindi stai aggiungendo packert in ASCII a outfile.txt, ovvero non è più in formato pcap.

NOTA: È molto importante notare che la coda stampa l'ultimo numero N di linee NON pacchetti, quindi se si stanno visualizzando i pacchetti in formato esadecimale si dovrebbe tenerne conto nel calcolo.

per evitare di creare enormi file pcap è possibile ruotare una cattura abbastanza facilmente con tcpdump, ho scritto qui:

http://www.ppartyka.com/2014/03/tutorial-tcpdump-pcap-file-too-large.html

Spero che questo aiuti.

5

E 'molto semplice usando editcap che arriva con Wireshark (almeno su CentOS e Debian). Per i numeri di pacchetto da 5.000.000 a 5.000.020, è possibile effettuare le seguenti operazioni:

editcap -r <big_pcap_file> <new_pcap_file> 5000000-5000020 
Problemi correlati