Digitální střepiny


Drobnosti, které se někomu můžou hodit

Vlastní vyhledávání Googlem na stránkách cestuji.info

Google


Digitální střepiny - stránka zaměřená na drobné rady z oblasti výpočetní techniky


TCP/IP protokol – základy sítí

se zaměřením na uživatele domácích (SoHo) routerů s NAT překladem adres. Článek volně zabíhá i do jiných témat a slouží jako stručný úvod do problematiky pro začátečníky.

Na této stránce se pokusím popsat základy TCP/IP protokolu v míře, kterou potřebuje znát běžný uživatel počítače, který si koupil například WIFI-router a „neví, co dále“.

Kapitoly:
IP-adresa
Maska
Výchozí brána
NAT překlad adres
DNS-server
DHCP server
MAC-adresy
Virtuální servery


Počítače v internetu spolu navzájem komunikují na základě TCP/IP protokolu. Pokud tedy chceme připojit počítač k internetu, musíme tento protokol zkonfigurovat.

Počítače jsou v TCP/IP protokolu identifikovány pomocí tak zvaných IP-adres. V současnosti se setkáme převážně ještě se staršími IP-adresami, které nají označení V4. Taková IP-adresa se skládá ze čtyř skupin čísel, oddělených tečkou. Příklad takové adresy je zde: 77.75.72.3. (je to veřejná IP-adresa serveru seznam.cz, ale to v tuto chvíli není důležité)

Takže:
IP-adresa (IPV4) má čtyři skupiný čísel, oddělené tečkami
Každé z nich může nabývat hodnot 0 až 255
Poslední číslo může mít hodnoty 1 až 254, číslice 0 a 255 jsou rezervovány pro speciální případy, které jsou nad rámec tohoto článku
Tyto IP-adresy mohou být veřejné a neveřejné.

Veřejné: takové adresy mají všechny servery v internetu a i některé počítače, které chtějí poskytovat serverové služby. Tyto adresy si nemůžete vymyslet, jsou přidělovány na základě nějakého plánu. Zásada: v rámci celého internetu (celého světa) může být jedna veřejná IP-adresa použita jenom jednou.
Pokud jste domácí uživatel, buď jste takovou adresu obdrželi od providera, nebo jste obdrželi adresu neveřejnou.

Neveřejná IP-adresa. Je to speciální případ IP-adres, které jsou určeny pro vytvoření místní sítě. Typický příklad: každý, kdo si koupil wifi-router a jako router ho používá, si právě pro svou potřebu vytvořil vlastní neveřejnou síť (síť, která používá neveřejné IP-adresy).
Neveřejnou IP-adresu poznáte podle toho, že používá adresy 192.168.x.x a nebo 10.x.x.x. (Tyto dvě jsou široce rozšířené, existují ještě neveřejné sítě 172.16.xx, 172.31.x.x, 169.254.x.x, s těmi se ale asi nesetkáte).
Neveřejnou IP-adresu ve své soukromé síti si můžete zvolit libovolně s omezením, že dvě zařízení nesmí mít stejnou IP-adresu.

