Kapitola 22. Linux v síti

Obsah

22.1. TCP/IP – Linuxem používaný protokol
22.2. IPv6 – Internet další generace
22.3. Manuální konfigurace sítě
22.4. Síťová integrace
22.5. Směrování a SUSE LINUX
22.6. SLP služby v síti
22.7. DNS — Domain Name System
22.8. NIS — Network Information Service
22.9. LDAP — adresářové služby
22.10. NFS — sdílené souborové systémy
22.11. DHCP
22.12. Synchronizace času s xntp

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.

22.1. TCP/IP – Linuxem používaný protokol

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]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

protokolpopis
TCP (angl. Transmission control protocol) Spojovací zabezpečený protokol. Přenášená data jsou aplikací odesílána jako datový tok a samotný operační systém je upravuje do formátu vhodného pro přenos. Data pak přichází cílové aplikaci opět ve formě datového toku tak, jak byla odeslána. TCP zajišťuje, že se po cestě žádná data neztratí. TCP se používá tam, kde je důležité pořadí dat a výraz spojení zde je ve svém původním významu.
UDP (angl. User Datagram protocol) Nezabezpečený protokol. Není garantováno pořadí příchodu dat příjemci a stejně tak se může stát, že se některé pakety ztratí. UDP se hodí pro datově orientované aplikace (např. přenos multimédií) a nemá žádné prodlevy způsobené ověřováním tak, jak je tomu u TCP.
ICMP (angl. Internet Control Message Protocol ) Jedná se o servisní protokol, který sděluje stav chyb a řídí chování počítačů při přenosu TCP/IP dat. Navíc podporuje ICMP echo režim, který používá program ping.
IGMP (angl. Internet group management protocol ) Tento protokol řídí chování počítačů při IP multicast. Naneštěstí IP multicast přesahuje rozsah této publikace.

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.

22.1.1. Přenosový model

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.

Obrázek 22.1. Zjednodušený model pro TCP/IP

Zjednodušený model pro TCP/IP

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“.

Obrázek 22.2. TCP/IP paket v Ethernetu

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.

22.1.2. IP adresy a směrování

[Important]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“.

22.1.2.1. IP adresa

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)).

22.1.2.2. Síťové masky a směrování

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

AdresaPopis
Základní síťové adresy To je síťová maska A libovolná síťová adresa ze sítě. Tato adresa nemůže být přiřazena žádnému počítači.
Oznamovací adresa Ta říká: hovoř se všemi počítači v této části sítě. Abyste ji mohli použít, je síťová maska binárně invertována a pomocí operátoru OR spojena se základní síťovou adresou. Náš příklad vede k výsledku 192.168.0.255. Ani tato adresa nemůže být přiřazena žádnému počítači.
Programová smyčka Adresa 127.0.0.1 odkazuje na každém počítači na tzv. loopbackdevice. Pomocí této adresy je možné navázat spojení s vlastním počítačem. programových smyček můžete mít samozřejmě více než jednu.

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.

Tyto adresové oblasti jsou definovány v RFC 1597:

Tabulka 22.3. Neveřejné adresní rozsahy

síť/síťová maskaoblast
10.0.0.0/255.0.0.010.x.x.x
172.16.0.0/255.240.0.0172.16.x.x - 172.31.x.x
192.168.0.0/255.255.0.0192.168.x.x

22.1.3. Domain Name System – DNS

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ý.


SUSE LINUX 9.2