Hlavní navigace

TRILL: Konečně náhrada za Spanning Tree?

Autor: 29
Miroslav Matuška

Každý, kdo si někdy zoufal nad nežádoucími projevy protokolu Spanning Tree (STP) ve větší ethernetové počítačové síti, si určitě kladl otázku: Nešlo by to řešit od základu lépe? Proč se musí celá síť zahltit, a proč není snadné odhalit příčinu? Vždyť pro L3 směrování existují tak pěkné, spolehlivé a snadno laditelné mechanismy!

Už nějakou dobu se těmito myšlenkami zabývají tvůrci nového protokolu TRILL (Transparent Interconnection of Lots of Links). Očekává se, že jeho návrh bude brzy schválen do podoby RFC standardu. Půjde o významný milník ve vývoji L2 ethernetových sítí a následující série článků proto popisuje, jaké změny nový protokol přinese.

TRILL 1. část – Proč nahradit STP?

V prvním článku série je stručně popsáno, jak funguje přepínání v ethernetových sítích, k čemu je protokol STP potřeba, jaké má nedostatky a proč se hodně lidí vážně zabývá myšlenkou jeho náhrady. Pokud tato základní fakta znáte, můžete bez obav přejít na další části, které popisují přímo nový protokol. Série článků předpokládá základní orientaci v problematice počítačových sítí a základní znalost odborné terminologie týkající se druhé (L2) a třetí (L3) vrstvy referenčního modelu OSI.

L2 přepínání v ethernetových sítích

Ethernetový přepínač posílá rámce ven tím rozhraním, které má pro konkrétní cílovou MAC adresu uvedeno ve své přepínací tabulce. Tuto tabulku si ve většině případů přepínač sestavuje sám automaticky tak, že do ní průběžně zapisuje zdrojové MAC adresy příchozích rámců asociované s tím rozhraním, kudy konkrétní rámec přišel.

Potíž nastává u rámců, jejichž cílovou adresu přepínač buď ještě nezná, nebo je společná více koncovým stanicím (skupinová adresa – multicast nebo adresa všech stanic – broadcast). Tyto rámce musí přepínač replikovat a poslat na všechna ostatní rozhraní mimo vstupního (tzv. flooding). Tím se rámec dostane jak správnému adresátovi, tak i do těch částí sítě, kde se adresát nenachází a je tam poslán nadbytečně.

Největší problém však nastává, když se takový replikovaný rámec dostane jiným rozhraním zpět na přepínač, přes který již jednou prošel. Celý proces včetně násobné replikace se opakuje a vznikne smyčka. Síť se pak v krátké době zahltí mnoha kopiemi stejného rámce a přestane fungovat. Smyčky jsou pro provoz ethernetové sítě zcela nežádoucí.

terms1-1

Rámec vyslaný ze stanice A se v druhém kroku zreplikuje 5×, ve třetím kroku již 17×.

terms1-2

Již ve čtvrtém kroku by bez pojistných mechanismů byla ethernetová síť zahlcena mnoha zbytečnými kopiemi původního jediného rámce.

Zapojení přepínačů do potenciálně smyčkových topologií se nicméně v síti vyhnout nelze kvůli požadavku na fungování v případě poruchy. Při výpadku některého přepínače nebo linky se totiž musí převést provoz automaticky na předem připravenou záložní trasu. A přepínače je tedy nutné propojit více než jednou cestou – redundantně, kde smyčka vznikne raz dva.

Bezsmyčková topologie a redundance spojů

Jak tedy v přepínané síti skloubit oba požadavky? Původní řešení navrhla v roce 1985 v DEC Radia Perlman. Myšlenka je taková, že se na fyzické topologii sítě, která redundantní spoje a tedy i smyčky obsahuje, vytvoří pomocí selektivního zablokování některých spojů topologie jiná – logická, která již smyčky neobsahuje. Vznikne tak „prořezaný strom“ spojů s jedním přepínačem jakožto kořenem stromu a ostatními přepínači na jeho rozvětvení. Větve nikdy „nesrostou“ dohromady zpět.

