IPv4 protokol defaultně umožňuje jakémukoli uzlu na cestě fragmentovat pakety podle MTU další linky na cestě (Toto chování lze zakázat pomocí položky v hlavičce paketu). Fragmentace paketů zvyšuje režii přenosu. Proto je výhodné znát MTU cesty před zahájením komunikace, a posílat pakety menší délky než MTU.
Program ping umožňuje nastavit velikost paketů (na linuxu parametr -s) a zakázat jejich fragmentaci (na linuxu parametr -M). Pomocí nastavení těchto parametrů lze zjistit Maximum Transfer Unit (MTU) pomocí Path MTU discovery algoritmu.
Úkol: S pomocí programu ping nastavováním velikosti packetu a zákazem fragmentace (Path MTU discovery algoritmus) zjistit MTU cesty ke google.cz a phoenix.inf.upol.cz.
IPv4 packet má následující strukturu.
Umožnuje nastavení nepoviných položek záhlaví. Jsou to například:
Některé z těchto položek jsou na směrovačích z bezpečnostních důvodů zakázány a pakety s těmito parametry jsou zahazovány.
Úkol: Zachyťit pakety od programu ping s nastavenou velikostí paketu větší než MTU a zakázanou/povolenou fragmentace a najít zákaz fragmentace v hlavičce paketu a jednotlivé fragmenty původního paketu.
Úkol: Zachyťit pakety generované programem ping s nastaveným záznamem směrovačů a najít tento záznam v hlavičce.
Nalezení MTU a inspekce IP paketu od ping s nastavenou velikostí, zakázanou fragmentací a s nastavenými volitelnými položkami je za 1 bod
Pro odeslání IP paketu sousedovi je třeba tento paket zabalit do linkového rámce. Linkový rámec musí mít nastavenu MAC adresu cílového počítače. Ke zjištění MAC adresy odpovídající nějaké IP adrese souseda se slouží ARP cache a ARP zpřávy.
Struktura Arp zprávy vypadá takto.
K manipulaci s ARP cache se dá na windows i linuxu použít program arp. Na linuxu se dá navíc využít program ip (vyprázdnění arp cache: ip neigh flush all). Na windows je to pak program netsh (vyprázdnění arp cache: netsh interface ip delete arpcache)
Úkol: Vypisat obsah ARP cache.
Úkol: Na windows nebo na linuxu vyprázdnit arp cache a zachyťit arp zprávy sloužící k jejímu opětovnému naplnění. Popisat jaké položky obsahují.
Zobrazení a manipulace s ARP cache a zachytávání ARP zpráv je za 1 bod
IPv6 protolok má následující strukturu paketu a adres.
Podpra pro IPv6 je v linuxu přítomna přímo v jádře. A není již nic potřeba doinstalovávat.
Ve Windows 2003 server je třeba doinstalovat podporu pro IPv6 k jednotlivým rozhraním. Napřílak podle tohoto návodu.
Programy jako ping, traceroute mají v linuxu svoje IPv6 obdoby s názvy ping6, traceroute6. Ve windows mají ping a tracert parametr (-6) umožnující, vynutit IPv6.
Úkol: V Linuxu a ve Windows zjistit IPv6 adresy místních rozhraní.
Úkol: Zkusit odezvu pomocí ping loopback (lo) rozhraní virtuálního stroje.
Úkol: Zachyťit IPv6 paket (například od ping) na rozhraní loopback (lo) a popsat všechna pole v hlavičce IPv6 paketu kromě version, FlowLabel, Traffic class.
Jak nastavit IPv6 adresu je popsáno v tomto návodu. Ve stejném návodu je také popsano jak nastavit výchozí směr (bránu, gateway).
Úkol: Na linuxu nastavit IPv6 adresu 2001:1:1:1::2/64 na rozhraní eth1. A nastavit bránu 2001:1:1:1::1/64.
Ve Windows 2003 server není mozně nastavit statickou IPv6 pomocí grafického rozhraní. Je nutné použít příklaz netsh. Postup jak nastavit statickou adresu je popsán zde.
Úkol: Na windows nastavit IPv6 adresu 2001:1:1:1::2/64 na rozhraní "Local Area Connection 4". A nastavit bránu 2001:1:1:1::1/64.
IPv6 úkoly jsou za 2 body