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~~ | ||