12.07.2015 Views

Průzkum implementací STP, RSTP a GVRP na Linuxu

Průzkum implementací STP, RSTP a GVRP na Linuxu

Průzkum implementací STP, RSTP a GVRP na Linuxu

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Průzkum implementací<strong>STP</strong>, R<strong>STP</strong> a <strong>GVRP</strong> <strong>na</strong> <strong>Linuxu</strong>Lukáš Ku<strong>na</strong>Abstrakt: Tento dokument si klade za cíl seznámit čtenáře s výsledky testů velmipoužívaných funkcio<strong>na</strong>lit síťových přepí<strong>na</strong>čů <strong>STP</strong>, R<strong>STP</strong> a <strong>GVRP</strong> <strong>na</strong> počítačíchs operačním systémem založeném <strong>na</strong> linuxovém jádře. Od čtenáře předpokládá z<strong>na</strong>losttěchto protokolů a do detailů si nečiní ambice je vysvětlovat, pouze otestovat jejichnejpokročilejší a nejstabilnější implementace v praktických úlohách, které by mělypokrýt většinu očekávaných aplikací.Klíčová slova: <strong>STP</strong>, R<strong>STP</strong>, <strong>GVRP</strong>, Linux, brctl, rstpctl, rstpd, iproute, VLAN1 Úvod.............................................................................................................................32 Vybrané protokoly........................................................................................................42.1 Spanning tree protocol (<strong>STP</strong>)................................................................................42.2 Rapid spanning tree protocol (R<strong>STP</strong>)...................................................................42.3 GARP VLAN registration protocol (<strong>GVRP</strong>)........................................................43 Použitá zařízení a programové vybavení......................................................................53.1 Počítač...................................................................................................................53.1.1 Hardware.......................................................................................................53.1.2 Software........................................................................................................53.2 Přepí<strong>na</strong>če...............................................................................................................54 Testy <strong>STP</strong>.....................................................................................................................64.1 Konfigurace <strong>STP</strong> <strong>na</strong> <strong>Linuxu</strong>.................................................................................64.2 A<strong>na</strong>lýza stavu <strong>STP</strong> síťového mostu <strong>na</strong> <strong>Linuxu</strong>.....................................................74.3 Testy volby kořenu stromu, blokovaných portů a ohodnocení linek....................84.3.1 Cíle testů........................................................................................................84.3.2 Schéma zapojení............................................................................................84.3.3 Testy s původními asymetrickými ohodnoceními linek...............................94.3.4 Testy s <strong>na</strong>stavenými symetrickými ohodnoceními linek..............................94.4 Testy <strong>na</strong>stavení priority portů.............................................................................104.4.1 Cíle testů......................................................................................................104.4.2 Schéma zapojení..........................................................................................104.4.3 Test 1: změny priorit <strong>na</strong> SW0, kořen stromu <strong>na</strong> SW0................................104.4.4 Test 2: změny priorit <strong>na</strong> SW0, <strong>na</strong> SW1 vypnuto <strong>STP</strong>.................................114.4.5 Test 3: změny priorit <strong>na</strong> SW0, kořen stromu <strong>na</strong> SW1................................114.4.6 Test 4: změny priorit <strong>na</strong> SW1, kořen stromu <strong>na</strong> SW1................................114.5 Testy času dosažení konvergovaného stavu.......................................................124.5.1 Cíle testů......................................................................................................124.5.2 Schéma zapojení..........................................................................................124.5.3 Test..............................................................................................................125 Testy R<strong>STP</strong>.................................................................................................................135.1 Konfigurace R<strong>STP</strong> <strong>na</strong> <strong>Linuxu</strong>.............................................................................135.2 A<strong>na</strong>lýza stavu R<strong>STP</strong> síťového mostu <strong>na</strong> <strong>Linuxu</strong>................................................14květen 2009 1/23


5.3 Testy volby kořenu stromu, blokovaných portů a ohodnocení linek..................155.3.1 Cíle testů......................................................................................................155.3.2 Schéma zapojení..........................................................................................155.3.3 Test..............................................................................................................155.4 Testy <strong>na</strong>stavení priority portů.............................................................................165.4.1 Test 1: změny priorit <strong>na</strong> SW0, kořen stromu <strong>na</strong> SW0................................165.4.2 Test 2: změny priorit <strong>na</strong> SW0, <strong>na</strong> SW1 vypnuto <strong>STP</strong>.................................165.4.3 Test 3: změny priorit <strong>na</strong> SW0, kořen stromu <strong>na</strong> SW1................................165.4.4 Test 4: změny priorit <strong>na</strong> SW1, kořen stromu <strong>na</strong> SW1................................165.5 Test vynucení verze <strong>STP</strong> a návratu do R<strong>STP</strong> režimu.........................................175.6 Test <strong>na</strong>stavení délky prodlevy pro dosažení konvergovaného stavu..................175.7 Test <strong>na</strong>stavení „edge“ portu................................................................................175.8 Test <strong>na</strong>stavení „p2p“ portu..................................................................................175.9 Test vypnutí (R)<strong>STP</strong> <strong>na</strong> portu.............................................................................176 Testy <strong>GVRP</strong>................................................................................................................186.1 Implementace......................................................................................................186.2 Konfigurace <strong>GVRP</strong> <strong>na</strong> <strong>Linuxu</strong>............................................................................186.3 Základní funkčnost..............................................................................................186.3.1 Cíle testu......................................................................................................186.3.2 Schéma zapojení..........................................................................................186.3.3 Test..............................................................................................................186.4 Redundantní propojení směrovače a přepí<strong>na</strong>če s použitím R<strong>STP</strong>......................206.4.1 Schéma zapojení..........................................................................................206.4.2 Test..............................................................................................................206.5 Propustnost <strong>GVRP</strong> přes linuxový most s použitím R<strong>STP</strong>..................................216.5.1 Schéma zapojení..........................................................................................216.5.2 Test..............................................................................................................217 Závěr...........................................................................................................................228 Použitá literatura.........................................................................................................23květen 2009 2/23