Kde síť začíná a kde končí?
To definuje tzv maska sítě. V domácích podmínkách, kdy si pořídíte například wifi-router, se nejčastěji setkáte s adresami 192.168.x.x/255.255.255.0. Zákazníci O2 se setkají se sítěmi 10.x.x.x/255.0.0.0
Konkrétní příklad 1: koupili jste si wifi-router, který má z výroby nastavenou IP-adresu 192.168.1.1 a masku 255.255.255.0. (Jiné označení stejné sítě je 192.168.1.0/24. To číslo 24 označuje, že 24 bitů je adresa sítě a zbývajících osm bitů jsou adresy zařízení v síti). Co to znamená?
Maska 255.255.255.0 označuje, že do vaší sítě patří počítače, které mají adresu, která se liší jenom v posledním čísle (v osmi posledních bitech IP-adresy která je dlouhá celkem 32 bitů). Tedy vaše síť může obsahovat až 254 zařízení, tedy například jeden wifi-router a 253 počítačů. Tedy 1922.168.1.10 je adresa vaší sítě, ale 192.168.2.10 už je adresa jiné sítě.
Konkrétní příklad 2: Jste zákazníky O2 a dostali jste modem s adresou 10.0.0.138 a maskou 255.0.0.0 . Tady do vaší sítě patří počítače, které se mohou lišit v posledních třech číslech (tři nuly na konci masky), respektive v posledních 24 bitech IP-adresy, takže 10.0.0.1, 10.20.30.40 a vlastně cokoliv 10.x.x.x jsou adresy vaší sítě.
(Jiné označení stejné sítě je 10.0.0.0/8, je to jenom jiná forma zápisu. 8 bitů je adresa sítě, zbývajícíce 24 bitů určuje adresu zařízení v síti).

Existuje možnost jiných masek, ale s těmi se v domácí síti běžně nesetkáte a když už, tak vám například provider řekne, co máte nastavit.

Možná namítnete, že není záruka, že se taková neveřejná IP-adresa nebude na světě vyskytovat vícekrát. Je to pravda, ale u neveřejných adres to nevadí právě proto, že jsou neveřejné, tedy z internetu nejsou adresovatelné. (viz níže NAT-překlad adres).

Takže na PC musí být nastavena IP-adresa a maska sítě. Co potřebujeme dále? Výchozí bránu. Co to je?
Řekněme, že si něco chceme stáhnout ze serveru 77.75.72.3, který se nachází někde v internetu. Počítač uvidí, že adresa 77.75.72.3 nepatří do jeho sítě, takže odešle paket na vaši výchozí bránu do internetu, což je typicky váš router. Ten má taky nastavenou nějakou výchozí bránu, takže paket pošle na ni. Tak to jde dál a dál, až paket dorazí na nějaký směrovač (počítač s více síťovými kartami), který ná naprogramováno, že tento paket má odeslat některou z karet a takto je postupně paket navedený až k cílovému serveru.
Tento paket obsahuje nějaký požadavek na zaslání dat a je v něm informace o vaší veřejné IP-adrese. Takže server odešle odpověď na vaši veřejnou IP-adresu a ta doputuje systémem výchozích bran a směrovačů (možná úplně jinou cestou než putoval dotaz na server) až zpět na vaši veřejnou IP-adresu.

No jo, ale co když má můj počítač neveřejnou IP-adresu? To mi odpověď nedojde?
Nebojte se, dojde. Je to složitější, ale jde to. Jak?
Takže počítač s neveřejnou IP-adresou chce něco stáhnout z internetu. Pošle požadavek na výchozí bránu, což je náš wifi-router. Ten provede takzvaný NAT-překlad adres.
Co že to provede?
Paket, odeslaný z našeho počítače s neveřejnou IP-adresou, v sobě obsahuje informaci, že odesílatelem paketu je naše neveřejná IP-adresa. NAT-router tuto informaci pozmění a zapíše, že odesílatelem je IP-adresa NAT-routeru, konkrétně IP-adresa jeho konektoru, přes který je připojený do interneu. Zároveň si ale do své operační paměti zapíše, že paket s identifikačním číslem spojení XYZ měl původní adresu odesílatele naši neveřejnou adresu, takže až přijde odpověď s identifikačním číslem XYZ, podívá se do paměti a do políčka adresát zapíše zpět naši neveřejnou IP-adresu a paket nám pošle.
Takovýchto NAT-překladů adres může být na cestě mezi naším počítačem a internetem několik za sebou. Pokud to můžeme ovlivnit, je lepší, aby jich bylo co nejméně, tedy si nezapojujeme do své sítě více NAT-routerů, než je potřeba. Proč? Protože router musí měnit pakety, zapisovat si údaje do paměti a zase je vyhledávat a to všechno stojí nějaký čas, takže čím více je NAT překladů adres za sebou, tím déle musíme čekat na odpověď serveru z internetu.
Všiměte si, že NAT router musí vést v paměti evidenci všech spojení všech připojených počítačů do internetu. Při velkém provozu se může stát, že operační paměť zaplní a NAT-router „zatuhne“. Stávalo se to hlavně u starších zařízení, kde byla operační paměť malá.

