5.3.1.5. Interior Gateway Routing Protocol (IGRP)

Mikor a RIPv1 gyengeségeire fény derült, a routergyártók választás elé kerültek. Vagy megvárják az IETF jobb, szabványos routing protokollját, vagy saját fejlesztésbe kezdenek. A cisco nevû cég ez utóbbi mellett döntött, fejlesztésének eredménye az IGRP, mely elôször 1988-ban került a piacra. Az IGRP szorosan kötôdik kifejlesztôjéhez, amely számos alkalmazott megoldást szabadalommal véd.

Az IGRP egy továbbfejlesztett distance-vector protokoll, alapvetô mûködése megegyezik a RIP-ével. Néhány kisebb különbség mellett (a periodikus frissítô üzenetek ritkábban, 90 másodpercenként követik egymást) számos döntô különbség is van.

Az IGRP összetett költséget használ. A sávszélesség és a késleltetés vagy az interface típusából következik, vagy a hálózatmanagement állíthatja be. Mindkét érték széles skálán változhat (1200 bit/s és 10Gbit/s valamint 10 µs és 165 másodperc között). A link-ek megbízhatóságát és foglaltságát a protokoll méri és terjeszti. Ezen a 4 komponensen felül még kettôt használ az IGRP, melyek azonban nem vesznek részt az optimális út kiszámításában. Az egyik a hop-szám, a másik pedig az útvonal MTU-ja. Ezen költségelemek segítségével számolható az adott út teljes költsége. Beállítható, hogy melyik tényezôt mekkora súllyal vegyen figyelembe a protokoll, a kezdeti beállításban csak a sávszélesség és a késleltetés játszik szerepet; a számított költség így arányos a csomagtovábbítási idôvel.

Az IGRP a hurkok kiküszöbölése érdekében használja a split horizon és a triggered update megoldásokat, megtoldva a path holddown (út letiltás) módszerével. Ennek lényege, hogy ha egy router érzékeli, hogy eddig használt útvonala már nem él, karanténba kerül, ami alatt nem módosíthatja az adott célpontra vonatkozó bejegyzését. A hurkok kialakulásának egyik leggyakoribb lehetôsége ugyanis az, hogy a meghibásodást észlelô router-hez, mielôtt továbbadhatná minden környezetében levô router-nek a kérdéses célpont elérhetetlenségét jelzô információt, valahonnan máshonnan egy elavult, a hálózat elérhetôségét mutató információ érkezik. Ezt a path holddown kiküszöböli. Hátránya az, hogy ha a kérdéses célponthoz létezik egy másfele vezetô, csak az eddiginél nagyobb költségû és ezért nem használt út, akkor ez a második út az elsô meghibásodása esetén nem tud érvényre jutni a karantén miatt. A karanténnak, hogy hatásos legyen legalább 2 periódus (180 másodperc) hosszúnak kell lennie, ennyi ideig elérhetetlen az adott hálózat, bár létezik odavezetô út.

A késôbbi IGRP implementácók ezért inkább a route poisoning (út mérgezés) módszerét használják. Ez arra a megfigyelésre épül, hogy ha hurok alakul ki, az adott út költsége folyamatosan emelkedik. A költség emelkedése nem feltétlen hurkot jelez, lehet, hogy a távolban meghibásodott egy link és egy drágább útvonal került kiválasztásra, mégis az IGRP itt konzervatív. Ha egy út költsége 10%-nál jobban nô, akkor az adott célpontot elérhetetlennek minôsítjük, míg a következô periodikus frissítô üzenet meg nem erôsíti az új ­megemelkedett­ költséget. Így egy célpont maximum 90 másodpercig elérhetetlen, ami jelentôsen rövidebb, mint a path holddown esetén.

Az IGRP képes a multipath routing-ra is. Bár elterjedt hiedelem, hogy erre a distance-vector protokollok képtelenek, ez nem így van. Igaz, hogy sok implementáció csupán a legjobb útvonalat tárolja, de ez nem az algoritmus, hanem az implementáció tulajdonsága. Az IGRP minden célponthoz útvonalak egy listáját tárolja, azaz emlékszik az összes szomszédja által terjesztett útra, nem csupán a legjobbikra. A lista minden eleméhez egy költség és a továbbítási interface tartozik, valamint az a router, aki felé az útvonal vezet. Ha két router között több fizikai összeköttetés is van, mindegyik szerepelhet a listán. Ennek két elônye van. Egyrészt a több lehetséges útvonal között megoszthatjuk a forgalmat, másrészt pedig ha a legjobb út megszûnik, azonnal átkapcsolhatunk a következôre, minden várakozás nélkül.

5.3.1.6. Enhanced IGRP (EIGRP)

Az IGRP meglehetôsen egyszerû protokoll, kísérletet tett a RIP gyenge pontjainak korrigálására, de korántsem tökéletes. A legnyilvánvalóbb hiányosság még mindig a hurkok kialakulása körül van. A path holddown és a route poisoning megakadályozza a hurkok kialakulását, mindössze ideiglenes elérhetetlenséget eredményezve, melyek azonban meglehetôsen hosszú ideig tarthatnak. Az IGRP a RIP-hez hasonló szinkronizációs problémákkal küzd, valamint nem támogatja a változó hosszúságú subnet-ek definiálását és a célpontok aggregálását, melyekre pedig a CIDR routing miatt szükség lenne. (Ezzel bôvebben foglalkozunk még a fejezet hátralevô részében.)

