Linux E X P R E S

Facebook

Síťové nástroje v Linuxu, 2. část

Bohdan Milar - ať již chcete využívat síť jakýmkoli způsobem, potřebujete k tomu mimo jiné tyto věci: obecnou znalost fungování sítě, hardware pro stavbu, softwarové nástroje k jejímu nastavení a správě. A právě síťovými nástroji se v tomto seriálu budeme zabývat. Nejprve ovšem bude dobré krátce se s problematikou sítí TCP/IP seznámit na obecnější rovině.


Minule jsme si ukázali, co jsou a jak fungují ethernet a TCP/IP, jak se přepočítávají bity a byty pro potřeby síťování, zda váš kernel vůbec síťování umožňuje, jak nastavit IP adresu, masku sítě a všesměrovou adresu, jak nastavit jednoduché směrování a výchozí bránu. To zpravidla stačí k tomu, aby začalo fungovat propojení do lokální sítě. Pokud se do Internetu nepřipojujete přes modem a  nastavili jste správně bránu, budete mít přístup i do sítě sítí.

Dnes si řekneme, jaké vrstvy v síťové komunikaci rozlišujeme, co jsou to privátní a veřejné adresy, jak funguje moderní nástroj ip a do kterých konfiguračních souborů zapsat naši síťovou konfiguraci.

Pakety – pseudomatrjoškový systém

Podobně jako zlobři a cibule má také síťová komunikace své vrstvy. Síťový model ISO/OSI popisuje až osm vrstev síťové komunikace. Nám pro pochopení principu komunikace postačí zjednodušené čtyřvrstvé schéma TCP/IP.

Řekněme kupříkladu, že jsme přímo (síťovým kabelem) připojeni k  lokálnímu WWW serveru (např. firemní intranet). Nyní si popíšeme, co se na síti stane, když ve svém oblíbeném internetovém prohlížeči zadáte IP adresu tohoto serveru.

Na našem počítači běží WWW (neboli HTTP) klient v podobě onoho prohlížeče. Ten chce po WWW (HTTP) serveru nějaká data ke zobrazení. Na začátku řádku s adresou (kam jsme zadali IP adresu serveru) většina prohlížečů doplní automaticky http://. To znamená, že data budou získávána prostřednictvím protokolu HTTP, kterému obě aplikace – server i klient – rozumí. Této vrstvě říkáme aplikační. Dalšími protokoly této vrstvy jsou třeba FTP, POP3, IMAP, SMTP, DNS, ...

Protokol HTTP nám ovšem nezajistí rozložení dat do obálek, což je pro transport nezbytné. Toho se ujme transportní vrstva reprezentovaná protokolem TCP. Ta rozřeže příslušnou HTTP komunikaci (textový dotaz od klienta) na kousky potřebné velikosti a každý z nich opatří hlavičkou, která mimo jiné určuje původní pořadí kousků. Druhý počítač potom bude moci data v tomto pořadí zase "slepit" dohromady.

Kousky rozřezané protokolem TCP ale nevědí vůbec nic o tom, odkud a kam mají být přepraveny. V hlavičce TCP taková informace není. O to se již stará protokol IP. Ten vezme posloupnost TCP paketů (včetně TCP hlaviček) a znovu ji rozřeže, přičemž každému kousku přidělí vlastní IP hlavičku obsahující mj. zdrojovou a  cílovou IP adresu, čímž zajistí průchod dat sítí. Této vrstvě říkáme síťová.

Nyní už jsou naše data připravena k přenosu po síti obecně, ale stále ještě neopustila počítač. Nevědí totiž nic o tom, po jakém druhu sítě budou přenášena, jakou rychlostí, jaké "dopravní předpisy" na příslušném segmentu sítě platí apod. O to se stará spojová vrstva. V našem případě bude spojení realizováno po ethernetu prostřednictvím ovladače příslušné karty.

Vlastní přenos se provede tak, že počítač se přes síťovou kartu pokusí do ethernetu vyslat paket. Protože v ethernetu jsou v podstatě všechny počítače připojeny na jeden drát, je možné, že se v týž okamžik pokusil vysílat i jiný počítač. Proto náš počítač současně s vysíláním čte, co na ethernetu běhá. Pokud se to liší od toho, co vyslal, došlo ke kolizi a vysílání se bude po chvíli opakovat.

Když data začnou proudit po kabelu, zjistí cílový počítač podle hlaviček, že jsou určena právě jemu, načte si je do paměti a začne zpracovávat. Nejprve otevře obálky (odstraní IP hlavičky), které svou roli již splnily. Dále musí stránky našeho předlouhého dopisu poskládat v původním pořadí, o což se postará číslování v TCP hlavičkách, které pak budou také odstraněny.