Takže počítač musí mít nastavenou IP-adresu, masku a bránu. To je vše?
Ano a ne. Počítači by to stačilo. Ale člověk je tvor od přírody líný a usnadňuje si práci, kde to jde. Co tím myslím? Chceme stahovat data ze serveru s adresou 77.75.72.3. To je pěkné, ale kdo si to má pamatovat? Jak si to usnadnit? Odpovědí jsou doménová jména. Že nevíte, co to je? Ale určitě jste se s tím setkali. Doménové jméno pro IP-adresu 77.75.72.3 je seznam.cz a to už se dá zapamatovat. Ale počítač potřebuje znát tu IP-adresu. Co s tím? Odpovědí je DNS-server.
Pokusím se vysvětlit na příkladě:
Otevřete si webový prohlížeč a do příkazového řádku napíšete seznam.cz. Browser nezná příslušnou IP-adresu a tak pošle dotaz DNS serveru. Ten se podívá do své databáze, popřípadě se zeptá jiného DNS-serveru a pošle našemu browseru odpověď se správnou IP-adresou. A nyní už může browser odeslat na server 77.75.72.3 požadavek na zaslání obsahu stránky seznam.cz. Jako DNS server slouží ubvykle vaše internetová brána (router), nebo můžete nastavit IP-adresu nějakého serveru v internetu, třeba 8.8.8.8 (DNS server firmy google.). Pokud jsou nastaveny DNS-servery dva, slouží jeden jako záloha (platí pro Windows).

IP-adresa, maska, brána, DNS-server... To se musí nastavit všechno na všech počítačích ručně?
Naštěstí ne, na všech dnes prodávaných NAT-routerech funguje služba, která se nazývá DHCP server. Pokud je v počítači na síťové kartě nastavené automatické přebírání nastavení z DHCP serveru, nastaví se vše samo. V jedné síti mohou být jak zařízení, která mají IP-adresu nastavenou ručně, tak zařízení s automatickou konfigurací. Jediná podmínka je, aby se nestalo, že dvě zařízení v síti budou mít stejnou IP-adresu.
Aby se maximálně omezila kolize mezi ručně a automaticky přidělovanými adresami, je vhodné si síť pomyslně rozdělit na části s ručním přidělováním adres a s automatikou. Každý DHCP server má ve své konfiguraci možnost nastavit DHCP address pool (rozsah IP-adres, který má používat) a do tohoto rozsahu IP-adres nenastavujte ručně žádné počítače.
Pro jednu síť stačí jeden DHCP server na zařízení, které slouží jako výchozí brána. Pokud máte více zařízení s DHCP-servery (další access pointy a podobně), doporučuji na nich DHCP-servery vypnout. Pokud je z nějakého důvodu vypnout nechcete, musíte zajistit, aby přidělovaly správnou výchozí bránu, což může být problém (u wifi-routerů nebo ADSL-modemů používaných jako access point to obvykle nejde).

Pevné IP-adresy
Některá zařízení potřebují pevnou IP-adresu, která se nikdy nezmění. Typicky to jsou třeba síťové tiskárny, servery, access pointy... Takovým zařízením nastavte parametry TCP/IP ručně, nebo je možné v naprosté většině DNS-serverů nastavit rezervaci IP-adresy pro dané zařízení na základě MAC-adresy.

