Hálózati alapismeretek (TCP/IP)

Ebben a fejezetben a TCP/IP hálózati protokoll rejtelmeivel ismerkedhetsz meg. Ne hagyd ki, még akkor sem ha a gépedben nincs (még) hálózati kártya!

Ez a fejezet arról szól, hogy mit kell tenni egy linuxos gépen ahhoz, hogy megfelelően működjön hálózatban, és a hálózat adta összes lehetőségeket elérje.

A hálózati beállításoknak létezik karakteres és menüs (grafikus) megoldása is. Elsőként most a karakteres megoldást ismertetjük Tesszük ezt azért, mert ez minden disztribúcióban ugyanúgy működik, tehát nem UHU specifikus. (Az UHU-ra jellemző grafikus beállításokat természetesen a későbbiekben részletesen ismertetjük)

Tesszük mindezt azért, mert a hálózat (TCP/IP) a linuxban akkor is jelen van, ha az adott számítógép nincs a hálózatba kötve. (Még akkor is, ha nincs a gépben hálózati kártya!) Emiatt indokolt ennek a témának a megismerése, még akkor is, ha jelenleg a hardverkörülmények még nem indokolják.

A TCP/IP egy hálózati protokoll. (Transmission Controll Protokoll/Internet Protokoll, magyarul: Átvitel Vezérlési Protokoll/Internet Protokoll) A TCP/IP kezdettől fogva a linux és az Internet protokollja, és mára már a többi hálózati platform is befogadta. A modern számítógépes hálózatokban, a továbbítandó adatok nem egybefüggő folyamként haladnak az egyik géptől a másikig, hanem több különálló adatcsomag (datagram, packages) formájában.

A TCP/IP protokoll két alrendszerének az alábbi feladatai vannak:

1. TCP - a küldő számítógépen a továbbítandó adathalmaz feldarabolása adatcsomagokra, és az adatcsomagok címkézése. Az adatokat fogadó számítógépen pedig, a kapott adatcsomagok összerakása, és így az eredeti adathalmaz előállítása.

2. IP - az adatcsomagok irányítása, a kommunikációban résztvevők (gépek) azonosítása.

Ez utóbbi feladat igen összetett és sokrétű, ezért megvizsgáljuk részletesen. Egy IP alapú hálózat, minden egyes számítógépe, sőt ezen túlmenően minden egyes hálózati interfész (hálózati kártya) egyedi azonosítóval rendelkezik. (IP cím) Ne felejtsük el, hogy egy PC-ben lehet több hálózati kártya is! Az egyediség, vagyis az, hogy minden PC más és más IP címmel rendelkezik, az összefüggő hálózatokban elengedhetetlen alapkövetelmény.

Ez azt is jelenti, hogy egy "kifelé" zárt hálózatban (pl. vállalati, vagy otthoni intranet) használhatóak olyan IP címek, amelyek egyébként az interneten szerepelnek, hiszen ütközés nem lehetséges, mivel a hálózat nem kapcsolódik az internethez.

Nagyon fontos!!! Az IP címét egy hálózati kártya nem a gyártásakor kapja meg, és így az nem egy végleges valami. Az IP címet az adott hálózat üzemeltetői határozzák meg, természetesen egy rendszer szerint, bizonyos kritériumok figyelembevételével. A kifelé zárt rendszernél, -hálózatnál,- az egyetlen dolog amire figyelni kell az, hogy a hálózatben ne legyen két azonos IP cím, tehát az egyediség a fontos. Ha azonban a gépünk, illetve a hálózatunk kifelé nyitott, vagyis kapcsolódik egy másik hálózathoz, pl. -az internethez,- akkor nagyobbrészt az Internet szolgáltatótól (ISP=Internet Service Provider) függ, hogy milyen IP címeket használhatunk.

Nézzük meg azt az esetet, amikor pl. egy PC-ben lévő hálózati kártyának mindig ugyanaz az IP címe, (fixre van állítva). Ebben az esetben úgynevezett: "statikus IP cím"-ről beszélünk. Ha az IP cím csak akkor derül ki, amikor az Internet kiszolgáló szerverhez kapcsolódik a PC, vagyis a szolgáltató osztja ki az ő IP tartományából véletlenszerűen, akkor már "dinamikus IP cím"-ról van szó.

