Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Základy TCP/IP Libor Forst Motivace, historie, model

Podobné prezentace


Prezentace na téma: "Základy TCP/IP Libor Forst Motivace, historie, model"— Transkript prezentace:

1 Základy TCP/IP Libor Forst Motivace, historie, model
Principy adresování, DNS Tok dat, topologie, routing Základní protokoly, aplikace , FTP, BSD příkazy

2 Literatura D. E. Comer, D. L. Stevens: Internetworking With TCP/IP; Prentice Hall International 1991 C. Hunt: TCP/IP Network Administration; O'Reilly & Associates 1992 P. Šmrha, V. Rudolf: Internetworking pomocí TCP/IP; Kopp 1994 P. Satrapa, J. A. Randus: LINUX - Internet server; Neokortex 1996; ISBN L. Dostálek, A. Kabelová: Velký průvodce protokoly TCP/IP a systémem DNS; Computer Press 2002 Request For Comment (RFC)

3 Vznik počítačových sítí
izolované výpočetní systémy terminály point-to-point propojení robustní kompaktní aplikace Velké výpočetní systémy v době svého vzniku představovaly izolované celky s jediným interaktivním vstupně/výstupním zařízením - konzolí operátora. Přenos dat mezi nimi se uskutečňoval výhradně mechanicky. Velice brzy se objevila potřeba větší komunikace s uživateli i mezi počítači. Vznikly sítě terminálů - neinteligentních zařízení s klávesnicí a obrazovkou přímo připojených k počítači, které pouze předávaly povely uživatele systému a zobrazovaly výsledky. Jednotlivé systémy navzájem se začaly propojovat dvoubodovými spoji (point-to-point sítě). S prudkým rozvojem techniky došlo ke snaze více přiblížit výpočetní sílu koncovému uživateli a vznikly pracovní stanice - samostatné počítače propojené navzájem i s centrálním systémem pomocí lokální sítě. S tím došlo i ke změně typu aplikací, vedle kompaktních řešení na centrálním systému vznikají: jednoduché aplikace umožňující provádění výpočtu na centrálním systému v režimu emulace terminálu samostatné aplikace pracující na stanici nad kopií dat tzv. klient-server aplikace, klientský program na stanici posílá po síti požadavky na server a zpracovává odpovědi Point-to-point propojení vlastních systémů/sítí se nahrazuje topologicky a organizačně výhodnějšími strukturami - vznikají rozlehlé sítě. lokální síť rozlehlá síť emulace terminálu + klient-server aplikace

4 Počítačové sítě Lokální sítě (Local Area Network)
zvyšování produktivity díky sdílení prostředků menší vzdálenost, vyšší rychlost příklady: Novell, napojení bezdiskových stanic, databázové n. tiskové servery Rozlehlé sítě (Wide Area Network) konektivita, komunikace velké vzdálenosti, nižší výkon příklady: Internet, Bitnet Klasifikace sítí z hlediska jejich rozsahu: Lokální sítě (Local Area Network) sítě v rozsahu jedné místnosti, patra, budovy či lokality budovány především z důvodu šetření prostředků (sdílení drahých zařízení, preiferií, kapacit, software...) díky malým vzdálenostem je možné použít nákladná média (např. optický kabel) a tím dosáhnout vysokých rychlostí Rozlehlé sítě (Wide Area Network) sítě prakticky bez omezení, začíná se používat termín globální síť hlavním smyslem je vzájemná komunikace lidí a získávání informací díky velkým vzdálenostem není možné volit nejrychlejší technologie Metropolitní sítě (Metropolitan Area Network) mezistupeň mezi LAN a WAN síťě budované na omezeném regionu metodami WAN ovšem s možností použít díky menším vzdálenostem nejrychlejší technologie

5 Historie Internetu Defense Advanced Research Project Agency zřizuje projekt "packet switching network" pol. 70. let - ARPANET, point-to-point, pevné linky Internet, propojení sítí, ARPANET páteří zavedení TCP/IP v ARPANETu pol TCP/IP součástí BSD UNIXu současnost - boom Internetu

6 Vývoj Internetu v číslech
Počet obyvatel Země Počet počítačů v Internetu Počet uživatelů Internetu 50 000 5 000 Zdroj: MIDS, Austin TX, based on historical data 500 2001

7 Typy síťových propojení
Sběrnice (např. 10base2) Point-to-point přímé Point-to-point přes modemy Hvězda (např. 10baseT, ATM) Klasifikace sítí z hlediska topologie: Multipoint propojení na sběrnici - sběrnici tvoří kabel procházející všemi uzly. Příkladem takového protokolu může být Ethernet. Přerušení sběrnice v jediném bodě znamená nefunkčnost celé sítě. Multipoint propojení do kruhu - odlišná metoda, zprávy se předávají postupně mezi jednotliými uzly. Multipoint propojení do hvězdy – pro protokoly založené na principu centrálních bodů, které si předávají zprávy určené pro účastníky sítě (např. ATM). Fyzické propojení do hvězdy se nyní používá i pro jiné technologie - zkolabováním sběrnice nebo kruhu do jediného fyzického zařízení - koncentrátoru – vzniká tzv. strukturovaná kabeláž (např. UTP - kroucená dvoulinka). Princip zůstává zachován, síť má ovšem vyšší fyzickou bezpečnost. Point-to-point propojení - většinou propojení lokalit nebo jednotlivých počítačů mezi sebou: sériovou linkou (přímo, pomocí modemu s vytáčením druhé strany, na pevné lince), Ethernetem po UTP nebo skleněném vlákně; bezdrátově radiovým nebo laserovým pojítkem atd. Point-to-point bezdrátové (např. laser, radioreléové, WiFi) Kruh (např. FDDI, Token-ring)

8 Typy síťových rozhraní
Loopback - „tento počítač“, žádné fyzické zařízení PPP - sériové propojení point-to-point Ethernet - společná sběrnice: současný přístup, řešení kolizí (CSMA/CD) Token ring - předávání volného-obsazeného tokenu po kruhu FDDI - jednoduchý nebo dvojitý kruh (překlene přerušení vlákna) ATM - systém přepínačů a virtuálních cest pro tok dat, hlasu,... Výpis nakonfigurovaných rozhraní: netstat -i Ethernet - počítače používají pro přístup na sběrnici metodu CSMA/CD. Ta umožňuje všem přijímat, ale i vysílat -vznikají kolize. Kolize musí umět karty rozpoznat a zopakovat vyslání dat. Ethernet se ukázal jako nejstabilnější a zároveň nejprogresivnější technologie, dnes se běžně používá Fast Ethernet MBit/s, ale i GigaBitEthernet.

9 OSI model Pořadí Vrstva Úkol 7 aplikační komunikace mezi programy
6 prezentační datové konverze 5 relační navázání relace mezi počítači 4 transportní korektnost přenosu informace 3 síťová dosažení cílového počítače 2 linková přenos dat po navázaném spojení 1 fyzická interpretace elektrického signálu Pro komunikaci se používá řada protokolů (ARPA, X.25, SNA, DECnet,...). ISO navrhla v roce 1984 sedmivrstevný model Open Systems Interconnection, který popisuje obecně strukturu rozhraní těchto protokolů. Ve skutečnosti není žádný z protokolů rozvrstven přesně do těchto sedmi vrstev, model slouží spíše pro popis logiky komunikačního procesu. Fyzická vrstva - zabezpečuje správnou interpretaci signálů na fyzickém médiu, zprostředkovává vyšším vrstvám jednotlivé rámce (frames, pakety). Př.: RS232C, X.21 Linková vrstva - zabezpečuje přenos informace po fyzickém spoji, pracuje s vnějším obalem paketu, který obsahuje adresní a kontrolní informace. Př.: BSC, LAPB Síťová vrstva - zabezpečuje správné směrování paketů po síti, tj. nalezení cílového počítače a jeho jednoznačnou indikaci pro linkovou vrstvu. Př.: IP, X.25 Transportní vrstva - zabezpečuje přenos dat po logickém spoji, tj. segmentuje data do paketů, kontroluje jejich přenos, opakuje data a naopak odstraňuje redundanci atd. Př.: TCP Relační vrstva - zabezpečuje navázání spojení se vzdáleným operačním systémem a naopak jeho ochranu před neoprávněným přístupem. Př.: RPC Prezentační vrstva - sjednocuje datový formát pro aplikační vrstvu, tj. provádí konverze formátu (např. znakových sad), kompresi, kódování atd. Př.: XDR Aplikační vrstva - zabezpečuje vlastní komunikaci mezi programy, zprostředkovává služby uživatelům. Př.: FTP protokol rozhraní

