www.SAMURAJ-cz.com 

19.04.2024 Rostislav Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Víte, jak pracuje switch?

Úterý, 25.05.2010 10:39 | Samuraj - Petr Bouška |
Když chceme pochopit, jak fungují komunikace v počítačových sítích nebo obecně sítě celé, tak musíme začít od spodu. Z fyzického pohledu se jedná o kabeláž a základní aktivní prvky (switche), z logického pohledu se jedná o komunikace na nejmenším logickém celku, tedy v rámci subnetu (přímá komunikace). Obě tyto oblasti jsou definovány a zahrnuty v rodině technologií Ethernet.

Tento článek jsem napsal pro časopis Connect a vyšel v čísle Connect 05/10, zde jej publikuji s laskavým svolením redakce.
Jedná se o druhý díl seriálu o počítačových sítích. Na tomto webu již existuje obsahově shodný (a rozsáhlejší) seriál Počítačové sítě - Computer networks, ale tento článek jsem napsal s určitým časovým odstupem a z trochu jiného pohledu.

Ethernet jako základ LAN sítě

V minulém díle časopisu jsme v úvodní části našeho seriálu stručně shrnuli různé technologie, metody a protokoly, které dohromady tvoří něco, co označujeme jako počítačová síť. Dnes se podíváme podrobněji na to, co tvoří základ nejrozšířenějších LAN sítí, tedy technologie Ethernet. Jak funguje komunikace v rámci Ethernetu a jak pracuje nejrozšířenější aktivní prvek switch.

OSI model

Na začátku se trochu více zmíníme o Open System Interconnection Reference Model (OSI model), který jsme minule srovnávali s TCP/IP Reference Model. Tento standardizovaný popis se totiž v praxi velice často používá, když se popisují určité síťové technologie. OSI model je založený na vrstvách, anglicky se používá termín Layer. V praxi často říkáme, že něco pracuje na L2, tím myslíme na 2. vrstvě OSI modelu. Každá vrstva OSI modelu zajišťuje skupinu konceptuálně podobných funkcí a poskytuje služby vrstvě nad ní a přijímá služby od vrstvy pod ní.

vrstva jméno jednotka funkce vrstvy příklad
L7 Application Data Síťové procesy pro aplikaci, ověření uživatelů, vše závislé na aplikaci. HTTP, DNS
L6 Presentation Data Reprezentace dat a šifrování. Řeší rozdíly v reprezentaci dat mezi aplikací a síťovým formátem - kóduje data pro přenos. SSL, MPEG
L5 Session Data Spojení mezi aplikacemi, správa session. Komunikace jedné aplikace s druhou, posílání více dat po sobě. Udržuje celé spojení mezi dvěma počítači. NetBIOS
L4 Transport Segments End-to-end spojení systémů, spolehlivost - zajišťuje kompletní přenos dat, kvalita služby. Řeší spolehlivé odeslání všech dat ze zdroje do cíle pomocí segmentace a potvrzování. TCP, UDP
L3 Network Packets Logická adresace - routování - určení cesty paketu, přenos dat z bodu do bodu, používá IP adresy, fragmentace. Komunikace mezi zdrojovým a cílovým zařízením pomocí IP adresy. IP, ICMP, OSPF
L2 Data Link Frames Fyzická adresace, MAC - media access control a LLC - logical link control, datový tok, synchronizace rámců, komunikace 1 hop, používá MAC adresy. Detekce chyb, řízení toku a přístupu na médium. Komunikace mezi dvěma zařízeními v jednom subnetu (nebo na bránu) pomocí MAC adresy. Vytváří rámce (hlavička + data + zápatí). Ethernet, 802.1q, PPP, ARP
L1 Physical Bits Fyzické parametry linky - média (kabely, rádio, světlo), signály a binární přenos. Řeší fyzické poslání dat (přenášeným bitům nepřiřazuje žádný význam). 100BaseT, 802.11g

Obecně o Ethernetu

V dnešní době jsou asi všechny lokální sítě založeny na rodině síťových technologií zvané Ethernet. Takže když se chceme dozvědět, jak funguje komunikace v počítačové síti, tak se nejprve musíme seznámit s vlastnostmi Ethernetu.

Ethernet je standardizován ve skupině norem IEEE 802.3. Definuje parametry přenosového média a signálů pro fyzickou vrstvu (L1) a také obecný adresovací formát a Media Access Control (MAC) pro data link vrstvu (L2). Z pohledu TCP/IP Model se nachází celý Ethernet v první vrstvě, tedy linkové. Tato vazba je důležitá, protože TCP/IP nejčastěji pracuje nad Ethernetem.

Kolizní domény na switchi

