5.3.2.1. Exterior Gateway Protocol (EGP)

Az EGP egy meglehetôsen egyszerû, az elérhetôségi információkat terjesztô protokoll. Specifikációja elôször az RFC827-ben jelent meg 1982-ben. Ezt némileg módosították 1984-ben és RFC904 szám alatt újra kiadták. A protokoll 3 feladatot lát el:

  1. Szomszédok felderítése, melynek során két EGP router megegyezik, hogy elérhetôségi információkat adnak át egymásnak.
  2. Szomszédok elérhetôségének tesztelése, mely folyamatosan zajlik.
  3. Elérhetôségi információk cseréje.

Mindhárom feladat üzenetei IP csomagokban haladnak, a protokoll azonosítója 8.

Az elsô lépésben a két kommunikáló router megegyezik abban, hogy szomszédokká válnak és információt cserélnek. Ez nem csupán egy technikai kérdés, hanem politikai is, lehetséges, hogy az egyik router AS-e nem kíván együttmûködni a szomszédjával. Ha egy router megtagadja a kapcsolatot, indokot is szolgáltathat, az indokok között például a bejegyzéseknek rendelkezésre álló hely kimerülése vagy adminisztratív tiltás szerepelhet.

Az elérhetôség tesztelése Hello és IHU (I Heard You) csomagok cseréjével folyamatosan zajlik, hasonlóan az OSPF Hello protokolljához.

Az elérhetôségi információk cseréje mindig lekérdezéssel zajlik, az egyik fél kéri a másikat a teljes táblázata elküldésére. Az EGP tiltja a táblázatok túl gyakori elküldését, még ha a partnerünk túl gyakran kéri is. Az elküldött táblázat bejegyzései tartalmazzák a kérdéses hálózatot, mint célpontot, a távolságot és a router-t, amin keresztül a hálózat elérhetô. Ez utóbbinak akkor van jelentôsége, ha 2 AS közös link-jén több router található és nem a hirdetônek kell a csomagokat továbbítani. Tekintsük a következô ábrát, melyen mind a hat router EGP-t futtat.

39. ábra. Szomszédos AS-ek közötti megosztott link

Ilyenkor alaphelyzetben 9 EGP kapcsolat épülne ki, erre azonban nincsen szükség, hiszen az bármelyik router tudja, hogy a vele közös AS-ben levô másik két router-en keresztül milyen célpontok érhetôk el. Elég tehát, ha csak egy EGP kapcsolat épül ki, mondjuk D és C között és a másik 4 router nevében is ezen két router adja át az elérhetô hálózatok listáját. Ilyenkor azonban érdemes minden elérhetô hálózat mellé azt is odaírni, hogy melyik router-en át érhetô el. Ha ezt nem tesszük meg, akkor például egy E-n keresztül elérhetô hálózatba irányuló csomagokat a hirdetô (D) router kap meg az X AS-bôl, és neki azt még egyszer továbbítania kell a közös link-en E felé. Ez nem hatékony, sokkal egyszerûbb, ha az X AS-bôl közvetlenül E-ek címzik, bár esetleg E nem is futtat EGP protokollt.

A hirdetett célpontok távolságáról semmit sem ír a szabvány, csak annyit, hogy a maximális (255) érték az elérhetetlenséget jelzi. Az sincs megkötve, hogy ha egy router hall egy célpontot valamilyen távolsággal, akkor ugyanezzel, vagy nagyobb távolsággal kell az utat továbbadnia. A távolság így sokkal inkább politikai szempontok tükröztetésére használatos, semmint a legrövidebb út választására.

Egy célpontot akkor hirdetünk, ha

  1. a mi AS-ünkön keresztül elérhetô és
  2. a politikánk olyan, hogy mi abba az abba a célpontba tartó csomagokat ki szeretnénk szolgálni.

Az elsô szempont érthetô, elérhetetlen hálózatokat hirdetni szabotázsnak minôsül, a második azonban bôvebb magyarázatra szorul.

40. ábra. Két hálózati elôfizetô közti link