10 TCP/IP model OSI Vrstva Protokoly v TCP/IP (příklady) 7 aplikační FTP
NFS 6 XDR 5 RPC 4 transportní TCP UDP TCP/IP (Tramsmission Control Protocol / Internet Protocol) je příkladem rodiny protokolů pro komunikaci v heterogenní síti. Používá ji celá řada světových počítačových sítí, které se souhrnně označují názvem Internet. Je základnou pro řadu užitečných služeb počínaje vzdáleným logováním a přenosem souborů přes elektronickou poštu až po celosvětové informační systémy. Nejnižší vrstvu TCP/IP popisuje Ethernet Protocol, který může být provozován na různých typech médií: tenký koaxiální kabel, tlustý kabel, kroucená dvoulinka (UTP). Síťovým protokolem v TCP/IP je Internet Protocol, který definuje způsob doručování dat mezi počítači. Zdrojový a cílový počítač nemusí být přímo spojené, takže IP zajišťuje nejen vyhledávání cílového počítače, ale i směrování, tj. nalezení cesty k cílové síti. Na transportní úrovni se používají dva základní protokoly, TCP a UDP. Autoři aplikačních protokolů si mohou zvolit, který transportní protokol bude jejich služba používat. ICMP 3 internet IP ARP 2 network interface Ethernet, FDDI, ATM, SLIP, X.25 1 hardware -

11 Spojované/nespojované služby
spojované (connection-oriented) služby obdoba telefonního spojení zaručeno doručení datagramů ve správném pořadí (stream) aplikace je jednodušší, ale nemůže řídit komunikaci TCP je komplikované nespojované (connectionless) služby obdoba poštovního spojení není zaručeno pořadí ani doručení datagramů kontrolu musí provádět aplikace aplikace může lépe řídit komunikaci UDP je jednodušší TCP se používá pro spojované služby, tj. služby, u nichž je nutné mít neustále informaci o stavu spojení i za cenu zvýšené režie. TCP vysílá pakety v přesném pořadí a kontroluje doručení každého paketu. Příkladem použití je přenos souborů (File Transfer Protocol). UDP (User Datagram Protocol) se používá pro služby nespojované, např. u vzdáleného volání procedur (Remote Procedure Call). V tomto případě by jednak režie příliš zdržovala a jednak by vznikaly problémy při výpadku některého počítače. UDP vysílá pakety aniž kontroluje jejich doručení nebo pořadí. Kontrolu konzistence musí zabezpečovat aplikace.

12 TCP okna 00 10 20 30 40 50 00 00 00 10 10 00 10 20 20 ACK 10 10 20 30 30 10 20 30 40 40

13 Zahájení a ukončení spojení
Navázání TCP spojení SYN Seq# c Ack# 0 SYN, ACK Seq# s Ack# c+1 ACK Seq# c+1 Ack# s+1 Jednostranné uzavření spojení FIN, ACK Seq# x Ack# y ACK Seq# y Ack# x+1

14 Typy adresování HW (linková vrstva) SW (síťová vrstva)
Lidé (aplikační vrstva) MAC (ethernetová) adresa (např.: 8:0:20:ae:6:1f) dána výrobcem nerespektuje topologii IP adresa (např.: ) přidělována podle topologie určuje jednoznačně síť a v jejím rámci počítač Doménová adresa (např.: whois.cuni.cz) přidělována podle organizační struktury snazší zapamatování K identifikaci počítače je zapotřebí určit jeho adresu. Na úrovni linkové vrstvy se používají hardwarové neboli MAC (Media Access Control) adresy. Je to vlastně identifikace síťového rozhraní (karty) daná již výrobcem a je nezávislá na umístění počítače. Proto není vhodná pro směrování. Délka MAC adresy závisí na typu, Ethernetové adresy mají 48 bitů. Každá adresa by měla být jedinečná na světě, každý výrobce má svůj 24-bitový prefix. Kromě toho je definována tzv. broadcast-adresa (FF.FF.FF.FF.FF.FF), jež značí “zpráva určená všem” nebo “zpráva pro neznámého adresáta” Pro směrování (v síťové vrstvě) se používají tzv. IP adresy, přidělované poskytovatelem připojení do Internetu podle topologie sítě. Každá IP adresa se dá jednoznačně rozdělit na adresu sítě (network address) a adresu počítače (hostaddress). Podle síťové části se řídí směrování paketů mezi jednotlivými sítěmi, po doručení do patřičné sítě se použije pro stanovení konkrétního cílového počítače adresa celá. Aplikační programy mohou pracovat s IP adresami, ale pro mezilidskou komunikaci nejsou ani tyto adresy dostatečně vhodné. Proto se používá ještě jeden typ adres, tzv. doménové adresy. Doménová adresa je hierarchická (přidělují se podle organizační struktury) a mnemonická, takže je snáze zapamatovatelná. Hierarchičnost navíc umožňuje používat jen její část - v místní síti dokonce třeba jen nejlevější složku - jméno počítače.

15 Konverze adres doménové adresy name resolver IP adresy ARP/RARP
MAC adresy name resolver řízení statické (/etc/hosts) nebo dynamické (DNS, NIS) konfigurační soubor /etc/resolv.conf ARP/RARP ARP tabulka (cache) broadcastová výzva/odpověď

16 Třídy IP adres Třída Tvar adresy Začátek adresy Počet sítí strojů A B
1.byte 2.byte 3.byte 4.byte A B C D E 1-126 126 16 k 2 M 16 M 64 k 254 net host 10 net host 110 net host IP adresy jsou základním stavebním kamenem TCP/IP. Dají se používat od síťové vrstvy až po aplikační, popisují strukturu sítě, jsou jednoznačné pro směrování atd. Adresy se zapisují se ve tvaru čtyřech decimálních čísel odpovídajících jednotlivým bajtům. Hodnota prvního bajtu určuje typ adresy: třídy A, B a C se normálně dají jednoznačně rozložit na část popisující síť a část popisující počítač; toto rozdělení je příliš hrubé, a tak dochází k fragmentaci prostoru IP adres třída D (tzv. multicast adresy) se používají v případě, kdy není třeba adresně stanovit příjemce zprávy (např. přenos videokonferencí). třída E (tzv. IP next generation) byla rezervována pro testování nové generace IP adres. Adresy přiděluje poskytovatel připojení do Internetu, správce konkrétní sítě musí zvážit, o který typ, resp. o kolik adres daného typu bude žádat. Mimoto existují tzv. privátní adresy, které lze používat zcela libovolně v lokálních sítích: A: B: C: 1110 net multicast experimental 1111

17 Speciální adresy loopback 127.0.0.1 adresa loopback rozhraní
privátní adresy , , *.0 nepřidělované, k použití pro lokální sítě nesmí opustit síť network broadcast <adresa sítě>.<samé jedničky> „všem v dané síti“ normálně se doručí do cílové sítě limited broadcast „všem v této síti“

18 Subnetting Subnetting dovoluje rozšířit síťovou část adresy: pomocí specifikace tzv síťové masky (netmask), v tomto případě : Nedoporučuje se používat subnet "all-zeros" a "all-ones", takže v tomto případě máme pouze 1022 x 62 adres. V definici je přípustná nespojitá maska, ale většinou se neimplementuje. V současnosti se často ignorují třídy (classless) a místo masky uvádí jen počet bitů (např /26). net subnet host 11 000000 Základní dělení IP adres je poměrně hrubé, proto existuje možnost adresu dále rozdělit pomocí tzv. subnettingu. Tato metoda spočívá v tom, že se síťová část adresy o několik bitů rozšíří. Subnetting je nevyhnutný, pokud je zapotřebí pokrýt např. adresou třídy B organizaci sídlící ve více budovách, avšak přináší některé nevýhody: hranice síťové části není jednoznačně dána hodnotou adresy, musí se zvlášť konfigurovat parametrem netmask snižuje se počet připojitelných počítačů kvůli broadcast adresám; např. jedna adresa třídy C představuje 254 přípojných míst, ale při subnettingu 3:5 (tedy 3 bity na číslo podsítě) máme namísto osmi jen šest podsítí (podsítě 000xxxxx a 111xxxxx bývaly vyhrazeny a dodnes existuje SW, který je odmítá používat) po třiceti počítačích (bez adresy sítě xxx00000 a broadcast adresy xxx11111) mnohé systémy nepodporují tzv. variably subnetting, kdy různé části sítě mají jiné masky - pak dochází k další fragmentaci adresního prostoru, což dále snížuje jeho kapacitu starší směrovací algoritmy (např. RIP) subnetting vůbec nepodporují.

19 Supernetting router agreguje směrovací informace (192.168.4.0/23)
single homed server veškerý provoz ze sítě jde přes router dual homed neroutující server je zapotřebí různé DNS pro sítě a

20 IPv6 IPv6 adresy jsou dlouhé 128 bitů (16 bytů). Zápis: fec0::1:800:5a12:3456 Rozeznáváme adresy unicastové - slouží k adresaci jediného rozhraní, kromě globálních adres existují ještě site-local adresy (jsou platné pouze v rámci organizace) a link-local adresy (platné v rámci lokálního propojení – sítě) multicastové - slouží k adresaci skupiny rozhraní (IPv6 převzal a mírně modifikoval IGMP) anycastové - formálně se jedná o unicastové adresy, které jsou přiděleny více rozhraním (strojům) Další vlastnosti: autokonfigurace, Duplicate Address Detection, Router Discovery, Neighbor Discovery Protocol (místo ARP), Path MTU Discovery, tunelování IPv4

