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.