2013-10-28 23 views

Odpowiedz

1

Stawiasz bardzo interesujące pytanie (przynajmniej dla mnie!), Więc zacząłem szukać odpowiedzi.

Byłem nieco zaskoczony widząc, że strona man tcpdump i dokumenty nie zawierają żadnej wzmianki o numerze pakietu, który bym pomyślał, że będzie używał opcji -r (odczyt z pliku pcap). Zaczynam myśleć, że plik wyjściowy pcap NIE zawiera numeru pakietu?

Wiem, że jeśli załadujesz go do Wiresharka, zobaczysz numer pakietu w skrajnej lewej kolumnie, ale ponieważ mówisz o pliku o wielkości 100 Gb, nie chciałem sugerować załadowania go do Wireshark (może Wireshark na serwerze Linux może sobie z tym poradzić? Dunno ...)

Tak czy inaczej, natknąłem się na editcap, którego nie używałem w przeszłości, ale jest narzędziem wiersza poleceń, które jest częścią Wireshark. editcap pozwala na określenie numeru pakietu lub zakresu numerów pakietów. Więc to sprawiło, że pomyślałem, że numer pakietu może być po prostu rzeczą Wiresharka, i że pliki pcap tylko przechowuje pakiety bez dbałości o etykietowanie numerów zamówień?

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

editcap - instrukcja: http://www.wireshark.org/docs/wsug_html_chunked/AppToolseditcap.html

Bądź ostrożny, ponieważ wydaje się, że editcap główną funkcją jest usunąć pakiety (duplikaty), więc uważaj na wszelkich domyślnych zachowań tam!

Mam nadzieję, że to pomoże, a jeśli ktoś ma więcej światła na to rzucić, chciałbym to usłyszeć!

0

Nie ma prostego sposobu, aby to zrobić, istnieje kilka sposobów na zmniejszenie rozmiaru pliku, a także zapobieganie tak dużym plikom. Oto kilka arounds pracy:

tcpdump -r plik_we stosować filtry -w plik_wy

Przykład:

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

Z tego filtra będzie analizować wszystkie pakiety, które zawierają szereg 192.168. 1.177 do nowego pliku pcap o nazwie 177file.pcap; możesz również określić protokoły, takie jak tcp, udp, icmp i arp, i przeanalizować te pakiety w osobnym pliku.

Nie jestem pewien, można uzyskać określony zakres łatwo jest obejść drodze gdzie używasz głowę i ogon, aby skupić się na konkretnym zestawie linii:

na przykład:

Powiedzmy, że chcemy linie 400-500 w pliku 1000 pakietów:

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

Spowoduje to wydrukowanie pierwszych 500 pakietów, a następnie rura że wyjście do ogona, który będzie po prostu pokazać ostatnie 100 pakietów wychwytywania 500 pakietów, tak skutecznie 400-500. Następnie dodajesz wspomniane pakiety w ASCII do pliku outfile.txt, tzn. Nie jest on już w formacie pcap.

UWAGA: Bardzo ważne jest, aby pamiętać, że tail wypisuje ostatnią liczbę N wierszy NIE pakietów, więc jeśli wyświetlasz pakiety w formacie szesnastkowym, musisz wziąć to pod uwagę w swoich obliczeniach.

Aby uniknąć tworzenia dużych plików pcap można obracać przechwytywania dość łatwo z tcpdump, pisałem o tym tutaj:

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

nadzieję, że to pomaga.

5

Jest to dość proste, używając editcap że przychodzi wraz z Wireshark (przynajmniej na CentOS i Debian). Dla 5000 000 do 5 000,020 numerów pakietów można wykonać:

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