21      Doménový systém server pro domény cuni.cz a ruk.cuni.cz sk
edu cz cesnet cuni ns ruk mff whois vutbr dec59 Plné jméno počítače v Internetu se skládá z několika částí oddělených tečkami: nejlevější část je vlastní jméno počítače, toto jméno musí být jednoznačné v rámci domény nejpravější část jména domény je tzv. doména nejvyšší úrovně, jsou přidělovány centrální autoritou a odpovídají ISO kódům zemí (např. cz), resortům v USA (edu - vysoké školy, gov - vládní organizace, mil - vojenské organizace) resp. v celosvětovém měřítku (com - komerční organizace, org - nekomerční organizace, net - síťové organizace) mezilehlé domény se přidělují hierarchicky - např. správa domény cz přiděluje jména domén druhé úrovně (jako cuni.cz), správa cuni.cz zase svoje subdomény (např. mff.cuni.cz) atd. Domény nejsou disjunktní, jeden počítač může mít více různých jmen nejen uvnitř domény (přeadívky - aliasy - bývají často jména podle služeb - www, whois), ale i v různých doménách. Speciálně top-level doména net je určena pro počítače přesahující svým významem lokalitu, v níž jsou umístěny a v níž mají nějaké vlastní jméno. Pro každou doménu existuje počítač, který má úplnou informaci o této doméně - tzv. nameserver. Jednotlivé nameservery o sobě vědí a mohou si navzájem předávat dotazy a odpovědi na překlad jmen na IP adresy a obráceně. Každý dotaz (pokud není v paměti nameserveru) ovšem začíná u některého z tzv. root serverů, které mají přehled o serverech domén nejvyšší úrovně. net de nordu server pro doménu cz fzi nic server pro root doménu fixlink

22  Vyřizování DNS dotazu a.root-servers.net . ns.cesnet.cz cz
cz: NS=192... nerekurzivní cuni.cz: NS=195... ns.fzi.de fzi.de Rozeznáváme dva typy dotazů na nameservery: Rekurzivní: server se pokusí přijatý dotaz vyřešit úplně. Takový přístup je vhodný pro lokální servery v nějaké organizaci, protože server pak udržuje všechny odpovědi na dotazy a další klient je odbaven rychleji. Nerekurzivní: server odpoví klientovi pouze nejlepší možnou odpovědí, kterou mu může poskytnout sám. Klient musí pak pokračovat dotazem u dalšího serveru. Tento přístup používají typicky velké centrální servery, protože rekurzivní řešení dotazů by je příliš zatěžovalo. Příklad dotazu klienta fixlink.fzi.de na adresu Klient se obrátí s rekurzivním dotazem na nejbližší server (nejspíše ns.fzi.de). Ten typicky rekurzivní dotaz neodmítne, vyřídí a pošle klientovi. Pokud server nemá v tabulce (cache) uschovanou alespoň část odpovědi (např. server pro cz), musí se nerekurzivně obrátit na rootserver, který ovšem vrátí pouze adresu serveru pro cz. Server tedy pokračuje v řešení dotazu a obrátí se na obdrženou adresu - ns.cesnet.cz. Tam se opět dozví pouze adresu dalšího serveru (ns.cuni.cz). Tento server je ovšem autoritativní nejen pro doménu cuni.cz, ale i pro mff.cuni.cz, a tak zodpoví celý dotaz. Díky uvedenému postupu další dotaz na stroj v cz už půjde přímo na ns.cesnet.cz ns.cuni.cz cuni.cz, mff.cuni.cz rekurzivní IP=193... IP=193... fixlink.fzi.de

23 Tok dat v TCP/IP stream message Aplikace Transport ... packet IP
Data Transport TCP/UDP header Data ... packet Princip odesílání dat v TCP/IP: Aplikace připravuje data, která se mají poslat po síti a předává je transportní vrstvě spolu s IP adresou příjemce. Transportní vrstva rozděluje zprávy do paketů, doplňuje je o záhlaví transportní vrstvy a předává síťové vrstvě. Síťová vrstva rozhodne, kterému stroji v lokální síti se budou data posílat (buďto cílový stroj nebo některý router), doplní pakety o svoje záhlaví a takto vzniklé datagramy předává patřičnému síťovému rozhraní. Linková vrstva zjistí (pomocí ARP) Ethernetovou adresu příjemce, doplní vlastní záhlaví a takto vytvořený rámec předává fyzické vrstvě. Pokud některá vrstva není schopna akceptovat délku paketu/datagramu, rozdělí (fragmentuje) jej, přenese po částech a v cíli opět složí. Použitý princip, kdy nižší vrstva má pouze informaci o typu dat která přenáší, ale do jejich obsahu nijak nezasahuje (ani nenahlíží), umožňuje kombinovat (nebo dokonce tunelovat) různé protokoly, aniž by to kladlo nějaké nároky na okolní vrstvy. IP IP header packet datagram Interface Interface header datagram CRC frame

24 Multiplexing, demultiplexing
Aplikace Aplikace rozhodování podle čísla portu ICMP UDP TCP rozhodování podle IP protokolu Princip příjmu dat v TCP/IP: Linková vrstva přijme rámec a ze svojí hlavičky zjistí typ síťového protokolu - software, kterému je třeba datagram (zbavený Ethernetové hlavičky) předat. Software na síťové vrstvě zjistí z čísla IP protokolu v IP záhlaví, který software transportní vrstvy má paket dostat. Software transportní vrstvy sestaví z došlých paketů znovu původní zprávu předá ji aplikaci. Pro určení aplikace je nutná dodatečná informace, které se říká port. Pro jednoznačnou identifikaci navázaného spojení je tedy nutné uvést: adresu a port odesilatele (source IP, source port) adresu a port příjemce (destination IP, destination port) typ transportního protokolu ARP IP IPX rozhodování podle typu (délky) Ethernet rámce Ethernet

25 Socket, port Port ... 16bitové číslo identifikující jeden konec spojení - aplikaci, proces, který má zpracovávat příchozí pakety destination-port musí být znám, typicky je to některý z tzv. well-known services (viz /etc/services) source-port navazovatele (>1024) spojení přiděluje lokální systém Socket ... jeden konec komunikačního kanálu mezi klientem a servrem … označení (adresa) jednoho konce kanálu <IPadresa, port> Výpis otevřených socketů: netstat [-an]

26 Aplikační protokoly TCP/IP
21/TCP: FTP - File Transfer Protocol (přenos souborů) 22/TCP: SSH - Secure Shell (přenos souborů) 23/TCP: telnet - Telecommunication network (interaktivní přístup ke vzdáleným počítačům) 25/TCP: SMTP - Simple Mail Transfer Protocol (přenos elektronické pošty) 53/TCP,UDP: DNS – Domain Name System (překlad jmen na IP adresy a naopak) 67,68/UDP: DHCP - Dynamic Host Configuration Protocol (vzdálená konfigurace) 80,443/TCP: HTTP - HyperText Transfer Protocol (přenos stránek informačního systému W W W) 119/TCP: NNTP - Network News Transfer Protocol (přenos zpráv v systému UseNet, NetNews)

27 Struktura ethernetového rámce
Ethernet v2: Destination MAC address Source MAC address Type Data CRC IP 0x0800 ARP 0x0806 RARP 0x8035 IPX 0x8137 Ethernetové záhlaví paketu obsahuje Ethernetovou adresu odesilatele a příjemce a typ paketu (14 bytů). IEEE 802.3 Destination MAC address Source MAC address Len Data CRC <= 1500

28 Struktura IP datagramu
Version Header Length Service Type (priorita) Total Length Identification (pořadové číslo) Flags Fragment Offset Time-to-live Protocol (/etc/protocols) Header Checksum Source IP Address Destination IP Address IP záhlaví obsahuje IP adresu odesilatele a příjemce. Tato informace však nepostačuje k jednoznačnému určení procesu, kterému se má příchozí paket předat. Proto se zavádí pojem IP port. Je to dvoubytové celé číslo, které na každé straně přenosové cesty jednoznačně určuje proces, který má daný paket zpracovat. Options Padding Data

29 Acknowledgement Number
Struktura TCP paketu Source Port Destination Port Sequence Number Acknowledgement Number Data Offset (rsvd) Flags (SYN,URG,ACK,...) Window Checksum Urgent Pointer IP záhlaví obsahuje IP adresu odesilatele a příjemce. Tato informace však nepostačuje k jednoznačnému určení procesu, kterému se má příchozí paket předat. Proto se zavádí pojem IP port. Je to dvoubytové celé číslo, které na každé straně přenosové cesty jednoznačně určuje proces, který má daný paket zpracovat. Options Padding Data