MAC adresy?
MAC-adresa je identifikační číslo síťové karty, na základě kterého se doručují data mezi zařízeními v síti. Výrobci zaručují (měli by...), že každé síťové zařízení, co kdy kdo vyrobil, má jedinečnou MAC-adresu. To je důležité, protože existence více síťových karet se stejnou MAC-adresou v jedné síti je průšvih a vyvolává velké množství různých problémů.
MAC-adresa má tvar XX: XX: XX: XX: XX: XX a obsahuje čísla a písmena a až f (příklad: 00:01:a0:ff:b2:14, jde o hexadecimální zápis čísel)
Takže pokud si z výrobního štítku nějakého zařízení zjistíte, jakou má MAC-adresu, můžete ji zadat do DHCP serveru a dané zařízení dostane přidělenu vždy stejnou IP-adresu.

Neveřejná IP-adresa podruhé
Opravdu neexistuje možnost jak adresovat počítače s neveřejnou IP-adresou z internetu? Existuje. Různí výrobci NAT-routerů ho nazývají různě, obvykle virtuální server nebo port forwarding. O co tedy jde? Chceme provozovat webovou stránku na nějakém počítači ve vnitřní síti a chceme, aby byl přistupný i z internetu.
Jenom tak mezi řečí se zmíním, že součástí datového paketu (typu TCP nebo UDP) je i informace o portu, to je číslo, které identifikuje programy na počítači. Každý webový prohlížeč ví, že má posílat požadavky na zobrazení obsahu stránky s portem nastaveným na hodnotu 80. Na našem NAT-routeru tedy můžeme zajistit, že požadavky s portem 80 budou vždy zasílány na nějakou IP-adresu vnitřní sítě.
Ale co když chceme mít webové servery dva? Smůla, jeden by musel běžet na jiném, nestandardním portu a spojení by dostal jenom ten, kdo by o tom věděl.
Port forwarding je důležitý i pro stahovače z P2P sítí (torrent, Kazza...) nebo hráče, kteří si chtějí zřídit vlastní server. O zřízení virtuálních serverů pro danou aplikaci najdete jistě dostatek informací v internetu. Je důležité vědět, jaké porty (může jich být několik) daný program používá.
Pokud je použito několik NAT-překladů za sebou, je nutné vytvořit konfiguraci pro virtuáĺní server na každém z nich.

Jde to i automaticky?
Ano, některé programy dokážou routeru zaslat požadavek na zřízení virtuálního serveru, pokud to nastavení routeru povoluje, je virtuální server zřízen automaticky. Ale i tak je tu omezení, že jeden port může být forwardován jenom na jeden počítač. Funkce se označuje UPnP, ale provideři internetu ji obvykle budou mít vypnutou, takže bude fungovat jenom na vašem zažízení, které ma na WAN-portu veřejnou IP-adresu.

WAN-port routeru
To je ten konektor, který vede do internetu. Má jinou IP-adresu než konektory, ke kterým jsou připojeny počítače. (Nemusí jít doslovně o konektory, může jít i o wifi-antény...)
Tato druhá IP-adresa může být veřejná nebo neveřejná, ale v každém případě to musí být adresa jiné sítě, protože NAT funguje jenom mezi různými sítěmi.

Je možné nastavit forwardování všech portů, takže by se počítač choval tak, jako by měl veřejnou IP-adresu?
Ano, tato funkce se jmenuje DMZ (demilitarizovaná zóna) a nastavuje se na NAT-routeru. Do DMZ jde (obvykle) nastavit jenom jeden počítač. Na takový počítač jsou doručena veškerá spojení z internetu, pochopitelně včetně případných útoků hackerů, takže u počítače v DMZ dvojnásobně dbejte na zapnutí firewallu.


Berte tento článek jako stručný úvod do problematiky a pokračujte v hledání konkrétních nejasností na internetu.



Na začátek stránky
Zpět na Digitální střepiny

Spřátelené stránky: Konstrukční kancelář ACR, Katalog katalogů