Az EIGRP a hurkok kialakulását a DUAL (Diffusing Update Algorithm) algoritmus segítségével akadályozza meg. A DUAL J.J. Garcia-Luna-Aceves nevéhez [4] fûzôdik és mind a distance-vector, mind a link-state protokollok esetén megakadályozza a hurkok kialakulását. Mi most a distance-vector verziót tekintjük át, mely az EIGRP-ben megvalósításra került, a link-state verzió hasonló, lényegében befagyasztja a topológiai adatbázist, a topológiai változások tovaterjedése alatt.

A DUAL mûködése arra épül, hogy alacsonyabb költség használata nem eredményezhet hurkot. Azon router-ek, amelyek stabil táblázattal rendelkeznek, „passzív" állapotban vannak. Ha egy útvonalat illetôen új hirdetmény érkezik, és annak költsége alacsonyabb, mint az eddigi, nincs probléma, nyugodtan használhatjuk az új utat, ha eddig nem volt hurok, ezután se lesz. Ha az új költség magasabb, nem vesszük figyelembe, hacsak nem az eddigi útvonal elsô router-étôl érkezett. Ebben az esetben fennáll a hurok kialakulásának veszélye. Ilyenkor elôször megkísérlünk egy másik útvonalat használni, amit korábban hallottunk egy másik router-tôl. (Itt is, mint az IGRP-ben, minden szomszédunk hirdetményeit megjegyezzük.) Ha tárolunk olyan útvonalat, amely az új költségnél olcsóbb, akkor azt használjuk, terjeszteni kezdjük és nincs probléma. Ha nem áll rendelkezésre korábban megismert olcsóbb út, a router nekilát a „diffúziós" számításnak, „aktív" állapotba lép. Ennek ideje alatt az adott bejegyzést befagyasztjuk. Minthogy korábban nem voltak hurkok, a fagyasztás nem rontja a helyzetet, legfeljebb fekete lukba küldi a csomagokat, ha a megemelkedett költség meghibásodott link felé vezet. Ez azonban csak a számítás ideje alatt lesz így.

A diffúziós számítás menete a követezô. Az aktív router elôször küld egy „lekérdezô" üzenetet a szomszédainak, melyben megemlíti a kérdéses bejegyzést az új, magasabb költséggel, amit még nem fogadott el. A szomszédok elôször egy közönséges frissítô üzenetnek veszik a lekérdezést. Ha ez a frissítés passzív állapotban hagyja ôket, vagy azért, mert az adott célhoz nem az aktív router-en keresztül vezet útjuk, vagy pedig azért, mert találtak egy korábban tárolt olcsóbb utat, akkor azonnal válaszolnak megújított bejegyzésükkel. Ha a lekérdezés aktív állapotba állítja ôket, ôk is továbbadják a lekérdezést és várnak a válaszokra. Miközben aktív állapotban vannak, kaphatnak lekérdezéseket, amire válaszolnak is, de mindig a befagyasztott költséggel. Ha a válaszok megérkeznek, kiválasztják a legolcsóbbat, módosítják bejegyzésüket, passzív állapotba állnak vissza és válaszolnak annak, akitôl a kezdeti lekérdezést kapták. A válaszok így végül visszajutnak a problémát eredetileg érzékelô router-ig ­a hálózat ismét stabil állapotba került.

A DUAL alkalmazása komoly változtatásokat igényelt az IGRP-n. Minthogy egy router az összes szomszédja bejegyzéseit tárolja és a frissítô üzeneteket nyugtázza, nincs szükség periodikus frissítô üzenetekre, az elküldött üzeneteknek pedig nem kell a teljes táblázatot tartalmaznia, csupán a változó részeket, hisz a nem változó részek a nyugtázás miatt biztos, hogy eljutottak a szomszédokig. Emellett különbséget kell tenni a közönséges frissítô üzenetek (melyek passzív állapotban hagyják a router-t) és a lekérdezô üzenetek között. Ha pedig nincsenek periodikus frissítô üzenetek, akkor valamilyen más módon kell megfigyelni a link-ek állapotát. Ezen okok miatt az EIGRP ötféle üzenetet használ:

  1. „Hello" üzenetek, melyek a szomszédok felderítésére és a link-ek állapotának tesztelésére használatosak.
  2. „Frissítô" (Update) üzenetek, melyek egy passzív router módosított táblázatának egy részét hordozza.
  3. „Lekérdezô" (Query) üzenetek, melyek a RIP és IGRP lekérdezésektôl eltérôen nem csupán információ lekérdezésére való, hanem egy aktív router új bejegyzését tartalmazzák és kiváltják a diffúziós számítást.
  4. „Válasz" (Reply) üzenetek, melyek a lekérdezésekre válaszolnak.
  5. „Kérések" (Request) üzenetek, melyek a RIP és IGRP lekérdezésekhez hasonlóak, csupán frissítô üzeneteknek a szomszédokból való kiváltására használatosak.

Az EIGRP nem csupán a DUAL bevezetésével hozott újdonságot. Egy cél (állomás, link (subnet) vagy hálózat) egy IP címmel és egy maszkkal jellemezhetô, ez lehetôvé teszi a változó hosszúságú subnet-ek alkalmazását, valamint a bejegyzések aggregálását, errôl bôvebben a CIDR fejezetben olvashatunk.

Ilyen módon az EIGRP router-ek több, egy irányba esô célpont felé vezetô utat aggregálhatnak, ami csökkenti a routing táblák méretét. Errôl bôvebben a Classless routing címû részben olvashatunk.

Az EIGRP ezen felül képes együttmûködni az IGRP-vel, lehetôvé téve a fokozatos áttérést.