Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
vyuka:cviceni:x36los:uloha2-zadani [2007/03/14 13:05] – misko | vyuka:cviceni:x36los:uloha2-zadani [2012/04/07 10:52] (current) – kubr | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== X36LOS: Úloha 2 ====== | ====== X36LOS: Úloha 2 ====== | ||
- | Navrhněte a implementujte program pracující nad rozhraním ovladačů síťové karty (Win), RAW socket (Linux), který si zjistí ip-adresu počítače pomocí BOOTP protokolu (RFC951) a dále nabídne jednu z následujících služeb nad UDP (RFC768) nebo ICMP (RFC792). Implementujte zjednodušenou verzi IP (RFC791, RFC1071) bez fragmentace a IP-options. | + | Navrhněte a implementujte program pracující nad rozhraním ovladačů síťové karty (Win), RAW socket (Linux), který si zjistí ip-adresu počítače pomocí BOOTP/DHCP protokolu (RFC951/RFC2131) a dále nabídne jednu z následujících služeb |
- DNS dotaz (RFC1035) (převod doménového jména na ip adresu, zjednodušený nslookup) | - DNS dotaz (RFC1035) (převod doménového jména na ip adresu, zjednodušený nslookup) | ||
Line 21: | Line 21: | ||
Tedy místo: | Tedy místo: | ||
<code bash> | <code bash> | ||
- | arp eth0 147.32.81.110 147.32.81.111 | + | arp eth0 147.32.81.174 147.32.81.175 |
</ | </ | ||
spustíte: | spustíte: | ||
<code bash> | <code bash> | ||
- | capnet arp eth0 147.32.81.110 147.32.81.111 | + | capnet arp eth0 147.32.81.174 147.32.81.175 |
</ | </ | ||
+ | |||
+ | |||
+ | Ukázka jak řešit například DNS dotaz: | ||
+ | |||
+ | - Pomocí nástrojů operačního systému zjistím svoji MAC adresu na ethernetovém adapteru (S_MAC). | ||
+ | - Vyšlu broadcastem DHCP/BOOTP požadavek. | ||
+ | - Vrátí se mi nabídka IP adresy mé stanice, DNS serveru a výchozí brány (příjmu nabídku a zapamatuji si všechny údaje (S_IP, DNS_IP, GW_IP). | ||
+ | - Zjistím, zda adresa DNS je ve stejném IP rozsahu jako moje IP, pokud ano pošlu ARP dotaz na DNS_IP, pokud ne pošlu dotaz na GW_IP. | ||
+ | - ARP dotazem jsem zjistil MAC adresu, na kterou chci posilat dat (D_MAC, buď je to MAC výchozí brány nebo přímo DNS serveru). | ||
+ | - Vytvořím správný DNS dotaz jako textový řetězec odpovídající RFC. | ||
+ | - Kolem DNS dotazu přidám UDP hlavičku (důležitý je hlavně cílový port). | ||
+ | - Kolem výsledného UDP paketu přidám IP hlavičku (zdrojová IP je ta moje S_IP, cílová IP je vždy zjištěná DNS_IP). | ||
+ | - Kolem vytvořeného IP packetu přidám ethernetovou hlavičku, kde vyplňuji hlavně zdrojovou MAC adresu (S_MAC) z kroku 1 a cílovou MAC adresu (D_MAC zjištěná v kroku 5). | ||
+ | - Tento packet odešlu přes RAW socket. | ||
===== Podmínky odevzdání ===== | ===== Podmínky odevzdání ===== | ||
Line 37: | Line 51: | ||
Odevzdávané úloze rozumí autor i spoluautor. | Odevzdávané úloze rozumí autor i spoluautor. | ||
+ | |||
+ | ===== Materiály ===== | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
~~DISCUSSION~~ | ~~DISCUSSION~~ |