Vyšlo v týdeníku Computerworld č. 41/92 v roce 1992
Vytištěno z adresy: http://www.earchiv.cz/a92/a241c110.php3

Směrování v TCP/IP sítích - IV.

V minulém dílu jsme dospěli k představě toho, že Internet vznikal a postupně se rozšiřoval připojováním jednotlivých dílčích sítí či celých skupin dílčích sítí přímo na zárodečnou páteřní síť. V rámci těchto skupin byly jednotlivé dílčí sítě propojeny tzv. vedlejšími bránami (noncore gateways), zatímco na páteřní síť byla celá skupina připojena jedinou, tzv. hlavní bránou (core gateway). Tato hlavní brána přitom pravidelně komunikovala se všemi ostatními hlavními bránami Internetu, a vyměňovala si s nimi potřebné směrovací informace. Díky tomu mohly všechny hlavní brány pracovat s úplnou znalostí celého Internetu, tj. znát nejkratší cestu do kterékoli dílčí sítě. Naproti tomu vedlejší (noncore) brány vystačily jen se znalostí svého bezprostředního okolí (resp. příslušné skupiny sítí, sdílejících stejnou hlavní bránu), a pro všechny ostatní cíle používaly implicitní směrování přes hlavní bránu.

Již minule jsme si ale také řekli, že vedlejší brány spadaly plně do kompetence provozovatelů příslušných skupin sítí, které tyto brány propojovaly (zatímco všechny hlavní brány spravovala jediná centrální autorita). Tito provozovatelé pak měli za úkol vhodně zveřejnit informace o dostupnosti svých dílčích sítí systému hlavních bran, který se o ně již dokázal sám podělit. Otázkou ovšem bylo, jak toto zveřejnění zajistit.

Pokud byla přes hlavní bránu připojena k páteřní síti jen jediná dílčí síť, byla situace triviální. Častěji ale byly k páteřní síti připojovány větší celky - celé skupiny dílčích sítí, vzájemně propojených vedlejšími bránami. Zde již byl zapotřebí vhodný mechanismus, který by kromě vlastního jednorázového zveřejnění umožnil také nezbytnou průběžnou aktualizaci směrovacích informací ve vztahu k hlavním bránám.

Problémem však nebyla ani tak technická stránka věci, jako spíše stránka organizační: která z vedlejších bran má předávat potřebné směrovací informace soustavě hlavních bran?

Kromě toho zde byl ještě jeden důležitý aspekt. Nově připojované skupiny vzájemně propojených sítí byly často samy o sobě rozsáhlé konglomeráty, které dříve fungovaly jako samostatné internet-y (s malým "i"), a měly tedy již vybudovány a implementovány vlastní mechanismy a prostředky řízení a správy. Jejich provozovatelé si samozřejmě chtěli i nadále udržet kontrolu nad svými sítěmi, ale současně s tím získat také všechny výhody, plynoucí z přímého napojení na Internet.

Řešením pak bylo přijetí koncepce tzv. autonomních systémů (autonomous systems). Jejich myšlenka je velmi jednouchá: vzájemně propojené sítě, které spadají pod společnou správu, budou tvořit jediný autonomní systém, za který bude plně odpovídat jeho provozovatel. Současně s tím však bude existovat jednotný způsob vzájemného předávání směrovacích informací mezi jednotlivými autonomními systémy, který budou všichni povinni dodržovat. Jinými slovy: v rámci svého vlastního systému má každý možnost zajistit si přenos a aktualizaci směrovacích údajů podle svého, ale navenek musí všichni postupovat jednotně.

Obrázek 49.1.
Obr. 49.1.: Představa autonomních systémů
Aby toto řešení bylo důsledné, stala se autonomním systémem také původní páteřní síť, resp. celá soustava hlavních bran. Tím se celá struktura Internetu logicky zjednodušila na jediný strom, jehož kořenem je právě autonomní systém, tvořený soustavou hlavních bran - viz obrázek 49.1, srovnej s obr. 48.1. a 48.2.

Pro vzájemnou komunikaci mezi autonomními systémy pak byl navržen potřebný protokol EGP (Exterior Gateway Protocol). Ten vychází z představy, že v rámci každého autonomního systému je jedna brána pověřena předáváním směrovacích informací navenek. Tato brána, jejíž výběr je plně v moci správce příslušného autonomního systému, je pak označována jako externí brána (exterior gateway). Prostřednictvím protokolu EGP pak tato brána komunikuje s externími bránami jiných autonomních systémů - viz obrázek 49.2.

