Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
vyuka:cviceni:x36los:uloha2-zadani [2007/02/28 18:06] – vytvořeno root | 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) | + | |
- | - TFTP server (RFC1350) | + | - TFTP server (RFC1350) |
- | - TFTP klient (RFC1350) | + | - TFTP klient (RFC1350) |
- | - Zjistí směrovací tabulku pomocí RIP protokolu (RFC1058) | + | - Zjistí směrovací tabulku pomocí RIP protokolu (RFC1058) |
- | - Balíček serverů pro služby chargen/ | + | - Balíček serverů pro služby chargen/ |
- | - ICMP - ping klient a server (RFC792) | + | - ICMP - ping klient a server (RFC792) |
- | - SNMP klient, který vrací a nastavuje SysOID, Location a SysContact | + | - SNMP klient, který vrací a nastavuje SysOID, Location a SysContact |
- | - Další UDP protokoly ... | + | - Další UDP protokoly ... |
Příklad programu pro linux posílající ARP dotaz {{vyuka: | Příklad programu pro linux posílající ARP dotaz {{vyuka: | ||
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í ===== | ||
+ | Ve zdrojovém souboru budou uvedené použité zdroje, pokud vycházíte ze starší úlohy tak musí být poznat co bylo hotové a co je vaše práce. | ||
+ | |||
+ | Odevzdání na service.felk.cvut.cz do vašeho projektového adresáře (bude vytvořen později). | ||
+ | |||
+ | Uložit ve formě zkomprimovaného zip souboru, název bude ulohaX_< | ||
+ | |||
+ | Odevzdávané úloze rozumí autor i spoluautor. | ||
+ | |||
+ | ===== Materiály ===== | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | |||
+ | ~~DISCUSSION~~ |