Vyšlo v týdeníku CHIPweek č. 14/97, 1. dubna 1997
Vytištěno z adresy: http://www.earchiv.cz/a97/a714k150.php3

Nové strategie směrování

V předchozích dílech tohoto modulu jsme se podrobněji zabývali "klasickými" představami o tom, jak rozdělit určitou soustavu vzájemně propojených síťových uzlů na dílčí sítě, a kde a jak je propojit směrovači, switchi či mosty. Tato představa přitom vycházela z obecných vlastností přepojování na linkové a síťové vrstvě, i z konkrétních vlastností dnes dostupných směrovačů, switchů a opakovačů. S postupem času se ale vlastnosti a schopnosti těchto zařízení mění, a stejně tak se mění i požadavky provozovatelů sítí a samotných síťových aplikací. V souvislosti s tím pak dochází k určitým změnám i v představách o tom, jak by měla vypadat celková architektura soustav vzájemně propojených sítí.

Připomeňme si nejprve, v čem spočívá již zmíněné "klasické" řešení: v tom, že se zvolí vhodně velké (či malé) skupiny uzlů, které tvoří určitý logický celek, a tyto se mezi sebou propojí na úrovni linkové vrstvy, pomocí switche, tak aby jejich propojení bylo co možná nejvíce propustné a nabízelo maximální možnou vzájemnou konektivitu. Tím vzniknou jednotlivé dílčí sítě (jednotné celky z pohledu síťové vrstvy), které se mezi sebou propojí směrovači. Výsledkem je pak "ostrůvkovitý" charakter celé výsledné soustavy, a směrování (přepojování na úrovni síťové vrstvy) je v nich soustředěno jen na okraje jednotlivých ostrůvků - sítí.

O nevýhodách takovéhoto "klasického" uspořádání" jsme si také již říkali: kritérií, podle kterých by jednotlivé uzly měly být seskupovány do dílčích sítí, je více - například práce se společnými daty, lokalizace provozu uvnitř skupiny, stejná oprávnění a bezpečnostní statut apod. - a prakticky nikdy jim nelze optimálně vyhovět všem. Snad největším problémem pak bývají fyzické dispozice, které mnohdy odsouvají jiná kritéria do pozadí a rozhodují o všem samy.

Distribuované směrování

O jednom možném řešení problému s fyzickými dispozicemi jsme si již také říkali - jsou to virtuální sítě LAN (VLAN), které dovolují zařazovat jednotlivé počítače do dílčích sítí zcela bez ohledu na jejich fyzické umístění.

Další možné řešení, které lze v jistém smyslu chápat i jako zobecnění principu virtuálních sítí LAN je tzv. distribuované směrování. Spočívá v tom, že se potlačí dosud přetrvávající představa o ostré dělbě práce mezi switche a směrovače, a o "vytlačení" směrování a směrovačů na okraje dílčích sítí. Myšlenka distribuovaného směrování je založena na tom, že se směrovací funkce pokud možno rovnoměrně "rozprostřou" po celé síti. Tím se dosáhne maximální možné pružnosti při logickém členění na jednotlivé dílčí sítě.

Distribuované směrování také vychází z představy, že přepojování na úrovni linkové vrstvy ("switchování") i přepojování na úrovni síťové vrstvy (směrování) mají velmi mnoho společného - ve své podstatě jde o předání bloku dat z jednoho segmentu do druhého, a rozdíl je pouze v tom, na základě jakých rozhodnutí se tak děje. Na tomto přístupu je pak založena jedna z variant implementace distribuovaného směrování: varianta, která předpokládá že přepojovacím uzlům (většinou označovaných jako switche) bude dána schopnost přepojování jak na úrovni linkové vrstvy, tak i na úrovni vrstvy síťové. Vlastně tak vznikne kombinace switche a směrovače "v jedné krabici", označovaná obvykle jako tzv. víceúrovňový switch (multilayer switch).

Wire-speed routing

Myšlenka zkombinovat přepojování na úrovni linkové a síťové vrstvy ovšem naráží na dva nepříjemné problémy. Prvním z nich je pomalost směrování, a druhým náročnost správy směrovacích informací. Rozeberme si nejprve ten první.

Přepojování na úrovni linkové vrstvy je po stránce logického rozhodování poměrně jednoduché, a celé přepojování tak může být bez větších problémů řešeno hardwarovými prostředky, a tudíž být i hodně rychlé. Tak rychlé, že zpoždění vznikající průchodem přes přepojovací uzel (switch) je srovnatelné s rychlostí přenosu (u cut-through switchů odpovídá délce přenosu hlavičky rámce). Ne nadarmo je pak rychlost fungování switchů označována neformálně jako "wire speed" (doslova: rychlost drátu).

