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

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

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

V minulém díle jsme se začali podrobněji zabývat problematikou směrování v TCP/IP sítích. Řekli jsme si, že na směrování se podílí jak brány, tak i hostitelské počítače, a blíže jsme se zabývali právě rolí hostitelských počítačů. Dnes se podrobněji zastavíme u toho, jakým způsobem se na směrování podílí brány (IP směrovače).

Obrázek 47.1.
Obr. 47.1.: Představa obsahu směrovacích tabulek
Vraťme se však ještě jednou k hostitelským počítačům: jejich úloha při směrování končí tím, že datagram buď pošlou přímo jeho koncovému adresátovi (v případě tzv. přímého směrování, viz minule, kdy se příjemce nachází v téže dílčí síti), nebo tím, že datagram předají některé z bran (v opačném případě). O postupu hostitelského počítače v prvním případě jsme si již povídali v souvislosti s problematikou adresování a transformování IP adres (ve 45. dílu). Pro druhý případ musí mít hostitelský počítač právě tolik informací, aby dokázal zvolit jednu z bran ve své dílčí síti, a té datagram poslat. Tyto informace si hostitelský počítač uchovává ve svých směrovacích tabulkách, jejichž představu ilustruje obrázek 47.1.

Brána v roli učitele

V minulém dílu jsme si naznačili, že znát nejvhodnější cesty a tyto znalosti si průběžně aktualizovat je úkolem bran (IP směrovačů), a nikoli hostitelských počítačů. Ty mohou zpočátku posílat veškeré datagramy jedné jediné bráně ve své dílčí síti, a ta je vždy upozorní v případě, že by prostřednictvím jiné brány byla cesta datagramu výhodnější.

Obrázek 47.2.
Obr. 47.2.: Představa průběžného doplňování směrovací tabulky hostitelského počítače
Ukažme si nyní, jaký efekt má tento mechanismus na směrovací tabulky hostitelských počítačů (viz obr. 47.2.): po spuštění hostitelského počítače musí jeho směrovací tabulka obsahovat informace alespoň o jedné bráně. Tato brána (resp. jedna z bran, je-li ve směrovací tabulce uvedeno) je přitom prohlášena za implicitní (default), a hostitelský počítač jí z počátku posílá všechny datagramy, které směřují do jiné dílčí sítě. Jakmile tato implicitní brána zjistí, že by hostitelský počítač měl použít jinou výhodnější cestu (vedoucí přes jinou bránu), upozorní jej na to. Hostitelský počítač si na základě této explicitní informace upraví svou směrovací tabulku (viz obrázek 47.2) - zavede si v ní novou položku, a v ní si poznačí, že datagramy, směřující do příslušné dílčí sítě, má posílat přes tu a tu bránu. Kdykoli ale má odeslat datagram do dílčí sítě, pro kterou ještě nemá ve své směrovací tabulce uvedenu konkrétní cestu, pošle datagram té bráně, která je v jeho směrovací tabulce uvedena jako implicitní. Takováto organizace směrovacích tabulek velmi dobře odpovídá "stromovitým" konfiguracím (jako např. na obrázku 47.1.), které jsou u lokálních sítí dosti časté, a při kterých samostatné cesty (vyjádřené ve směrovací tabulce explicitně) vedou jen k několika málo dalším dílčím sítím, zatímco ke "zbytku světa" vede cesta jediná (zpřístupněná implicitní bránou).

Činnost bran

Ponechme ještě stranou otázku, jakým způsobem získávají jednotlivé brány potřebné informace o cestách (k tomu se dostaneme příště), a podívejme se, jak brány postupují při vlastním směrování.

Obrázek 47.3.
Obr. 47.3.: Směrování bránou
a/ přímé směrování
b/ nepřímé směrování
Pravidla pro směrování datagramů se u bran principiálně neliší od hostitelských počítačů. Zjistí-li brána, že přijatý datagram je určen adresátovi v dílčí síti, do které je brána připojena (a takové musí být alespoň dvě, má-li jít vůbec o bránu), pošle mu datagram přímo - v rámci přímého směrování (viz obr. 47.3 a/). Je-li datagram určen adresátovi v jiné dílčí síti, do které není brána přímo připojena, musí zvolit jinou vhodnou bránu, a té datagram předat (viz obr. 47.3. b/). Postupuje přitom obdobně jako hostitelský počítač: pokud ve své směrovací tabulce najde explicitní údaj o tom, že pro danou cílovou síť má datagram předat té a té bráně, učiní tak. Pokud o dané cílové síti nemá ve své směrovací tabulce žádné údaje, použije tu bránu, kterou považuje za implicitní - pokud ovšem má ve své směrovací tabulce implicitní bránu vůbec definovánu. Pokud ne, není daná brána schopna směrování datagramu zajistit, a musí to oznámit jako chybu.

Obsah směrovacích tabulek

Vraťme se ještě jednou k obsahu směrovacích tabulek. Jak jsme si již několikrát naznačili, je z důvodu minimalizace jejich rozsahu veškeré směrování založeno jen na adrese cílové sítě, resp. na té části IP adresy, která tuto cílovou síť vyjadřuje. Směrovací tabulky jsou pak ve své podstatě vlastně seznamem dvojic , kde "síť" představuje cílovou dílčí síť, a "brána" je ta z bran, přes kterou do cílové sítě vede (nejvhodnější) cesta. Jde přitom o bránu, která ještě není konečným příjemcem datagramu, ale jen jeho další přestupní stanicí na cestě k cíli. V angličtině se označuje jako next hop, doslova: další skok.

Bránou pro "další skok" však musí vždy být brána, která je z daného místa dosažitelná přímo - tedy taková brána , která se nalézá ve stejné dílčí síti, jako daný hostitelský počítač, resp. v některé z dílčích sítí, do kterých je přímo připojena daná brána.

Adresy bran, které jsou obsaženy ve směrovacích tabulkách, jsou zásadně IP adresy, ačkoli by se na první pohled mohlo zdát výhodnější používat zde přímo fyzické adresy - čímž by se ušetřila opakované transformace IP adresy na fyzickou adresu brány (viz 45. díl seriálu). Důvodem pro použití IP adres je možnost využívat ve všech uzlech stejnou programovou realizaci směrovacího mechanismu, nezávisle na konkrétních fyzických adresách. Dalším, velmi důležitým důvodem, je možnost průběžné aktualizace směrovacích tabulek a také možnost případného ladění, dojde-li k chybě či jiným nestandardním situacím při směrování. V neposlední řadě použití IP adres ve směrovacích tabulkách vychází i z celkové koncepce síťové (IP) vrstvy a protokolu IP - usilující o vytvoření jednotné abstrakce všech dílčích sítí.

Výjimka z pravidla

Nebylo by to snad ani žádné pravidlo, kdyby nemělo také své výjimky. V případě pravidla o směrování jen na základě adres dílčích sítí je touto výjimkou možnost zavést do směrovacích tabulek explicitně také údaje o cestách ke konkrétním hostitelským počítačům, nikoli jen do celých dílčích sítí. Ačkoli za běžného provozu by tato možnost měla být využívána spíše vyjímečně, je velmi užitečná pro správce sítí při ladění a správě sítě obecně. Zde může být k nezaplacení možnost přesměrovat tok služebních dat, směřujících k pracovní stanici správce tak, aby se vyhnul přetíženému či zcela neprůchodnému místu, které je zdrojem problémů.