1 ÚvodPočítače v dnešní době dokáží plnit velkou spoustu úkolů. Množi<strong>na</strong> úkolů, které dokáží zastat, jsouodvislé od <strong>na</strong>instalovaných programů a operačního systému. Počítače s operačním systémem linuxovéhotypu dnes umí zastat různé činnosti – kancelářská práce, internetový server, síťový směrovač nebo vomezené míře také multimediální práce a počítačové hry. Mým úkolem v této práci je a<strong>na</strong>lyzovat možnostipoužití běžného počítače s operačním systémem Linux pro použití jako přepí<strong>na</strong>č – provozovat funkcepřepí<strong>na</strong>če nebo přinejmenším s okolními přepí<strong>na</strong>či účelně spolupracovat.Bylo nutno tedy vybrat řešení a protokoly, které vytváří samotnou inteligenci dnešních přepí<strong>na</strong>čů aexistuje nějaká jejich implementace pro Linuxový operační systém. Při výběru protokolů pro test jejichimplementací <strong>na</strong> <strong>Linuxu</strong> jsem volil ty, se kterými se administrátor může setkat při konfiguraci přepí<strong>na</strong>čůnejčastěji, jsou implementovány co nejširší množinou výrobců aktivních prvků a jejichž implementacedosáhla jisté úrovně použitelnosti. Všechny testované protokoly se využívají v sítích dnes domi<strong>na</strong>ntníhoethernetového typu.Nejspíše bych měl říci, že pro přepí<strong>na</strong>č <strong>na</strong> <strong>Linuxu</strong> by se mělo použít korektní oz<strong>na</strong>čení síťový most, avšakdíky zvýšené inteligenci a jisté blízkosti fungování tento pojem volně zaměňuji za přepí<strong>na</strong>č.květen 2009 3/23


4.2 A<strong>na</strong>lýza stavu <strong>STP</strong> síťového mostu <strong>na</strong> <strong>Linuxu</strong>Stav síťového mostu, jednotlivých portů a obecně celého <strong>STP</strong> procesu lze sledovat pomocí výpisu pozadání příkazu (pro most br0):brctl showstp br0Následuje výpis jako <strong>na</strong>příklad tento:br0bridge id8000.00e07deb4ac9desig<strong>na</strong>ted root 7000.001ee5bdacf5root port 1 path cost 200000max age 20.00 bridge max age 20.00hello time 2.00 bridge hello time 2.00forward delay 15.00 bridge forward delay 15.00ageing time 300.01hello timer 0.00 tcn timer 0.00topology change timer 0.00 gc timer 1.26flagseth1 (1)port id 8001 state forwardingdesig<strong>na</strong>ted root 7000.001ee5bdacf5 path cost 200000desig<strong>na</strong>ted bridge 7000.001ee5bdacf5 message age timer 19.60desig<strong>na</strong>ted port 8001 forward delay timer 0.00desig<strong>na</strong>ted cost 0 hold timer 0.00flagseth2 (2)port id 8002 state blockingdesig<strong>na</strong>ted root 7000.001ee5bdacf5 path cost 200000desig<strong>na</strong>ted bridge 8000.00226b37b5ac message age timer 18.57desig<strong>na</strong>ted port 8001 forward delay timer 0.00desig<strong>na</strong>ted cost 200000 hold timer 0.00flagsMezi klíčové hodnoty ve výpisu směrem od shora patří (v závorce vždy hodnoty z ukázkového výpisu):● identifikaci lokálního mostu (8000.00e07deb4ac9), složenou z priority mostu a MAC adresy● identifikace přepí<strong>na</strong>če, který se stal kořenem stromu (7000.001ee5bdacf5) a jaký port k němu vede(1) a s jakou cenou se k němu dostaneme (200000)● sez<strong>na</strong>m portů v mostu (eth1 jako port 1, eth2 jako port 2)● identifikace portů (8001 a 8002), které jsou složeny z priority portu (hexadecimálně první dvě cifry)a pořadového čísla portu● stavy portů (port 1 forwarding a port 2 blocking)● ocenění linek (obě 200000)květen 2009 7/23


4.3 Testy volby kořenu stromu, blokovaných portů a ohodnocení linek4.3.1 Cíle testůTato část testu se skláda z více podčástí. V první podčásti jsem dle obrázku 1 zapojil Cisco přepí<strong>na</strong>če(SW1 a SW2) v továrním <strong>na</strong>stavení a aktivoval <strong>STP</strong> protokol, <strong>na</strong> počítači vytvořil síťový most a rovněžaktivoval <strong>STP</strong>, všechny ohodnocení jsem ponechal <strong>na</strong> původních hodnotách. Zde je nutno podotknout, žepůvodní <strong>na</strong>stavení ohodnocení (cost) linek <strong>na</strong> <strong>Linuxu</strong> se řídí dle standardu 802.1d a <strong>na</strong> Cisco přepí<strong>na</strong>či vždy(<strong>STP</strong> i R<strong>STP</strong>) podle standardu 802.1t, tím pádem vzniká asymetrické ohodnocení linek SW0-SW1 a SW0-SW2. Pro úplnost jsem tedy provedl test pro původní hodnoty asymetrického ohodnocení <strong>na</strong> SW0 (Linux),ale především v druhé podčásti s úpravou ohodnocení <strong>na</strong> SW0 také pro sjednocené hodnoty dle 802.1t tak,aby ohodnocení linky z obou stran <strong>na</strong> přepí<strong>na</strong>čích bylo identické (symetrické). Protože linka mezi přepí<strong>na</strong>čiSW1 a SW2 byla jediná v módu 1G (síťové karty v SW0 tento mód nepodporovaly), upravil jsem ručně totoohodnocení ručně <strong>na</strong> hodnotu pro 100M dle 802.1t, abych dosáhl jednotného ohodnocení pro všechny linkyvedoucí z Cisco přepí<strong>na</strong>čů a test se zjednodušil (podobně by šlo zřejmě dosáhnout stejného výsledkuupravením maximální rychlosti portu).4.3.2 Schéma zapojeníObrázek 1: schéma zapojeníkvěten 2009 8/23