Použit jako přenosové médium koaxiální kabel, stejně jako zapojení na sdílenou sběrnici, dnes asi nikdo pro drátovou síť nepoužívá. Takže pouze pro referenci zmíníme metodu přístupu na sdílenou síť Carrier Sense Multiple Access With Collision Detection (CSMA/CD), která řešila kolize při vysílání. K tomu je důležitý termín kolizní doména, což je část sítě, kde může dojít ke kolizi vysílání více stanic. Pokud používáme switch, tak na každém portu je ukončena kolizní doména. Tedy když připojíme do portu pouze jedno zařízení, nedochází ke kolizím. Pokud ovšem používáme hub nebo zapojení na sdílenou sběrnici, tak kolize mohou nastat.

Jako médium dnes asi vždy použijeme kroucenou dvojlinku (twisted pair) či optické vlákno (fiber optic). A pro propojení použijeme spoje bod-bod pomocí switche (přepínače), tedy zapojení do hvězdy.

Topologie hvězda

Varianty Ethernetu

Pro Ethernet existuje řada variant, které se liší podle přenosové rychlosti a typu fyzického média. Důležité ale je, že formát rámce (Ethernet frame) je stále stejný. Původní Ethernet, s kterým se dnes těžko setkáme, dosahoval rychlosti 10 Mbps. Jeho nástupce s rychlostí 100 Mbps se označuje jako Fast Ethernet a pokud používá kroucenou dvojlinku kategorie 5 nebo lepší, tak se označuje jako 100Base-TX, při použití optického vlákna záleží na jeho typu, může se jednat například o 100Base-FX. Další navýšení rychlosti přináší Gigabit Ethernet, na kroucené dvojlince je to 1000Base-T. Dále existuje řada rychlejších variant.

Do detailů kabeláže nebudeme zabíhat, pouze krátká zmínka. Nejběžněji se používá kroucená dvojlinka (Twisted Pair - TP), která může být buď nestíněná (Unshielded TP – UTP) nebo s ohranou proti rušení stíněná (Shielded TP – STP). Dále se TP kabely dělí do určitých kategorií, podle definovaných kritérií. Jako stále hojně používaná kategorie 5e (Cat-5e) či nová kategorie 6a (Cat-6a).

V Ethernetu můžeme používat Half Duplex, kdy se vysílá pouze v jednom směru nebo Full Duplex, tedy současné vysílání v obou směrech. Využívá se toho, že kroucená dvojlinka obsahuje více vodičů a komunikace v různém směru běží po jiném páru. Podmínkou použití Full Duplex je, že nepoužíváme huby, ale switche. Výhodou Full Duplexu je to, že se nám teoreticky zdvojnásobí propustnost.

MAC adresa

Ethernetové stanice komunikují pomocí zasílání rámců (frames), což je jednotka komunikace na L2 (tedy to, co se posílá po síti). Jedná se o určitý blok dat, který má doplněnu hlavičku a zápatí (kontrolní součet). Hlavička rámce obsahuje zdrojovou a cílovou MAC adresu a EtherType, ten určuje jaký protokol je použit na vyšší vrstvě (nejčastěji 0x0800 pro IPv4). Ethernetových rámců existuje více typů, ale nejvíce se setkáme s verzí 2. Pro rozlišení jednotlivých rámců se na začátku vysílá speciální úvod (preamble) složený ze sekvence střídajících se jedniček a nul a SFD - oddělovač začátku rámce.

Ethernet rámec

MAC adresa, jinak označovaná jako fyzická adresa či Ethernet adresa, je 48 bitové unikátní sériové číslo. Výrobci HW mají přidělený určitý rozsah adres, který používají. MAC adresa bývá zakódována v zařízení výrobcem, ale v dnešní době ji lze často změnit. Tím způsobem se provádí útoky s podvržením MAC adresy MAC spoofing.

MAC adresa by měla identifikovat zařízení v síti, ale neříká nic o jeho umístění. Navíc MAC adresy se používají pouze pro komunikaci v rámci stejného subnetu, tedy na L2. Zápis MAC adresy se běžně provádí třemi různými způsoby, buďto pomocí dvojic oddělených dvojtečkou či pomlčkou nebo pomocí čtveřic oddělených tečkou. Příklad 01:23:45:67:89:ab, 01-23-45-67-89-ab či 0123.4567.89ab.

Při běžné unicastové komunikaci by síťový adaptér měl přijímat pouze rámce, které mají jako cílovou adresu jeho MAC adresu. V případě, že chceme například monitorovat provoz, tak musíme síťovou kartu přepnout do tzv. promiskuitního módu (promiscuous mode), kdy nevybírá provoz, ale vše odesílá vyšší vrstvě (procesoru) ke zpracování.

Jak funguje switch

