Hlavní navigace

TRILL 3. část – Pokročilé principy fungování

14. 10. 2010
Doba čtení: 7 minut

Sdílet

Autor: 29
Třetí ze série článků popisuje pokročilé principy fungování nového protokolu TRILL (Transparent Interconnection of Lots of Links), který má ambice nahradit Spanning Tree Protocol (STP) v ethernetových sítích. Úvod do problematiky nahrazení protokolu STP obsahuje první článek v sérii. Cíle, se kterými byl nový protokol navrhován, a základní principy jeho fungování popisuje článek druhý.

Zapouzdření rámců

Ethernetové rámce přenášené mezi TRILL přepínači jsou zapouzdřeny nejdříve do TRILL záhlaví a pak do vnější ethernetové hlavičky.

TRILL záhlaví slouží pro přenos rámce po celé TRILL síti. Jeho důležité položky jsou:

  • M: Multi-destination příznak udávající, jestli se má rámec poslat pouze jednomu TRILL přepínači, nebo jestli je určen více cílům a má se poslat po distribučním stromu na více destinací.
  • Hop-Count: hodnota, přes kolik TRILL přepínačů ještě může rámec projít předtím, než bude zničen. Jde o obdobu položky TTL/Hop-Count známé z IP světa s hlavním úkolem zabránit nekonečnému zacyklení v síti.
  • ID TRILL přepínače (neboli RBridge nickname), na kterém rámec do TRILL oblasti vstoupil (zdroj, který provedl prvotní enkapsulaci).
  • ID TRILL přepínače, na kterém má rámec z TRILL oblasti vystoupit (cíl, který má provést finální rozbalení). Pro multi-destination rámce je zde uvedeno ID distribučního stromu.
trill 3-1

Hlavička protokolu TRILL

Vnější ethernetová hlavička slouží pro přenos rámce na sousední TRILL přepínač. Od běžné ethernetové hlavičky se liší pouze jiným identifikátorem Ethertype (konkrétně hodnota 0×22F3 označuje rámec, ve kterém jsou TRILL data).

TRILL přepínače využívají možností protokolu IEEE 802.1Q podobně jako v klasické L2 síti. 802.1Q tag ve vnější ethernetové hlavičce označuje číslo virtuální sítě – VLAN, kterou se transportují zabalené rámce mezi TRILL přepínači (tj. ve které VLAN navázaly TRILL přepínače sousedství). Oproti tomu vnitřní tag v původním rámci označuje číslo VLAN, kde se nachází koncové stanice. Jedna transportní VLAN tedy může přenášet rámce pro mnoho VLAN koncových.

Průchod TRILL rámce sítí

Na ukázkové síti popsané v předchozím dílu série si ve větším detailu ukážeme, jak sítí prochází rámec od stanice A určený stanici C.

trill 3-2

Předpokládejme, že síť je již zkonvergovaná – že TRILL přepínače již mají vypočítané nejvýhodnější cesty k ostatním TRILL přepínačům následovně:

TRILL směrovací tabulka přepínače 1
Cílový TRILL přepínač Next-hop
1 Lokálně
2 Přepínač 2
3 Přepínač 2
TRILL směrovací tabulka přepínače 2
Cílový TRILL přepínač Next-hop
1 Přepínač 1
2 Lokálně
3 Přepínač 3
TRILL směrovací tabulka přepínače 3
Cílový TRILL přepínač Next-hop
1 Přepínač 2
2 Přepínač 2
3 Lokálně

Předpokládejme dále, že TRILL přepínače se již naučily umístění všech koncových stanic:

Přepínací tabulka přepínače 1
Cílová MAC adresa Umístění Odeslat kudy Zapouzdření
A přímo připojená Na lokální port X Žádné
B přímo připojená Na lokální port Y Žádné
C vzdáleně připojená Na TRILL přepínač 3 Vnější Eth+TRILL
Přepínací tabulka přepínače 2 koncové stanice neobsahuje
Cílová MAC adresa Umístění Odeslat kudy Zapouzdření
A
B
C
Přepínací tabulka přepínače 3
Cílová MAC adresa Umístění Odeslat kudy Zapouzdření
A vzdáleně připojená Na TRILL přepínač 1 Vnější Eth+TRILL
B vzdáleně připojená Na TRILL přepínač 1 Vnější Eth+TRILL
C přímo připojená Na lokální port X Žádné

