vyuka:cviceni:x36los:uloha2-zadani

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
vyuka:cviceni:x36los:uloha2-zadani [2007/03/07 13:47] miskovyuka:cviceni:x36los:uloha2-zadani [2008/04/23 08:41] ihi
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 (většina nad UDP (RFC768) nebo ICMP (RFC792)). Implementujte zjednodušenou verzi IP (RFC791, RFC1071) bez fragmentace a IP-options.
  
- - 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) 
- - 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/discard/echo/time +  - Balíček serverů pro služby chargen/discard/echo/time 
- - 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:cviceni:x36los:arp.c|arp.c}} Příklad programu pro linux posílající ARP dotaz {{vyuka:cviceni:x36los:arp.c|arp.c}}
Line 28: Line 28:
 capnet arp eth0 147.32.81.110 147.32.81.111  capnet arp eth0 147.32.81.110 147.32.81.111 
 </code> </code>
 +
 +
 +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://security-freak.net/raw-sockets/raw-sockets.html]] - RAW socket HowTo
 +  * [[http://www.networksorcery.com/enp/topic/ipsuite.htm]] - podrobný popis jednotlivých protokolů
 +
 +
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
  • vyuka/cviceni/x36los/uloha2-zadani.txt
  • Last modified: 2012/04/07 10:52
  • by kubr