Obsah
Abstrakt
Ve věku komunikací je již počet vzájemně propojených počítačů tak vysoký, že je vzácností počítač, který se alespoň občas nepřipojí k některé síti. O Linuxu je známo, že ho přivedl na svět právě Internet a je proto zaměřen na poskytování spolehlivých síťových služeb podle potřeb uživatele.
Linux a jiné unixové operační systémy používají především tzv. TCP/IP protokol. V tomto případě se nejedná o jeden, ale o celou skupinu síťových protokolů, která poskytuje různé služby. TCP/IP se vyvinul z vojenské aplikace a v současnosti používaná forma byla zakotvena zhruba v roce 1981 v RFC (angl. Request for comments). RFC je typ dokumentu, který popisuje různé internetové protokoly a postupy při implementaci operačních systémů a aplikací. Tyto RFC dokumenty jsou přístupné přímo z Internetu na adrese http://www.ietf.org/. Od zakotvení protokolu byla uskutečněna některá vylepšení TCP/IP protokolu, ale v zásadě se protokol dále nevyvíjí.
![]() | Tip |
|---|---|
RFC dokumenty popisují stavbu internetových protokolů. Pokud si tedy chcete prohloubit své znalosti o určitém protokolu, pak je pro vás odpovídající RFC dokument to pravé. RFC naleznete na internetové adrese http://www.ietf.org/rfc.html | |
Protokoly uvedené v tabulce 22.1 – „Různé protokoly z rodiny TCP/IP“ zajišťují přenos dat mezi dvěma linuxovými počítači:
Tabulka 22.1. Různé protokoly z rodiny TCP/IP
Takřka všechny hardwarové protokoly jsou paketově orientovány. Je tedy třeba přenášená data zabalit do malých paketů a není možné posílat vše v jednom. Proto také TCP/IP pracuje s menšími datovými jednotkami. Maximální velikost jednoho TCP/IP paketu je skoro 64 KB (kilobytů). Obvykle jsou tyto pakety značně menší, protože limitujícím faktorem je síťový hardware. Takže např. maximální velikost datových paketů v Ethernetu je zhruba 1500 bytů. Tomu také odpovídá velikost TCP/IP paketů, pokud jsou data posílána přes Ethernet. Pokud posíláte větší objem dat, musí je operační systém rozdělit do více paketů a ty pak poslat.
Pomocí IP (angl.Internet protocol se provádí nezabezpečený síťový přenos dat. TCP (angl. Transmission control protocol) pak, svým způsobem, pouze zajišťuje bezpečnost přenášených dat a je nadstavbou IP. IP je zase nadstavbou hardwarové závislého protokolu, např. Ethernetu. Tyto nadstavby mají také své pravé jméno a znalci hovoří o tzv. modelu vrstev.
Na tomto obrázku jsou dva příklady vrstev. Jak můžete vidět, jsou vrstvy uspořádány podle úrovně abstrakce, kdy nejnižší vrstva je velice blízko hardwaru, zatímco vyšší vrstva naproti tomu abstrahuje níže umístěnou vrstvu. Každá z vrstev má zcela speciální funkce, které budou vysvětleny následně.
Zatímco se první vrstva zabývá takovými věcmi, jako jsou typy kabelů, formy signálu, kódování signálu apod., stará se druhá vrstva o postup při přístupu (tj. který počítač smí posílat dat a kam je smí posílat) a opravu chyb (linková vrstva). První vrstvu pak nazýváme fyzickou vrstvou.
Naproti tomu třetí vrstva, síťová je odpovědná za přenos dat na velké vzdálenosti. Tato vrstva zajišťuje, že data budou doručena i na velké vzdálenosti svému adresátovi.
Čtvrtá, transportní vrstva, je odpovědná za data aplikace. Transportní vrstva ručí za to, že data přijdou ve správném pořadí a že se nikde neztratí. Bezpečnostní vrstva zajišťuje pouze to, že příchozí data budou korektní. Ochranu proti ztrátě dat zajišťuje transportní vrstva.
Pátá vrstva je pak konečně samotné datové spojení aplikací.
Aby mohla každá vrstva plnit přidělenou funkci, musí přidat doplňující informace do paketu. Ty jsou uloženy v hlavičce paketu. Každá vrstva připojí malý blok dat, tzv. hlavičku protokolu (angl. protocol header. Paket v ethernetové síti může vypadat vypadat jako na obr. 22.2 – „TCP/IP paket v Ethernetu“.
Jak můžete vidět, svět není perfektní a bez výjimek. Kontrolní součet linkové vrstvy se nachází na konci paketu a ne na začátku, což ale na druhou stranu představuje zjednodušení pro síťový hardware. Maximální množství dat v paketu je v ethernetové síti 1460 bytů.
Pokud chce tedy nějaká aplikace posílat data přes síť, pak proběhnou data jednotlivými vrstvami, které jsou (výjimkou je první vrstva integrovaná do síťové karty) implementovány do linuxového jádra. Každá z vrstev upraví data tak, aby mohla být předána níže položené vrstvě. Nejnižší vrstva je pak zodpovědná za poslání dat. Při příjmu dat probíhá to samé, ale v opačném gardu. Paket je zde loupán jako cibule a v každé vrstvě jsou zde odstraňovány hlavičky protokolu. Čtvrtá vrstva pak připravuje data pro aplikaci na cílovém počítači. Přitom komunikuje každá vrstva pouze s vrstvou přímo nad, resp. pod ní. Aplikace se tedy nemusí starat o to, zda data půjdou přes 100 MB FDDI síť nebo 56 kbit vytáčenou linku. Stejně tak je např. transportní vrstvě jedno, zda jsou posílaná data správně zabalena.
![]() | Důležité |
|---|---|
Následující část je věnována protokolu IPv4. Informace o IPv6 naleznete v odstavci 22.2 – „IPv6 – Internet další generace“. | |
Každý počítač v internetové síti má jednoznačnou 32 bitovou adresu. Ta může vypadat např. následovně:
IP adresa (binárně): 11000000 10101000 00000000 00010100 IP adresa (decimálně): 192. 168. 0. 20
Tyto čtyři byty jsou v desítkové soustavě odděleny tečkou. IP adresa je přiřazena každému počítači, resp. každému síťovému rozhraní, takže už nemůže být použita v jakémkoliv jiném počítači na celém světě. Sice existují výjimky z tohoto pravidla, ale zde nehrají žádnou roli.
Také Ethernetové karty obsahují jednoznačnou adresu, tzv. MAC (angl. Media access control). Ta je 48 bitů dlouhá, celosvětově jedinečná a je výrobcem kartě jednoznačně přidělena. Má ale jeden obrovský nedostatek. MAC adresy netvoří hierarchický systém, ale jsou přidělovány víceméně náhodně. Není je proto možné používat pro adresování vzdálených počítačů. Rozhodující úlohu ale tyto adresy hrají při komunikaci počítačů v lokální síti (a jsou součástí hlavičky paketů pro druhou vrstvu).
A nyní zpět k IP adresám. Jak již napovídá výše uvedený text, tvoří IP adresy hierarchický systém. Do poloviny devadesátých let byly IP adresy pevně členěny do jednotlivých tříd. Tento systém se ukázal jako neflexibilní a proto se přestal používat. Používá se pouze směrování bez tříd (CIDR (angl. classless inter domain routing)).
Protože počítač s IP adresou 192.168.0.0 nemůže vědět, kde se nachází počítač s IP adresou 192.168.0.20, byly zavedeny síťové masky.
Zjednodušeně řečeno síťové masky sdělují počítači s IP adresou, co je uvnitř a co vně. Počítače, které se nacházejí uvnitř (ve stejné části počítačové sítě) spolu mohou komunikovat přímo. Při přístupu k počítačům nacházejícím se vně je třeba použít tzv. bránu (angl. gateway).
Předtím, než se paket vydá na svou cestu, proběhne v počítači následující proces. Cílová adresa je se síťovou maskou binárně spojena pomocí operátoru AND. Také adresa odesilatele je spojena se síťovou maskou pomocí operátoru AND. Pokud je k dispozici více síťových rozhraní, pak jsou zpravidla všechny adresy odesilatele.
Výsledky spojení adres (AND) jsou pak porovnány. Pokud jsou tyto výsledky zcela shodné, pak se nachází cílový počítač ve stejné části sítě. V opačném případě je třeba použít bránu. To znamená, že čím více 1 bitů se nachází v síťové masce, tím méně počítačů je přímo dostupných. V následující tabulce je uvedeno několik příkladů:
IP adresa (192.168.0.20): 11000000 10101000 00000000 00010100 síťová maska (255.255.255.0): 11111111 11111111 11111111 00000000 _______________________________________________________________ výsledek (binární): 11000000 10101000 00000000 00000000 výsledek (decimální): 192. 168. 0. 0 IP adresa (213.95.15.200): 11010101 10111111 00001111 11001000 síťová maska (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------- výsledek (binární): 11010101 10111111 00001111 00000000 výsledek (decimální): 213. 95. 15. 0
Síťová maska se zapisuje, tak jako IP adresa, ve formě decimálních čísel oddělených tečkami. Protože má síťová maska také velikost 32 bitů, jsou jednotlivá čísla psána za sebe. Které počítače jsou bránou nebo které oblasti adres jsou přístupné přes síťové rozhraní, je třeba nakonfigurovat, což musí udělat uživatel sám.
A následuje další příklad - všechny počítače připojené na jeden ethernetový kabel se nacházejí ve stejné části sítě a jsou přímo přístupné. I když je v Ethernetu rozdělují tzv. switche a bridge, je přesto možné přímo přistupovat k počítačům.
Pokud chcete překlenout delší vzdálenost, není již možné použít Ethernet. Pak je třeba IP pakety převést na jiný hardware (např. FDDI nebo ISDN). Taková zařízení se nazývají routery, resp. brány. Linuxový počítač může plnit i tyto úlohy, tato volba se označuje jako ip_forwarding.
Pokud je nakonfigurována brána, je paket poslán na odpovídající gateway. Ta se pak pokusí paket přeposlat dále. To se opakuje na každém dalším počítači tak dlouho, než paket dosáhne cílový počítač nebo vyprší jeho životnost TTL (angl. time to live).
Tabulka 22.2. Vyhrazené adresní prostory
Protože je třeba, aby byly IP adresy jedinečné, nemůžete si samozřejmě zvolit libovolné adresy. Abyste i přesto mohli postavit síť na bázi IP adres, existují tři oblasti, které můžete ihned použít. S těmito adresami se ale bez překladu adres nemůžete připojit k Internetu.
DNS se stará o to, abyste si nemuseli pamatovat žádné IP adresy. V Linuxu se o tento převod stará specializovaný software, který se nazývá bind. Počítač, na kterém se tento převod realizuje pak je nameserver. Zde tvoří názvy také hierarchický systém, kde jsou jednotlivé části názvu oddělovány tečkou. Tato hierarchie je nezávislá na hierarchii IP adres.
Jako celé jméno můžeme použít např. laurent.suse.de. Toto je celý název fully qualified domain name nebo zkráceně FQDN. Podívejme se nyní na celý název, např. laurent.suse.cz zapsaný ve formátu název počítače.doména. Doména se v našem případě suse a cz je TLD (Top level domain).
Z historických důvodů je přiřazování TLD trochu zamotané. Proto jsou v USA používány domény první úrovně složené ze tří písmen, v ostatním světě pak dvou podle normy ISO. Od roku 2000 jsou k dispozici další TLD pro speciální oblasti, které se skládají i z více psímen (např. .info, .name, .museum atd.).
V kamenných dobách Internetu (před rokem 1990) se používal soubor /etc/hosts, kde byly uvedeny názvy všech počítačů, které existovaly na Internetu. To se ukázalo, při rychle rostoucím počtu připojených počítačů, jako nepraktické. Proto byla navržena distribuovaná databáze, která obsahuje názvy počítačů spolu s jejich IP adresami. Jelikož je databáze distribuovaná, nemusí znát všechny počítače, místo toho se zeptá jmenného serveru vyšší úrovně, zda náhodou počítač neznají. To ale neznamená, že nemůžete soubor použít pro překlad adres, např. v lokální podsíti.
Na vrcholu hierarchie nameserverů se nachází tzv. kořenový nameserver root nameserver. Tento nameserver spravuje top level domény v Network Information Centers, zkráceně (NIC). Informace o českém správci domény naleznete na http://www.nic.cz, případně obecnější informace na http://www.internic.net/.
Aby dokázal i váš počítač převádět IP adresy, musí mít alespoň přístup k nameserveru s IP adresou. Konfiguraci nameserveru můžete pohodlně provést pomocí YaST2. Pokud používáte vytáčenou linku, pak se může stát, že nemusíte ručně konfigurovat žádný nameserver. Protokol používaný pro vytáčené linky vám poskytne adresu nameserveru při navazování spojení.
Pomocí DNS nemusíte převádět pouze názvy počítačů, DNS toho zvládne daleko více. Např. nameserver ví, který počítač přebírá pro celou doménu e-maily, tzv. Mail exchanger (MX).
Konfigurace přístupu k nameserveru je popsána v odstavci 22.7 – „DNS — Domain Name System“.
Těsně spojený s DNS je protokol whois. Se stejnojmenným programem whois máte možnost rychle zjistit, kdo je za určitou doménu odpovědný.