30 Spojování segmentů sítě
Vrstva Síťové zařízení Vrstva aplikační gateway (brána) aplikační transportní transportní síťová router (směrovač) síťová Nejjednodušším příkladem sítě je lokální síť složená z několika počítačů spojených navzájem koaxiálním kabelem. Jakmile potřebujeme síť rozšířit, oddělit části sítě s intenzivním uzavřeným provozem nebo dosáhnout vzdálenějších lokalit budeme muset model rozšířit o síťová zařízení (ať už speciální nebo realizovaná normálními počítači). Zmiňované síťové prvky se dělí na čtyři hlavní typy: repeater (HUB) - zařízení, které pouze zesiluje elektrický signál, slouží k prodlužování resp. větvení kabelu; pracuje jen na fyzické úrovni, ignoruje obsah zpráv bridge (most) - zařízení které spojuje fyzické sítě (např. segmenty koaxiálního kabelu) do jediné logické sítě; pracují na linkové úrovni a pakety přenášejí mezi jednotlivými rozhraními jen, pokud nejsou lokální v rámci segmentu (tzn. oddělují provoz); mezi tento typ patří i tzv. switche (přepínače). router (směrovač) - zařízení které spojuje logické sítě; pracuje na síťové úrovni a zabezpečuje přenos paketů mezi různými sítěmi. na aplikační úrovni se používá termín gateway (brána) - např. brána pro elektronickou poštu mezi různými typy sítí; tento termín se ovšem občas nesprávně používá i místo termínu router. linková bridge, switch linková fyzická repeater, HUB fyzická

31 Porovnání HUB vs. switch
S 10 Mbit/s S Switch S 10 Mbit/s S S S Switch, více serverů S > 10 Mbit/s S Switch s uplinkem S up to 100 Mbit/s

32 Příklad topologie sítě
Lokální síť Klient 1 Klient 2 Klient 3 Ethernet segment Repeater Klient 4 Klient 5 Server 1 Bridge Provoz Klient 6 Klient 7 Server 2 Dva první segmenty sítě na našem obrázku odděluje repeater. Umožňuje pouze prodloužit kabel, provozní zatížení sítě se nezmenší. Repeater bývá specializované zařízení, může mít dva nebo více portů. Třetí segment je již oddělen zařízením typu bridge, takže provoz mezi klienty 1-5 a serverem 1 nijak neovlivňuje provoz mezi klienty 6-7 a serverem 2. Bridge nepracuje na síťové vrstvě, takže funguje nezávisle na síťovém protokolu, je možné stejným zařízením oddělit provoz např. IPX/SPX a TCP/IP). Bridge typicky funguje tak, že odposlouchává provoz na síti, z adres odesilatelů si buduje tabulky příslušnosti strojů (adres) k jednotlivým portům a podle nich odesílá rámce. Bridge je možné postavit i z PC s MS-DOSem. Celou síť ukončuje router, kterým je připojena jednak síť jiného typu (FDDI ring) a jednak obě sítě přes modem do Internetu. Router je rovněž možno postavit z PC, ale vhodnější je OS UNIX. Router pracuje podle tabulek, které má buďto uloženy staticky v paměti nebo si je routery navzájem mezi sebou vyměňují na základě nějakého směrovacího protokolu. Router Lokální síť WAN Klient 8 Klient 9

33    Principy firewallu IP filtr NAT Proxy-server vnitřní adresy
vnější adresy Z hlediska bezpečnosti je nejdůležitejším síťovým zařízením router, kterým je celá síť připojena do Internetu. Přes ten totiž prochází veškerý provoz a tudíž na něm lze provádět kontrolu veškerého přístupu. Pokud je vstupní směrovač takto využit, používá se pro něj označení firewall. Prvním způsobem ochrany je tzv. IP-filtering. Administrátor může např. nastavit, že pakety konkrétní služby (např. FTP) nesmějí vůbec přes router procházet. Takovému routeru se také někdy říká říká screening router. Důslednějším použitím firewallu je služba, při které se před vnějším světem úplně ukrývá vnitřní prostor IP adres (překlad IP adres - NAT). Jakýkoliv požadavek z vnitřní sítě je na firewallu přeložen tak, že jako odesilatel je v paketu uveden firewall. Došlá odpověď se podle dynamicky vytvářené tabulky spojení zase doručí původnímu stroji. Pro vnitřní síť se pak mohou použít privátní IP adresy a celá organizace může mít přidělenu jedinou veřejnou IP adresu. Podobnou službu poskytují i tzv. proxy-servery. Používají se u veřejných služeb jako je FTP nebo WWW a pracují na jiném principu: požadavek klienta z vnitřní sítě vyřídí svým jménem (jako klient), odpověď uloží do svojí cache a odpověď klientovi pošlou opět sami za sebe (jako server). Nedochází tedy k překladu adres, ale pouze ke zprostředkování služby. Navíc se tím šetří kapacita přípojné linky, neboť dotazy a hlavně odpovědi chodí po vnější lince pouze jednou. Proxy-server klient - server klient - server

34 Address Resolution Protocol
konverze MAC (Ethernetových) a síťových (IP) adres ARP tabulka (cache) je v paměti na každé stanici neznámé adresy se zjišťují broadcastovou výzvou: Ethernet=1 IP=0x0800 ARPreq=1 Sender MAC Sender IP FF:FF:FF:FF:FF:FF Target IP Konverze IP adres na Ethernetové adresy se provádí pomocí ARP (Address Resolution Protocol): Pokud se objeví požadavek na vyřešení dotazu na neznámou adresu, ARP umožňuje zaslat všem strojům v síti tento dotaz. K tomuto účelu se používají broadcast adresy. Rámec s touto adresou přijmou všechna rozhraní, ale na dotaz odpoví pouze ten počítač, kterému je dotaz určen. Ostatní sice paket přijmou na úrovni Ethernetu, ale jejich vyšší vrstvy TCP/IP jej odmítnou. Každá vyřešená konverze se navíc ukládá do zásobníku (cash), takže následující dotaz je vyřešen okamžitě. Zásobník má omezenou délku, takže adresy, které nebyly dlouho dotazovány postupně uvolňují místo více frekventovaným dotazům. Obsah zásobníku se dá při startu inicializovat. Obrácená konverze se provádí pomocí RARP (Reverse ARP). Ve starších systémech se pro inicializaci konverze používal konfigurační soubor /etc/ethers. unicastová odpověď (odpovídající si nejprve musí sám upravit svoji ARP tabulku) výpis ARP tabulky: arp -a ARP je omezeno na lokální síť, mezi sítěmi je v činnosti OSI 3

35 Proxy ARP  klient posílá ARP request s IP adresou host
‚ router pozná, že ARP nebude zodpovězen, proto posílá ARP reply s MAC adresou routeru ƒ MAC routeru přiřazena k IP hosta v ARP na klientovi „ klient posílá data na hosta s MAC adresou routeru klient proxy ARP router host

36 Protokol ICMP Internet Control Message Protocol, slouží pro řídící informace nad IP protokolem Echo Request, Reply ... testování dosažitelnosti počítače příkazem ping Source Quench ... žádost o snížení rychlosti toku datagramů Destination Unreachable ... počítač (služba) nedostupný Redirect ... výzva ke změně cesty Time Exceeded ... vypršel Time-to-live (chyba v routování) Parameter Problem ... chyba v záhlaví datagramu Timestamp Request, Reply ... odhad doby přenosu Information Request, Reply ... žádost o adresu sítě Address Mask Request, Reply ... žádost o síťovou masku

37 Směrování n2.h2 n2.h2 n2.h2 MAC12 n2.h2 n2.h2 MAC12 n2.h2 n2.h2 n2.h2
OSI OSI OSI 2 OSI 1 výchozí poč. IP: n1.h1 n2.h2 n2.h2 n2.h2 MAC12 n2.h2 n2.h2 MAC12 n2.h2 n2.h2 router 1 IP: n1.h2 n2.h2 MAC21 n2.h2 n2.h2 Ve výše uvedeném příkladě se počítač h1 v síti n1 pokouší navázat spojení s počítačem h2 v síti n2, datový paket tedy doplní cílovou adresou. Porovnáním adresy příjemce a adresy svojí zjistí, že cíl není ve stejné síti, takže pro něj je třeba najít vhodný směrovač. Ze svých směrovacích tabulek dále zjistí, že veškeré směrování v jeho síti provádí počítač h2. Jeho MAC adresu bude počítač h1 pravděpodobně znát (pokud ne, zjistí ji pomocí ARP). Spodní vrstvy TCP/IP tedy doplní odcházející paket ještě o správnou Ethernet adresu (routeru1, nikoliv cílového počítače). Linková vrstva směrovače přijme došlý rámec (má správnou adresu) a předá jej vrstvě síťové. Tady už cílová adresa neodpovídá, ale síťová vrstva směrovače je programována tak, že takový paket neodmítne. Místo toho naopak prohledá své směrovací tabulky a zjistí, na který další směrovač má být paket odeslán. Vymění tedy v paketu svoji Ethernet adresu za adresu druhého směrovače a provede přesměrování (forwarding) paketu. Poznamenejme, že síť vedoucí k novému směrovači nemusí být ethernetového typu, může vést např. přes sériové rozhraní. Potom by datagram neyl zabalen do ethernetového, ale do jiného rámce. Upravený paket tak postupně dorazí k poslednímu směrovači na cestě, který už zjistí, že cílová IP adresa je přímo v jeho síti, takže k paketu naposledy přidá Ethernetovou adresu (nyní už opravdu cílového stroje) a pošle jej do sítě n2. MAC21 n2.h2 n2.h2 router 2 IP: n2.h1 n2.h2 MAC22 n2.h2 n2.h2 cílový poč. IP: n2.h2 n2.h2 MAC22 n2.h2

