4. cvičení - Ethernet
Cíle cvičení
- Demonstrovat rozdíl mezi hubem a switchem.
- Odchytit odeslání HTML formuláře ve Wiresharku a MS Network Monitoru.
- Najít MAC adresy místních a vzdálených rozhraní.
- Změnit MAC adresy místních rozhraní.
- Naučit se pracovat s rámci linkové vrstvy pomocí Socket API.
Demonstrace rozdílu mezi HUBem a switchem
Rozdíl mezi HUBem a switchem je nejlépe vidět při současném přenosu dat mezi dvěmi páry počítačů, jak je naznačeno na následujícím obrázku:
Protože switch vytváří přímá spojení mezi ztrojovým a cílovým počítačem přenosu (předává rámce jen na rozhraní, ke kterému je připojen adresát), nedochází při současném přenosu k žádnému zpomalení.
Narozdíl od switche HUB zopakuje komunikaci přijatou na jednom rozhraní na všechna svoje ostatní rozhraní. Dochází tedy ke vzájemným kolizím obou přenosů a ani jeden z nich nedosáhne maximální rychlosti sítě.
Wireshark
Dokumentace k Wiresharku je zde.
Doporučuji si projít hlavně kapitoly 4 a 5. Je v nich popsána základní práce s aplikací.
Na adrese http://phoenix.inf.upol.cz/~drymld/form.php je testovací formulář.
Jednotlivá formulářová pole jsou po odeslání forluláře v těle HTTP POST uspořádána následovně:
jmenno-pole1=hodnota-pole1 jmenno-pole2=hodnota-pole2 ...
Úkol: Odposlechnout odeslání formuláře a zjistit jaká pole, kromě viditelných, obsahuje.
Úkol: Odposlechnout odeslání formuláře pomocí zabezpečeného připojení HTTPS.
MS Network Monitor
Nějaké informace k jeho ovládání se dají nalézt zde. Nebo ve videjích na channel9 na MSDN.
Na adrese http://phoenix.inf.upol.cz/~drymld/form.php je testovací formulář.
Jednotlivá formulářová pole jsou po odeslání formuláře v těle HTTP POSTU uspořádána následovně:
jmenno-pole1=hodnota-pole1 jmenno-pole2=hodnota-pole2 ...
Úkol: Odposlechnout pomocí MS Network Monitor odeslání formuláře a zjistit jaká pole, kromě viditelných, obsahuje.
Úkol: Odposlechnout pomocí MS Network Monitor odeslání formuláře pomocí zabezpečeného připojení HTTPS.
Všechna odposlouchávání HTTP a HTTPS komunikace pomocí Wiresharku a MS Network Monitor jsou dohromady za 1 bod.
Nalezení místní a vzdálené MAC adresy
Media Access Adress (MAC) jednoznačně identifikuje linkové rozhraní v síťi. S její pomocí spolu mohou rozhraní vzájemně komunikovat.
Úkol: Najít ve windows (ipconfig) a v linuxu (ifconfig nebo ip) MAC adresy místních rozhraní.
Úkol: Pomocí Wiresharku nebo MS Network Monitor najít v síťové komunikaci MAC adresy místních a vzdálených rozhraní.
Hledání MAC adres jsou dohromady za 1 bod.
Změna MAC adresy
Jak linux tak windows umožnují změnit MAC adresu síťového rozhaní.
Tento postup se může hodit například pokud poskitovatel připojení váže přístup na MAC adresu.
Úkol: Změnit v linuxu dolní tři bajry MAC adresu zařízení eth1 na adresu puvodni-hodnoty:01:01:01.
Úkol: Změnit ve windows dolní tři bajry MAC adresu zařízení virtuální sitě na adresu puvodni-hodnoty:02:02:02.
Změny MAC adres ve vindows a v linnuxu jsou dohromady za 1 bod.
Socket API a linková vrstva
Ve windows není možné pracovat s linkovými rámci. Je to možné pouze v unixových systémech pomocí socketů z rodiny PF_PACKET.
Popis jednotlivých metod pro práci s touto rodinou socketů lze nalézt v následujícím textu v části Linková vrstva – packet socket (Ethernet, pouze unixové systémy) a popis práce s nimi je ve článku na root.cz.
Úkol (1 bod): Vytvořit program, kerý vypíše zadaný počet došlých linkový rámců na počítač a navíc umožnuje vypisovat tyto rámce pouze pro jedno rozhraní zadané indexem.
Pro jednotlivé rámce program zobrazí:
- velikost dat
- číslo linkového protokolu
- index síťového rozhraní
- velikost linkové adresy odesílatele
- linkovou adresu odesílatele
Výstup může například pro vypsání dvou rámců vypadat takto:
$ ./linkovy-odposlech 2 ----------------------------------------- Přijato: 1500 bytů Protokol (linkový): 8 Index síťového rozhraní: 2 Velikost (linkové) adresy odesílatele: 6 Adresa (linková) odesílatele: 2c:6b:f5:cc:a0:40 ----------------------------------------- Přijato: 1500 bytů Protokol (linkový): 8 Index síťového rozhraní: 1 Velikost (linkové) adresy odesílatele: 6 Adresa (linková) odesílatele: 2c:6b:f5:cc:a0:40
A pro prozhraní zadané indexem:
$ ./linkovy-odposlech 1 2 ----------------------------------------- Přijato: 1500 bytů Protokol (linkový): 8 Index síťového rozhraní: 2 Velikost (linkové) adresy odesílatele: 6 Adresa (linková) odesílatele: 2c:6b:f5:cc:a0:40