terms1-3

Některé fyzické spoje byly zablokovány (přerušované linky), zbylé tvoří strom bez možnosti vzniku smyček.

V případě poruchy primárního spoje se o automatické odblokování záložní trasy postará protokol, kterým se přepínače mezi sebou dorozumívají. Tento protokol se jmenuje Spanning Tree Protocol (STP) a jako standard IEEE 802.1D se stal povinnou výbavou každého ethernetového přepínače, který má ambice fungovat ve větší přepínané síti.

V průběhu času došlo k doplnění protokolu a odstranění některých původních nedostatků. Došlo například ke zkrácení doby konvergence sítě (času, kdy se síť po změně topologie ustálí a začne opět fungovat) na jednu až dvě sekundy. Došlo ke stabilizaci chování sítě pomocí mechanismů jako LoopGuard nebo RootGuard. Je možné rozkládat provoz mezi redundantní spoje podle příslušnosti rámců do určité virtuální sítě VLAN (každá VLAN může mít jiný kořen stromu) a další. Hlavní principy STP se však využívají dodnes, nejčastěji v podobě nových standardů RSTP (Rapid STP, IEEE 802.1w) nebo MSTP (Multiple STP, IEEE 802.1s).

Nedostatky STP protokolu

I přes provedené modernizace však protokoly, které jsou na STP založené, trpí neduhy znesnadňující stavbu a správu velkých L2 sítí:

  • Původní protokol STP, se kterým je nutné udržovat v jeho modernizovaných verzích kompatibilitu, má charakter „fail-open“. Při poruše může nastat chybová situace, kdy se primární i záložní spoje aktivují najednou a síť se zahltí.
  • Stabilita sítě není dokonalá a dohledávání zdrojů nestability není triviální. Při zahlcení sítě ji není možné analyzovat formalizovanými postupy. Neexistují nástroje typu „ping“ nebo „traceroute“ známé z L3 protokolů.
  • Jediná možná logická topologie přepínané sítě je strom. Stromová topologie omezuje design sítě, stromy je nutné navrhovat a konfigurovat ručně a je nutné důkladně promyslet nasazení ochranných mechanismů.
  • Většina spojů v páteřní a distribuční části sítě je blokována a tedy nevyužita, čímž se plýtvá jejich přenosovou kapacitou. U výše zmíněného rozkládání provozu per VLAN nemusí dojít k optimálnímu využití dostupných spojů, protože provoz je nutné napasovat do některého z ručně konfigurovaných logických stromů.
  • Pro určité použití může být i sekundové znovuobnovení chodu sítě po výpadku (tzv. konvergence) pomocí STP stále příliš dlouhá.

Čím je fyzická topologie složitější, tím roste závažnost všech popsaných nedostatků. Ty jsou dlouhodobě známé – včetně možností jak se jim vyhýbat. Dlouhodobě osvědčenou cestou je rozdělování přepínaných sítí do co nejmenších L2 segmentů (broadcastových domén) a jejich propojování L3 aktivními prvky. Případné nežádoucí chování STP se tak omezí pouze na příslušnou doménu.

terms1-4

Segmentace jedné velké L2 domény do menších domén je doporučenou cestou pro stavbu velkých sítí

Jednotlivé L2 segmenty by dále neměly mít příliš komplexní fyzickou topologii, neměly by být příliš geograficky rozlehlé a neměly by obsahovat příliš velký počet koncových stanic. Obecně je vhodné pro velké sítě používat v maximální míře L3 mechanismy, které umožňují tvořit mnohem větší, rychleji konvergující a stabilnější sítě s optimálním využitím spojů. Tyto principy jsou stále platné i dnes, bez ohledu na technologický vývoj, kterým L2 protokoly prošly a prochází.

Proč stavět velké L2 sítě?

V některých situacích (kterých v poslední době neubývá, spíše naopak) je však vhodné nebo přímo nutné vybudovat rozlehlý L2 segment. Nejtypičtější příklady se nachází v sítích datacenter (DC) a sítích poskytovatelů služeb (Service Providers, SP).

