Vyšlo v týdeníku CHIP č. 5/99, květen 1999
Vytištěno z adresy: http://www.earchiv.cz/a99/a905c700.php3

Switching: nonsens, nebo skutečný přínos?

O úspěchu konkrétních technologií dnes nemusí rozhodovat ani tak jejich věcná podstata, jako spíše způsob jejich prezentace na trhu, včetně jejich pojmenování. Jak dalece se to týká produktů, které se okatě pyšní schopností přepínání na 3. vrstvě alias “Layer 3 Switching”?

Termín “switching” se v oblasti lokálních počítačových sítí a aktivních prvků objevuje na přelomu osmdesátých a devadesátých let. Přepínač (switch) se pokouší změnit sdílený charakter přenosu v lokálních sítích na vyhrazený – snaží se zařídit věci tak, aby každá dvojice komunikujících uzlů měla (pokud možno) co největší kapacitu jen a jen ke své dispozici. Důvod, proč se přepínač objevil na trhu, je velmi prostý – šlo o uspokojení čím dál tím vyšších nároků, které na přenosové části sítí kladou dnešní počítače a především pak na nich provozované aplikace.

Switching je vždy na 2. vrstvě

Důležité je uvědomit si, že “switching” je výhradní záležitostí linkové vrstvy (neboli 2. vrstvy sedmivrstvého modelu ISO/OSI) – tedy vrstvy, na které pracuje například Ethernet (ale třeba také Token Ring). Ve své podstatě jde o činnost spočívající v “průchodu” datových bloků (na této úrovni označovaných jako rámce, anglicky: frames) skrz “přestupní” uzly, označované nyní jako “switche” (přepínače).

Každé takovéto “přestupní” zařízení funguje tak, že přijme určitý datový blok (rámec), rozhodne se, co s ním podnikne, a výsledek tohoto svého rozhodnutí pak fakticky provede – příslušný rámec předá do některého z konkrétních síťových segmentů, ke kterým má přístup (dospěje-li k závěru, že rámec patří právě tam), nebo rámec jednoduše zahodí (pokud dojde k závěru, že jej nemusí předávat nikam). Pro zařízení typu přepínačů (switchů) je charakteristické, že tuto svou přepojovací činnost dělají opravdu velmi rychle, a navíc takovým způsobem, že přenosy mezi dvěma segmenty neovlivňují (hlavně nezpomalují) přenosy mezi jinými segmenty – právě tím se dosahuje efektu vyhrazené, a nikoli sdílené kapacity.

Inteligence, kterou přepínače musí pro své rozhodování mít, nemusí být příliš velká, protože příslušná rozhodování nejsou nijak komplikovaná – v zásadě jde o posouzení informací dostupných na zmíněné 2. vrstvě, tedy například o posouzení ethernetových adres. Díky této relativní nenáročnosti rozhodování může být celý mechanismus přepínání, včetně potřebné logiky, doslova “zadrátován” (tedy realizován čistě technickými prostředky, tzn. v hardwaru), a tudíž může být i opravdu velmi rychlý.

Zařízení charakteru přepínačů, a to zejména pro ethernetové sítě, se poměrně rychle a dobře prosadila na trhu a výrazně ovlivnila také způsob, jakým lidé budují své lokální sítě. Šlo hlavně o to, že se začaly rozšiřovat části sítí pospojované uvnitř pouze pomocí přepínačů – ze zcela logického důvodu, protože to, co je propojeno pomocí přepínačů, je rychlejší než to, co je propojeno o vrstvu výše pomocí směrovačů. Tím začaly vznikat velmi “ploché” sítě, avšak v nich se začaly nepříznivě projevovat jiné jejich vlastnosti. Například to, že takováto “plochá” síť (resp. síť propojená uvnitř pouze přepínači) musí šířit tzv. všesměrové vysílání (broadcasting) do všech svých uzlů – tím se značně degraduje zrychlující efekt přepínačů. Další nepříjemnou vlastností je nemožnost implementovat různé strategie a různá přístupová a jiná omezení pro jednotlivé uzly takovéto “ploché” sítě – kvůli tomu, že se přepínače snaží fungovat maximálně rychle, nemají čas ohlížet se na nějaké “logické” aspekty typu přístupových omezení.