Naproti tomu přepojování na úrovni fyzické vrstvy vychází z mnohem složitějších rozhodnutí, a dosud je typicky řešeno programovými prostředky, tj. v softwaru, a tudíž i výrazně pomaleji. Dosáhnout rychlosti , která by si zasloužila přívlastek "wire speed", se daří jen velmi výkonným, velkým a drahým směrovačům, zatímco u ekonomičtějších modelů může být rozdíl v rychlostech dosti výrazný (například až desetinásobný).

Co je IP switching?

Cílem výrobců aktivních síťových prvků samozřejmě je dosáhnout takového stavu, aby přepojování na linkové i síťové vrstvě bylo stejně rychlé. To by v praxi znamenalo, že provoz uvnitř sítí, zprostředkovávaný switchi, by mohl být stejně rychlý a se stejně malým průchozím zpožděním (latency) jako provoz mezi sítěmi - čímž by odpadl náročný a mnohdy obtížně splnitelný požadavek volit jednotlivé sítě tak, aby většina provozu v nich byla lokalizována. To by pak značně uvolnilo ruce autorům sítí, a umožnilo mnohem pružněji volit architekturu jejich sítí.

Dosáhnout tohoto cíle však znamená zjednodušit rozhodování na úrovni síťové vrstvy, tak aby příslušná rozhodnutí mohla být provedena snadno a rychle, a třeba i implementována přímo v hardwaru. Tím by se pak místo o klasické "směrování" jednalo spíše o "switchování", byť probíhající na úrovni třetí, tj. síťové vrstvy. V odborné literatuře se takovémuto způsobu fungování začíná říkat Layer 3 switching, nebo také IP switching (to proto, že převažujícím protokolem síťové vrstvy, který by měl být "switchován", je stále častěji protokol IP).

Tag switching

Dosáhnout takové efektivnosti a rychlosti fungování, aby bylo možné hovořit o IP switchingu, není snadné, a dodnes mezi výrobci nepanuje jednotný názor na to, jak toho dosáhnout. Jeden z možných přístupů spočívá v opatření přenášených paketů zvláštními nálepkami, podle kterých by se pak v přepojovacích uzlech přijímala příslušná směrovací rozhodnutí. Při vhodné koncepci těchto nálepek (anglicky: tags) by většinu složitých rozhodnutí bylo možné minimalizovat, či učinit jednorázově (při generování nálepek), a průběžné rozhodování by pak mohlo být dostatečně jednoduché a rychlé. Navíc by tento přístup nemusel být nutně závislý na konkrétním používaném síťovém protokolu. Nevýhodou je skutečnost, že pro takovýto přístup (označovaný jako tag switching) dnes neexistuje vhodný standard, a vše je zatím ve stádiu proprietárních řešení.

Směrovací servery

Dalším zajímavým přístupem je snaha zbavit přepojovací uzly složitého rozhodování tím, že jim někdo jiný (vhodná centrální autorita) doslova naservíruje předem připravená rozhodnutí, která pak zmíněné přepojovací uzly pouze co nejrychleji naplňují. V praxi tento přístup předpokládá existenci centrálních uzlů, vystupujících v roli "směrovacích serverů" (route servers) a distribuujících potřebné směrovací informace svým klientům - switchům. Představa je zde taková, že když si nějaký switch neví rady s nějakým paketem, který by měl zpracovat na úrovni síťové vrstvy, zeptá se směrovacího serveru. Ten mu poradí, switch se podle toho zachová, a po určitou dobu si radu směrovacího serveru pamatuje a opakovaně ji používá.

Myšlenka směrovacích serverů navíc řeší i nepříjemný problém s aktualizací směrovacích informací, o které se musí jednotlivé směrovače vzájemně dělit, resp. pravidelně si je ve vzájemné součinnosti upřesňovat (např. pomocí protokolů RIP, OSPF apod.). Také k tomu je zapotřebí určitá inteligence, kterou je výhodné soustředit do jednoho uzlu, a nechat ostatní ať se soustředí zase na rychlost. Podobně je tomu i se správou - při použití směrovacích serverů může být veškerá správa soustředěna do jednoho místa, zatímco výkonné switche mohou být zařízení nevyžadující vůbec žádnou správu.