Vizsgáljuk meg az IP cím felépítését jellemzőit. Az IP cím egy 4 byte-ból, azaz 32 bit-ből álló számsorozat. Leggyakrabban pontokkal elválasztott decimális formában találkozhatunk vele: A.B.C.D alakban. Mind a négy tag, 0-255 közötti értéket vehet fel.

Példa egy lehetséges IP címre: 192.168.2.15

Egy rendkívül fontos kérdés az, hogy egy olyan hálózatban, amelyben több ún. "alhálózat" van fizikailag összekötve, milyen IP címeket alkalmazhatunk. Ám mielőtt végleg elvesznénk az új kifejezések dzsungelében, nézzük meg, hogy mi az alhálózat és a hálózat közötti különbség.

Tételezzük fel, hogy otthon a lakásban van egy egymással fizikailag összekötött számítógép rendszer. Mindenkinek külön gépe van, és az összekötések révén, a négy PC kommunikálni tud egymással. Mondjuk a szomszédban, és a ház még néhány lakásában is van egy-egy ilyen rendszer. Ezek mindegyike egy önálló számítógépes hálózat. Ha felmerül az igény, hogy az egyes lakásokat is kössük össze egymással, akkor ez kétféleképpen tehető meg:

1. átkábelezzük az egész épületet, és csinálunk egy nagyobb, -minden PC-t magába foglaló- új hálózatot. (elég bonyolult és valljuk be: ostoba megoldás...)

2. Meghagyjuk a már meglévő lakásonkénti hálózatokat, és a lakásokat fűzzük fel egy új hálózattá. Ebben a pillanatban már a lakásokban lévő összekötött PC-k a házban kialakított hálózat alhálózataivá válnak.

Visszatérve az előbbi kérdésre, hogy tudniillik: milyen IP címeket használhatunk a fizikailag összekötött alhálózatok esetében? Nos ennek a kérdésnek a megválaszolásához szükség van, -az IP címeken kívül,- az úgynevezett "hálózati maszk"-ra. (netmask) A netmask ugynúgy néz ki mint egy IP cím, tehát 4 pontokkal elválasztott decimális szám. A hálózati maszk azonban azt mutatja meg, hogy egy adott alhálózaton, az elejétől fogva, hány bitnek kell megegyeznie az IP címben. Ha például az első 24 bitnek kell megegyeznie, akkor az alhálózati maszk a következő lesz:


Netmaszk

A megismert módon, a fenti netmask helyesen felírva: 255.255.255.0 lesz. Ebből az derül ki, hogy ennek az alhálózatnak 256 tagja lehet. Vagyis ezzel a maszkkal 256 db. PC köthető hálózatba. Természetesen ezeknek a gépeknek egyedi IP címei lesznek, de a maszk által meghatározott módon, minden PC-nek az IP címe ugyanazzal a három taggal kezdődik! Tehát ennek a hálózatnak a gépei pl. az alábbi IP címekkel rendelkezhetnek:

192.168.0.1
192.168.0.2
192.168.0.3
.....
192.168.0.255

Látszik, hogy az IP cím két részre osztható. Az egyik része az alhálózat minden gépén ugyanaz, ez tehát a hálózati azonosító. A másik, a maradék rész az adott alhálózaton belül egy gép (hálózati kártya) egyedi azonosítója. Tehát a: 192.168.0.113 IP címnél, a: 192.168.0 a hálózati azonosító, a gépet az alhálózaton belül pedig a: 113 azonosítja.

Ha a hálózati azonosító végén lévő biteket nullára írjuk, akkor megkapjuk a az alhálózat címét, ami egyúttal az adott alhálózat legkisebb címe. Példánkban: 192.168.0.0
Az IP címeket, eredetileg három csoportba osztották. (Itt jegyezzük meg, hogy az IP címek rohamos fogyása miatt ez a rendszer már jelenleg is átalakulóban van.)

1. "A" osztályú IP cím.
Az "A" osztályú hálózatban, az első byte a hálózati azonosító. A fennmaradó 24 bit azonositja a hálózati interfészeket (PC-ket) Egy "A" osztályú hálózat 2 a 24. hatványon, azaz: közel 16 millió(!) tagból állhat.


A osztályú IP tartomány

Ilyen nagyméretű hálózat kevés létezik. Egy "A" osztályú hálózat az alábbi IP tartományt használja: 1.0.0.0 - 127.255.255.255

2. "B" osztályú IP cím.
A "B" osztályú hálózatban, az első 2 byte a hálózati azonosító. A fennmaradó 16 bit azonosítja a hálózati interfészeket (PC-ket) Egy "B" osztályú hálózat 2 a 16. hatványon  azaz: 65536 tagból állhat.


B oszályú IP tartomány

A "B" osztályú, közepes méretű hálózat a: 128.0.0.0 - 191.255.255.255 IP tartományt használja.

3. "C" osztályú IP cím.
A "C" osztályú hálózatban az első 3 byte a hálózati azonosító. A fenmaradó 8 bit azonosítja a hálózati interfészeket (PC-ket) Egy "C" osztályú hálózat 2 a 8. hatványon azaz: 256 tagból állhat.


C osztályú IP tartomány

A "C" osztályú, kisméretű hálózat a: 192.0.0.0 - 223.255.255.255 IP tartományt használja.
A 224.xxx.xxx.xxx és a 255.xxx.xxxx.xxx számmal kezdődő IP címeket speciális célokra tartják fenn, ezért ez a tartomány nem osztható ki. Vannak azonban úgynevezett "privát" IP címek, amelyek általában magáncélra, internethez nem kapcsolódó gépekhez alkalmazhatóak.

"A" osztályú hálózathoz: 10.0.0.0
"B" osztályú hálózathoz: 172.16.0.0 - 172.31.0.0
"C" osztályú hálózathoz: 192.168.0.0 - 192.168.255.0

Van egy speciális hálózati cím, nevezetesen a: 127.0.0.0 Ez a cím, helyi IP forgalomhoz van fenntartva, és ezen belül a: 127.0.0.1 az űgynevezett "LOOPBACK" (visszahurkoló) interfész címe. Ez egy "virtuális" hálózati kártya, amely olyan gépeken is lehetővé teszi a TCP/IP alapú tevékenységet, amelyben fizikailag nincs is hálózati kártya.

Az IP címek, tartományok kiosztása, és nyilvántartása a Network Information Center (NIC) nevű szervezet feladata. Magyarországi szervezetét megtalálod, a: www.nic.hu URL címen. Tekintettel arra, hogy a még ki nem osztott IP tartományok köre rohamosan fogy, a szükség elvezetett a "C" osztályúnál kisebb tartományokhoz is.

Nézzünk meg egy negyed "C" osztályú tartományt. Az elv ugyanaz, mint a korábban megismert, vagyis az alhálózat azonosítója az első 3 és 1/4 byte.


negyed C osztályú IP tartomány

Vegyük például, a: 192.168.0.0 hálózati címet. Ha elosztjuk a fenti táblázat szisztémája szerint négy egyenlő nagyságú IP tartományra, akkor a négy tartomány kezdő és végcímei az alábbiak szerint alakulnak:

192.168.0.0 - 192.168.0.63
192.168.0.64 - 192.168.0.127
192.168.0.128 - 192.168.0.191
192.168.0.192 - 192.168.0.255


Minden alhálózatban vannak fenntartott címek. Az előbbiekben már volt arról szó, hogy a legkisebb cím, az alhálózatot címzi meg, ezért hálózati címnek (hálózati kártyacímnek) nem osztható ki. Ugyanígy foglalt az adott alhálózat legnagyobb IP címe is, mégpedi azért, mert ez a cím van kijelölve üzenetszórásra (broadcast) Ezen a broadcast címen az alhálózat valamennyi eleme, tagja elérhető. Ez az adattovábbítás szempontjából igen fontos.

Nézzük meg egy IP csomag továbbítását.
Első példánk, egy egyszegmensű hálózat lesz, ahol egyetlen kábel köti össze az összes PC-t. A küldő gép IP címe legyen pl.: 192.168.0.193. A hálózat "C" osztályú, innen már tudjuk, hogy a netmaszk: 255.255.255.0. A célállomás IP címe, -ahová a küldő indítja az adatcsomagot,- 192.168.0.253.

A küldő PC a fenti három adatból meg tudja állapítani, hogy a célgép ugyanazon az alhálózaton van, mint ő maga. Az adatok elküldéséhez, szükség van a célgép ethernet címére. Ezt a küldő gép le tudja kérdezni egy ethernet-specifikus ún. ARP kérdéssel (Adress Resolution Protokoll) Ez az a kerdes, ami a broadcast címre megy, (az alhálózat legnagyobb címe) így az összes gép megérti, de csak a keresett IP című gép fog rá válaszolni, mégpedig a saját ethernet címével. (az ethernet címet a hálózati kártya, a gyártásakor kapja meg) Ezután a küldő PC az IP csomagból ethernet csomagot állít elő, és elküldi azt.

De mi van olyankor, ha a hálózat nem egyszegmensű, hanem több alhálózatból áll?

Ebben az esetben szükség van egy forgalom irányító eszközre is. (router)  A router, egy olyan hálózati eszköz, amely 2 vagy több hálózati interfésszel rendelkezik, és a feladata, hogy összekössön több fizikai hálózatot. (természetesen ha egy PC-be két hálózati interfészt építünk, akkor az is lehet router!) Ilyenkor a hálózatba kapcsolt gépeknél az IP címen és a netmaszkon kívül kívül kell ismerni, és beállítani az alapértelmezett átjáró útvonalát (default gateway) Az esetek többségében ez megegyezik az azonos alhálózaton lévő router IP címével. Nézzünk mos egy konkrét példát a routolás megértéséhez:


Routolás

Amint az látható, a két "fél C osztályú" tartományt egy olyan router köti össze, amelynek mindkét alhálózathoz van IP címe! A küldő gép, a saját IP címéből és a netmaszkból, valamint a célgép IP címéből rájön hogy nincsenek egy alhálózaton (szegmensen). Ezért a nála beállított alapértelmezett átjáróhoz fordul (default gateway) és ide küldi el az adatcsomagot. A routerben kiderül, hogy a célgép IP címe, a router másik interfészével azonos alhálózaton (szegmensen) van, így a már ismert módon a küldemény célba ér.

Ha a cél a router egyik interfészével sincsen közös alhálózaton, akkor ő is továbbküldi a csomagot a saját alapértelmezett átjárójára és így tovább mindaddig, amíg az egyik gateway talál egy számára megfelelő szegmenst.

A TCP/IP alapú hálózatokban a címzés az IP címekkel történik. Ezzel a kommunikáció kiválóan működik, de a mindennapi használat során igen nehézkessé válhat. Gondolj csak arra, ha már szörföztél az interneten, hogy hogyan jutottál el például a Linux weboldalára? Valószínűleg nem ezt írtad be a böngészödbe, hogy: http://212.40.96.73 bár az eredmény ugyanaz, mintha ezt írtad volna: http://www.linux.hu Szívesebben használjuk a szemléletesebb szimbolikus címeket (DNS neveket) A domain név szolgáltatás szerverei biztosítják számunkra azt, hogy szemléletesebb nevek megadásával az adott nevet megfelelteti az azt jelentő IP címmel.

Ezek a szimbolikus nevek egy jobbról induló hierarchiában foglalnak helyet. Nézzünk egy ilyen nevet közelebbről és fejtsük meg, hogy mit is jelentenek a részei. Nos a kérdéses szimbolikus név legyen pl.:

http://www.uhulinux.hu

Ebben a névben a ".hu" végződés, a felsőszintű domain arra utal, hogy ez egy magyar oldal. Az aldomain, az: "uhulinux" az oldal jellegére utal, talán nem kell magyarázni... :o) A "www" a world wide web mozaikszava, és világméretű, széles hálózatot jelent. (átvitt értelemben ugyan, hiszen a hálózat angolul network, és a web szó szerint pókhálót jelent, de az internetet ismerve, az elnevezés teljesen találó) A http pedig az internetes böngészés szabványára utal: HiperText Transfer Protokoll.

Mivel a TCP/IP alapú hálózatoknál (az Internet is ilyen) az adatcsomagok IP cím alapján jutnak célba, ezért szükséges, a nevekből megállapítani az IP címet. Ezt a feladatot végzik el az ún.: DNS szerverek (itt a dns nem dezoxi-ribo-nukleinsavat jelent, hanem Domain Name System-et) Minden körzetben van egy regisztrált DNS kiszolgáló amelyik felel a körzetért. A DNS szerverek azonban nem csak arra képesek, hogy a névből IP címet állítsanak elő, hanem arra is, hogy az IP címre névvel válaszoljanak. (reverse funkció)