A fenti ábrán az X és Y AS-ek megegyeztek a Z AS-sel (szolgáltatóval), hogy forgalmukat rajta keresztül bonyolítják és ezért fizetnek. Azonban X és Y nagyon közelálló szervezetek és egymással igen sokat kommunikálnak, célszerûnek tartják tehát, ha egymásnak küldött csomagjaikat közvetlenül adják át egy saját összeköttetésen és nem pedig Z-n keresztül. Ezért létrehoznak egy „hátsó" link-et, mely sokkal olcsóbb, mint Z. Tekintsük a dolgot az X AS szemszögébôl. E kifelé terjeszteni fogja az összes X-ben lévô hálózatot, hogy Y-ból feléje áramoljon a forgalom. Ezeknek a hálózatoknak információi az IGP protokoll segítségével el fognak jutni a C router-be is, amely azonban nem terjeszti ôket, hogy a Z-bôl jövô forgalom ne raja (és így Y-on), hanem az A router-en keresztül áramoljon X-be. Hasonlóképp, a Z-tôl, C által megismert célpontokat az IGP el fogja juttatni F-be, de az nem terjeszti E felé, hiszen az X-bôl Z-be (vagy távolabb) küldendô csomagokat nem az Y-on át, hanem közvetlenül Z-nek kell küldeni, A-n keresztül.

Ami a feni szituáció költségvonzatát illeti, E és F alacsony költséggel terjessze egymásnak X és Y hálózatait, míg A és C kifelé ennél magasabb költséggel. Ekkor remélhetjük, hogy ugyanezeket a hálózatokat Z legalább ekkora költséggel fogja C és A felé terjeszteni, vagyis olcsóbb lesz E-n és F-n keresztül elérni a másik AS-t, mint Z-n át.

A korai NSFNet-ben, mint gerinchálózatban (a fenti példában Z) az a konvenció alakult ki, hogy a helyi hálózatok (X és Y) minden elsôdleges kapcsolatukon 0 költséggel terjesszék a gerincnek a célpontokat, míg a másodlagosokon ennél nagyobbal. Az NSFNet pedig a megismert célpontokat egységes 128 költséggel terjesztette minden helyi hálózat felé, így a „hátsó" összeköttetéseken ennél kisebb vagy nagyobb költséget megadva lehetett szabályozni, hogy az adott összeköttetés csak a gerinchálózat meghibásodása esetén kerüljön használatba, vagy minden esetben. Az RFC1092 részletezi az NSFNet-ben használatos EGP költség-stratégiákat.

Az EGP úgy mûködik, mint egy distance-vector protokoll. Több útvonalat hallva az olcsóbbat használjuk és ­ha a politika engedi­ terjesztjük. Ám az EGP semmiféle mechanizmust nem tartalmaz a hurkok földerítésére és csupán okosan átgondolt konfigurálás esetén mûködik helyesen. Tervezésekor az Internet hierarchikus hálózat volt és az NSFNet töltötte be a gerinc szerepét, az átgondolt konfiguráció megoldható volt. Manapság mindez nem így van, így az EGP kissé keveset tud, nem minden topológia mellett használható.

A topológiai megkötések mellett hiánya, hogy semmi sem véd a hamis információknak a rendszerbe juttatásától. Bármely EGP router terjeszthet nagyon olcsó utakat, magára irányítva ezzel a forgalmat és teljesen megzavarva a hálózat mûködését. Az EGP üzenetek lehetséges nagy méretük ellenére egyetlen IP csomagban kerülnek feladásra, ami gyakran eredményezi ezen csomagok fragmentálódását. Ez pedig káros, hisz ha a fragmentek közül egyetlen egy nem érkezik meg, vagy hibás, az egész csomagot újra kell adni, míg ha az üzenetet több kisebb részre tördelné maga az EGP, hiba esetén csak azt az egy részt kellene újraadni, a többi részben közölt információ pedig addig is felhasználható lenne.

A route-olás politikai megfontolásait csak nehezen, a költségek beállításával érhetjük el. Példának okáért, tegyük fel, hogy egy szervezet egyaránt kapcsolódik egy kormányzati pénzekbôl finanszírozott akadémiai gerinchez és egy üzleti IP szolgáltatóhoz. Üzleti partnereit csupán üzleti szolgáltatóján keresztül érheti el, a kormányzat hálózata nem terjeszti profitorientált szervezetek címeit. Az nonprofit szervezetekkel viszont a kormányzat hálózatán kommunikálna, mert bár ezek elérhetôk a szolgáltatón keresztül is, de arra fizetni kell érte. Ha a 2 gerinc által terjesztett távolságokra hagyatkozunk, a véletlenre bízzuk melyiken keresztül továbbítódjanak csomagjaink az akadémiai szféra felé, ami egyfajta orosz rulett jellegû költséggazdálkodáshoz vezet. A megoldás a manuális konfiguráció, a hirdetett távolságoktól függetlenül mindig a kormányzati gerincet kell használni, ha a cél arra is elérhetô. Ráadásul ha több, különbözô költségû szolgáltatóhoz csatlakozunk, azok között prioritásokat kell felállítani, hogy minden esetben a legolcsóbbat használjuk, ám ezek a prioritások az árakkal együtt dinamikusan változhatnak az idôben. Ez pedig komoly karbantartási költségeket jelenthet.