38 Směrovací algoritmus zvol nejspeciálnější záznam (host, net, default)
existuje? ne není cesta No route to host můj stroj? ano ponechat moje síť? ano poslat (podle ARP) direct route ne indirect nebo default route poslat směrovači

39 Příklad směrovací tabulky
Destination Gateway Mask direct, host direct, subnet indirect, net default default 49 50 77 71

40 Principy směrování směrování by měla umět každá stanice, v UNIXu je přímo součástí jádra směrovací tabulky obsahují záznamy: cíl, maska, gateway (dřívější členění cílů: host, net, default) cíle jsou řazeny od speciálních k obecnějším typy záznamů: direct (přímo připojená síť, “gateway” je vlastní adresa) indirect, default vznik záznamu: implicitní (automaticky po zadání příkazu ifconfig) explicitní (zadán příkazem route) dynamický (v průběhu práce od partnerů v síti)

41 Statické řízení směrovacích tabulek
Cesty se nastavují při startu pomocí příkazů route nesnadné zálohování spojení (cykly) problémy se subnettingem nutná inicializace, nepružné při změnách méně citlivé na problémy v síti dostupné i ve zcela heterogenním prostředí  vhodné pro jednodušší, stabilní sítě Správná činnost sítě je závislá na stavu směrovacích tabulek. Existují dva způsoby, jak spravovat směrování na síti statické směrování, u nějž je potřebná informace uložena v konfiguračních souborech napevno dynamické směrování, kdy si jednotlivá zařízení vyměňují informace na základě některého protokolu Statické směrování se dá použít u koncových zařízení připojených na jednoduchou lokální síť resp. je nutné ho použít u takových zařízení, která nepodporují žádné směrovací protokoly. V tom případě je dobré uchovávat všechny informace na jednom místě - nejlépe ve směrovači - a do statických tabulek zapsat pouze cestu ke směrovači. route add delete flush | -f [[-]host] host [[-]net] net [[-netmask] mask] default | 0 { }{ } { } [gw] router interface [-interface] [metric]

42     Redirekce původní obsah tabulky: nový obsah tabulky:
default UG default UG UGD 1. první datagram pro 4. další datagramy pro síť 3. ICMP redirect 8 6 síť síť 2. redirekce datagramu

43 Dynamické řízení směrovacích tabulek
Uzly sítě si navzájem vyměňují informace směrovacími protokoly jednoduché změny konfigurace směrovací tabulky se udržují automaticky na jednoduchých sítích občas zdrojem zbytečných problémů starší varianta: daemon routed {-g | -q } používá protokol RIP modernější řešení: daemon gated, konfigurační soubor /etc/gated.conf používá protokol RIP nebo OSPF pro externí routery (propojují autonomní systémy) se užívají protokoly EGP a BGP Moderní UNIXy umožňují spoštět jeden ze dvou daemonů, kteří provádějí dynamickou údržbu směrovacích tabulek: routed je základní software umožňující řízení směrování pomocí protokolu RIP (Routing Information Protocol), který je dostupný na většině UNIXových počítačů a speciálních směrovacích zařízení. routed není třeba konfigurovat, spouští se typicky s optionem -g (pokud je stroj routerem) resp. -q (quiet). gated je software podporující i protokoly HELLO a OSPF (Open Shortest Path First), což lze však využít pouze tehdy, podporují-li je i ostatní zařízení v síti. Konfigurace je uložena v souboru /etc/gated.conf.

44 Diagnostika směrování
Výpis směrovacích tabulek: netstat -r[n] Destination Gateway Flags Ipkts ... Colls Interface this U tu0 loopback UH lo0 default gw UG tu0 gate UGD tu0 Kontrola cesty: traceroute 1 gw.thisdomain ( ) 2 ms 1 ms 1 ms 2 gw.otherdomain ( ) 12 ms 15 ms 15 ms

45 Konfigurace TCP/IP UNIX Windows 95 domain jméno_domény
IP adresa: ifconfig interface IP_adr [ netmask maska ] defaultní router: route add default router doména a nameserver: /etc/resolv.conf Windows 95 start dialogu: Control Panel  Network  TCP/IP domain jméno_domény nameserver IP_adresa_nameserveru Při konfigurování TCP/IP je nutné zadat IP adresu počítače síťovou masku lokální sítě jméno počítače defaultní router spojující lokální síť s jinými sítěmi DNS server, time server apod. Na OS UNIX se používají příkazy ifconfig port IP_adresa netmask síťová_maska route add default router Soubor /etc/hosts musí obsahovat řádku: IP_adresa jméno Soubor /etc/resolv.conf musí obsahovat: domain jméno_domény nameserver IP_adresa_nameserveru Systémy typu Microsoft Windows mají v Řídícím panelu ikonu Síť, po volbě TCP/IP se objeví skupina dialogových záložek obsahujících všechny zmiňované konfigurační položky.

46 Protokol BOOTP/DHCP FF.FF... MAC 255... BOOTPS BOOTPS request MAC BOOTP server přiděluje IP podle MAC adresy v tabulce (/etc/bootptab) a odpovídá broadcastem nebo unicastem (musí si doplnit arp tabulku) podle RFC 1084 odpověď obsahuje IP adresu, síťovou masku, jméno, gateway, nameserver... routery standardně BOOTP nepropouštějí (limited broadcast), spojení se servrem zajišťuje BOOTP forwardování postupné rozšiřování vedlo ke vzniku nového protokolu DHCP: dynamické přidělování adres (šetří IP, ale je méně bezpečné), časové omezení pronájmu, interakce mezi klientem a servery,... Postupné rozšiřování požadavků na BOOTP vedlo k několika revizím (poslední RFC 1084) a nakonec ke vzniku nového protokolu DHCP (Dynamic Host Configuration Protocol), který přinesl kromě nárůstu přenášených informací důležité změny: Server DHCP se dá nastavit tak, aby adresy nepřiděloval pevně, ale dynamicky z nějakého balíku adres. Tuto variantu lze doporučit pouze v případě kritického nedostatku adres, neboť řešení jakéhokoliv síťového problému je velice těžké kvůli nutnosti dohledávat skutečné odesilatele zpráv. Důležitějším přínosem je časové omezení platnosti pronajaté adresy. To umožňuje např. měnit klientům IP adresy za chodu, aniž je nutné ze strany klientů vyvolat nějakou manuální akci. Klient DHCP si sám kontroluje dobu pronájmu a před jejím vypršením požádá server o prodloužení/změnu. Součástí tohoto schématu je propracovanější systém komunikace mezi klientem a servrem, který např. umožňuje mít v síti více nezávislých servrů, z nichž si klient vybírá dle vlastní úvahy. DHCP servery mohou odpovídat i BOOTP klientům, neboť oba protokoly mají stejný formát. V takovém případě, ale není možné využívat výhod DHCP (dynamické přidělování, dočasný pronájem apod.).

47 Automatická konfigurace
BOOTPS request: Ethernetová adresa klienta limited broadcast unicast klient server router s BOOTP forwardingem Statický způsob konfigurace má opodstatnění u malých sítí, které se nevyvíjejí příliš rychle. U větších, častěji se měnících sítí je nepříjemné např. to, že kažou změnu je třeba zanést do všech počítačů zvlášť - není možné mít jednotnou konfiguraci. proto byl vyvinut protokol BOOTP, pomocí něhož si stanice mohou zjišťovat všechny potřebné informace po síti. Stanice (klient) pošle po síti zprávu (typu limited broadcast) obsahující svoji Ethernetovou adresu. Všechna zařízení na síti zprávu přijmou (na síťové vrstvě), ale pouze tzv. BOOTP server ji akceptuje na vrstě aplikační. Server najde ve své tabulce k dané Ethernetové adrese odpovídající IP adresu a další konfigurační údaje a pošle odpověď zpátky klientovi. Odpověď server posílá buďto jako broadcast nebo už normálně jako unicast, ale v tom případě si musí do svojí arp tabulky uložit adresu klienta, neboť ten ještě nemůže na případný ARP dotaz odpovídat. V případě, že klient není přímo na téže síti jako server, je nutné povolit na všech mezilehlých routerech, aby BOOTP požadavky posílaly dál. Routery totiž standardně limited broadcast pakety nešíří. Tyto tzv. BOOTP forwardery pošlou BOOTP požadavek unicastem na server(y) a odpověď zase předají klientovi. BOOTPC reply: IP adresa, maska, router... broadcast, unicast

48 Model TCP aplikace Klient Server socket socket bind bind listen
connect accept write read read write close close

49 Model UDP aplikace Klient Server socket socket bind bind connect
write sendto sendmsg read readfrom readmsg read readfrom readmsg write sendto sendmsg close close