V DC sítích je vhodné/nutné nasadit větší L2 segmenty například v situacích:

  • Použití virtualizace serverů a jejich migrace mezi různými lokalitami
  • Použití některých load balancing a disaster recovery scénářů, např. geoclustering serverů
  • Transport různých protokolů vyšších vrstev (například IP a Fibre Channel over Ethernet, FCoE) současně
  • Použití speciálních aplikací a protokolů vyžadujících přímou L2 konektivitu
  • Nasazení High Performance Computing (HPC) aplikací vyžadujících nízkou latenci v síti
  • Primárním cílem L2 DC sítí je zajištění redundantního L2 propojení více serverových farem a více geografických lokalit.

V SP sítích je možné nasadit větší L2 segmenty například v situacích:

  • Poskytování pouze L2 Ethernetových služeb.
  • Stavba transportní sítě s mnoha spoji, jejichž L3 adresace by nebyla efektivní a provozní režie L3 protokolů by byla zbytečně veliká.
  • Snaha o využití levnějších L2 zařízení, jejichž design a nasazení je jednodušší. To je situace zejména u menších poskytovatelů v agregačních sítích.

Primárním cílem L2 SP sítí je zajištění škálovatelnosti sítě (zejména MAC adres a identifikátorů VLAN) pro přenos různých služeb pro různé zákazníky včetně jejich logického oddělení.

Všechny výše popsané situace samozřejmě je možné řešit i jinými cestami (tunelování, úpravy aplikací, využití MPLS aj.). Tyto cesty však mají zase jiné nevýhody a často se setkají se značným odporem správců serverů a správců transportních sítí.

Pro všechny popsané scénáře je žádoucí, aby provoz přenášený po L2 infrastruktuře měl možnost:

  • Využít nejvýhodnější cesty v infrastruktuře bez nutnosti sledování stromové topologie
  • Využít přenosové kapacity všech linek sítě (i těch, které by byly pomocí STP zablokovány) bez nutnosti rozkládání zátěže pomocí VLAN
  • Využít přenosové kapacity všech linek sítě pro přenos od stejného zdroje ke stejnému cíli (současné využití souběžných linek, tzv. multipathing).
terms1-5

Multipathing: Mezi stanicemi A a B je možné využít obě nejvýhodnější paralelní cesty současně

terms1-6

Multipathing: Mezi stanicemi A a B je možné využít fialovou, červenou i oranžovou cestu současně.

Mechanismus fungování protokolu Spanning Tree je však pro tyto vlastnosti nepřekonatelnou překážkou.

Náhrada STP

Nyní se vracíme k otázce z úvodu článku: Nešlo by tedy stavět velké L2 sítě rozumněji, pokud by došlo k nahrazení STP robustnějším mechanismem bez zmíněných nevýhod?

Odpověď je jednoduchá – bezesporu by to šlo! A určitě pro to není potřeba znovu vymýšlet již vymyšlené. Například by bylo možné využít SPF algoritmů používaných L3 směrovacími protokoly, které jsou schopny zajistit optimální provoz v síti bez smyček s rychlou konvergencí na libovolné topologii spojů. Nabízí se také možnost využít princip zapouzdřování (enkapsulace) pro přidání důležitých režijních informací do hlaviček ethernetových rámců.

KL17_hlasovani

Při návrzích nového řešení je důležité zachovat charakter fungování ethernetové sítě pro koncová zařízení, kdy síť emuluje multi-access médium s možností broadcastu. Dále je nutné zachovat transparentní charakter ethernetových přepínačů, které není potřeba v extrémním případě vůbec konfigurovat – prostě se zapojí do sítě, samy zajistí bezsmyčkový charakter sítě, samy se naučí MAC adresy koncových stanic a samy přepínají rámce.

Nově vyvíjený protokol TRILL má ambice být právě takovým řešením. Jeho cíle a základní principy fungování budou popsány v druhém článku této série.

Našli jste v článku chybu?