4.3.3 Testy s původními asymetrickými ohodnoceními linekPro tyto testy jsem <strong>na</strong> přepí<strong>na</strong>či a síťovém mostu ponechal původní ohodnocení linek, s výjimkou ručněohodnocené propojky mezi přepí<strong>na</strong>či SW1 a SW2 (pro hodnoty 100M, viz. 4.3.1). Všechny porty linuxovéhomostu byly tedy ohodnoceny 19 dle normy 802.1d a všechny aktivní porty přepí<strong>na</strong>čů 200000.Tuto konfiguraci ohodnocení jsem otestoval s následujícími kombi<strong>na</strong>cemi priorit mostů a zjistilnásledující stav kořenů stromů a blokovaných portů:SW0 prio SW1 prio SW2 prio kořen blokovaný port logvých 32768 32768 32768 SW2 SW1 směr SW0 stp_ 01.txtsw0 28672 32768 32768 SW0 SW1 směr SW2 stp_ 02.txtsw1 32768 28672 32768 SW1 SW2 směr SW0 stp_ 03.txtsw2 32768 32768 28672 SW2 SW1 směr SW0 stp_ 04.txtTabulka 1: výsledky testuZ tabulky 1 je zřejmé, že volba kořene stromu proběhla při rovnosti priorit podle nejnižší MAC adresy av jiných případech dle nejnižší priority.Zablokované porty odpovídají <strong>na</strong>staveným ohodnocením linek.Z výpisu diagnostiky <strong>STP</strong> <strong>na</strong> <strong>Linuxu</strong> v souboru stp_01.txt, který je přiložen k dokumentu, je také zřejmé,že ce<strong>na</strong> cesty ke kořenu stromu odpovídá lokálnímu ohodnocení linky (nikoliv odlišné hodnotě ohodnocení zCisco přepí<strong>na</strong>čů), což lze považovat za správné.4.3.4 Testy s <strong>na</strong>stavenými symetrickými ohodnoceními linekV tomto testu jsem sjednotil ohodnocení všech linek <strong>na</strong> 200000 a provedl test znovu, <strong>na</strong> závěr jsemvyzkoušel pomocí změny ohodnocení linek ovlivnit zablokování portů – <strong>na</strong>stavil jsem mezi přepí<strong>na</strong>či SW0 aSW2 ohodnocení <strong>na</strong> 100000.SW0 prio SW1 prio SW2 prio kořen blokovaný port logvých 32768 32768 32768 SW2 SW0 směr SW1 stp_ 05.txtsw0 28672 32768 32768 SW0 SW1 směr SW2sw1 32768 28672 32768 SW1 SW0 směr SW2sw2 32768 32768 28672 SW2 SW0 směr SW1 stp_ 06.txtuživ 32768 32768 28672 SW2 SW1 směr SW0 stp_ 07.txtTabulka 2: výsledky testuZ tabulky 2 je zřejmé, že volby kořene stromu proběhly v pořádku a ovlivnění blokovaného portu zapomocí změny ohodnocení linek se také zdařilo.Během testu se ale vyskytly případy, kdy se <strong>na</strong>stavené ohodnocení <strong>na</strong> linuxovém síťovém mostu přifyzickém výpadku a obnovení linky, která z něj vede, přepnulo zpět do automatického režimu, cožnepovažuji za dobrou vlastnost.květen 2009 9/23


4.4 Testy <strong>na</strong>stavení priority portů4.4.1 Cíle testůTuto sadu testů jsem provedl za účelem ověření ovlivňování blokovaných portů pomocí jejich prioritv případě, že do jedné sítě existuje z přepí<strong>na</strong>če více než jed<strong>na</strong> cesta a všechny mají stejné ohodnocení linek.V tomto testu jsem nechal ohodnocení linek v původním <strong>na</strong>stavení, protože výsledky testu neovlivní.4.4.2 Schéma zapojeníObrázek 2: schémazapojení4.4.3 Test 1: změny priorit <strong>na</strong> SW0, kořen stromu <strong>na</strong> SW0Při tomto testu jsem <strong>na</strong>stavil priority přepí<strong>na</strong>čů tak, aby se stal linuxový most SW0 kořenem. Napřepí<strong>na</strong>či SW1 je zapnuto <strong>STP</strong>, výchozí priority portů a ohodnocení linek. Cílem je určit, zda se zablokuje <strong>na</strong>SW1 správný port při manipulaci s prioritami <strong>na</strong> SW0.kořen blokovaný port SW0 prio port1 SW0 prio port2 logvých SW0 SW1 k portu 2 128 128port1 SW0 SW1 k portu 1 144 128 stp_ 08.txtport2 SW0 SW1 k portu 2 128 144 stp_ 09.txtTabulka 3: výsledky testuPorty se zablokovaly správně – podle <strong>na</strong>stavení priorit <strong>na</strong> portech SW0.květen 2009 10/23