Výsledkem jsou data ve formátu HTTP, která předá systém příslušnému programu (HTTP serveru) ke zpracování. Ten vyhodnotí dotaz (např. "Prosím, zašlete mi obsah souboru index.html z  adresáře album/.") a pokud mu v tom něco nebrání (např. přístupová práva), vyřídí jej. Tedy vezme soubor index.html z adresáře album/ a vše, co k němu náleží (např. obrázky), a pošle je na příslušnou adresu.

Při odeslání dat ze serveru budou použity opět všechny vrstvy síťové komunikace. Pro zopakování: nejnižší – spojová (ethernet), síťová (IP), transportní (TCP), aplikační (HTTP). Klient (náš webový prohlížeč) pak dostane data ke zobrazení poté, co je náš počítač vybalí z IP obálek a seřadí podle TCP hlaviček.

Adresní rozsahy

Při čtení stránky z intranetového serveru mají pakety většinou relativně snadnou cestu. Stává se, že proudí pouze po jednom koaxiálním kabelu nebo jen přes jeden switch. Jak to ale vypadá, když čteme něco z Internetu, kde je nutné cestou k cílovému serveru překonat velkou vzdálenost a prodrat se spletitými cestičkami optických kabelů, WiFi nebo se dokonce proletět na oběžnou dráhu k  telekomunikační družici?

V prvním díle jsme si na příkladu masky a adresy sítě ukázali, že protokol IP verze 4 nám nabízí čtyřbytové IP adresy (např. 147.251.48.205). Je tak teoreticky možné, aby existovalo 4294967296 adres. Už samotné 4 miliardy jsou méně, než kolik je lidí. Navíc některá čísla jsou vyhrazena pro speciální účely, takže použitelných adres je ještě méně.

Již velmi rychle se blíží okamžik, kdy IP adresy nebudou pro Internet stačit. Ve svobodném tržním prostředí, jakým Internet zatím ještě s pár výjimkami je, existují nejméně tři řešení. Prvním je růst ceny za tzv. veřejnou IP adresu, čehož jsme v poslední době svědky. Druhou možností je stávající systém nějak obejít, a tak vznikly soukromé IP adresy. Za třetí pak lze zcela změnit systém, na čemž se pracuje v podobě protokolu IP verze 6.

My se zde podíváme na soukromé adresy, protože s těmi se pravděpodobně setkáte. Myšlenka soukromých adres vychází z  předpokladu, že v Internetu nebudou některé adresní rozsahy používány. Z těchto rozsahů si pak může každý vybrat, jaký mu vyhovuje (např. velikostí) a použije jej pro svou domácí nebo firemní síť. Potom bude stačit jedna veřejná (internetová) adresa pro připojení celé soukromé (privátní) sítě.

K připojení do Internetu musíme v případě použití soukromých adres využít bránu. Brána je zařízení, které je připojeno zároveň na vnitřní (soukromou) i vnější (internetovou) síť. Tímto zařízením může být počítač se dvěma síťovými kartami, případně s jednou síťovou kartou a modemem, nebo specializované zařízení (hardwarový router, WiFi Access Point, ADSL modem, kabelový modem apod.)

K tomu jak počítač nastavit, aby fungoval jako brána, se v  některém z následujících dílů ještě dostaneme. Nyní jen přehled rozsahů soukromých IP adres, které můžete použít ve svých privátních sítích:

  • od 10.0.0.0 do 10.255.255.255
  • od 172.16.0.0 do 172.31.255.255
  • od 192.168.0.0 do 192.168.255.255

Rozsah začínající číslem 10 je určen pro stavbu jedné obrovské sítě, ve které další tři desítková čísla (24 bitů) budou určovat adresu počítače. Lze v ní tedy mít 24. mocninu 2, tj. 16777216 počítačů. Rozsah 172 je určen pro až 16 sítí (s čísly od 16 do 31) po 65536 počítačích (např. 172.22.0.0 – 172.22.255.255). Počítače zde budou mít čísla od 0.0 do 255.255, tedy např. 172.18.12.15 je na stejné síti jako 172.18.45.152, ale na jiné než 172.24.131.16.

Poslední rozsah je využívaný často. Začíná čísly 192.168 a je předurčen pro až 256 sítí s 1 až 256 adresami. Předposlední číslo tedy označuje jednu z našich soukromých sítí (např. každé oddělení může mít svou) a poslední číslo je pak adresou počítače v dané síti. Např. 192.168.1.48 je na stejné síti s 192.168.1.175, ale na jiné než 192.168.5.46.

To, kolik čísel zleva bude použito jako adresa sítě, a kolik jich tedy zbude pro adresování počítačů (či pro jiné účely, např. všesměrové vysílání), je také stanoveno:

  • od 1.0.0.0 do 127.255.255.255 je adresou sítě první číslo (8 bitů) a těmto adresám se říká třída A
  • od 128.0.0.0 do 191.255.255.255 jsou adresou sítě první dvě čísla (16 bitů) a jde o třídu B
  • od 192.0.0.0 do 223.255.255.255 určují adresu sítě první tři čísla (24 bitů) a říká se jim třída C