50 Start síťových daemonů
přímý start ve startovacích scriptech intenzivně využívané, speciální služby, se složitou inicializací nepřímý start (on demand) provádí daemon inetd konfigurace v /etc/inetd.conf: překonfigurování: kill -HUP PID server komunikuje přes filedeskriptory 0/1 bootps dgram udp wait root /etc/bootpd bootpd tftp dgram udp wait nobody /etc/tftpd tftpd /tftpboot whois stream tcp nowait nobody /etc/whoisd whoisd

51 Systém DNS Klient-sever aplikace, binární protokol nad UDP i TCP
Typy serverů: primární: udržuje data o doméně sekundární: udržuje kopii dat caching-only: udržuje pouze vyřešené odkazy Reverzní dotazy (IP adresa  jméno) se řeší pomocí reverzních domén: IP adrese odpovídá záznam 71 v doméně in-addr.arpa Diagnostika DNS: nslookup podpříkazy: set type, server, name, IPadr, ls, exit dig jméno [typ_dotazu] Nameservery jsou servery, které odpovídají na dotazy klientů. Pro každý nameserver se definuje jeho vztah k jednotlivým doménám DNS. Nejjednodušším případem je tzv. caching-only server. Ten neudržuje skutečná data o doméně, pouze uchovává po nějakou dobu vyřešené odkazy. Pro každou doménu existuje jeden primární server, na němž se udržují data o této doméně, a většinou alespoň jeden sekundární server, který si tato data periodicky kopíruje z primárního serveru. Jeden server tedy může být primárním pro nějakou doménu, sekundárním pro několik dalších a caching-only pro ostatní domény. Služby nameserveru provádí Berkeley Internet Name Domain (BIND) daemon, který se jmenuje named a startuje se automaticky po startu systému nebo ručně. Základní konfigurační soubor očekává (pokud není při startu řečeno jinak) pod jménem /etc/named.boot. Po úspěšném spuštění zapisuje daemon named svůj PID do souboru named.pid v adresáři /etc nebo /var/run a dá se ovládat signály: SIGHUP - restartování daemona SIGINT - výpis konfigurace do /usr/tmp/named_dump.db SIGUSR1 a 2 - zapnutí a vypnutí DEBUG režimu Testování nameserveru se dá provádět příkazem nslookup. Podpříkazy: set type - nastavení typu odpovědi server - volba serveru, který má odpovídat name, IPadr - dotaz ls doména - výpis dat o doméně

52 DNS dotaz a odpověď Dotaz: Odpověď:
QUERY: alias.tns.cz IN CNAME Odpověď: FLAGS: Authoritative, Recursive ANSWER: alias.tns.cz IN CNAME ns AUTHORITY: tns.cz IN NS ns.tns.cz ADDITIONAL: ns.tns.cz IN A Problém: Příznak Authoritative se nevztahuje na sekci ADDITIONAL, legální server pro nějakou doménu tam může legálně umístit falešné údaje.

53 Uživatelské příkazy TCP/IP
ARPA BSD (Internet) (UNIX) kopírování souborů ftp rcp vzdálené logování telnet rlogin vzdálené provádění příkazů rexec rsh informace o uživatelích finger rwho on-line komunikace talk rwall Obecné příkazy (počítače s TCP/IP, ale nejen UNIX) mail elektronická pošta ftp přenos souborů telnet vzdálené logování talk přímá komunikace s uživatelem finger zjišťování informací o uživatelích Příkazy pro komunikaci mezi UNIXovými počítači rcp kopírování soborů rlogin vzdálené logování rcmd, rsh vzdálené provádění příkazů ruptime výpis stavu počítačů v lokální síti rwho výpis aktivních uživatelů v lokální síti

54 Příkaz ftp File Transfer Protocol Interaktivní příkaz:
řídící relace: port 21 datový přenos (aktivní FTP): obrácený směr, port 20 Interaktivní příkaz: vlastní prompt visuální interface Logování na vlastní účet nebo anonymně: login: anonymous password: elektronická_adresa Seznam uživatelů se zakázaným FTP: /etc/ftpusers Uživatel FTP musí mít platný login shell (/etc/shells) Přenos souborů (FTP) je typickým příkladem aplikačního programu postaveného nad TCP/IP. Na aplikační úrovni navazuje spojení se vzdáleným operačním systémem (nemusí to nutně být UNIX) a komunikuje s ním ve vlastním speciálním protokolu. Do něj jsou konvertovány všechny uživatelské podpříkazy, které je možno zadávat buďto v interaktivním režimu nebo přímo při vyvolání příkazu.

55 Podpříkazy ftp navazování relace: open, user
ukončování relace: close, quit, bye lokální příkazy: lcd, !command vzdálené příkazy: cd, pwd, ls, dir přenos souborů: get, put, mget, mput typ přenosu souborů: ascii, binary práce se soubory: delete, rename, mkdir, rmdir pomocné příkazy: prompt, hash, status, help, verbose, ...

56 Aktivní/pasivní datové spojení
Aktivní spojení :1234 :21 PORT 1,1,1,1,8,0 200 PORT command OK. LIST :2048 :20 Pasivní spojení :1234 :21 PASV 227 OK (2,2,2,2,8,1) LIST :1235 :2049

57 Inicializační soubor ~/.netrc
machine host login name password passwd macdef macro příkazy... macdef init inicializační příkazy... parametry makra: $1..., volání makra: $jméno hesla jen pro anonymní a speciální uživatele! mód souboru s hesly musí být rw vyvolání ftp bez inicializace: ftp -n

58 BSD příkazy rcp -pr [[user@]host:]file ... rsh host [-l user ] cmd
sémantika stejná jako u příkazu cp: kopíruje soubory (adresáře) pod cílovým jménem (do cílového adresáře) ke stroji host přistupuje jako uživatel user rsh host [-l user ] cmd provedení příkazu cmd na stroji host pod uživatelem user rlogin host [-l user ] přihlášení uživatele user na stroji host

59 Autorizace BSD příkazů
/etc/hosts.equiv stejný uživatel? uživatel root? ano ne client [user] ne ano ne ano ok? ~/.rhosts client [user] příkaz rlogin? ne ne ano ok? ano fail OK kontrola hesla

60 OTP, Secure shell Konvenční příkazy posílají uživatelská hesla otevřeně po síti. Řešení: Systém OneTimePassword server vyšle jedinečný náhodný kód, uživatel na klientovi zadá do speciální kalkulačky kód a svoje heslo a dostane odpověď, kterou klient pošle servru Systém SecureShell programový balík nahrazující BSD příkazy šifruje veškerou komunikaci umožňuje zadávat heslo i u příkazu scp

61 Elektronická pošta off-line předávání zpráv příp. souborů
off-line použití informačních služeb diskusní kluby (mailing-listy, konference) komunikace mimo Internet ová adresa (typicky): nebo např.: nebo

62 Elektronický dopis Received: from alfik.ms.mff.cuni.cz
by betynka.ms.mff.cuni.cz... Date: Thu, 16 Nov :54: To: From: Libor Forst Subject: Test posty Cc: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_XXX" --=_XXX Content-Type: text/plain; charset=Windows-1250 Content-Transfer-Encoding: 8bit Ahoj Petře!

63 Ukázka SMTP protokolu 220 alfik.ms.mff.cuni.cz ESMTP Sendmail ...
HELO betynka 250 alfik Hello betynka, pleased to meet you MAIL FROM: Sender ok RCPT TO: Recipient ok DATA 354 Enter mail, end with "." on a line by itself dopis... . h98G9FxT Message accepted for delivery QUIT alfik closing connection

64 Přístup k poště z pohledu uživatele
a) přímé připojení na SMTP server Mail Transfer Agent Mail User Agent SMTP server WAN POP server b) připojení přes POP nebo IMAP server