4.4.4 Test 2: změny priorit <strong>na</strong> SW0, <strong>na</strong> SW1 vypnuto <strong>STP</strong>Na Cisco přepí<strong>na</strong>či SW1 jsem deaktivoval <strong>STP</strong> a s<strong>na</strong>žil se ovlivnit zablokovaný port <strong>na</strong> linuxovém mostuSW0, který se tímto stal také kořenem stromu.kořen blokovaný port SW0 prio port1 SW0 prio port2 Logvých SW0 SW0 port 2 128 128port1 SW0 SW0 port 1 144 128 stp_10.txtport2 SW0 SW0 port 2 128 144 stp_11.txtTabulka 4: výsledky testuPorty se zablokovaly správně – podle <strong>na</strong>stavení priorit <strong>na</strong> portech.4.4.5 Test 3: změny priorit <strong>na</strong> SW0, kořen stromu <strong>na</strong> SW1Na obou přepí<strong>na</strong>čích bylo aktivováno <strong>STP</strong>, kořen stromu <strong>na</strong>staven <strong>na</strong> SW1, změ<strong>na</strong> priorit probíhala <strong>na</strong>SW0 za účelem ovlivnění blokovaného portu <strong>na</strong> tomto linuxovém mostu. Na přepí<strong>na</strong>či SW1 zůstávajípriority a ohodnocení linek sobě rovné a po dobu testu neměněné.kořen blokovaný port SW0 prio port1 SW0 prio port2 logvých SW1 SW0 port 1 128 128port1 SW1 SW0 port 1 144 128 stp_12.txtport2 SW1 SW0 port 1 128 144 stp_13.txtTabulka 5: výsledky testuZměnou priorit <strong>na</strong> linuxovém mostu nedošlo k žádné změně blokovaného portu, toto je správné chování,lokálním <strong>na</strong>stavením priorit toto nemohu ovlivnit.4.4.6 Test 4: změny priorit <strong>na</strong> SW1, kořen stromu <strong>na</strong> SW1V tomto testu jsem měnil priority <strong>na</strong> portech kořenu SW1, aby linuxový most SW0 při rovnostíohodnocení linek musel vybírat blokovaný port podle posílaných priorit.kořen blokovaný port SW1 směr port1 SW1 směr port2 logvých SW1 SW0 port 1 128 128port1 SW1 SW0 port 1 144 128 stp_14.txtport2 SW1 SW0 port 2 128 144 stp_15.txtTabulka 6: výsledky testuI zde proběhla volba blokovaného portu v pořádku – podle priorit <strong>na</strong> SW1.květen 2009 11/23


4.5 Testy času dosažení konvergovaného stavu4.5.1 Cíle testůNa závěr jsem se rozhodl otestovat, jak dlouho trvá přechod linuxového mostu do konvergovaného stavua tuto skutečnost ovlivnit pomocí <strong>na</strong>stavení prodlevy.4.5.2 Schéma zapojeníObrázek 3: schéma zapojení4.5.3 TestPo deaktivaci a opětovné aktivaci linuxovéhu mostu (ifconfig br0 down ; ifconfig br0 up) trval vevýchozím <strong>na</strong>stavení přechod do konvergovaného stavu 30 sekund, přičemž ve stavu „listening“ zůstal 15sekund a ve stavu „learning“ rovněž 15 sekund.Pomocí volby „forward delay“ je možno tento čas 15 sekund ovlivnit, pokud však zrov<strong>na</strong> není linuxovýmost kořenem stromu, tato hodnota se nepoužije, použije se hodnota <strong>na</strong>stavená <strong>na</strong> aktuálním kořenu. Pokudse linuxový most stane kořenem, ihned toto <strong>na</strong>stavení použije a začne se jim řídit. Po zdvojnásobení tohotointervalu oproti výchozímu stavu (<strong>na</strong> 30 sekund) zůstal most v každém („listening“ i „learning“) stavu 30sekund (správně).Tyto výsledky lze považovat za správné, nicméně jsem zjistil, že pokud přejde kořen stromu z linuxovéhomostu <strong>na</strong> jiný přepí<strong>na</strong>č, most se „tváří“, že používá novou správnou „forward delay“ z nového kořene,nicméně v „listening“ stavu zůstává stále dvojnásobnou dobu, přičemž v „learning“ již pouze 15 sekund.Toto chování je zřejmě nesprávné a jedná se o chybu.květen 2009 12/23


5 Testy R<strong>STP</strong>Podobně jsem prováděl také testy implementace R<strong>STP</strong> protokolu, nejdříve si opět ukažme, jak se R<strong>STP</strong><strong>na</strong> linuxových přepí<strong>na</strong>čích konfigurují a jak lze zjistit stav síťového mostu a R<strong>STP</strong> protokolu.5.1 Konfigurace R<strong>STP</strong> <strong>na</strong> <strong>Linuxu</strong>Pro vytvoření síťového mostu a zařazení rozhraní do něj se stále používá utilita brctl, proto postupvychází z konfigurace <strong>STP</strong>. Doporučuji ověřit, že jste <strong>na</strong> mostu neaktivovali <strong>STP</strong>. Teprve až před samotnýmuvedením mostu do běhu (ifconfig br0 up) doporučuji zapnout aplikaci rstpd a zapnout R<strong>STP</strong>:rstpctl rstp br0 onNedodržením tohoto postupu se můžete dočkat nepříjemného překvapení v podobě vytvoření smyčky vsíti, která Vám spolehlivě dokáže i přetížit celý stroj a problém vyvrcholí většinou spoustou kernel oops aznefunkčněním vzdáleného přístupu v důsledku zablokování všech síťových rozhraní a posléze celého stroje.Chceme-li změnit prioritu síťového mostu (zde 32768):rstpctl setbridgeprio br0 32768Chceme-li změnit ohodnocení jednotlivých linek (zde <strong>na</strong>stavení ohodnocení 200000 pro eth1):rstpctl setportpathcost br0 eth1 200000Na rozdíl od utility brctl lze <strong>na</strong>stavit utilitou rstpctl prioritu portu očekávaně v dobrém měřítku, kdyžchceme <strong>na</strong>stavit <strong>na</strong> portu eth1 mostu prioritu 144 zadáme:rstpctl setportprio br0 eth1 144Ekvivalentem setfd u utility brctl je u R<strong>STP</strong> (zde pro 30 sekund):rstpctl setfdelay br0 30Vynutit použití staršího protokolu <strong>STP</strong> lze pomocí (hodnota „normal“ z<strong>na</strong>mená R<strong>STP</strong>):rstpctl setforcevers slowNastavení edge portu eth1:rstpctl setportedge br0 eth1 yes/noNastavení „p2p“ portu pro eth1:rstpctl setportp2p br0 eth1 yes/no/autoMožnost vypnutí (R)<strong>STP</strong> <strong>na</strong> portu <strong>na</strong> eth1:rstpctl setportnonstp br0 eth1 yes/noProvedení migračního testu – test možnosti přechodu <strong>STP</strong> <strong>na</strong> R<strong>STP</strong> <strong>na</strong> portu eth1, <strong>na</strong> kterém zůstalypřímo připojeny pouze přepí<strong>na</strong>če s podporou R<strong>STP</strong> (oproti předchozímu stavu, kdy některý z přepí<strong>na</strong>čůpodporoval pouze <strong>STP</strong> protokol):rstpctl portmcheck br0 eth1květen 2009 13/23


5.2 A<strong>na</strong>lýza stavu R<strong>STP</strong> síťového mostu <strong>na</strong> <strong>Linuxu</strong>Stav síťového mostu, R<strong>STP</strong> procesu a portu lze zobrazit pomocí dvojice příkazů:rstpctl showbridge br0rstpctl showportdetail br0První z příkazů provede výpis tohoto typu:Bridge: br0 State:e<strong>na</strong>bledBridgeId: 8000­00e07deb4ac9 Bridge Proirity: 32768 (0x8000)Desig<strong>na</strong>ted Root: 8000­001ee5bdacf5Root Port: 8001, Root Cost: 200000Time Since Topology Change: 1076Max Age: 20 Bridge Max Age: 20Hello Time: 2 Bridge Hello Time: 2Forward Delay: 15 Bridge Forward Delay: 15Hold Time: 3Zde vidíme úhrnné informace o mostu, priority přepí<strong>na</strong>čů, čas od poslední změny topologie, portsměřující ke kořenu, s jakou cenou, apod.Druhý z příkazů vypíše (výpis zkrácen pouze <strong>na</strong> jeden port):Stp Port eth2: PortId: 8002 in Bridge 'br0':Priority: 128State: Discarding Uptime: 1042PortPathCost: admin: Auto oper: 200000Point2Point: admin: Auto oper: YesEdge: admin: N oper: NPartner:oper: RapidPathCost: 200000Desig<strong>na</strong>ted Root: 8000­001ee5bdacf5Desig<strong>na</strong>ted Cost: 200000Desig<strong>na</strong>ted Bridge: 8000­00226b37b5acDesig<strong>na</strong>ted Port: 8001Role:Alter<strong>na</strong>tefdWhile: 15 rcvdInfoWhile: 5rbWhile: 0 rrWhile: 0R<strong>STP</strong> BPDU rx: 203CONFIG BPDU rx: 0TCN BPDU rx: 0Tento výpis zobrazuje všechny očekávané <strong>na</strong>stavení každého z portů a jejich aktuální stav.květen 2009 14/23


5.3 Testy volby kořenu stromu, blokovaných portů a ohodnocení linek5.3.1 Cíle testůTest proběhl obdobně jako u testu <strong>STP</strong>, s výjimkou toho, že <strong>na</strong> linuxovém mostu již nebylo nutnovýchozí ohodnocení (200000) měnit, protože je již v souladu s ohodnoceními <strong>na</strong> přepí<strong>na</strong>či Cisco. Opět jsemvšak ručně upravil ohodnocení propojky mezi přepí<strong>na</strong>či SW1 a SW2 (jako u testů <strong>STP</strong>, viz. 4.3.1).5.3.2 Schéma zapojeníObrázek 4: schéma zapojení5.3.3 TestV úvodních 4 testech jsem testoval pouze správné zvolení kořenu stromu a blokovaných portů,v posledním testu jsem se s<strong>na</strong>žil ovlivnit umístění blokovaného portu ohodnocením propojení SW0 a SW2<strong>na</strong> 150000.SW0 prio SW1 prio SW2 prio kořen blokovaný port logvých 32768 32768 32768 SW2 SW0 směr SW1 rstp_01.txtsw0 28672 32768 32768 SW0 SW1 směr SW2 rstp_02.txtsw1 32768 28672 32768 SW1 SW0 směr SW2 rstp_03.txtsw2 32768 32768 28672 SW2 SW0 směr SW1 rstp_04.txtuživ 32768 32768 28672 SW2 SW1 směr SW0Tabulka 7: výsledku testuVšechny testy dopadly dle očekávání.květen 2009 15/23


5.4 Testy <strong>na</strong>stavení priority portůTato sada testů probíhala zcela shodně jako u testů <strong>STP</strong>. Protože výsledky dopadly v pořádku a zcelashodně jako u <strong>STP</strong>, přikládám pouze tabulky s měřeními a odkazy <strong>na</strong> detailní diagnostické výpisyv přiložených souborech.5.4.1 Test 1: změny priorit <strong>na</strong> SW0, kořen stromu <strong>na</strong> SW0kořen blokovaný port SW0 prio port1 SW0 prio port2 logvých SW0 SW1 k portu 2 128 128port1 SW0 SW1 k portu 1 144 128 rstp_09.txtport2 SW0 SW1 k portu 2 128 144 rstp_10.txtTabulka 8: výsledky testu5.4.2 Test 2: změny priorit <strong>na</strong> SW0, <strong>na</strong> SW1 vypnuto <strong>STP</strong>V tomto testu stojí pouze za povšimnutí, že si linuxový most musel projít konvergenčním R<strong>STP</strong> procesemo délce 30 sekund, protože nebylo možné aplikovat princip <strong>na</strong>bídky a potvrzení.kořen blokovaný port SW0 prio port1 SW0 prio port2 logvých SW0 SW0 port 2 128 128port1 SW0 SW0 port 1 144 128 rstp_11.txtport2 SW0 SW0 port 2 128 144 rstp_12.txtTabulka 9: výsledky testu5.4.3 Test 3: změny priorit <strong>na</strong> SW0, kořen stromu <strong>na</strong> SW1kořen blokovaný port SW0 prio port1 SW0 prio port2 logvých SW1 SW0 port 1 128 128port1 SW1 SW0 port 1 144 128 rstp_13.txtport2 SW1 SW0 port 1 128 144 rstp_14.txtTabulka 10: výsledku testu5.4.4 Test 4: změny priorit <strong>na</strong> SW1, kořen stromu <strong>na</strong> SW1kořen blokovaný port SW1 směr port1 SW1 směr port2 logvých SW1 SW0 port 1 128 128port1 SW1 SW0 port 1 144 128 rstp_15.txtport2 SW1 SW0 port 2 128 144 rstp_16.txtTabulka 11: výsledky testukvěten 2009 16/23


5.5 Test vynucení verze <strong>STP</strong> a návratu do R<strong>STP</strong> režimuPomocí volby setforcevers jsem vyzkoušel přepnutí portu do <strong>STP</strong> režimu, který rovněž má aplikace rstpdimplementován. Ihned po přepnutí začaly přepí<strong>na</strong>če indikovat použití staršího protokolu (detaily v souborurstp_05.txt).Po opětovném přepnutí do R<strong>STP</strong> módu se však hned tento protokol nezačne používat, přechodu by měl<strong>na</strong>pomoct tzv. migrační test (volba portmcheck). Zde však nemám přesný návod, jak tohoto přepnutí <strong>na</strong>R<strong>STP</strong> dosáhnout, v různých případech pomohl rozdílný postup. Nicméně doporučuji zapnout migrační testzapnout nejdříve <strong>na</strong> Cisco přepí<strong>na</strong>či a bezprostředně <strong>na</strong> linuxovém mostu, pokud se neustálí spojení <strong>na</strong>R<strong>STP</strong>, opakujte tento postup v opačném pořadí a případně stále dokola až do dosažení indikace R<strong>STP</strong>.5.6 Test <strong>na</strong>stavení délky prodlevy pro dosažení konvergovaného stavuDíky urychlujícím principům se mi v kruhovém zapojení (obrázek 4) podařilo dosáhnout konvergovanéhostavu při fyzickém odpojení kterékoliv linky z SW0 do cca 1 sekundy, při opětovném zapojení do cca 2-3sekund.V této situaci nemá smysl měnit prodlevu (setfdelay), proto jsem se rozhodl využít přepnutí do <strong>STP</strong>režimu a otestování zdvojnásobení prodlevy ve stejném zapojení jako u <strong>STP</strong> (obrázek 3).Při přepnutí do <strong>STP</strong> režimu trval celý konvergenční proces zhruba 30 sekund (15 sekund „listening“ a 15sekund „learning“). Co však považuji za zarážející, je to, že při přechodu z „listening“ do „learning“ stavuprošla přes most testovací odezva (ping). Při opakování se toto však nepodařilo <strong>na</strong>simulovat, avšak připodrobném testu by se tato vada zřejmě dala zreprodukovat.Při zdvojnásobení prodlevy se nic nestalo, protože linuxový most nebyl aktuálně kořenem, když jsemupravil <strong>na</strong>stavení a most se jím stal, <strong>na</strong>stavení se dle diagnostických výpisů aktivovalo a most zůstalv každém z „listening“ a „learning“ stavu 30 sekund. Bohužel reálný stav neodpovídal diagnostice, prvnípolovinu času v „listening“ stavu (15 sekund) přes most data skutečně neprocházely, nicméně v druhépolovině přes most testovací ICMP odezvy procházely, poté během 30ti sekund v „learning“ stavu zase dataneprocházely.Výsledky tohoto testu považuji za alarmující.5.7 Test <strong>na</strong>stavení „edge“ portuOdpojil jsem páteřní kabel mezi linuxovým mostem a Cisco přepí<strong>na</strong>čem a aktivoval <strong>na</strong> uvolněném portulinuxového mostu „edge“ vlastnost. Po opětovném zapojení kabelu přešel port rychle do stavu „forwarding“,podle diagnostiky v pořádku zachytil R<strong>STP</strong> BPDU a „edge“ režim se dočasně deaktivoval (viz. souborrstp_06.txt). Linku jsem zkusil přepojit do běžného přepí<strong>na</strong>če bez (R)<strong>STP</strong> podpory, most přešel rychle do„forwarding“ stavu a indikoval aktivní „edge“ režim (viz. soubor rstp_07.txt).5.8 Test <strong>na</strong>stavení „p2p“ portuZnovu jsem odpojil páteřní kabel z jednoho portu linuxového mostu a <strong>na</strong> obou koncích původního spojejsem <strong>na</strong>stavil <strong>na</strong> portech „p2p“ režim. Po zapojení kabelu linuxový most prošel 15ti sekundami „discarding“a 15ti sekundami „learning“ stavu, což je očekávané chování.5.9 Test vypnutí (R)<strong>STP</strong> <strong>na</strong> portuNa vybraném portu linuxového mostu jsem vypnul používání (R)<strong>STP</strong> pomocí volby setportnonstp (utilityrstpctl) a zapojil opačný konec kabelu do běžného přepí<strong>na</strong>če (bez podpory <strong>STP</strong> nebo R<strong>STP</strong>). Dle pozorováníprovozu <strong>na</strong> portu pomocí utility tcpdump nebyl shledán žádný (R)<strong>STP</strong> provoz (viz. soubor rstp_08.txt).květen 2009 17/23


6 Testy <strong>GVRP</strong>6.1 ImplementaceV linuxovém jádře je implementová<strong>na</strong> základní podpora <strong>GVRP</strong>, která umožňuje zaregistrovat používanévirtuální sítě z linuxového směrovače do přilehlého přepí<strong>na</strong>če. Sám linuxový směrovač periodicky neposílá<strong>na</strong> segment zprávy „Leave all“, které slouží pro zjištění virtuálních sítí od přilehlých přepí<strong>na</strong>čů, protože sezískanými informacemi by stejně neuměl nijak <strong>na</strong>ložit (nepotřebuje nijak dy<strong>na</strong>micky vytvářet virtuální sítě<strong>na</strong> rozhraních podle okolních přepí<strong>na</strong>čů).6.2 Konfigurace <strong>GVRP</strong> <strong>na</strong> <strong>Linuxu</strong>Nyní si ukažme, jak obecně <strong>GVRP</strong> registraci pro jednotlivé rozhraní virtuálních sítí <strong>na</strong> <strong>Linuxu</strong> aktivovat.Běžně vytvoříme VLAN:vconfig add eth2 150Povolíme jeho registraci prostřednictvím <strong>GVRP</strong>:ip link set eth2.150 type vlan gvrp on6.3 Základní funkčnost6.3.1 Cíle testuV tomto testu jsem otestoval základní funkčnost <strong>GVRP</strong> registrace používaných virtuálních sítí <strong>na</strong> <strong>Linuxu</strong>do přilehlého <strong>GVRP</strong> přepí<strong>na</strong>če Cisco.6.3.2 Schéma zapojeníObrázek 5: schémazapojení6.3.3 TestPři aktivaci VLANu odešle jádro <strong>na</strong> segment sítě zprávu „Join in“ a při odebrání odesílá zprávu „LeaveEmpty“. Pokud je <strong>na</strong> segmentu přítomen <strong>GVRP</strong> přepí<strong>na</strong>č, který rozesílá periodicky zprávu „Leave all“,obnovuje směrovač registraci virtuální sítě pomocí zprávy „Join in“. Všechny <strong>GVRP</strong> zprávy jsou odesílány vnez<strong>na</strong>čkovaných rámcích („non-tagged“ ve smyslu standardu 802.1q).květen 2009 18/23


Funkčnost registrace a odregistrace VLANu 150 ze směrovače do přepí<strong>na</strong>če demonstrují jednoduchédiagnostické výpisy z Cisco přepí<strong>na</strong>če.Výpis po aktivaci <strong>GVRP</strong> <strong>na</strong> rozhraní virtuální sítě (ip link set eth2.150 type vlan gvrp on):01­Jan­2000 01:05:55 %VLAN­I­<strong>GVRP</strong>AddVlan: Dy<strong>na</strong>mic VLAN Vlan 150 was added by<strong>GVRP</strong>01­Jan­2000 01:05:55 %LINK­I­Up: Vlan 15001­Jan­2000 01:05:55 %VLAN­I­<strong>GVRP</strong>AddPort: Dy<strong>na</strong>mic port g1 was added to VLANVlan 150 by <strong>GVRP</strong>Výpis po deaktivaci <strong>GVRP</strong> <strong>na</strong> rozhraní virtuální sítě (ip link set eth2.150 type vlan gvrp off):01­Jan­2000 01:06:50 %LINK­W­Down: Vlan 15001­Jan­2000 01:06:50 %VLAN­I­<strong>GVRP</strong>DelPort: Dy<strong>na</strong>mic port g1 was removed fromVLAN Vlan 150 by <strong>GVRP</strong>01­Jan­2000 01:06:50 %VLAN­I­<strong>GVRP</strong>DelVlan: Dy<strong>na</strong>mic VLAN Vlan 150 was removedby <strong>GVRP</strong>Virtuální síť je také korektně odregistrová<strong>na</strong> v případě, kdy je rozhraní s virtuální sítí smazáno (vconfigrem eth2.150).Odpovídající provoz jsem zachytil utilitou tshark a lze <strong>na</strong>lézt v přiloženém souboru gvrp_01.cap.květen 2009 19/23


6.4 Redundantní propojení směrovače a přepí<strong>na</strong>če s použitím R<strong>STP</strong>6.4.1 Schéma zapojeníObrázek 6: schéma zapojení6.4.2 TestV tomto testu (obrázek 6) jsem se rozhodl zařadit dvě síťové karty do jednoho síťového mostu a každousíťovou kartu (port mostu) připojit do stejné Cisco přepí<strong>na</strong>če. Pro elimi<strong>na</strong>ci smyčky sem použil protokolR<strong>STP</strong>. Na <strong>Linuxu</strong> při vytvoření mostu vzniká nové rozhraní, <strong>na</strong> kterém lze přidávat virtuální sítě. Narozhraní mostu jsem tedy vytvořil rozhraní virtuální sítě 99 a zkusil ji prostřednictvím <strong>GVRP</strong> propagovatpřes most do přepí<strong>na</strong>če.Směrovač v pořádku zaregistroval přes most do přepí<strong>na</strong>če používanou virtuální síť přes aktivní port, přesblokovaný port <strong>GVRP</strong> zprávy neprošly. Při odpojení kabelu v aktivním propojení R<strong>STP</strong> automatickyaktivoval záložní port a poté automaticky směrovač zaregistroval tuto virtuální síť přes záložní port.Přeregistrace probíhala také v souladu s očekáváními také při opětovném připojení kabelu.V ideálním případě přepí<strong>na</strong>č pouze vymění zařazené porty:01­Jan­2000 01:56:30 %VLAN­I­<strong>GVRP</strong>AddPort: Dy<strong>na</strong>mic port g8 was added to VLANVlan 99 by <strong>GVRP</strong>01­Jan­2000 01:56:36 %VLAN­I­<strong>GVRP</strong>DelPort: Dy<strong>na</strong>mic port g1 was removed fromVLAN Vlan 99 by <strong>GVRP</strong>Pokud se špatně sejde přepnutí portu a <strong>GVRP</strong> přeregistrace v reakci <strong>na</strong> „Leave all“ zprávu, může dojít ik celkové přeregistraci virtuální sítě:01­Jan­2000 01:53:49 %LINK­W­Down: Vlan 9901­Jan­2000 01:53:49 %VLAN­I­<strong>GVRP</strong>DelPort: Dy<strong>na</strong>mic port g8 was removed fromVLAN Vlan 99 by <strong>GVRP</strong>01­Jan­2000 01:53:49 %VLAN­I­<strong>GVRP</strong>DelVlan: Dy<strong>na</strong>mic VLAN Vlan 99 was removed by<strong>GVRP</strong>01:53:54 %VLAN­I­<strong>GVRP</strong>AddVlan: Dy<strong>na</strong>mic VLAN Vlan 99 was added by <strong>GVRP</strong>01­Jan­2000 01:53:54 %LINK­I­Up: Vlan 9901­Jan­2000 01:53:54 %VLAN­I­<strong>GVRP</strong>AddPort: Dy<strong>na</strong>mic port g1 was added to VLANVlan 99 by <strong>GVRP</strong>květen 2009 20/23


