| Název: | L3 switching |
| Autor: | Michal Rapco |
| Publikováno: | LANCOM 9/2002 |
L3 switching nebo-li přepínání na třetí vrstvě referenčního modelu ISO OSI je dnes pojmem, který už není ve světě sítí žádnou horkou novinkou. Většina z nás si při zmínce o L3 switchingu spojuje tuto technologii s vysokou rychlostí či propustností přenosu paketů dosahovanou za využití specializovaného hardware. Jaké úkoly musí L3 switching řešit všeobecně a jak jsou pak tyto úkoly řešeny konkrétně v Cisco zařízeních si přiblížíme v následujícím článku.
Než se však pustíme do samotného popisu technologií přepínání na třetí vrstvě, podívejme se nejdřív na okolnosti, za jakých tyto technologie vznikly.
Jednou z oblastí, kde brzy vznikl "hlad" po vyšším výkonu ve směrování paketů, byly tzv. campus sítě. Návrháři těchto sítí nejdřív řešili problémy s přehlcením lokálních sítí nasazením přepínačů pracujících na druhé, spojové vrstvě (L2). Na jedné straně tak dostali správci sítí možnost zvýšit propustnost pomocí segmentace sítě na virtuální LAN (VLAN), na straně druhé však zde vzniklo úzké místo právě v komunikaci mezi těmito VLAN. Z hlediska síťových protokolů jsou totiž VLAN izolovanými ostrovy - datový provoz mezi nimi musí být směrován.
Technologie L2 přepínačů přitom dnes již poskytují takové přenosové výkony (vyjádřeno počtem přenesených rámců za sekundu), které už nejsou limitovány ani tak technickými aspekty, jako samotnou definicí standardu Ethernet. Klasické směrovače naproti tomu se svými původními metodami směrování paketů svou rychlostí řádově zaostávají. Jejích využití pro směrování mezi VLAN bylo proto - aspoň co se týče propustnosti - palčivým problémem.
Nebude žádným překvapením, že druhou oblastí, kde se brzy rychlost standardních směrovačů stala omezujícím faktorem, bylo prostředí Internetu resp. páteřních sítí velkých ISP. Nárůst množství dat, zvýšené počty portů a jejích přenosových kapacit - to vše začalo narážet na limity dané klasickým modelem směrování paketů z portu na port, prováděné softwarově s využitím universálních, nededikovaných procesorů.
Poptávka po vyšším výkonu na straně jedné a dominance síťových protokolů IPv4 či IPX a ustálenost jejích definic (standardů) na straně druhé vyústily v nástup technologií pro hardwarově podporovaný L3 switching.
Co si máme představit pod pojmem přepínání na třetí vrstvě ?
Dříve, než vysvětlíme technologii přepínání na třetí vrstvě, sjednotíme význam některých pojmů. Prvním pojmem je samotné "přepínání". Na tento výraz jsme zvyklí u přepínačů pracujících na spojové (L2) vrstvě - jde o proces, kdy na jednom portu rámec přijmeme, analyzujeme jeho L2 hlavičku (nejčastěji MAC adresy), pak v tabulce vyhledáme informaci o výstupním portu pro danou MAC adresu a rámec přes příslušný port odešleme. Co ale rozumíme pod pojmem přepínání u směrovačů ?
Činnost směrovačů obecně můžeme rozdělit do dvou rovin - řídící ("control plane") a datové ("data plane"). V řídící rovině pracují směrovací protokoly, které zajišťují (poměrně sofistikované) činnosti spojené s údržbou směrovacích tabulek (nalezení cest s nejlepší metrikou pro konkrétní sítě, určení výstupního portu a adresy pro tzv. next-hop směrovač, otázky redistribuce směrovacích informací atd.). V řídící rovině běží i činnosti spojené např. s mapováním spojových (Layer 2) adres na síťové (Layer 3) adresy, load-balancing, policy-routing a mnohé další. V této rovině činnosti směrovačů mluvíme o otázkách směrování paketů. V datové rovině se naproti tomu provádí činnosti spojené převážně se samotným přesunem paketů (packet forwarding) - příjem paketu, analýza síťových adres, nalezení patřičného záznamu ve směrovacích tabulkách a určení výstupního rozhraní, enkapsulace paketu do nového L2 rámce a jeho odvysílání přes příslušné výstupní rozhraní. V této rovině mluvíme o přepínání paketů. Jak je vidět - od řídící roviny očekáváme spíš "inteligenci" a flexibilitu, od datové roviny spíš výkon. Řídící rovina řeší úkoly, které jsou náročné na logiku a které musí být schopny reagovat na nejrůznější změny v síti, datová rovina využívá výsledků práce řídící roviny (je na nich dokonce přímo závislá) a plní úkoly více-méně rutinní. Celková propustnost (výkon) směrovače je však dána právě výkonností v datové rovině - a to je místo pro technologie přepínání na třetí vrstvě.
Přepínáním na třetí vrstvě pak budeme dále rozumět přepínání paketů na základě informací třetí vrstvy referenčního modelu OSI - tj. na základě síťových adres. Nedochází zde k nějakým složitým přesunům datové části rámce a zasílání k zpracování dalšímu - hierarchicky vyššímu procesu , jak by snad první formulace mohla evokovat. Veškerá manipulace s rámcem je optimalizována s ohledem na výkon přepínání.
Technologie pro L3 switching se tedy snaží vytvořit v datové rovině takové mechanizmy pro přepínání paketů , které by osvobodily hlavní procesor od rutinních záležitostí - kromě analýzy síťových adres paketů a vyhledávání směrovacích informací je to zejména vytvoření nové L2 obálky pro přepínaný paket. Aby byl celý proces L3 switchingu transparentní pro vyšší vrstvy resp. sousedící směrovače, musí dojít u přepínaného paketu k přepsání některých polí jak samotného paketu (síťová vrstva), tak i rámce (spojová vrstva). Přepsání musí přitom odpovídat způsobu, jakým by byl daný paket modifikován klasickým směrovacím procesem. Vezmeme-li v úvahu např. protokol IP, mělo by být minimálně modifikováno pole TTL (a následně kontrolní suma Header Checksum), popřípadě pole odpovídající ToS (pokud dochází např. k reklasifikaci). Na spojové vrstvě se pro přepínaný paket musí samozřejmě vytvořit celá nová L2 hlavička (příp. zápatí), což např. znamená nové MAC adresy, nový formát enkapsulace (pokud je nutný), nové pole odpovídající CoS, kontrolní pole FCS a pod.
Shrneme-li nyní tyto informace, můžeme přepínání na třetí úrovni (L3 switching) chápat jako proces přepínání paketů ze vstupního rozhraní na výstupní na základě L3 informací. Potřebné informace potřebné pro určení výstupního rozhraní či modifikaci odpovídajících polí si proces přepínání udržuje v samostatných datových strukturách (tabulkách), které jsou vybudovány na základě směrovacích tabulek a procesů mapujících adresy spojové vrstvy na adresy vrstvy síťové (např. ARP). Samotný proces přepínání na třetí úrovni tedy nenahrazuje směrovací protokoly - naopak, je na nich závislý.
A nakonec se zmíníme o roli hardware v procesu přepínání na třetí vrstvě. Z hlediska zvyšování rychlosti přepínání je zde samozřejmě snaha implementovat v hardware co nejvíce funkcí - analýzu hlaviček, kontrolu a výpočet kontrolních součtů, samotné vytvoření (přepis) nového rámce. Jak jsme již zmínili v úvodu - díky rozšíření protokolů IP resp. IPX a jejích standardizaci se stal vývoj a produkce specializovaných čipů (ASICs) pro účely rychlého přepínání na třetí vrstvě i ekonomicky přijatelný.
Jednou z činností, která zásadním způsobem ovlivňuje rychlost přepínání a která není snadnou záležitostí, je vyhledání odpovídajícího záznamu pro danou síťovou adresu. Vzhledem k tomu, že jsou patřičné tabulky poměrně rozsáhlé, je jejích sekvenční prohledávání pomalé a nepraktické. Vytváří se proto buď tabulky uspořádané, nebo se častěji využívá speciální typ paměti CAM (Content Addressable Memory), který se adresuje obsahem (tj. např. hledanou adresou). Výsledek hledání získáme prakticky hned po přístupu k paměti a jeho obsahem je buď přímo celý požadovaný záznam, nebo naopak informace, že záznam pro danou adresu v tabulce není. Tento typ paměti se už nějakou dobu využívá v klasických L2 přepínačích, kde slouží k vyhledávání záznamů pro MAC adresy. Pro účely L3 switchingu se pak ještě používá pamětí TCAM (Ternary CAM) - tyto paměti umožňují vyhledávání na základě tří stavových informací - binární "0", "1" a tzv. "don't care" bit, který se využívá u klasických operací s maskou sítě.
Routing switch nebo switching router? Přepínač, který směruje, nebo směrovač, který přepíná?
V produktových řadách je možno najít obojí označení, které naznačuje, jak k technologii rychlého přepínání na třetí úrovni konvergují jednotlivé síťové prvky. V prvním případě (routing switch) jde primárně o přepínač, který má navíc specializované obvody pro rozeznávání L3 informací a schopnost přepínání na jejích základě. Přepínač potřebuje spolupráci buď externího směrovače nebo integrovaného modulu se směrovacími funkcemi. Typickým příkladem jsou Cisco přepínače s implementovanou technologií MLS. V druhém případě (switching router) plní primárně roli směrovače, má však implementovanou technologii pro zrychlení operací v datové rovině - typickým příkladem jsou Cisco směrovače vyšších řad s implementovanou technologií CEF. V dalším textu si přiblížíme jednotlivé technologie.
Technologie MLS
MLS, nebo-li Multilayer Switching, je Cisco L3 switching technologie implementovaná např. v přepínačích řad Catalyst 5000 či Catalyst 6500. MLS je tvořen třemi komponenty:
- MLS Route Processor (MLS-RP)
- MLS Switching Engine (MLS-SE)
- Multilayer Switching Protocol (MLSP)
Princip činnosti bude patrný z následujícího obrázku:
Obrázek 1 Princip činnosti MLS
MLS-RP odpovídá funkčně směrovači - buď jde např. o RSM modul u přepínačů Catalyst 5000, nebo o MSFC modul u řady Catalyst 6500. Může to být taky externě připojený některý ze standardních Cisco směrovačů, který podporuje funkce MLS. Komponenta MLS-SE odpovídá samotné přepínací logice, rozšířené o obvody pro rozpoznávání L3 informací - např. NFFC modul u přepínačů Catalyst 5000, nebo PFC modul u řady Catalyst 6500. Jak probíhá samotný proces přepínání na třetí úrovni ? Nejdříve musí proběhnout komunikace označena číslem 1. Jde o komunikaci protokolem MLSP pracujícím na druhé vrstvě, kterým příslušný MLS-RP oznamuje přepínači svou existenci - zejména však svoji MAC adresu a číslo příslušné VLAN.
Následně může proběhnout přenos označen číslem 2 - jde o standardní odeslání IP paketu ze stanice A na stanici B přes výchozí bránu (směrovač MLS-RP). Přepínač (MLS-SE) analyzuje IP hlavičku paketu a podívá se do své tabulky, jestli pro tento datový tok již existuje záznam. Pro tuto chvíli předpokládejme, že záznam ještě neexistuje - paket je tedy normálně doručen MLS-RP. Protože podle cílové MAC adresy MLS-SE ví, že paket byl určen směrovači, považuje daný paket za tzv. candidate packet a vytvoří si ve své tabulce dočasný, parciální záznam, kde si uloží odpovídající informace z IP hlavičky. Směrovač (MLS-RP) paket standardním způsobem směruje - zjistí, ve které VLAN sídlí stanice B, vytvoří nový L2 rámec pro enkapsulaci IP paketu a vyšle jej stanici B. Tento datový přenos je v obrázku označen číslem 3. Přepínač MLS-SE opět analyzuje procházející paket a podle informací z IP hlavičky zjistí, že jde o stejný paket, pro nějž už má v tabulce parciální záznam. Navíc podle zdrojové MAC adresy ví, že paket byl směrován směrovačem MLS-RP - jde teda o tzv. enabler packet. MLS-SE si následně doplní chybějící části ve své tabulce nutné k vytvoření nového L2 rámce a modifikace IP hlavičky a je připraven pro L3 switching. Všechna další komunikace mezi stanicí A a B pak již probíhá způsobem označeným číslem 4 - přepínač analyzuje IP hlavičku paketu, najde příslušný záznam ve své tabulce, přímo přepíše odpovídající části datového rámce a odešle jej rovnou stanici B bez toho, aby tento paket byl odeslán ke směrování do MLS-RP. Tento proces je přitom plně transparentní.
Pro úplnost ještě můžeme zmínit, že na přepínači je možno nastavit tři úrovně granularity v rozeznávání IP informací - buď se analyzuje jen cílová IP adresa, nebo pár zdrojová a cílová IP adresa a nebo i informace 4. vrstvy tj. čísla portů protokolů TCP a UDP. Pro řízení doby uložení informací v tabulce (jde v podstatě o cache paměť) jsou definovány tři časovače, které zamezují vytváření záznamů např. pro krátké DNS dotazy, nebo parciálních záznamů, u kterých nikdy nedojde k průchodu "enabler packetu" (např. z důvodu existence paketového filtru apod.).
Technologie CEF
Technologie CEF (Cisco Express Forwarding) byla původně metodou vyvinutou pro zrychlení přepínání paketů u směrovačů řízených CISCO IOS. Dnes, např. s hardwarovou podporou Supervisor 2 a PFC2 modulů u řady přepínačů Catalyst 6500, je vysoce výkonným, hardwarově podporovaným způsobem přepínání na třetí vrstvě. I když princip přepínání paketů (L3 switching) zůstává stejný, způsob, jako toho technologie CEF dosahuje, je poněkud odlišný od dříve popsané technologie MLS. MLS je metodou založenou na principu cache paměti - pro vytvoření záznamu je nutné, aby byl první paket datového toku vždy standardně směrován. Navíc při změnách ve směrovacích tabulkách nebo v ARP cache paměti dochází k smazání celé tabulky MLS a jejímu znovuvytváření. Technologie CEF naproti tomu tento nedostatek nemá. Pro svoji činnost si vytváří dvě datové struktury - tzv. FIB (Forwarding Information Base) a tzv. Adjacency table (AT) - tabulka přilehlosti.
FIB je v podstatě kopií směrovací tabulky - obsahuje informace o všech dosažitelných sítích včetně výstupního rozhraní a adresy pro next-hop směrovač. Protože zde existuje relace 1:1 mezi FIB a směrovací tabulkou, při změně ve směrování stačí změnit pouze příslušný záznam ve FIB. Samotná FIB je organizována jako tzv. (patentovaná) Mtrie 256-cestná stromová struktura, vytvářená podle obsahu každého oktetu IP adresy (každý uzel může mít 256 potomků) a mající tak max. hloubku 4. V takové stromové struktuře pak lze najít koncový list na nejvýše čtyři kroky, čili je odstraněno zdlouhavé sekvenční vyhledávání konkrétního IP prefixu .
Každý z koncových uzlů tohoto stromu dále ukazuje na konkrétní záznam do AT, která obsahuje všechny L2 informace o přímo sousedících uzlech (získané např. pomocí ARP či jiných protokolů), které slouží pro vytvoření kompletního L2 rámce.
Příklad takové FIB struktury a k ní připojených tabulek přilehlosti uvádí následující obrázek (čárkovaně jsou vyznačeny tabulky
přilehlosti příslušné k hledaným IP prefixům).
Obrázek 2 Příklad vyhledávání ve FIB
Opět - se změnou v L2 informacích není nutné smazat celou tabulku přilehlosti (AT), ale jenom její příslušnou část, navíc se tato změna netýká FIB. Proces samotného přepínání paketů je pak přímočarý - po analýze IP hlavičky se najde odpovídající koncový (leaf) záznam ve FIB tabulce, který kromě informací o výstupním portu obsahuje i odkaz na záznam do tabulky přilehlosti s odpovídajícími informacemi pro vytvoření L2 rámce. Původní paket se opatří novou L2 obálkou a celý rámec se odešle přes příslušné rozhraní - to všechno bez účasti hlavního procesoru směrovače. V případě tzv. distributed CEF dochází navíc k dalšímu zvýšení propustnosti tím, že jsou kopie tabulek FIB a AT uloženy (ditribuovány) na jednotlivých modulech VIP (architektura směrovačů Cisco 7500) či DFC (architektura přepínačů Catalyst 6500). Samotné přepínání paketů pak díky těmto lokálním kopiím tabulek může probíhat paralelně na každém z modulů zvlášť.
Závěr
Jak jsme v článku naznačili, za technologií rychlého přepínání na třetí vrstvě (L3 switching) se skrývají poměrně složité a komplexní procedury přepínání paketů. Nejde přitom jenom o samotné přepínání - technologie se musí vyrovnat i s mnoha dalšími problémy týkajícími se např. konzistentnosti vůči nasazeným paketovým filtrům (access-list) a jejích změnám, či otázkami spojenými s QoS apod. Toto technologické know-how však bývá pro běžného koncového uživatele skryto za několika málo konfiguračními příkazy - zákazník prostě dostane zařízení, které dělá všechno tak, jak má, jenom "poněkud rychleji". A to je asi jedna z hlavních věcí, která ho zajímá.







