Dokumentace programu Ethdump

Autoři: Martin Kot, Pavel Moravec
Předmět: Počítačové sítě I.
Zadání: Paketový analyzátor pro protokoly rodiny TCP/IP (IP, UDP, TCP segmenty).

Obsah

Úvod

Program Edump byl napsán pro odchytávání rámců v síti Ethernet se zaměřením na analýzu protokolů rodiny IP. V praxi to znamená, že je schopen analyzovat následující struktury:

  1. Ethernetové rámce
  2. Pakety IP
  3. Pakety UDP
  4. Segmenty TCP
  5. ICMP zprávy
  6. ARP zprávy

Jelikož výpis je prováděn až po odchycení všech rámců (z důvodů rychlosti), bylo možno použít trochu pomalejší, avšak co do struktury výhodnější reprezentaci dat. Byla vytvořena hierarchie tříd, jíž se předají data a výsledkem je vázaný seznam jednotlivých vrstev obsažených v rámci. Informace obsažené v rámci je pak možno vypsat buď ve stručné formě (hlavičky), nebo detailněji, přičemž byly dány k dispozici flagy, kterými je možno informace ve výsledném výpisu zpřesnit. V následujícím textu budou popsány jednotlivé výpisy a to, co znamenají. Nepovinné části výpisů budou zapsány kurzívou.

Popis programu

Program slouží k chytání a analýze framů na síti ethernet. Chytání se provádí za pomoci packet driveru.

Program je rozdělen na dvě části. První část slouží k zachycení framů. Framy je možno filtrovat podle adresy zdrojové, cílové nebo obou současně. Adresy ve filtru mohou být MAC nebo IP. Dále je možno volit jen pakety IP a případně ještě jemněji TCP, UDP nebo TCP a UDP současně. Je-li zadán filtr na cílovou nebo zdrojovou IP adresu, automaticky je volen filtr alespoň na protokol IP (pokud uživatel nezvolí jemnější). Program umožňuje zachycené pakety ukládat do souboru ve formátu programu TCPDUMP. Toto je možno okamžitě při odchycení nebo je možno chytat pakety jen do paměti a do souboru se uloží při ukončení programu nebo přechodu do módu analýzy paketů. Pokud jsou pakety chytány do paměti, je jejich počet omezen její kapacitou. Při chytání paketů jsou vypisovány základní informace. Jejich množství je možno zvolit. Pakety je možné také ořezat na zadanou délku. Standrdně se ukládá i vypisuje jen 144B. Druhá část slouží k výpisu podrobných informací o paketech. Je možno ji spustit samostatně a pakety číst ze souboru. I při čtení ze souboru jsou všechny volby (mimo módu, výpisu informací při chytání a chytání framů so paměti) aktivní. Je tedy možno i pakety ze souboru filtrovat, ořezávat a případně takto upravené zapisovat do nového souboru.

Ovládání programu

Po spuštění programu se vypíší nějaké informace a stiskem <Enter> se začnou chytat framy. Po novém stisku <Enter> přejde program do módu výpisu informací o paketech. Ovládání této části se vypíše před jejím započetím. Program je kdykoliv možno ukončit stiskem <Esc>. Informace o jednotlivých paketech se vypisují automaticky s daným zpožděním mezi nimi. Toto zpoždění je možno zvětšit i zmenšit. Výpis je možno kdykoliv přerušit a potom zase pokračovat. Při čtení paketů ze souboru začíná program přímo v této části.

Spuštění programu

dump [přepínače ...]

PřepínačVýznam
-dXXXXXXXXXXXX Zachytí framy s danou cílovou MAC adresou. Adresa je zadána hexadecimálním číslem
-dNNN.NNN.NNN.NNN Zachytí pakety s danou cílovou IP adresou. Adresa je zadána jako čtveřice desítkových čísel v rozsahu 0-255 oddělených tečkami
-fname Uloží nachytané pakety do souboru name
-iCSpecifikuje množství vypisovaných údajů při zachycování
VariantaVýznam
nbez informací
mpořadí, čas zachycení, délka
sm, zdrojova a cilova MAC adresa, protokol
l s, zdrojova a cilova IP adresa, protokol - standardni varianta
-hNápověda. Po vypsání program končí.
-lnumber Počet bytů, které jsou z framu maximálně zachyceny
-mNMód zachycení paketů
VariantaVýznam
2jen pakety jdoucí na lokalní adresu
32, broadcasty
53, multicasty
6vše
-nBude zachycené pakety přímo ukládat do souboru (pokud není specifikován, je zvolen dump.dat). Při velkém provozu na síti mohou být větší počty nezachycených paketů. Bez této volby je počet zachycených paketů omezen velikostí volné paměti.
-pCUrčí filtr na protokol paketů
ParametrVýznam
TTCP
UUDP
BTCP, UDP
Ivšechny na IP
Avšechny - standardní varianta
-rnameNezachycuje framy na síti, ale čte je ze souboru name. Ruší platnost voleb -i, -m, -n
-sXXXXXXXXXXXXZachytí framy s danou zdrojovou MAC adresou. Adresa je zadána hexadecimálním číslem
-sNNN.NNN.NNN.NNNZachytí pakety s danou zdrojovou IP adresou. Adresa je zadana jako čtveřice desítkových čísel v rozsahu 0-255 oddělených tečkami