Switch, česky řečeno přepínač, nahradil starší zařízení hub (rozbočovač) a také bridge (most). Hub pracuje na L1 a je velice jednoduchý, veškerý provoz (rámce), který přijde na jednom portu, odešle na všechny ostatní porty (mimo příchozího). V dnešní době se již snad s huby v praxi nesetkáme. Výhoda switche je v tom, že již většinu provozu nerozesílá všude, ale pouze tam, kde se nachází příjemce.

Switch již pracuje na L2, takže přistupuje k MAC adresám a podle nich rozesílá provoz. Když přijde nějaký rámec, tak si přečte zdrojovou MAC adresu a v paměti si sestavuje tabulku portů a MAC adres, které se za nimi nachází. Tato tabulka se označuje jako CAM tabulka (Content Addressable Memory). Potom se podívá na cílovou MAC adresu a hledá ji v CAM tabulce. Pokud ji najde, tak odešle rámec na daný port. Pokud záznam pro tuto adresu nemá, tak rámec odešle na všechny porty mimo příchozího (většinou pak brzy přichází odpověď, takže takto odeslaných rámců není mnoho).

Výše uvedený popis se týkal unicastu. Pokud jde o broadcast, který se na L2 pozná podle MAC adresy se samými binárními jedničkami, tedy FF:FF:FF:FF:FF:FF, tak se vždy rámec odesílá na všechny porty mimo příchozího. Pokud se jedná o multicast, MAC adresa začíná 01:00:5e a jedná se o MAC adresu skupiny, tak se takový rámec rozesílá stejně jako broadcast. To proto, že z této adresy není nikdy žádný příchozí provoz, takže neexistuje záznam v CAM tabulce. Optimálnější rozesílání multicastu na L2 se dá řešit pomocí IGMP Snoopingu.

Použití switchů je o něco bezpečnější než připojení na sdílené médium, protože provoz by se neměl šířit všude po subnetu.  Ale bezpečnost je relativní, protože existují jednoduché útoky jako zaplavení switche MAC adresami MAC flooding, které zajistí, že switch se začne chovat jako hub. Ale i proti tomu existuje obrana.

Z důvodů rychlosti existuje několik metod, jakými switch přeposílá rámce. Nejběžnější je cut-through, kdy switch přeposílá rámec okamžitě, jakmile zná cílovou MAC adresu, což je rychlé, ale nekontrolují se chyby. A store-and-forward, nejprve se přijme celý rámec a uloží do bufferu, ověří se kontrolní součet a teprve potom přepošle (případně zahodí). 

Propojení switchů

Jedna věc v principu komunikace na L2 je důležitá a to, že switch je naprosto transparentní. To znamená, že nijak nemění procházející data (rámce) a při komunikaci jej nijak neadresujeme. Pouze může rámce kontrolovat a ty poškozené zahazovat.

Při zapojení můžeme použít více switchů a ty navzájem propojovat. Přes propojovací spoj, budeme mu říkat uplink, pak proudí veškerá komunikace, která se má dostat na zařízení na druhém switchi. Princip zůstává stále stejný, pouze pro uplink port vznikne v CAM tabulce větší množství záznamů. Není ovšem optimální zapojovat switche do řady, ale spíše do stromové struktury ideálně s jednou nebo dvěma úrovněmi.

Dvojitá hvězda nebo Hub and spoke

Fyzická struktura sítě, která vznikne propojením více switchů (mohou jich být desítky), tvoří oblast, kde je možná přímá komunikace mezi všemi připojenými zařízeními. Z logického pohledu tuto strukturu můžeme označovat jako LAN, ale ta se může skládat i zvíce takovýchto oblastí navzájem propojených (přes router). Lepší označení by bylo subnet, protože právě v rámci subnetu můžeme přímo komunikovat na L2. Ale subnet vytváříme pomocí adresace na L3. V rámci skupiny propojených switchů můžeme klidně definovat více sunbnetů (v praxi se to takto nedělá!). Potom zařízení z různých subnetů spolu nemohou komunikovat po L3, ale pořád mohou komunikovat po L2, což většinou, když dělíme síť, nechceme.

Pokud chceme mít fyzicky oddělené subnety, tak máme dvě možnosti. Buďto vybudovat samostatné skupiny switchů, které spolu nebudou přímo propojeny (pouze mohou být spojeny přes router). Nebo využít technologii zvanou Virtual LAN (VLAN), kterou musí podporovat switche. VLAN funguje na L2 a na fyzické struktuře switchů vytváří logické rozdělení do skupin (vytváří jakoby virtuální switche). Technologii VLAN si podrobně popíšeme v některém z dalších dílů.

Agregace a redundance

Když propojujeme switche mezi sebou, tak přes uplink port proudí větší množství dat, proto má většinou tento port větší rychlost než ostatní porty, aby zde nedocházelo ke zpomalování celé komunikace. Můžeme také použít technologii Link Aggregation, kdy propojíme více portů a svážeme je dohromady do jednoho logického portu, který může mít větší rychlost.

