Hallatav Võrgulüliti (Managed Switch) ja selle lisavõimaluste lühikirjeldus
Nagu näha, vajadus on. Seega, alustame päris algusest ning teeme hakatuseks hästi lihtsalt selgeks, misasi on etherneti switch.
Mis on switch
Etherneti switch on layer 2 seade, mis lihtsustatult võtab vastu siseneva etherneti kaadri, puhverdab selle, ning saadab mõnest teisest pordist välja.
Switch erineb hub'ist selle poolest, et switch puhverdab kaadri, analüüsib etherneti kaadris olevaid MAC aadresse ning teeb otsuse nende (ja mõnel juhul ka eldefineeritud policy) põhjal. Hub isegi mitte ei puhverda kaadrit vaid olles preamble kätte saanud, hakkab kohe sissetulevat bitijoru teistesse portidesse edasi saatma. See on põhjuseks, miks me hub'i korral kunagi ei saa rääkida full duplexist.
Iga switchi sees on mingi kogus mälu, kus on tabel, milles on kirjas, millised MAC aadressid millise pordi küljes on. Seda tabelit täidetakse ning muudetakse vastavalt sissetulevatele kaadritele. Kuna etherneti kaadris on nii lähte kui ka sihtaadress (MAC aadress siis, eks), saab switch kasutada lähteaadresse oma tabeli uuendamiseks ning juhul kui switch teab, millise pordi taga on antud kaadris olev sihtaadress, edastab switch selle kaadri ainult sellesse konkreetsesse porti.
On aga ilmselge, et alati ei ole teada, millise pordi taga vajatav MAC aadress asub, samuti on olemas broadcast aadressid, millele saadetud kaader peab minema kõigile (lisaks on veel multicast aadressid, millele saadetud liiklus võiks minna ainult nendele, kes seda soovivad, kuid ei ole mõtet asja hetkel keerukaks ajada).
Nüüd. Olukorras, kus üks kahest, kas on tegemist broadcast/multicast liiklusega või switch ei tea, millise pordi taga on konkreetse kaadri puhul sihtaadress, edastab switch sellise kaadri kõikidesse portidesse, välja arvatud see port, kust ta selle sai (andmeside kuldreegel: ära kunagi saada midagi muutmata kujul tagasi sinna, kust sa selle said).
Ahjaa... Paneme tähele, et switch mitte kunagi ei muuda mitte midagi etherneti kaadris (välja arvatud 802.1Q puhul, kus switch lisab etherneti kaadrisse vastavad väljad või ISL puhul, kus switch kapseldab etherneti kaadri ISL kaadri sisse).
Mis saab kui switchde vahel on rohkem kui 1 ühendus
Olgu. Uurime juhtumit, kui meil on kahe switchi vahel rohkem kui üks ühendus (näiteks kaks kaablit). Oletame, et sellisesse võrku siseneb broadcast kaader, näiteks ARP pakett(suure tõenäosusega on ARP või DHCP esimene pakett, mille sisselülitatud arvuti saadab). Kuna tegemist on broadcasti aadressile saadetud kaadriga, peab switch selle edastama kõikidesse portidesse, välja arvatud sinna, kust ta selle sai. Teine switch saab selle kaadri kätte ning jällegi edastab selle kõikidesse portidesse va. see, kust ta selle sai. Kuna meil on aga switchide vahel topelt ühendus, tuleb see kaader tagasi esimesse switchi, mis jällegi edastab selle igale poole, kuhu saab ja nõnda jääbki meie ARP pakett switchide vahele lõputult ringlema, sest vastupidiselt erkz82 arvamusele, ei muuda switch kaadri sisus mitte midagi, samuti ei ole etherneti kaadris välja, kus oleks kirjas selle kaadri vanus. http://telecom.tbi.net/frmlan.html
Nõndaks, me märkame, et ühendades kaks switchi üksteisega rohkem kui ühe kaabli abil, tuleb sellest suur jama ning tolku pole mitte kopika eest. Targemad switchid räägivad Spanning Tree (802.1D), lühendatult STP või siis Rapid Spanning Tree (802.1w) protokolli. Spanning Tree on selline vahva naiselik protokoll, mille puhul switchid, perioodiliselt saates välja BPDU'sid (teatud kindla struktuuriga etherneti kaadreid), teevad selgeks võrgu topoloogia, hääletavad juurswitchi ning lähtuvalt sellest, muudavad topoloogia puu kujuliseks, blokeerides teatud reeglite alusel ühe või mitu topeltühendust. Tulemuseks saab garanteeritult loop'ide vaba võrk. Ehk siis, kui meie kaks switchi, mille me ühendasime kahe kaabliga, räägivad STP'd, siis ühe switchi üks portidest blokeeritakse liikluse jaoks (endiselt saadetakse sealt kaudu BPDU'sid) ning kasutusele jääb vaid üks ühendustest. Kui see ühendus peaks katkema, saavad switchid sellest teada ning mõne aja pärast, kui ollakse veendunud, et enne blokeeritud olnud ühendus on ainuke, mis switchide vahele alles on jäänud, eemaldatakse blokeering. http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/sw_ntman/cwsimain/cwsi2/cwsiug2/vlan2/stpapp.htm
Me näeme, et STP annab küll garanteeritult "loop free" topoloogia, kuid peale reduntantsuse ei ole topeltühendusest mitte midagi kasu - andmeid mahub kahe switchi vahel liikuma ikka niipalju, kui ühe kaabli sisse läheb.
Selleks, et rohkem kui üks etherneti ühendus üheks bundle'iks kokku liita, saab kasutada näiteks EtherChannel'it (nagu cisco seda nimetab) või Trunking'ut (nagu paljud teised seda nimetavad - mitte segamini ajada 802.1Q'ga) või Bonding'ut(nagu Linux seda kustub). Sellisel juhul liidetakse mitu etherneti ühendust kokku üheks suurema läbilaskevõimega ühenduseks(bundle), kusjuures, kui mõni nendest ühendustest, mis bundle moodustavad, peaks katkema, jääb bundle endiselt tööle (küll väiksema jõudlusega siis). Et seda protsessi automatiseerida, on olemas Link Aggregation Control Protocol (802.3ad), mis võimaldab switchidel automaatselt kokku leppida, millised ühendused switchide vahel bundle'ks kokku liita.
http://www.cisco.com/en/US/tech/tk389/tk213/technologies_white_paper09186a0080092944.shtml
On muidugi ilmselge, et 300 krooni maksval TrendNet, HyperCom, SuperTrust vms. switchil sellist võimekust ei ole, tavaliselt ei räägi nad isegi kõige lihtlabasemat STP'd mitte. Samas, ma oletaks, et umbes 10000 eesti raha eest võiks juba saada switchi, millega on, mõnel ülal kirjeldatud moel, võimalik mitmest ühendusest bundle'id moodustada.
Autor: wookie