Na začátku přenosu vyšle stanice A nativní rámec s cílovou MAC adresou C na TRILL přepínač 1.

trill 3-3

Původní ethernetový rámec

Na přepínači 1 dojde dle záznamu o stanici C v přepínací tabulce k zabalení původního rámce do hlavičky protokolu TRILL.

  • Jako výchozí hodnota Hop-Count je nastavena taková hodnota, aby mohl rámec projít po nejdelší možné cestě v síti, ale zároveň aby nemusel při chybě v síti cyklovat příliš dlouho. V našem případě jsme zvolili hodnotu 10, což je více než dostatečná rezerva.
  • Jako zdrojové TRILL ID je vloženo ID přepínače 1.
  • Jako cílové TRILL ID je (dle přepínací tabulky) vloženo ID přepínače 3.

Nejvýhodnější cesta k přepínači 3 je dle záznamu v TRILL tabulce přes sousední přepínač 2. Do vnější ethernetové hlavičky rámce (původní ethernetová hlavička zůstává nezměněna uvnitř rámce) je vložena jako cílová MAC adresa přepínače 2 a jako zdrojová MAC adresa přepínače 1. Takto připravený rámec je vyslán na přepínač 2.

trill 3-4

Podoba rámce na spoji mezi TRILL přepínači 1 a 2

TRILL přepínač 2 na základě MAC adresy zjistí, že rámec je určen pro něj. Z nastaveného Ethertype (0×22F3) dále pozná, že se jedná o TRILL rámec a zbaví rámec vnější ethernetové hlavičky. Pohledem do TRILL hlavičky zjistí, že cílové TRILL ID je 3. Ve své TRILL tabulce najde nejvýhodnější cestu k TRILL přepínači 3, což už je v tomto případě port, kde je přímo připojený přepínač 3. V TRILL hlavičce dojde k snížení hodnoty Hop-count a kontrole, jestli již není nulová (v takovém případě by byl rámec zničen). Protože tomu tak není, rámec je dále zpracován jako na předchozím TRILL přepínači: do vnější ethernetové hlavičky je vložena jako cílová MAC adresa přepínače 3 a jako zdrojová MAC adresa přepínače 2. Takto připravený rámec je vyslán na přepínač 3.

trill 3-5

Podoba rámce na spoji mezi TRILL přepínači 2 a 3

Úvodní zpracování je velmi podobné: TRILL přepínač 3 na základě MAC adresy zjistí, že rámec je určen pro něj. Z nastaveného Ethertype dále pozná, že se jedná o TRILL rámec a zbaví rámec vnější ethernetové hlavičky. Pohledem do TRILL hlavičky zjistí, že cílové TRILL ID je 3, což je on sám.

To je signál, že cesta rámce po TRILL síti je u konce a že je nutné původní rámec dekapsulovat z TRILL hlavičky. To je také okamžik, kdy by se TRILL přepínač 3 mohl naučit zdrojovou vnitřní adresu rámce (pokud by ji ještě neznal) – v přepínací tabulce by si ji asocioval se zdrojovým ID v TRILL hlavičce (v tomto případě ID 1). Finálně je originální rámec odeslán na správný port dle přepínací tabulky.

Obecné principy fungování

Pokud se na kroky z předchozí části článku podíváme z odstupu, můžeme je popsat obecněji:

  • Každý nativní ethernetový rámec dostane pro průchod TRILL sítí dvě hlavičky: TRILL a vnější ethernetovou. Po průchodu sítí je rámec rozbalen ze všech hlaviček do původní nezměněné podoby.
  • TRILL hlavička je přidávána a odstraňována pouze na okrajových zařízeních TRILL sítě. Při průchodu přes tranzitní TRILL přepínače je tato hlavička pouze modifikována. TRILL ID adresy z této hlavičky mají platnost v celé TRILL síti a nejsou na tranzitních zařízeních měněny.
  • Vnější ethernetová hlavička je odstraňována a znovu přidávána na každém TRILL přepínači včetně tranzitních. MAC adresy z vnější ethernetové hlavičky mají pouze lokální platnost mezi sousedními zařízeními.

A pokud se na tyto kroky podíváme z ještě větší dálky, uvidíme analogii s principy používanými v L3 světě:

  • L3 paket obsahuje pojistný mechanismus proti nekonečnému zacyklení (Hop-Count/TTL).
  • L3 paket obsahuje dvojici globálně platných adres, která se při průchodu L3 zařízeními v síti nemění.
  • Pro přenos na sousední L3 zařízení je paket zabalen do hlaviček/patiček spojové přenosové technologie nižší vrstvy RM OSI. Adresy této technologie jsou platné jen lokálně v rámci spoje a na každém spoji mohou být jiné.

Interakce s protokoly STP

Z pohledu klasických STP zařízení se TRILL přepínač chová jako prvek vyšší vrstvy: na každém portu ukončuje STP doménu, nepřeposílá BPDU rámce a pokud nenastane speciální situace, ani žádné BPDU negeneruje. Tím je možné rozdělit L2 síť do mnoha nezávislých STP domén a izolovat problémové oblasti.

Každý port TRILL přepínače nicméně BPDU rámcům z okolí naslouchá. Tím se například dozví o změně kořenového přepínače a související topologické změně, na kterou musí zareagovat. Naslouchání má ale jen lokální charakter v rámci jednoho portu TRILL přepínače – BPDU rámce nejsou mezi porty vyměňovány a neexistuje globální STP instance pro celý přepínač.

Koexistence klasických a TRILL přepínačů

Návrh protokolu počítá s tím, že v L2 síti budou vedle sebe existovat klasické 802.1 i nové TRILL přepínače. Klasický přepínač může v TRILL síti fungovat úplně kdekoliv (na okraji, v jejím jádru, na spojích mezi TRILL přepínači aj.). Bude fungovat úplně stejně jako dříve, aniž by bylo potřeba ho nějak konfigurovat. Není potřeba vytvářet ucelené oblasti přepínačů klasického nebo nového typu.

Klasické přepínače jsou z pohledu TRILL přepínačů transparentní – jsou součástí spojové služby na nižší vrstvě. Klasický přepínač pošle TRILL rámec správnou cestou podle vnější ethernetové hlavičky i přesto, že vnitřnímu obsahu nerozumí. Klasické přepínače tedy mohou v TRILL síti vytvořit vícebodové spoje (segment, kde sousedství naváží více než dva TRILL přepínače).

I přes neomezené možnosti koexistence obou typů přepínačů je vhodné zařazovat TRILL přepínače do ethernetové sítě promyšleně tak, aby se využilo jejich vlastnost rozdělovat STP oblasti na menší kusy a skrývat MAC adresy koncových stanic před transportními přepínači (což jim šetří místo v přepínacích tabulkách).

CIF24

trill 3-6

Příklad takové implementace je uveden na obrázku. Nahrazením některých klasických přepínačů TRILL prvky došlo k rozdělení původně jedné STP domény na pět, vyznačených elipsami, při zachování celistvosti L2 sítě (např. stanice A může vyslat broadcastový ethernetový rámec, který dojde všem ostatním koncovým stanicím B-H). Zelená doména slouží pouze jako tranzitní – ale i přes její páteřní charakter může obsahovat klasické přepínače.

Ve čtvrtém článku série je popsán aktuální stav vývoje, porovnání a zhodnocení nového protokolu.

Autor článku

Ing. Miroslav Matuška, Ph.D, pracuje jako Senior System Engineer ve společnosti Dimension Data. Zabývá se návrhem, výstavbou a troubleshootingem počítačových sítí všech typů a velikostí.
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).