V praxi proto existují tlaky, které působí protisměrně, proti rozšiřování částí sítí pospojovaných pouze přepínači. Výsledkem těchto tlaků je obvykle takové řešení, při němž vzniká určité jádro sítě, které je uvnitř propojeno přepínačem či přepínači a s okolním světem (s dalšími sítěmi) pomocí zařízení, tedy pomocí zařízení fungujících na úrovni 3. vrstvy (síťové vrstvy).

Velikost “vnitřní části”, realizované pomocí přepínačů, a tudíž hodně rychlé, je vždy výsledkem složitých kompromisů mezi oběma výše naznačenými tlaky, ale i dalšími faktory – například jde o snahu odlišit uživatele podle jejich přístupových oprávnění a jiných omezení (například ve firmě může být žádoucí, aby všichni účetní byli se svými počítači zapojeni do jedné sítě, všichni lidé z marketingu do sítě druhé a mezi nimi bylo logické oddělení realizované pomocí směrovače).

Ještě další důležitou motivací pak je otázka optimalizace výsledné soustavy propojených sítí z hlediska rychlosti. Dříve se za optimální považovalo pravidlo “80-20”, které říká, že rozdělení do jednotlivých sítí, resp. do jejich oddělení pomocí směrovačů by mělo být realizováno tak, aby se 80 procent veškerých přenosů odehrávalo uvnitř dané sítě, a tudíž procházelo jen skrz přepínače. Pouze zbývajících 20 procent by pak mělo směřovat “ven”, do jiných sítí, tzn. procházet skrz směrovače.

Pravidlo “80-20”, naznačené v předchozím odstavci, vycházelo ze dvou předpokladů. Prvním bylo očekávání, že průchodnost směrovačů, fungujících na síťové vrstvě, je nižší než u přepínačů (neboli: směrovače jsou pomalejší, mají menší propustnost, za stejnou časovou jednotku skrz ně může projít jen relativně méně datových paketů).

Druhým předpokladem bylo očekávání, že způsob práce uživatelů v počítačové síti má značně “lokalizovaný” charakter, tzn. že uživatelé povětšinou pracují s úzce lokalizovanými zdroji (například s nějakým konkrétním file serverem) a mnohem méně s “roztroušenými” zdroji, jakými jsou například WWW servery v rámci celého internetu.

Mění se charakter provozu v sítích

Nástup internetu a jeho služeb (zejména webu) i mohutný nástup intranetů však způsobily výraznou změnu v chování uživatelů, kvůli které dnes obvykle není možné dodržet zmíněné pravidlo “80-20”. Tendence je taková, že “lokální” provoz uvnitř vlastní sítě spíše slábne, zatímco “vnější” provoz naopak spíše sílí. Přispívají k tomu samozřejmě i další faktory, jako například snaha o jemnější rozdělení uživatelů podle jejich přístupových práv.

Konkrétním důsledkem tohoto “většího rozptylování” provozu je požadavek na větší propustnost zařízení, která stojí na okrajích sítí propojených přepínači – tedy požadavek na zařízení označovaná jako směrovače (routery). Nejlepší samozřejmě je, jestliže se propustnost obou typů zařízení, tedy přepínačů i směrovačů, vzájemně vyrovná.

Routery, česky směrovače, jsou v mnoha ohledech obdobné přepínačům (switchům). Jsou “přestupními” uzly, které také předávají konkrétní datové bloky (označované nyní jako pakety) z jedné strany na druhou. Rozdíl je pouze ve způsobu, jakým rozhodují o dalším osudu každého datového paketu, který skrz ně prochází, a hlavně pak v tom, jaké informace přitom berou v úvahu. Zatímco přepínač (switch) bere v úvahu takové informace, které jsou dostupné na úrovni 2. vrstvy (vrstvy linkové), tedy například ethernetové adresy, směrovače (routery) berou v úvahu informace dostupné na úrovni 3. vrstvy neboli vrstvy síťové – to jsou například IP adresy (v sítích na bázi TCP/IP).