65 Příjem a odeslání pošty v SMTP
a) přímé doručení mail-relay 2 WAN b) doručení přes forwarder 3 Uživatel, který chce odesílat elektronické dopisy potřebuje klientský program, který buďto umí sám komunikovat v SMTP nebo spolupracuje s nějakým programem (tzv. mailerem), který to umí. To může být např. program sendmail na libovolném UNIXovém počítači. Mailer může být nakonfigurován tak, že posílá dopisy sám nebo používá ještě služeb tzv. mail-forwarderu - stroje, který (např. pro celou doménu. se podle adresy (a údajů v DNS) rozhodne, který SMTP server bude příjemcem zprávy. Typicky to bývá přímo počítač, kde má adresát svoji schránku (mailbox) nebo alespoň alias (záznam o skutečné poloze mailboxu). Pouze v případě nedostupnosti cílového stroje nebo existence firewallu se dopis nejprve předá na tzv. mail-hub nebo mail-relay, který teprve dopis doručuje dál. Po doručení na cílový SMTP server je dopis připraven pro čtení uživatelem. Ten si opět může zvolit čtení dopisu přímo na serveru anebo se se svým klientským progamem připojí pomocí POP nebo IMAP protokolu a čte si poštu např. u sebe na PC. V takovém případě se dá volit, zda čtené dopisy zůstávají na serveru (v mailboxu) anebo se kopírují na klientský počítač. 1 mail-forwarder mbox IN MX 0 mbox IN MX 20 relay

66 Příjem pošty na UNIXu Příjem pošty Čtení pošty: mail
daemon sendmail, konfigurace sendmail.cf aliasy (/etc/aliases): alias: adresa, adresa... aktivace: příkaz newaliases Čtení pošty: mail není user-friendly osobní autoforward: ~/.forward adresa může mít tvar: "|cmd" pozor na cykly

67 Odesílání pošty na UNIXu
Psaní pošty: mail [-v] [-s subject ] adresa ... vhodné pro dávkové zpracování příkazy ~v, ~s subj, ~q Vlastní nastavení: $HOME/.mailrc možnost potlačení některých dotazů při odesílání možnost potlačení výpisu některých informací při čtení vlastní aliasy pro odesílání pošty, např.: alias project petr pavel Standardní UNIX obsahuje vždy příkaz mail. Pro čtení pošty je tento příkaz jen špatně použitelný. Má velice omezenou sadu podpříkazů (headings, type, More, save, reply, delete, quit, exit) a nešikovné ovládání. Jeho použití lze doporučit pouze v případě absence jiných prostředků nebo jejich nepoužitelnosti (např. kvůli špatnému spojení). U psaní pošty je situace již o něco lepší. Vlastní příkaz čte ze vstupu text dopisu a poté ho pošle na uvedenou adresu (adresy). To je extrémně výhodné pro dávkové zpracování (posílání stejného dopisu velkému počtu adresátů, posílání mnoha souborů, posílání dopisů v určitou dobu apod.). Pro běžnou korespondenci je trochu nevýhodou, že vlastní příkaz nemá žádný editor - uživatel má pro opravy k dispozici pouze klávesu Backspace. Je ovšem možné napsat řádku obsahující pouze znaky ~v (jinými slovy: zadat příkaz ~v), čímž se spustí editor vi na text dopisu. Pozor: po ukončení editoru se pokračuje v režimu vstupu příkazu mail. Pokud tedy již nechceme k dopisu nic připsat, ukončíme vstup (stiskem kláves Ctrl+D nebo řádkou se samotnou tečkou) a dopis se odešle. Kromě tohoto podpříkazu má příkaz mail ještě některé další, a to zejména ~s subj (nastavení subjectu) a ~q (zrušení dopisu). Vhodným pomocníkem může také být přepínač -v. Ten způsobí, že systém vypíše kompletní průběh odesílání dopisu z lokálního stroje. Některá nastavení pro čtení či odesílání dopisu lze napevno předepsat v souboru $HOME/.mailrc. Mimo jiné v něm lze definovat vlastní aliasy.

68 Diskusní listy adresa: mail_list@mailserver
(list)server: udržuje seznam abonentů rozesílá dopisy nebo oznámení udržuje archiv listy: otevřené vs. uzavřené moderované n. nemoderované příkazy: help, information, lists, review, [un]subscribe, index, search Vedle osobních dopisůje velice obvyklou formou posílání dopisů na adresu, která představuje skupinu adresátů. Nejjednodušší metodou, jak to zařídit, je vytvořit tzv. alias - ovou značku s více adresáty. Toto řešení je velmi snadné, ale neposkytuje žádný komfort. Lepší řešení je spustit na nějakém počítači tzv. listserver, program, který dokáže udržovat seznam tzv. diskusních skupin (mailing-listů či ových konferencí) a pro každou z nich seznam abonentů a archiv. Příkladem takového serveru může být mbox.cesnet.cz, kde funguje řada listů, např. csinfo-l, všeobecná diskuse na témata více či méně vzdálená síti a počítačům. Každý dopis poslaný na adresu dojde všem abonentům listu a navíc bude po jistou dobu uložen v archivu. Listy mohou být otevřené (kdokoliv se může přihlásit resp. poslat dopis) nebo uzavřené (existuje správce listu, který přihlašování řídí). Pokud navíc třídí i příspěvky a posílá pouze ty, které jsou podle jeho názoru vhodné, jedná se o moderovaný list. Abonent může listserver požádat, aby mu zasílal pouze seznam příspěvků a vlastní příspěvky jen na vyžádání. Přihlašování a odhlašování uživatelů, žádosti o výpis informací o listech, o abonentech konkrétního listu a hledání v archivu či zasílání vybraných příspěvků se neposílá na adresu konference, ale na některou ze servisních adres (v našem případě to je buďto nebo Zaslání výpisu všech příkazů dosáhneme posláním dopisu s textem help.

69 Etika poštovního styku
jazyk, výrazové prostředky používání subjectu míra zachování původního textu v odpovědi účelné posílání souborů, češtiny obtěžování uživatelů a sítě, řetězové dopisy Elektronický dopis je vždy nutno považovat za “otevřenou listovní zásilku” a podle toho volit výrazové prostředky. Není nikdy jasné, komu se dopis dostane do ruky. Běžné je přinejmenším to, že díky nějaké chybě při přenosu se zpráva o chybě (obsahující text dopisu) doručí administrátorovi některého stroje. Krom toho volba akceptovatelných výrazových prostředků chrání před omyly typu odeslání osobního dopisu do konference. Dopis by měl vždy obsahovat subject, vyjadřující několika slovy konkrétní obsah dopisu. Nevhodným subjectem je třeba “Dotaz”, ale vždy spíše “Dotaz na připojení...”. Důležité je také změnit subject, pokud odesilatel reaguje pouze na část původního dopisu a mění poněkud téma. Při psaní odpovědi je vhodné okopírovat přiměřeně velkou část původního textu. Psaní odpovědi bez původního textu vede často ke ztrátě kontextu (zvláště vhodné jsou pak odpovědi typu “Ano”). Druhý extrém - kopie celého textu, nejlépe i se signaturou - vede ke zbytečně dlouhým dopisům. Příliš dlouhé bývají i dopisy obsahující zakódované soubory. Některé mailery dokonce odmítnou takový dopis přijmout. Zvláště při posílání takových dopisů do konference není žádoucí. Jednak nevíme, jaká část abonentů má o daný soubor zájem, a pak také nevíme, jakou formu kódování jsou schopni dekódovat. Vhodnější je poslat jen oznámení a soubor vystavit např. na FTP. Dohodu s adresátem je dobré učinit i v případě, že chceme poslat dopis česky. Neetické (bohužel nikoliv nelegální) jsou i jiné formy obtěžování uživatelů sítě nevyžádanou poštou jako je inzerce či řetězové dopisy.

70 Bezpečnost pošty Dopis je vždy otevřená listovní zásilka (z různých příčin se může dostat do ruky mnoha lidem) Řešení: kryptovat obsah dopisu (crypt, PGP - Pretty Good Privacy) Nikdy není jistý odesilatel (málokterý server kontroluje správnost odesilatele) Řešení: elektronické podpisy, systém výzva/odpověď

71 Šifrování Symetrické šifrování Asymetrické šifrování Hash
pro šifrování a dešifrování se používá stejný klíč výhoda: rychlé nevýhoda: partneři si musí klíč předat bezpečnou cestou Asymetrické šifrování pro šifrování a dešifrování se používá dvojice klíčů nevýhoda: pomalé výhoda: jeden klíč je veřejný, druhý tajný Hash vytvoření „kódu“ z daného textu změny textu a hashe jsou navzájem neodvoditelné

72 Šifrování dopisu volný text náhodný symetrický klíč
veřejný klíč příjemce symetricky zašifrovaný text asymetricky zašifrovaný klíč symetricky zašifrovaný text asymetricky zašifrovaný klíč tajný klíč příjemce náhodný symetrický klíč volný text

73 Elektronický podpis hash textu tajný klíč odesilatele volný text
zašifrovaný hash volný text zašifrovaný hash veřejný klíč odesilatele hash textu =? hash textu

74 Uniform Resource Identifier
jednotný systém odkazů jediný klient pro více služeb nepostradatelná pro WWW historické členění: URL, URN, ... protokol:// př.: ftp://sunsite.mff.cuni.cz/OS/FreeBSD mailto: Boom informačních služeb v Internetu si vynutil zavedení jednotného označení zdrojů, URL (Uniform Resource Locator). Má tvar: protocol:// Příklady: ftp://sunsite.mff.cuni.cz/OS/FreeBSD adresa distribuce OS FreeBSD na SunSITE CZ adresa domovské WWW stránky sítě CESNET adresa WWW stránky s akademickými informacemi na serveru Sekce informatiky, běžícím na zvláštním portu URL představující odeslání elektronického dopisu file:/var/doc/welcome.html speciální URL lokálního souboru na klientovi URL veřejného klienta služby Gopher gopher://gopher.cuni.cz adresa služby Gopher pro UK Ve WWW prohlížečích je možné zadat URL (např. z menu File -> Open Location) libovolné služby a, pokud je patřičný klient nainstalován a dobře nakonfigurován, můžeme s daným zdrojem pracovat (prohlížet stránku, přenášet soubory, odesílat poštu...).

75 Princip ditribuované databáze
Gopher at Charles University 1. About this Gopher ... 4. Czech Educational and Scientific Network 9. User Directory Service for Czech Republic gopher.cuni.cz Czech Root Gopher Server 1. About this Gopher ... 5. User Directory Service for Czech Republic gopher.cesnet.cz Distribuovaná databáze - je systém pro uchovávání a přístup k informacím uloženým na různých počítačích. Jako příklad může sloužit systém Gopher. Po přihlášení k některému serveru uživatel uvidí menu, které mu nabízí přístup k dalším informacím. Jsou to jak informace uložené na dotyčném serveru, tak informace, které ve skutečnosti jsou na jiném serveru. Uživatel může procházet systém menu a přitom ani nemusí vědět, že se přesunul na jiný server. Odkazy jsou totiž transparentní a o skutečném uložení dat se z odpovědí serverů dozvídá klientský program a on přebírá starost o správné dotazování správných serverů. Jednotlivá menu bývají navíc provázaná navzájem, takže jedna informace může být dostupná z několika serverů případně z několika menu jednoho serveru. Oproti jiným typů informačních systémů distribuovaná databáze tedy přináší oproštění uživatele od nutnosti znát konkrétní uložení dat, o něž má zájem navigační prostředky k pohybu po informačním prostoru User Directory Service Enter search key _ whois.cuni.cz

76 Hypertext Původní význam: text doplněný vazbami (podobně jako např. v Helpu ve Windows). Zvolením vyznačených slov lze získat podrobnější informaci nebo přejít na příbuzné téma. Dnešní chápání: blíže pojmu hypermediální text, neboli text doplněný nejen odkazy, ale i netextovými prvky (obrázky, zvuk, video...) Prvek, který způsobil rozmach informačních služeb, byl hypertext, či přesněji hypermediální text. Původně termín hypertext označoval text doplněný vazbami. Jako příklad si lze představit třeba Help v MS Windows. Slova nebo sousloví, která mají vazby (např. bližší vysvětlení slova nebo příbuzné informace), jsou v textu zvýrazněna (typicky podtržením nebo barevným odlišením). Uživatel může kliknutím myši (nebo označením tabelátorem a stisknutím klávesy Enter) nechat zobrazit další text, který představuje vazba. V dnešním chápání se spíše hypertext používá jako označení pro hypermediální text, tedy text doplněný netextovými prvky (obrázky - dokonce příp. animovanými, zvukovými záznamy, videozáznamy apod.). Odkazy pak mohou být nejen vyznačená slova, ale i obrázky nebo jejich části. Takovýto text už občas ztrácí informační, ale získává propagační hodnotu. A to vlastně způsobilo zájem komerce.

77 World Wide Web WWW je distribuovaná hypertextová databáze
Základní jednotkou je stránka (dokument) Dokumenty jsou psány v textovém jazyce HTML popisuje obsah i formu (styly - CSS) existují staticky nebo se vytvářejí dynamicky Odkazy: mohou vést na příbuzné dokumenty nebo programy jsou zapisovány ve tvaru URL jsou součástí textu příp. i obrázků Stejně jako Gopher je i WWW (World Wide Web - "svět opředený pavučinou") vlastně distribuovaná databáze. Na rozdíl od něj je ale hypertextová. Základní jednotkou informace na WWW je stránka (dokument) - informace, která se ze serveru přenáší najednou a zobrazí se na jedné nebo i více obrazovkách. První stránka, jež je vstupní branou k informacím o nějaké organizaci, službě nebo osobě, se nazývá domovská stránka (home-page). Každé hypertextové URL představuje buďto stránku staticky uloženou na serveru nebo volání programu (tzv. cgi-scriptu), který stránku dynamicky vytváří. Stránky jsou typicky psány v jazyce HTML (Hyper-Text Markup Language), který je textový. Veškeré formátovací informace a netextové části jsou popsány speciální syntaxí jazyka. Stejně tak komunikace mezi klientem a serverem probíhá na základě protokolu HTTP (Hyper-Text Transfer Protocol), který je textový. Samozřejmě s výjimkou přenosu bínárních dat jako jsou obrázky, ale i jemu předchází domluva v textovém tvaru. Klíčovým pojmem (jak už u hypertextu bývá) jsou odkazy. Jejich obecnost je dána už tím, že jsou zapisovány v jazyce HTML jako URL. Odkazem může být nejen slovo, nebo obrázek, ale i část obrázku.

78 Protokol HTTP URL: http://www.../index.html GET /index.html server
klient HTTP/ OK Content-type: text/html <HTML><HEAD> <TITLE>Stranka ...</TITLE> </HEAD><BODY> <H1>Nadpis stránky</H1> <HR>... Klient a server spolu komunikují v protokolu HTTP (HyperText Transfer Protocol). Zjednodušeně se dá říci, že komunikace probíhá tak, že klient pošle URL a dostane HTML stránku. Pokud chceme být přesnější: klient posílá serveru výzvu ve formě relativního URL (tedy pouze cestu bez jména serveru), typicky ovšem navíc doplněnou o některé informace typu: umím zobrazovat to a to server odpovídá tím, že pošle zpátky zprávu, která začíná záhlavím udávájícím, co bude následovat (text, obrázek, zvukový záznam apod.), v běžném případě následuje WWW stránka a tedy text v jazyce HTML HTTP je protokol s číslem 80 (ovšem něktré servery pracují na jiném portu - pak je součástí URL i číslo portu - např: HTML stránka

79 Příkazy HTTP Metoda Požadavek Odpověď GET --- požadovaná stránka HEAD
POST parametry stránky požadovaná stránka PUT soubor --- CONNECT tunel

80 Dynamické stránky Dynamika řízená na serveru:
Formuláře + cgi-skripty, server-side include HTML preprocesor (PHP) Přenesení výpočetního výkonu na klienta: Java - jazyk myšlenkově vycházející z C++, s vyššími nároky na bezpečnost, s knihovnami pro jednoduchou tvorbu uživatelského rozhraní Java programy (applety), se na klienta přenášejí jako přeložený kód a on ho interpretuje a provádí (víceméně) nezávisle na platformě za pomoci lokálních knihoven Javascript - analogický princip, na klienta se ale přenáší zdrojový kód a on ho interpretuje Převrat v používání WWW způsobil nástup jazyka Java. Formuláře (a některá jiná URL) vedou na spuštění programu na serveru. To má ovšem dvě nevýhody: Běh takového programu zatěžuje server. Pro některé úlohy je to nezbytné (pokud je třeba zpracovávat údaje na lokálním serveru), ale často by stačilo, aby program běžel na klientovi. Výsledek běhu programu je stránka, která se přenese na klienta a tím transakce skončí. Není třeba již možné, aby stránka sama reagovala na změny na serveru. Vývojový tým fy Sun upravil jazyk C++ tak, že z něj odstranil nebezpečné prvky (protože programy budou prováděny na cizím počítači - klientovi) a přidal knihovny na usnadnění práce s grafickými objekty. Tím vznikl jazyk Java. Zdrojové programy v jazyce Java se přeloží do speciálního mezikódu a tyto applety se přenášejí na klienta. WWW prohlížeče bylo nutné doplnit o interpret, který umožňuje provádění appletů nezávisle na platformě. S rozšířením používání Javy vyvstala potřeba celý systém poněkud zjednodušit. Objevil se jazyk Javascript, který je vlastně omezenou verzí Javy. Program v tomto jazyce se na klienta přenáší ve zdrojovém tvaru přímo jako součást WWW stránky.

81 Bezpečnost na WWW Bezpečnost uživatele Bezpečnost serveru
komunikace mezi klientem a serverem probíhá otevřeně přenos citlivých informací (hesla, údaje ve formulářích) představuje riziko zabezpečená forma komunikace přes Transport Layer Security (TLS), dříve Secure Sockets Layer (SSL) dnes podporují všichni běžní klienti/servry Bezpečnost serveru přes WWW server vede většina útoků pečlivě udržovaný systém minimální práva Stejně jako u většiny síťových služeb se i u WWW vyskytují bezpečnostní rizika. Z hlediska uživatele představuje největší riziko otevřený přenos veškeré komunikace mezi klientem a serverem. Nebezpečné je především uvádění jakýchkoliv hesel, kódů apod. buďto přímo nebo prostřednictvím formulářů. Firma Netscape Communications přišla s řešením, v němž se veškerá komunikace, u níž se předpokládá přenos citlivých informací, kóduje. Tento systém se nazývá Secure Sockets Layer a musí jej samozřejmě podporovat jak server tak klient. U prohlížeče Netscape Navigator se funkce SSL projeví zobrazením nezlomeného klíče v levém dolním rohu. Z hlediska serveru je největším nebezpečím spouštění programů. Jakmile systém není dobře udržován (což vyžaduje obrovské a nikdy nekončící úsilí), lze přes www server celkem úspěšně provést prolomení systému. Alespoň nejzákladnější obranou proti tomu je zákázat spouštění všech programů, které nejsou nezbytně nutné, povolené programy pečlivě kontrolovat a uživateli, pod nímž spouštěné programy běží, omezit práva na naprosté minimum.

82 The End


Stáhnout ppt "Základy TCP/IP Libor Forst Motivace, historie, model"

Podobné prezentace


Reklamy Google