Druhá věc, kterou musíme řešit, je možnost výpadku jednoho zařízení, které může způsobit pád celé sítě. Proto je dobré použít zdvojené linky, které směřují k různým switchům. Tím se nám ovšem mění původní zapojení do hvězdy (tedy stromové struktury) a vznikají smyčky. Když máme velké množství switchů, tak může vzniknout smyčka i omylem, při neplánovaném propojení dvou switchů.

Smyčka v síti

Smyčky v síti jsou velký problém, protože k cíli již neexistuje pouze jedna cesta, ale několik různých cest. To vede k tomu, že při odesílání broadcastu (většinou stejně u multicastu) vzniká broadcastová bouře, což je takové zahlcení sítě broadcasty, že se přestane odesílat regulérní provoz. Další problém je několikanásobné doručení a nestabilita CAM tabulky, na switch přichází rámce se stejnou zdrojovou adresou z různých portů.

Smyčky můžeme řešit pomocí výše zmíněné agregace linek, která se ovšem musí konfigurovat a nezabrání tomu, že propojíme switche omylem. Nebo automaticky pomocí protokolu Spanning Tree Protocol (STP), který obsahují všechny dnešní spravovatelné switche a je defaultně zapnutý (dnes se používají novější verze tohoto protokolu Rapid STP a Multiple STP). Tento protokol zajišťuje blokování redundantních cest a v případě výpadku aktivní cesty zprovozní tu záložní.

zobrazeno: 82733krát | Komentáře [8]

Autor:

Související články:

Základy počítačových sítí

Tento seriál jsem napsal pro časopis Connect. Většinu informací obsahuje shodně jako můj starší seriál Počítačové sítě - Computer networks, ale je napsán trochu jiným způsobem. Nejprve jsou stručně shrnuty technologie počítačových sítí a pak se trochu podrobněji probírají od nejnižších vrstev nahoru.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] mats

    Parádní článek, zrovna se učím do Cisca a tohle mi vážně pomohlo. Díky :-)

    Sobota, 12.06.2010 16:50 | odpovědět
  2. [2] Karel Vais

    Ahoj lidi.

    Mám problém připojit druhé PC k prvnímu přes 5ti portový switcher ONE LEVEL FSW-0511. První PC mám připojené k NETu přes tento switcher. Modem je až u providera. Chci aby druhý comp pracoval jako prac. stanice v LAN síti, s přístupem do internetu přes první PC. K switcheru je připojen přes síť kartu. Ledky svítí, ale nejede to. Mám WIN98SE. Porty: 1- adapter LINKSYS na IP telefon, 2- druhé PC, 3- první PC, 4- volný, 5- ethernetová přípojka. V druhém PC jsem zadal adresu IP 192.168.1.1 a masku podsítě 255.255.255.0. Nemám zadat i výchozí bránu a IP obou DNS serverů? Není to blokováno providerem? Dík za jakoukoliv odpověď. Pište na Spacekarlos@email.cz. Sem se nebudu asi vracet. Karel.

    Sobota, 31.07.2010 16:10 | odpovědět
  3. [3] hepterida

    @Karel: pokud budete chtít použít jedno PC jako internetovou bránu, pak jeho IP musí být branou druhého PC. V registrech lze ještě nastavit parametr "HKLM\system\currentcontrolset\services\tcpip\parameters\ IPEnableRouter" na hodnotu "1", aby se Windows chovala jako router.

    http://hepterida.wordpress.com

    Sobota, 18.09.2010 02:02 | odpovědět
  4. [4] had

    možná bych dodal, že MAC adresa už bohužel není jednoznačným identifikátorem (celosvětově), může se stát, že se na jedné síti sejdou dvě stejné MAC a pak je problém...ale v rámci jedné sítě by měla být unikátní.

    Středa, 29.06.2011 10:23 | odpovědět
  5. [5] vencour

    Dostal jsem se ke switchům DCN (made in China, neuměly ani tacacs s OTP), defaultně STP zapnuté neměly ... bylo to poprvé, co jsem se k takovému mgmt switchi dostal.

    Pondělí, 15.04.2013 05:19 | odpovědět
  6. [6] oglop

    Ahoj, mam takovy dotaz ohledně te kolize.

    Mam zapojeni asi takto

    Do SW1 je pripojeno PC1 a PC2

    ramec z PC1 bude mit cil FF:FF:FF:FF:FF:FF

    Co se stane když ve stejnou chvili začne vysilat PC2?

    Dojde tam ke kolizi nebo ne?

    Úterý, 22.10.2013 14:41 | odpovědět
  7. [7] Aron

    Super práce!! Díky moc

    Úterý, 13.10.2020 11:54 | odpovědět
  8. [8] Exner

    odpověď na [7]Aron: Souhlas, je to bombastický

    Úterý, 13.10.2020 11:55 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách