Smyčka na ethernetu je špatná, bez přídavných ochran shodí síť

9. 11. 2022
Doba čtení: 6 minut

Sdílet

 Autor: Depositphotos
Jeden špatně zapojený síťový kabel umí shodit celou síť. Stačí, když uživatel chybně propojí dvě ethernetové zásuvky a vytvoří tím smyčku. Proč je to pro ethernet taková katastrofa a jak ji řešit?

Jak funguje ethernet

Začněme od Adama, tedy od ethernetu. Na originálním náčrtku této technologie představuje žlutá čára onen éter, tedy prostředí, kterým se komunikace šíří. V tomto případě jde o koaxiální kabel, který je na obou koncích zakončen terminátory. K němu se připojují jednotlivá zařízení.

Původní návrh Ethernetu ze sedmdesátých let 20. století.

Původní návrh Ethernetu ze sedmdesátých let 20. století.

Autor: Alan Freir

Fyzická topologie ethernetu se od původního návrhu změnila do dnešní hvězdy, případně stromu, kde se jednotlivé stanice připojují samostatným kabelem do centrálního prvku, dříve rozbočovače (hubu), dnes již nejčastěji do přepínače, kterému se anglicky říká switch. Jde o zařízení s poměrně jednoduchou funkcí, jehož úkolem je posílat rámce (úseky dat) do správných portů. Logická topologie se ale téměř nezměnila. Stanice jsou logicky stále připojené do sdíleného média a některé protokoly jako ARP jsou na tomto logickém uspořádání závislé.

Přepínač umožňuje přenos dat po ethernetu zefektivnit tím, že se za provozu sám učí, jaké zdrojové MAC adresy ze kterého portu přicházejí. Kombinaci adresa a port si pak ukládá do takzvané tabulky CAM (Content Addressable Memory). Do té se běžně u levných přepínačů vejde několik tisíc záznamů, takže velikost v praxi nebývá problém.

Pokud přijde rámec, který je potřeba předat jinému klientovi, podívá se přepínač do své tabulky, vyhledá správný směr pro daný cíl a rámec tam jednoduše vyšle. Je to velmi rychlé, protože není potřeba dělat nic složitého. Správné bajty z hlavičky rámce se porovnají s tabulkou, najde se port a odesílá se.

Vždycky ale může nastat situace, že cílová MAC adresa v tabulce CAM není, nebo se jedná o skupinovou MAC adresu (ta má první bit nastavený na jedničku, tedy první číslo v MAC adrese je liché). V takovém případě se přepínač začne chovat jako obyčejný rozbočovač a provoz jednoduše předá na všechny ostatní porty.

Přepínače je možné v síti libovolně řetězit, ale na principu to nic nemění. Každé zařízení pracuje samostatně, jen mu z portu přichází víc různých zdrojových MAC adres. Nepředstavuje to ale žádný problém, jen je tím směrem větší skupina klientů, mezi které data rozdělí další přepínač. O jeho stavu nebo datech v tabulce CAM není potřeba nic vědět.

Smyčky bolí

Pro takto jednoduché uspořádání světa jsou smyčky smrtící. Jde o situaci, kdy mezi dvěma uzly existuje více cest nebo jsou mezi sebou propojeny porty jednoho přepínače. Stačí pozorný uživatel, který uvidí volný síťový kabel a zapojí ho do blízké zásuvky

Mohou ale nastat i složitější situace, kdy síť záměrně obsahuje redundantní linky za účelem vysoké dostupnosti. Ty mají být v základním režimu vypnuté, ale vlivem nejrůznějších příčin ať už v softwaru či v lidském faktoru dojde k jejich aktivaci. To byl nejspíš případ dávného incidentu v peeringovém centru NIX-CZ.

Většinu provozu v síti tvoří unicast, čili rámce s adresou jednoho konkrétního cíle. Pak tu ale také máme multicast pro více různých cílů a také broadcast určený úplně všem uzlům v síti. Přepínače se automaticky starají o to, že se rámce správně rozmnoží a vyšlou na potřebné porty.

Na rozdíl od vyšších vrstev nemá ethernet žádnou ochranu v podobě omezení počtu přeskoků. Takové omezení používá například protokol IP (Internet Protocol); hodnota Hop Limit (pro IPv6), resp. Time To Live (pro IPv4), určuje, přes kolik směrovačů může paket projít, než je zahozen. Je to jednoduché a účinné řešení nejrůznějších síťových problémů, včetně smyček. Když se paket zamotá, poměrně rychle zestárne a je zlikvidován. Nic takového ale v ethernetu není.

Pokud tedy vytvoříme smyčku, začnou se nám v síti nekontrolovatelně množit broadcasty. První takový rámec přepínač normálně rozmnoží a rozešle, on mu ale přijde okamžitě znovu. Přepínač nemá jak zjistit, že jde o stejnou zprávu, kterou už předával, takže zopakuje stejnou akci. Takhle stále dokola a dokola, až sítí nechodí nic jiného, než donekonečna namnožené broadcasty, kvůli kterým není místo pro běžný provoz. Tomuto stavu se říká broadcast storm, česky bychom mohli říct vysílací bouře.

Projeví se tak, že síť přestane fungovat, přestože přepínače pracují naplno, svítí jako vánoční stromeček, ale data netečou. Síť se navíc z takové situace sama obvykle neumí dostat a vyžaduje zásah technika, který ví, jak to celé funguje a proč jsou smyčky problém. Obvykle stačí najít jeden z portů, který způsobuje problémy a vypnout ho. Buď z administračního rozhraní (je-li dostupné), nebo přímo fyzicky odpojením kabelu. Zbylé rámce se odešlou a situace se uklidní.

Není-li možné snadno k přepínači dojít, je nutné problém řešit na dálku. V takovém případě se vyplatí mít k administračnímu rozhraní tzv. mimopásmový přístup (Out-Of-Band Management), tedy přístup nezávislý na samotných datových linkách, které přepínač spojuje, protože ty mohou být smyčkou zcela zahlceny. Dříve byla běžným prostředkem pro OOB přístup sériová linka, dnes se prosazuje spíše samostatný ethernetový port.

Jak se bránit

Jistě cítíte, že je tu velký prostor pro zlomyslné jednání nebo jen prostou lidskou chybu. Bohužel smyčky v ethernetu se objevují a setkal se s nimi mnohý správce sítě. Nejednomu také zamotala hlavu, než odhalil příčinu problémů.

Pokud máte malou síť domácího typu s jednoduchými hloupými přepínači, žádná technická ochrana neexistuje. Prostě v ní nedělejte smyčky.  Smyčka je špatná, shodí síť, tak se jí vyhněte. Lepší rada v takové situaci skutečně neexistuje, ale vy jste četli tenhle článek, takže už jste vyzbrojeni vědomostmi a v případě divného výpadku si vzpomenete a budete hledat.

Pokročilejší spravovatelné přepínače mají obvykle implementován STP (Spanning Tree Protocol). Jde o protokol, s jehož pomocí je možné sledovat aktuální síťovou technologii a zaznamenávat propoje mezi přepínači a redundantní linky. Poté je pomocí algoritmu STP vybrána jedna unikátní topologie sítě a případné cesty způsobující smyčky jsou zablokovány.

V síti tak zůstávají jen vybrané preferované linky a ty jsou používány pro předávání provozu. Pokud některá z linek selže, dokáže STP přepočítat kostru celé sítě a aktivovat dříve nepoužívané cesty. Tím je možné v síti zachovat redundantní propoje, které budou nasazeny v případě výpadku, ale zároveň nezpůsobí smyčky.

Datacentra pak přecházejí na pokročilé protokoly jako TRILL nebo Shortest Path Bridging, které kromě ochrany před smyčkami nabízí také využití všech linek zároveň, takže kapacita redundantních propojů není v základním provozu nevyužitá.

bitcoin školení listopad 24

Pokročilejší přepínače také nabízejí řadu ochran, které dokáží předejít nejen vytvoření smyček, ale například i škodlivému provozu od falešných směrovačů a DHCP serverů. To se může hodit, když uživatel propojí dvě zásuvky připojené do různých podsítí. Tím sice nevznikne smyčka, ale k narušení funkce sítě i tak dojde.

Finálním řešením podobných problémů je ověřování všech připojených zařízení pomocí standardu 802.1X. V takovém případě se každé připojené zařízení musí nejprve autentizovat (například jménem a heslem nebo privátním klíčem) a teprve poté se připojeno do sítě. Takové řešení se běžně používá v bezdrátových sítích, ale lze je jen doporučit i pro nově budované drátové sítě, přinejmenším tedy pro zásuvky přístupné uživatelům.

Další čtení

Autor článku

Ondřej Caletka vystudoval obor Telekomunikační technika na ČVUT a dnes pracuje ve vzdělávacím oddělení RIPE NCC, mezinárodní asociaci koordinující internetové sítě.