Obrázek 49.2.
Obr. 49.2.: Působnost protokolů EGP a IGP
Protokol EGP umožňuje, aby se jeden autonomní systém nejprve dohodl s jiným, že si směrovací informace vůbec budou vyměňovat (nebo si je také mohou odmítnout předávat). Dále umožňuje, aby jednotlivé autonomní systémy pravidelně testovaly dostupnost druhých autonomních systémů (tj. testovaly, zda spojení s nimi je průchodné). Hlavním úkolem protokolu EGP však je pravidelný přenos směrovací údajů a informací o průběžných změnách.

Protokol EGP je tedy prostředkem, pomocí kterého může autonomní systém informovat jiné autonomní systémy o dostupnosti dílčích sítí v rámci vlastního autonomního systému, a naopak získávat informace o cestách do dílčích sítí v jiných autonomních systémech. V Internetu ale vzhledem k jeho konkrétní stromovité topologii stačí, když jednotlivé autonomní systémy předávají potřebné směrovací informace soustavě hlavních bran (která je sama o sobě autonomním systémem).

Každý autonomní systém však smí zveřejňovat údaje o dostupnosti pouze pro ty dílčí sítě, které spadají pod jeho správu, tedy jen pro dílčí sítě v rámci vlastního autonomního systému. Nesmí fungovat jako prostředník, který by sám zveřejňoval údaje, získané od jiného autonomního systému.

Jednou ze zajímavých vlastností protokolu EGP je skutečnost, že sice přenáší údaje o "délkách" cest do jednotlivých dílčích sítí, ale pak je již nepoužívá. V důsledku toho vlastně pracuje jen informaci o tom, zda cesta do příslušné dílčí sítě existuje či nikoli. To má zajímavý důsledek: kdyby do některé dílčí sítě existovalo více možných cest, příslušné brány by neměly podle čeho mezi nimi vybírat. Proto jsou při vzájemném propojování autonomních systémů zakázány takové topologie, které by připouštěly více možných cest do stejných cílových sítí. Protokol EGP tedy počítá pouze se stromovitou strukturu, což ale v případě Internetu plně postačuje.

Pokud jde o přenos směrovacích informací v rámci jednotlivých autonomních systémů, zde mají jejich provozovatelé možnost vlastního výběru. Mezi možnosti, které se jim nabízí, patří také samotný protokol EGP, který lze používat i "uvnitř" autonomních systémů (povinný je pouze "vně", mezi autonomními systémy). Další, dosti rozšířenou možností je protokol RIP (Routing Information Protocol), prostřednictvím kterého si jednotlivé vnitřní brány autonomního systému předávají údaje o tom, do kterých cílových sítí vede z které brány cesta a jak je dlouhá (měřeno v počtu mezilehlých sítí). Každá z bran si pak na základě těchto údajů sama dopočítává nejkratší cesty do všech dostupných dílčích sítí způsobem, který jsme si naznačili již v 34. dílu našeho seriálu. Na podobném principu je založen alternativní protokol Hello, který však měří délky jednotlivých cest nikoli v počtu mezilehlých sítí, ale v délce zpoždění při přenosu po této cestě. Společnou nevýhodou těchto algoritmů, které pracují s délkou cest (a jsou proto označovány jako vector-distance algorithms) je jejich velká režie, která navíc při zvětšování počtu bran velmi rychle roste. Z tohoto pohledu jsou pak výhodnější algoritmy, označované společně jako link-state či SPF (Shortest Path First) algoritmy. Ty předpokládají, že každá brána zná topologii celého konglomerátu vzájemně propojených sítí, a pravidelně testuje průchodnost přenosových cest ke svým bezprostředním sousedům. Dvouhodnotové informace o této dostupnosti pak rozesílá všem ostatním bránám, které si na jejich základě, podle tzv. Dijkstrova algoritmu, samy vyhodnocují nejkratší cesty do všech dílčích sítí. Ve srovnání s předchozí skupinou vykazují tyto algoritmy výrazně nižší režii, která při zvětšování počtu bran navíc neroste tak rychle.

Zajímavý je z tohoto pohledu také způsob, jakým si potřebné směrovací informace vyměňovala soustava hlavních bran, nyní tvořící jeden autonomní systém. Původně tyto hlavní brány používaly protokol GGP (Gateway-to-Gateway Protocol), který patří do stejné skupiny, jako protokoly RIP a Hello, tedy mezi protokoly, přenášející údaje o délce jednotlivých cest (v případě protokolu GGP měřené v počtu "přestupních" bran). Vzhledem k velké režii (viz závěr minulého dílu) však byl tento protokol nahrazen protokolem SPREAD (patřící mezi protokoly SPF), na který soustava hlavních bran přešla v roce 1988.

Všechny protokoly, používané pro přenos směrovacích informací mezi jednotlivými bránami "uvnitř" autonomních systémů, se souhrnně označují jako protokoly IGP (Interior Gateway Protocol) - viz též obrázek 49.2.