Asi jste si všimli, že není uveden prostor 0.0.0.0 až 0.255.255.255. Ten je využit pro speciální účely v rámci správy sítě (např. DHCP na adrese 0.0.0.0). Adresy od 224.0.0.0 do 255.255.255.255 jsou použity mj. na experimentování, třídy D, E, F atd.

Zvláštní význam má ještě rozsah 127.0.0.0 až 127.255.255.255, který slouží pro vnitřní potřebu počítače. Již minule jsme si ukázali, že adresa 127.0.0.1 je přiřazována fiktivnímu rozhraní loopback (místní smyčka) označovanému jako lo nebo lo0.

ip

Program ip si dělá ambici stát se univerzálním nástrojem pro nastavování sítí v prostředí GNU. V jeho stručné manuálové stránce se můžeme dočíst, že je to konfigurační a routovací nástroj pro rozhraní TCP/IP. Dále nás tato stránka odkáže na rozsáhlou dokumentaci ve formátu PostScript (ps) a TeX (DVI), kterou najdeme v souboru /usr/share/doc/iproute2-2.4.7/.

Nebudeme dnes probírat všechny vymoženosti, které nám ip nabízí. Ukážeme si jen to, co minule s příkazy ifconfig a route. K  dalším funkcím se v průběhu seriálu dostaneme, když se budeme věnovat dalším oblastem práce se sítí.

Začněme přidělením IP adresy nějakému síťovému rozhraní, řekněme eth0 s IP adresou 192.168.1.12. Nejprve pomocí ifconfig

ifconfig eth0 192.168.1.12 up

a nyní s použitím ip

ip addr add 192.168.1.12/24 dev eth0 brd + ip link set up dev eth

zde ovšem za použití dvou příkazů, kdy ten první nastaví IP adresu a ten druhý teprve rozhraní eth0 spustí. Ještě musíme nastavit směrování, takže s route by to bylo takhle

route add -net 192.168.1.0 netmask 255.255.255.0 eth 

a s ip takhle

ip route add 192.168.1.0/24 dev eth 

Zajímavá je možnost použití IP adresy s lomítkem a počtem bitů, které budou chápány jako síťová část adresy. Místo masky sítě 255.255.255.0 (tj. tři byty, tedy tři osmice bitů, 3 * 8 = 24) lze napsat prostě /24. Chybí ale pořád nastavení výchozí brány. Nastavme si ji jako 192.168.1.1

route add default gw 192.168.1.1 

resp.

ip route add default via 192.168.1.1 

Je zřejmé, že syntaxe příkazu ip je trochu odlišná od tradičních nástrojů. Obdobně je tomu v případě, kdy chceme informace jen vidět, jako kdybychom zadali ifconfig nebo route bez parametrů. U ip je situace následující

 
ip link show
ip addr show
ip route show 

Konfigurační soubory

Nyní již víme, jaké adresy si pro naše potřeby máme vybrat. Víme také jak jednorázově nakonfigurovat síťové rozhraní a nastavit routování. Teď zbývá tyto údaje uložit do konfiguračních souborů. To nám zaručí, že při příštím startu počítače nebudeme muset konfiguraci znovu vymýšlet a, budeme-li si to přát, nastaví se karta automaticky.

Jednotlivé způsoby konfigurace jsou v oblasti nastavení sítě hodně závislé na distribuci Linuxu. Např. u Slackwaru se konfigurace provádí často prostým zápisem konfiguračních příkazů s příslušnými parametry do souboru /etc/rc.local. My si ukážeme konfigurace pro Mandrake a Debian. Mějme rozhraní eth0 s adresou 192.168.0.24 a bránu 192.168.0.1.

V Mandrake Linuxu budeme upravovat soubor /etc/sysconfig/network-scripts/ifcfg-eth0. Je vidno, že jméno souboru je závislé na konfigurovaném rozhraní. Obsah bude následující:

DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.0.24 NETMASK=255.255.255.0
NETWORK=192.168.0.0 BROADCAST=192.168.0.255 ONBOOT=yes MII_NOT_SUPPORTED=no

A takto bude vypadat soubor /etc/network/interfaces v distribuci Debian GNU/Linux, v němž jsou definována všechna síťová rozhraní současně (zde včetně lo):

auto lo eth0 iface lo inet loopback iface eth0 inet static address
192.168.0.24 netmask 255.255.255.0 gateway 192.168.0.1 

Označení static představuje skutečnost, že si dané rozhraní nastavujeme ručně, a ne třeba prostřednictvím DHCP. ONBOOT (Mandrakelinux) a auto (Debian) udává, zda má být rozhraní aktivováno během startu systému.

Závěr

Jsme na konci druhého dílu a o pár krůčků dál v nastavování sítí. Příště si mimo jiné ukážeme pár užitečných nástrojů k testování navázaného spojení a povíme si, co jsou to služby doménových jmen a jak je v Linuxu nastavit (z pohledu klienta).

Diskuze (0) Nahoru