6.5 Propustnost <strong>GVRP</strong> přes linuxový most s použitím R<strong>STP</strong>6.5.1 Schéma zapojeníObrázek 7: schéma zapojení6.5.2 TestV tomto testu (obrázek 7) jsem chtěl ověřit, zda se jsou schopny dva přepí<strong>na</strong>če domlouvat <strong>GVRP</strong>zprávami, které procházejí přes linuxový most. Cílem je situace, kdy si přepí<strong>na</strong>če <strong>na</strong> mostem propojenémsegmentu vyměňují registrované virtuální sítě a do toho si linuxový směrovač registruje své virtuální sítě,které potřebuje. Toto zapojení se dá s výhodou použít pro redundantní zapojení směrovače do přepí<strong>na</strong>néinfrastruktury, ať už do jednoho nebo více přepí<strong>na</strong>čů – <strong>GVRP</strong> se postará o registraci virtuálních sítí přeslinku, kterou R<strong>STP</strong> aktuálně neblokuje.Samotné GARP rámce se odesílají <strong>na</strong> multicastovou MAC adresu a v jejich průchodnosti linuxovýmmostem nebyl shledán problém.Směrovač reagoval <strong>na</strong> „Leave all“ zprávy všech přímo připojených přepí<strong>na</strong>čů zprávou „Join in“, <strong>na</strong>vícmulticastový rámec se odesílá <strong>na</strong> všechny porty mostu, takže registrace do všech přepí<strong>na</strong>čů proběhlav pořádku.Funkčnost jsem ověřil také v situacích, kdy jsem odpojoval postupně linky mezi přepí<strong>na</strong>či za účelem, abybyly přepí<strong>na</strong>če nuceny distribuovat dále virtuální sítě registrované z linuxového směrovače.Ukázku <strong>GVRP</strong> provozu při blokovaném propojení mezi SW1 a SW2 si můžete prohlédnout v přiloženémsouboru gvrp_02.cap. Lze v něm velmi dobře vidět, jak každé z připojených zařízení registruje svojevirtuální sítě v reakci <strong>na</strong> zprávy „Leave all” obou přepí<strong>na</strong>čů.květen 2009 21/23


7 ZávěrProvedené testy ukázaly, že ověřované implementace protokolů <strong>STP</strong> a R<strong>STP</strong> pro elimi<strong>na</strong>ci smyčekv redundantních přepí<strong>na</strong>ných oblastech lze v omezené konfiguraci s výhradami použít. U <strong>STP</strong> se velmivzácně vyskytly případy, kdy nebyla smyčka eliminová<strong>na</strong> (tento případ se nepodařilo reprodukovat),nepříjemné byly však problémy s vymazáním ručního <strong>na</strong>stavení ohodnocení portu. Drobné konfiguračníproblémy ohledně <strong>na</strong>stavení priorit portů lze přehlédnout. Zvláště u implementace R<strong>STP</strong> však lze říci, že sejedná o řešení nešťastné a nedotažené a během testů z<strong>na</strong>čně více než u <strong>STP</strong> docházelo k vytvořenínežádoucích smyček, jejichž existenci měly tyto implementace zabránit. Dle mého názoru slouží toto řešeníR<strong>STP</strong> pouze jako odrazový můstek pro možnou integraci protokolu přímo do jádra, kde by řešení možnávíce doz<strong>na</strong>lo <strong>na</strong> kvalitě a stabilitě.Testovaná implementace protokolu <strong>GVRP</strong> pro registraci virtuálních síti z linuxového směrovače dopřilehlého přepí<strong>na</strong>če prokázala své kvality a lze ji bez výhrad doporučit pro běžné použití.květen 2009 22/23


8 Použitá literatura[1] Net:Bridge [online]. 2005 [cit. 2009-05-03]. Dostupný z WWW: .[2] Spanning tree protocol [online]. 2002 [cit. 2009-05-03]. Dostupný z WWW:.[3] Multiple Registration Protocol [online]. 2005 [cit. 2009-05-03]. Dostupný z WWW:.[4] Understanding Spanning-Tree Protocol [online]. 1989-1997 [cit. 2009-05-03]. Dostupný z WWW:.[5] Understanding Rapid Spanning Tree Protocol (802.1w) [online]. Oct 24, 2006 [cit. 2009-05-03].Dostupný z WWW:.[6] Tutorial on VLANs: Part 2 [online]. VIII 12, 2004 [cit. 2009-06-03]. Dostupný z WWW:.[7] Protocol <strong>GVRP</strong> [online]. [cit. 2009-05-03]. Dostupný z WWW:.[8] Generic VLAN Registration Protocol (<strong>GVRP</strong>) [online]. 2003 [cit. 2009-05-03]. Dostupný zWWW: .květen 2009 23/23

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!