Přitom rozhodování na základě síťových adres, prováděné směrovači, je výrazně složitější a také “objemově náročnější” než rozhodování na úrovni linkové vrstvy, které provádějí přepínače. Tradičně je takovéto rozhodování uvnitř směrovačů implementováno programovými prostředky, a i kvůli tomu je pomalejší než rozhodování přepínačů, realizované přímo hardwarově.

Stejná motivace, ale o vrstvu výše

Požadavek na výrazné celkové zrychlení a zvýšení propustnosti, který se původně uplatnil na úrovni 2. vrstvy a dal vzniknout přepínačům (switchům), se tedy s určitým odstupem času přenesl o jednu vrstvu výše a uplatnil se vůči dosavadním směrovačům (routerům).

Ihned se ale ukázalo, že opravdu výrazné zrychlení práce směrovačů a celkové posílení jejich výkonnosti není možné řešit při zachování jejich dosavadní koncepce, založené povětšinou na implementaci příslušných směrovacích mechanismů softwarovými prostředky. Jako nezbytné se ukázaly radikálnější změny, a to jednak v celkové architektuře sítí a jednak ve vnitřní struktuře směrovačů. Různí výrobci se samozřejmě vydali za stejným cílem různými cestami a vznikla z toho opravdu velká škála různých řešení, často opravdu diametrálně odlišných.

Pro ilustraci možných přístupů lze uvést dva příklady na různých částech celého spektra možností. Prvním může být takové řešení, které v zásadě zachovává stávající koncepci směrovačů, ale snaží se podpořit hardwarovými prostředky (“zadrátováním”) nejnáročnější činnost, kterou je prohledávání tzv. směrovací tabulky. Ta bývá v praxi opravdu velmi velká a její prohledávání je časově i kapacitně velmi náročné – řešením je umístit nejpoužívanější části této tabulky do rychlé vyrovnávací paměti (paměti cache).

Spíše na opačném pólu v celé škále možných řešení pak může být takový přístup, při kterém je veškerá logika rozhodování o volbě směru (směrování) směrovači odňata a naopak přidělena specializovanému serveru, tzv. route serveru (“směrovému serveru”). Z původního směrovače pak zůstane relativně jednoduché zařízení, které může být optimalizováno na rychlost “předávání” datových paketů – pokud nebude vědět, co si počít s nějakým konkrétním paketem, zeptá se příslušného route serveru. Ten mu odpoví a “směrovač” si bude jeho radu pamatovat a při dalších podobných paketech se bude touto radou dále řídit a bude ji co nejrychleji naplňovat. Důležité je, že takto “primitivní”” zařízení již může být realizováno čistě technickými prostředky a může fungovat opravdu velmi rychle.

Existuje vůbec “Layer 3 Switching”?

Společným prvkem všech těchto řešení je samozřejmě to, proč vznikla. Ještě dalším společným pojítkem je i označení “Layer 3 Switching” , které se v souvislosti s nimi používá. Vzato čistě logicky, tento název je nesmyslný, protože správné označení pro činnost spočívající v “předávání” datových paketů skrz “přestupní” uzly fungující na úrovni 3. vrstvy (neboli vrstvy síťové) je směrování (anglicky: routing); příslušné zařízení se pak jmenuje směrovač (router). Termíny “switch” a “switching” patří zařízením a způsobu jejich fungování na 2. vrstvě (vrstvě linkové).

Vzato do důsledku: žádný “routing switch” ani “Layer 3 Switching”, resp. “přepojování na síťové vrstvě” či “směrující přepínač” a podobná spojení nemohou existovat.

O důvodech, proč se tak děje, lze jistě spekulovat. Jedním možným vysvětlením je to, že termín “switch” se prosadil, byť v jiném kontextu, jako něco nového a inovativního, co přineslo skutečný hmatatelný efekt; je také spojován s příznivějším poměrem cena/výkon. Naproti tomu termín “router” (směrovač) již tak nový není a nemá také onen “inovativní” a cenový podtext. Argument, že je zapotřebí “Layer 3 Switch”, zní v praxi přesvědčivěji než tvrzení, že někdo potřebuje “lepší router”, resp. lepší a výkonnější směrovač.