Informace o přijetí rámce

Hlavička

# Č. (datum čas.mikrosekund GMT): Hlavička rámce

PrvekPopis
Č.číslo přijatého rámce
datumDatum přijetí rámce
časČas přijetí rámce
mikrosekund Čas přijetí rámce v mikrosekundách

Informace o rámci Ethernetu

Hlavička

Zdroj -> Cíl (Protokol)

PrvekPopis
ZdrojZdrojová MAC adresa
CílCílová MAC adresa
ProtokolNázev protokolu, neseného rámcem
(pokud není znám, pak jeho číslo)
Detailní výpis se od běžného liší jen tím, že je na začátku odřádkován a uvozen Ramec:

Informace o IP paketu

Hlavička

Zdroj -> Cíl (Protokol)

PrvekPopis
ZdrojZdrojová IP adresa
CílCílová IP adresa
ProtokolNázev protokolu, neseného IP paketem (pokud není znám, pak jeho číslo)

Detailní výpis

IP: Hlavička Delka: délka (hl. délka hlavičky) ID: ID
Fragmentace CHK: kontrolní součet Preferovat: druh spojení
Priorita: priorita přenosu Zivotnost: životnost

PrvekPopis
HlavičkaZákladní hlavička, části viz. výše
délkadélka IP paketu
délka hlavičkydélka hlavičky IP paketu
IDIdentifikace IP paketu
Fragmentace
TypPopis
Nefragmentovat! Paket nesmí být fragmentován
Offset frag: offset Posunutí fragmentu paketu vzhledem k začátku
Posledni fragment offset Poslední fragment rozsekaného paketu
kontrolní součetKontrolní součet hlavičky IP paketu
druh spojeníPožadavky na kvalitu spojení (nejsou příliš využívány)
priorita přenosuPožadavek na rychlost spojení (není příliš využíván)
životnost Kolik přeskoků mezi směrovači má IP paket přežít (Time To Live)

Informace o UDP paketu

Hlavička

Zdrojový port -> Cílový port

PrvekPopis
Zdrojový portNázev portu, z nějž UDP paket míří (pokud není znám, pak jeho číslo)
Cílový portNázev portu, na nějž UDP paket míří (pokud není znám, pak jeho číslo)

Detailní výpis

UDP: Zdrojový port -> Cílový port Delka: délka CHK: kontrolní součet

PrvekPopis
délkadélka UDP paketu
kontrolní součetKontrolní součet hlavičky UDP paketu

Informace o TCP segmentu

Hlavička

Zdrojový port -> Cílový port

PrvekPopis
Zdrojový portNázev portu, z nějž UDP paket míří (pokud není znám, pak jeho číslo)
Cílový portNázev portu, na nějž UDP paket míří (pokud není znám, pak jeho číslo)

Detailní výpis

TCP: Hlavička Delka: délka (hl. délka hl.) Seq# č. Ack# pot. URG: urg.
<Flagy>
Sirka okenka: šířka CHK: kontrolní součet

PrvekPopis
délkadélka TCP segmentu
délka hl.délka hlavičky TCP segmentu
č.Číslo oktetu
pot.Potvrzení oktetu s tímto číslem
urg.Urgentní data na tomto offsetu
Flagy
TypPopis
FIN Ukončení spojení ze strany odesílatele
SYN Synchronizace čísel oktetů
RST Násilné ukončení spojení
PSH Předání dat aplikaci
šířkaŠířka okénka
kontrolní součetKontrolní součet TCP segmentu

Informace o ICMP zprávě

Hlavička

Typ zprávy

Detailní výpis

ICMP: Typ zprávy Informace o zprávě

PrvekPopis
Typ zprávyTyp ICMP zprávy
Informace o zprávě Důvod, proč byla zpráva poslána, nebo požadovaná informace

Informace o ARP/RARP zprávě

Hlavička

Typ zprávy

Detailní výpis

Typ zprávy: Zpráva

PrvekPopis
Typ zprávyTyp ARP/RARP zprávy
ZprávaPožadovaná informace