Routing

Először is érdemes definiálni mi is az az IP routing:

Az IP Routing olyan folyamat, amely segitségével egy több hálózati interfésszel rendelkezõ host eldönti, hogy a kapott IP csomagokat merre továbbítsa.

Nézzünk erre egy gyakorlati példát:

Képzeljünk el egy kis céget amelynek van egy routere. Ez ket Ethernet interfésszel rendelkezik a cég két alhálózatához, és egy PPP interfésszel az Internet felé. Amikor a router kap egy csomagot valamelyik interfészén keresztül, a routing az a mechanizmus amelynek segitségével eldönti, hogy melyik interfészén kell tovább küldenie.

Az egyszerű host-ok is rendelkeznek routing táblával. Minden Internet host-nak legalább két interfésze van. Egy virtuális loopback interfész, melyet a lokális visszacsatolásokhoz használ a rendszer, és egy valódi hálózati interfész (Ethernet, PPP, stb.)

Ezek után nézzük hogyan is működik ez a mechanizmus. Minden host tartalmaz egy specialis listat a routing szabályokról, ezt hívjuk routing táblának. Ennek a táblának a sorai legalább három információt kell hogy tartalmazzanak. Egyrészt a cél címét (ez gyakran egy alhálózat címe és netmask-ja), az interfész amelyen a csomagot továbbítja, és a harmadik opcionális, egy router címe amely a csomag továbításában a következő lépcső szerepet tölti be.

Ezt a táblát UNIX-ok alatt a következo paranccsal listázhatjuk ki:

user% /sbin/route

Linux alatt a kerneltol közvetlenul az alábbi paranccsal is lekérdezhetjük:

user% cat /proc/net/route

MS Windows 9x és NT alatt:

c:\> route print

Maga a routing folyamat egyszeru: ha kap egy csomagot megvizsgálja célcímet és összehasonlítja a tábla minden bejegyzésével. Kiválasztja a legjobban illeszkedő sort (a legspecifikusabb az illeszkedo sorok közül) és továbbítja a csomagot az adott interfész felé. Ha a gateway mezo is ki van töltve, akkor az adott gépnek küldi tovább, ha nincs kitöltve, akkor úgy veszi, hogy a célgép az adott hálózaton helyezkedik el, és közvetlenul oda továbbítja.

Ezt a táblát UNIX-ok és MS Windows-ok alatt a "route" paranccsal kezelhetjük. A parancsot különbözo paraméterekkel meghívva hozzáadhatunk, törölhetünk vagy módosíthatunk sorokat a táblában. (Ezt a táblát az operációs rendszerek kernel-je kezeli, a "route" parancs rendszer hívásokkal kéri a kernel-tol a tábla módosítását.)

Nézzünk egy UNIX-os példát a routing tábla kezelésére.

Elôször is konfiguráljuk a hálozati interfészt. Beállítjuk az IP címet és a netmask-ot:

root# ifconfig eth0 192.168.1.22 netmask 255.255.255.0 up

Ezután hozzáadunk egy sort a routing táblához, hogy megmondjuk a kernelnek, hogy

a 192.168.1.* IP címu gépeknek szánt csomagokat ezen az interfészen küldje ki:

root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0

(Lényeges a "-net" paraméter megadása. Ez jelzi, hogy a megadott cím egy hálózatot

jelöl. A "-host" paraméterrel adhatunk meg egyes gépeket.)

Ezzel a bejegyzéssel már létrehozhatunk IP kapcsolatokat a szegmensünk gépeivel. Az összes többi, szegmensünkön kívüli gépekhez is be kell állítani routing szabályt. Erre használhatjuk az úgynevezett "default" szabályt. Ezt használja a rendszer abban az esetben, ha egyik másik sort sem tudta illeszteni. A default gateway-t a alábbi paranccsal állíthatjuk be.

root# route add default gw 192.168.1.1 eth0

(A "gw" paraméter jelenti azt, hogy az IP cím egy gateway vagy router címe vagy neve,

amely a csomagot továbbítja a célhoz.)

Az eddigiekben ismertetett routing módszert a "static routing". Ez a módszer csak egyszrű hálózatokban használható. A legnagyobb problémája, hogy ha valamelyik hálózati kapcsolat megszakad, akkor nem tud automatikusan alkalmazkodni hozzá és egy másik kapcsolaton továbbítani a csomagot. Ennek megoldására különbözo technikákat fejlesztettek ki, amelyek automatikusan módosítják a routing táblát a hálózati hibák kikerülésére. Ezeket a technikákat összesíto néven "dynamic routing protocols"-nak nevezzük.

A legáltalánosabban használt a RIP (Routing Information Protocol) és az OSPF (Open Shortest Path First Protocol). A RIP-et foként a kisebb hálózatoknál használják mint például egy közepes méretu vállalat hálózata. Az OSPF alkalmasabb a nagyobb hálózatok

kezelésére, ahol a lehetséges utak száma nagyobb. Ezek UNIX-os megvalósításaiból két példa: "routed" - RIP, "gated" -RIP,OSPF.