Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilMartina Němcová
1
UNIX 13. Síťová komunikace © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy http://creativecommons.org/licenses/by-nc-nd/3.0/ Obsah: ● TCP/IP, RFC, BSD socket API ● síťové rozhraní, směrovací tabulka ● DNS, resolver ● diagnostika sítě ● superserver xinetd ● firewall 13.5.2011
2
Historie počítačových sítí ● první pokusy dálkového spojení již 1940 ● ovládání kalkulátoru dálnopisem v USA (Stibitz) ● 60. léta → různé pokusy ● systémy podporující multitasking – 1964 time-sharing systémy ● USA: Dartmouth – pro 300 studentů, Berkeley (Thompson) – 1967 IBM: OS/360 s MFT ● řízení telefonní ústředny počítačem ● 1969 ARPANET – 50kbps – 1975 – počátek vývoje TCP/IP – 1983: ARPANET adoptoval TCP/IP (IPv4)
3
TCP/IP ● celá rodina protokolů ● základem je IPv4, dnes nástup IPv6 – přenos pomocí datagramů („salámová metoda“) – používání IP adres (např. 147.230.16.1) ● systém vrstev – vrstvy nezávislé, zaměnitelné, snadnější implementace – definována vzájemná komunikace vrstev (API) ● za přenos neodpovídá síť, ale koncové počítače – zjednodušení propojovacích prvků sítě – využívá se přepojování (přeposílání) datagramů
4
RFC ● Request Foc Comments ● neformální standardy pro Internet – též žertovná aprílová vydání ● vydává je RFC editor podle pokynů IAB – označována vzestupnou řadou čísel (první 1969) ● již vydané se neruší, jen nahradí novějším RFC ● dostupné na http://www.ietf.org/rfc.htmlhttp://www.ietf.org/rfc.html ● nejprve je vydán draft (návrh) – formulují experti na daný problém – osvědčí-li se, dostane přiděleno číslo a je vydáno
5
Implementace ● 1983: BSD socket API ● de fakto standard pro síťovou komunikaci – socket() → vytvoření socketu – bind() → připojení na lokální port (server) – listen() → zahájení naslouchání (server) – connect() → vytvoření nového spojení (klient) – accept() → přijmutí příchozího spojení (server) – send(), recv(), write(), read(), recvfrom(), sendto() – close() → uzavření spojení – gethostbyname(), gethostbyaddr() → převod IP – DNS – pool() → kontrola stavu socketu – select() → zjištění stavu více socketů (deskriptorů)
6
TCP/IP stack ● implementace umístěna v jádře OS ● společný kód pro všechny aplikace – snadněji se odstraňují chyby – je možné centrálně opravit chybu, doplnit novou vlastnost – např. DOS neměl, takže každá aplikace vlastní implem. ● velký rozsah řešených situací – ne všechny stavy definovány (pomocí RFC) – odchylky chování na nezvyklé situace → rozpoznání OS ● nástroj nmap ● umí odesílat a přijímat IP datagramy – též zajišťuje vyšší vrstvy pro ICMP, UDP, TCP
7
Součásti TCP/IP ● ICMP ● signalizace a řízení sítě – povinná součást implementace TCP/IP ● UDP ● systém „otázka → odpověď“, bez záruk ● např. DNS, ale i VoIP (Skype & spol.) ● TCP ● zajišťuje nad „nespolehlivou“ sítí zaručený přenos – tj. zachování pořadí, vyřešení ztrát a duplicit ● přenos e-mailů, WWW,...
8
Síťové rozhraní ● slouží k realizaci komunikačního rozhraní ● určena IP adresa, maska sítě, MTU ● může být fyzické (síťová karta) nebo virtuální – označeno názvem (eth0, eth1, wlan0,...) – obsluhováno jádrem (resp. TCP/IP stackem) ● konfigurace příkazem ifconfig ifconfig – výpis všech aktivovaných rozhraní ifconfig eth0 up (nebo down ) ifconfig eth0 10.0.0.5 netmask 255.255.255.0
9
Příklad výpisu [rene@pitoma ~]$ LANG=C ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:231736 errors:0 dropped:0 overruns:0 frame:0 TX packets:231736 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:13748872 (13.1 MiB) TX bytes:13748872 (13.1 MiB) wlan0 Link encap:Ethernet HWaddr 00:1F:3B:58:43:EF inet addr:10.1.0.131 Bcast:10.1.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:245440 errors:0 dropped:0 overruns:0 frame:0 TX packets:195654 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:26096332 (24.8 MiB) TX bytes:3478368 (3.3 MiB)
10
Směrovací tabulka ● routing table ● definuje způsob odeslání IP datagramů – význam zejména u routerů (směrovačů) – koncová stanice jen k rozlišení ● přímý soused (ve stejné podsíti) ● odeslání přes bránu, resp. router („do Internetu“) ● součást TCP/IP stacku route -n route add č.sítě netmask maska gw IPbrány route add default gw Ipbrány route del č.sítě netmask maska
11
Příklad výpisu [rene@pitoma ~]$ LANG=C route -n Kernel IP routing table Destination Gateway Genmask Flag Metr Ref Use Iface 10.1.0.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan0 0.0.0.0 10.1.0.1 0.0.0.0 UG 0 0 0 wlan0
12
DNS ● Domain Name System ● hierarchický systém doménových jmen ● převod doménové jméno → IP adresa (a zpět) ● na počítači knihovna → resolver – viz dříve zméněné BSD socket API ● realizace DNS servery – pro dotaz používáme co nejbližší → nižší latence – využívá se cachování dotazů ● stanice musí znát IP adresu DNS serveru – typicky 2 různé (jako záložní)
13
Resolver ● knihovna pro podporu DNS ● převod doménové jméno → IP adresa (a zpět) – tj. odeslání a příjem patřičného UDP datagramu – viz zmíněné funkce gethostbyname()... ● nastavení uloženo v souboru /etc/resolv.conf ● nameserver 10.0.0.1 ● nameserver 10.1.0.1 ● domain mojedomena.cz ● search mojedomena.cz
14
Nastavení v počítači 1) manuální ● všechny údaje do konfiguračních souborů ● nastavení aktivováno při startu (skriptem) ● používá se typicky na serverech 2) automatické ● rozhraní obsluhuje DHCP klient – získá konfigurační informace z DHCP serveru – typicky pro uživatelské stanice – výhoda: nemusí se nikam nic zapisovat
15
Postup testování sítě 1) lokální IP adresa (v rámci svého počítače) – test loopbacku ( ping –n 127.0.0.1 ) – test vlastních aktivních síťových rozhraní 2) ve stejné podsíti – schopnost komunikace s přímými sousedy – brána do Internetu je též ve stejné podsíti 3) mimo podsíť – kontakt s routerem a počítači za ním (Internet) – např.: ping –n 147.230.16.1 4) test DNS ping seznam.cz
16
Příklady testů ping -n 127.0.0.1 ping -n 10.1.0.131 ping -n 10.1.0.130 ping -n 10.1.0.1 ping -n 147.230.16.1 ping seznam.cz dig @10.1.0.1 seznam.cz telnet 127.0.0.1 25 telnet seznam.cz 80 GET / HTTP/1.0 {Enter}
17
Poskytování služeb ● každá služba typicky vlastního démona ● WWW → httpd ● FTP → vsftpd ● DNS → named ● DHCP → dhcpd ● Samba → smbd, nmbd ● atd. ● spouštěno pomocí skriptů ● /etc/init.d/httpd a skript chkconfig
18
Superserver xinetd ● nahrazuje trvale běžící síťové démony ● někdy nevýhodné mít neustále spuštěného démona – jde o úsporu systémových prostředků ● xinetd obsadí příslušný síťový TCP port ● při příchodu požadavku spustí obslužný program – musí být přizpůsoben funkci přes xinetd – po obsloužení požadavku skončí – není výhodné pro často využívané služby (WWW) ● konfigurace v adresáři /etc/xinetd.d/ chkconfig –-list atd.
19
Firewall ● firewall filtruje datagramy ● na vstupu, výstupu, procházející (router) – akce: přijme, odmítne, zahodí ● firewall umístěn mezi aplikací a síťovým rozhraním – v jádře (součást TCP/IP stacku) nebo formou aplikace 1) nestavový ● posuzuje jednotlivé datagramy 2) stavový ● posuzuje akci na základě předchozích – součást TCP spojení, limit za jednotku času atd.
20
Firewall v Linuxu ● iptables ● implementováno jako součást TCP/IP stacku – dostatečně kvalitní, rozšiřitelný ● nastavování stejnojmenným příkazem – nastavení z příkazového řádku – též nastavování přes GUI rozhraní ● je to nestavový i stavový firewall – je možno zapojit i externí aplikaci ● připravuje se náhrada – sjednocení podpory IPv4, IPv6, bridge
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.