Možnosti protokolu Cisco VTP v3 Koritar Lukáš, Wasserbauer Jan Abstrakt: Tento článek popisje možnosti protokolu Virtual Trunking Protocol ve třetí verzi, vyvinutý společností Cisco. Nejprve je uveden stručný teoretický popis, co protokol představuje, jeho využití a srovnání s předchozími verzemi. Druhou a stěžejní částí je praktická implementace na přepínačích Cisco Catalyst 3560 s verzí IOS 15.0(2)SE4 s důrazem na zpětnou kompatibilitu nižších verzí tohoto protokolu. Také je otestována ochrana přepisu databáze VLAN, jenž je od třetí verze dostupná. Klíčová slova: VTP, přepínač, VLAN 1 Co je Virtual Trunking Protocol ................................................................................2 2 Popis VTP protokolu..................................................................................................2 2.1 Verze VTP..........................................................................................................2 2.2 VTP módy..........................................................................................................3 2.3 VTP zprávy.........................................................................................................3 3 Základní konfigurace.................................................................................................3 3.1 Příkazy show......................................................................................................3 3.2 Příkazy pro konfiguraci VTP.............................................................................4 4 Praktická implementace a testování ..........................................................................4 4.1 Kompatibilita s nižšími verzemi........................................................................4 4.2 Testování verze 3 a ochrana proti přepisu databáze...........................................7 5 Závěr..........................................................................................................................8 6 Použitá literatura........................................................................................................9
1
duben 2015
1/9
1 Co je Virtual Trunking Protocol VTP je proprietární L2 protokol společnosti Cisco, jehož úkolem je přenášt informace o VLAN mezi přepínači zařazené do jedné domény. To umožňuje nejen usnadnit práci síťovému administrátorovi, ale především schopnost eliminace chyb vzniklých konfigurací mnoha přepínačů, kdy přidáváním mnoha VLAN je riziko, že uděláme chybu například v čísle dané VLAN. V případě, kdy je třeba nakonfigurovat VLAN, provedeme tuto konfiguraci pouze na jednom přepínači, který bude mít roli serveru. Tento přepínač poté rozešle danou konfiguraci ostatním přepínačům v dané VTP doméně.
Obrázek 1 – Konfigurace VLAN bez využití VTP Obrázek 1 zachycuje situaci, kdy je administrátor nucen nakonfigurovat dané VLAN na každý přepínač ručně. Pokud je však v sítí velký počet přepínačů, na kterém chceme nastavit VLAN je vhodné využít protokol VTP, který usnadní tuto konfiguraci. VLAN se nakonfigurují pouze na přepínači, který bude mít roli serveru a ten dále tuto konfiguraci přepošle na další přepínače po tzv. TRUNK linkách (Obrázek 2).
Obrázek 2 – Konfigurace VLAN s využitím protokolu VTP
2 Popis VTP protokolu 2.1 Verze VTP VTP v1: • podpora základních 1005 VLAN • Ethernet, FDDI VTP v2: • obdoba verze 1, avšak přibyla podpora Token Ring • kontrola konzistence (provádí se pouze v případě vložení nových informací přes CLI, ne v případě VTP zprávy) VTP v3: • ochrana proti přepsání databáze VLAN při přidání nových přepínačů • podpora až 4096 VLAN • zpětně kompatibilní s VTP verzí 1 a 2 (s určitým omezením) • možnost ochrany skrytým heslem popřípadě prostým textem • podpora pro jakkékoliv databáze v doméně (např. Multiple Spanning Tree) • podpora sekundárního serveru
1
duben 2015
2/9
2.2 VTP módy •
Server - Spravuje seznam všech VLAN, má jej uložen v NVRAM. Může vytvářet a mazat VLAN, přijímá a odesílá advertisements zprávy přes trunk ve VTP doméně. Jedná se o defaultní mód.
•
Klient - Přijímá konfiguraci ze serveru, udržuje lokální kopii všech VLAN, kterou nelze měnit a nemá ji uloženou v NVRAM, přijímá a odesílá advertisements zprávy.
•
Transparentní - Neúčastní se VTP, pracuje samostatně, může vytvářet i mazat VLAN, ale změny jsou lokální, přijímá advertisements a ve verzi 2 a 3 je i přeposílá (ale nesynchronizuje svoje VLAN, ani je nezveřejňuje). Je to jediný mód, kde můžeme vytvářet Extended a Private VLAN, VTP a VLAN konfigurace je uložena v NVRAM.
•
Off - Tento mód je podobný módu transparentnímu, avšak nepřeposílá VTP advertisement zprávy dále. Tento mód je možné použít pouze u verze VTP v3.
2.3 VTP zprávy Jednotlivé přepínače si mezi sebou vyměňují tři druhý zpráv, které se posílají na multicastovou MAC adresu 01-00-0C-CC-CC-CC. Jedná se o tyto zprávy: • Summary advertisement - Tato zpráva je zasílána ve výchozím nastavení každých pět minut a obsahuje jméno domény, číslo revize a čas poslední změny. Při obdržení této zprávy přepínač zkontroluje, zda paket obsahuje stejný název domény a také, zda číslo revize je vyšší než číslo revize z poslední obdržené Summary advertisements. Pokud ano, odešle zpět paket Advertisement requests, jinak zprávu ignoruje. Tyto zprávy je možno zaheslovat. Je však potřeba, aby na všech přepínačích v jedné doméně bylo nastaveno stejné heslo. • Subset advertisement -Je odesílán směrem od serveru na klienta v případě, kdy je provedena nějaká změna VLAN na přepínači jenž je v roli serveru. Obsahuje název domény, číslo revize a informace o jedné nebo více VLAN – číslo, stav (aktivní/neaktivní), jméno a velikost MTU. • Advertisement Requests- Paket zasílá přepínač v případě, pokud byl resetován, správce změnil doménové jméno nebo jako odpověď na paket Summary advertisements, který obsahoval vyšší číslo revize. Přepínač, který tuto zprávu obdrží, odešle zpět Summary advertisements následovaný Subset advertisements.
3 Základní konfigurace Konfigurace protokolu VTP je poměrně jednoduchá, ale je nutné si dát pozor na odlišnosti mezi jednotlivými verzemi, aby výměna zpráv fungovala i mezi přepínači s různou verzí protokolu VTP. Tyto případy budou rozebrány v následující kapitole, která se bude zabývat testováním kompatibility jednotlivých verzí. Příkazy pro konfiguraci a výpis informací jsou uvedeny níže.
3.1 Příkazy show •
#show vtp counters – zobrazení počtu VTP zpráv, které byly odeslány a přijaty
•
#show vtp devices – zobrazení informací o všech přepínačích, které pracují s protokolem VTP ve verzi 3 v dané doméně. Z tohoto výpisu je možné zjistit konflikty v případě, kdy by byl v doméně druhý primární server. Tento příkaz není dostupný pro přepínače v módu Transparent a Off.
•
# show vtp interface – zobrazení VTP statusu a konfigurace na daných rozhraních
•
# show vtp status – zobrazení informací o nastavení VTP na daném přepínači (doména, verze, číslo revize,…)
•
#show vlan - zobrazení všech nakonfigurovaných vlan na daném směrovači. Jinými slovy výpis databáze VLAN.DAT
1
duben 2015
3/9
3.2 Příkazy pro konfiguraci VTP •
(config)# vtp domain <jmenodomeny> - nastavení jména domény (pokud mají přepínače přeposílat dané VTP zprávy, je nutné aby měli stejné jméno domény)
•
(config)# vtp version <1-3> - nastavení verze protokolu VTP
•
(config)# vtp mode <server, client, transparent, off> - nastavení role přepínače
•
(config)# vtp password
[hidden, secret] – nastavení hesla (není nutné)
•
# vtp primary server vlan – nastavení přepínače do role primárního serveru (pokud není přepínač v roli primárního serveru, nelze přidávat další VLAN)
4 Praktická implementace a testování Na níže uvedeném obrázku je zobrazena použitá topologie při testování protokolu VTP. Na této topologii jsme vyzkoušeli zpětnou kompatibilitu s nižšími verzemi a ve druhém kroku jsme všechny přepínače nastavili na nejnovější verzi VTP v3 a testovali co se stane, pokud se do topologie přidá druhý primární server, protože třetí verze má mít pro tento případ implementovanou ochranu přepisu databáze.
Obrázek 3 – Testovaná topologie
4.1 Kompatibilita s nižšími verzemi V prvním případě jsme testovali kompatibilitu, kdy jako primární server byl přepínač s verzí VTP protokolu 3 a klienti byli přepínače s nižšími verzemi tohoto protokolu. Protože se zabýváme primárně verzí číslo 3, tak jsme se nezaobírali testováním nižších verzí v roli primární serveru. Avšak, jak se lze dočíst ze stránek výrobce přepínačů Cisco, klienti s vyšší verzí protokolu VTP nejsou schopni přijímat informace od serveru s nižší verzi protokolu VTP. Nejdříve jsme na přepínačích zkontrolovali obsah flash paměti, ve které je uložen soubor VLAN.DAT . Ten obsahuje čísla nakonfigurovaných VLAN. Protože jsme chtěli mít pro začátek na všech přepínačích stejné (pouze defaultní VLAN) tento soubor jsme vymazali. Dále jsme nakonfigurovali na každém přepínači jednotlivé trunk linky, které slouží pro přenos rámců 802.1Q a v případě protokolu VTP také k přenosu zpráv (viz kapitola 1.4). Více o konfiguraci trunk linek v [1], ale pro ukázku nastavení módu trunk na rozhraní FastEthernet 0/1: Serverv3 (config)#interface f0/1 Serverv3 (config-if)#shutdown Serverv3 (config-if)#switchport trunk encapsulation dot1q Serverv3 (config-if)#switchport trunk allowed vlan 2-200 Serverv3 (config-if)#switchport trunk native vlan 1 Serverv3 (config-if)#switchport mode trunk Serverv3 (config-if)#switchport nonegotiate Serverv3(config-if)#no shutdown
1
duben 2015
4/9
Je nutné nastavit příslušný typ encapsulace, jinak se nemusí podařit nakonfigurovat trunk mód pro daný port. Tato situace je k vidění po zadání následující série příkazů: SwitchB(config)#interface fa0/14 SwitchB(config-if)#switchport mode trunk Command rejected: An interface whose trunk encapsulation is "Auto" can not be configured to "trunk" mode.
Následně jsme přešli k samotnému nastavení VTP protokolu na přepínače. Pro úspěšnou výměnu VLAN databáze je zapotřebí nastavit stejné jméno domény, ve kterém je přepínač umístěn. Dále jsme nastavili pomocí příkazů (viz kapitola 1.5) mód přepínače a verzi protokolu. U přepínače jehož role bude vytváření a předávání databáze VLAN je nutné nastavit roli primárního serveru, jinak nebude možné přidat novou VLAN (viz následující chybová hláška): Switch(config)#vlan 10 VTP VLAN configuration not allowed when device is not the primary server for vlan database.
Příkaz pro uvedení daného přepínače v módu server do role primárního serveru je použit v privilegovaném módu. Switch#vtp primary vlan This system is becoming primary server for feature vlan No conflicting VTP3 devices found. Do you want to continue? [confirm]
V tomto okamžiku přecházíme do stavu, kdy je server primární. Ovšem tuto skutečnost musíme dle příkazu nejdříve potvrdit enter klávesou. Pokud tak neučiníme, nebo stiskneme-li nějakou jinou klávesu, příkaz bude anulován a server nebude moci vytvářet jednotlivé VLAN, a tudíž bychom nemohli dokončit konfiguraci. Jednoduše řečeno, daný přepínač se nestane primárním serverem. Dále by bylo vhodné, jde ovšem spíše pouze o kosmetickou úpravu, nicméně žádoucí, aby byly jednotlivé přepínače pojmenovány podle toho, jakou úlohu plní. Pokud bychom totiž využili vzdáleného přístupu pro konfiguraci, mohlo by snadno dojít k chybě, kdyby daný přepínač nedisponoval alespoň nějakým polem description, nebo vhodně zvoleným jménem, které by symbolizovalo jeho jednoznačný úkol a tím nám zjednodušovalo práci při konfigurování příslušného chování. Pro změnu jména přepínače, je vhodné využít příkaz v konfiguračním režimu hostname. Následně příkazem #show vtp status si zobrazíme informace o nastavení VTP na přepínačích. Například zobrazení v jaké roli je přepínače, číslo verze, ID zařízení a v neposlední řade jméno domény a také důležitý parametr číslo revize (Configuration Revision). O tomto parametru se ještě podrobněji zmíníme. Výpis vypadá následovně: Serverv3(config)#do sh vtp stat VTP Version capable : 1 to 3 VTP version running : 3 VTP Domain Name : sps VTP Pruning Mode : Disabled VTP Traps Generation : Disabled Device ID : 40f4.ec54.ab00 Feature VLAN: -------------VTP Operating Mode : Primary Server Number of existing VLANs : 6 Number of existing extended VLANs : 0 Maximum VLANs supported locally : 1005 Configuration Revision : 2 Primary ID : 40f4.ec54.ab00 Primary Description : Switch MD5 digest : 0xC2 0x91 0x78 0x82 0x0A 0x21 0x54 0xAD 0xC2 0x65 0x8F 0xFF 0x08 0xA6 0xD5 0xE1
1
duben 2015
5/9
Tento výpis je z přepínače, jenž je v roli serveru. Dále jsme nastavili další dva přepínače v roli klientů s verzí 2 a verzí 1. Na přepínač Serverv3 jsme přidali několik VLAN (10,20) a příkazem show vlan, jsme na klientech zjišťovali, zdali dojde ke správnému přenesení a přepsání databáze VLAN.DAT, čímž by byla otestována kompatibilita daných verzí. Přenesení a přepsání databáze proběhlo na obou klientech správně. Výpis databáze VLAN z přepínače Client1 vypadá následovně: Clientv1(config)#do show vlan VLAN Name Status Ports ---- -------------------------------- --------- ----------------------1 default active Fa0/2, Fa0/3, Fa0/4, Fa0/5 Fa0/6, Fa0/7, Fa0/8, Fa0/9 Fa0/10, Fa0/11, Fa0/12, Fa0/13 Fa0/14, Fa0/15, Fa0/16, Fa0/17 Fa0/18, Fa0/19, Fa0/20, Fa0/21 Fa0/22, Fa0/23, Fa0/24, Gi0/1 Gi0/2 10 desitka active 20 dvacitka active 1002 fddi-default act/unsup 1003 trcrf-default act/unsup 1004 fddinet-default act/unsup 1005 trbrf-default act/unsup
Tím jsme potvrdili základní kompatibilitu vpřípadě, kdy jsou použity různé verze protokolu VTP. Avšak kompatibilita třetí verze snižšími je pouze u této základní konfigurace. Jak již bylo zmíněno vteoretické části, verze 3 podporuje čísla VLAN až do 4094, což předchozí verze neumí. To jsme také vyzkoušeli a na TRUNK linky provedli přidání VLAN 1500 a následně tuto VLAN vytvořili. Tato VLAN se do klientů neuložila. Další nekompatibilitou je to, že u verze 3 můžeme použít heslo sparametrem < secret nebo hidden>. Nižší verze tuto možnost nepodporují, a proto jej nesmíme na serveru použít, jinak by výměna VTP zpráv mezi nižšími verzemi neproběhla.Vpřípadě, že máme nastavenou jinou verzi než třetí a přidáme kheslu parametr secret nebo hidden, setkáme se stouto chybovou hláškou: Clientv2(config)#vtp password cisco secret Device is operating in VTP version 2. secret option is allowed from VTP version 3 only.
Zajímavostí bylo to, že přepínač Clientv1 byl na začátku nakonfigurován na verzi číslo 1, avšak po obdržení zprávy Advertisement verze 3 se tento přepínač automaticky přepnul do VTP verze 2. Zjištění je tak následující. Aby mohl přepínač s verzí 1 komunikovat se serverem ve verzi 3, musí zároveň podporovat verzi 2, do které se automaticky přepne. V opačném případě, kdy by přepínač podporoval pouze verzi 1, bychom nemohli použít protokol verze 3, ale pouze verzi 2. Je vhodné použít na daném segmentu tu verzi, se kterou jsou kompatibilní všechny přepínače, abychom se vyvarovali toho, že informace na všech přepínačích nebudou konzistentní. Dále se můžeme setkat s tím, že vše se zdá být nakonfigurované správně, ale k výměně informací nedochází. Tento stav může zapříčinit číslo revize na daném přepínači využívající VTP protokol. Pojďme se podívat, jak takové číslo revize funguje. Na primárním serveru se s každou změnou (přidání/odebrání VLAN) inkrementuje číslo revize a je poslána informace na všechny přepínače. Ty mají uložené poslední číslo přijaté revize a po přijetí nové Advertisement zprávy si zkontrolují své číslo revize s číslem revize obsažené ve zprávě. Pokud je číslo revize v obdržené zprávě větší než číslo uložené v přepínači, daný přepínač si vyžádá o zaslání aktuální databáze VLAN, kterou si přepíše aktuální seznam. Na přepínači jenž je v roli primárního serveru však při nějaké změně konfigurace ve VTP dojde k odebrání role primárního serveru a je pouze v roli serveru. Proto jej musíme opět příkazem #vtp primary vlan povýšit do role primárního serveru. Po přidání (či odebrání) VLAN však najednou nedojde ke změně na klientech v doméně. To je zapříčiněno tím, že po povýšení do role primárního serveru se vynuluje číslo revize a každou změnou se sice číslo revize inkrementuje, ale klienti mají uloženo větší číslo revize, a tak se domnívají, že mají novější informace, než které jsou posílány, a proto je ignoruje. V tomto případě tak musíme na klientech číslo revize vynulovat. To se provede tak, že změníme na přepínači jméno domény na
1
duben 2015
6/9
libovolné jméno a následně provedeme změnu zpět na doménu, ve které je server. Tím se vynuluje číslo revize a přepínače si začnou opět ukládat aktuální databáze.
4.2 Testování verze 3 a ochrana proti přepisu databáze Další konfigurací, pro kterou jsme se rozhodli, bylo otestování přepisu databáze v případě, kdy byl připojen další přepínač v módu primárního serveru a měl vyšší číslo revize, což by mohlo způsobit to, že od tohoto přepínače by si klienti přepsali databázi. Tento stav však nenastal, protože VTP ve verzi 3 obsahuje ochranu, která tomuto zamezuje. Prvně zvolený primární server je zapsán do paměti a v případě připojení dalšího primárního serveru klient pozná, že tato revize nepochází z přepínače, jehož číslo (Device ID) se liší od původního primárního serveru a ignoruje tak přicházející změny od druhého primárního serveru. Následně můžeme určit, který ze dvou konfliktních serverů převezme roli primárního. Na přepínači jenž má být dále primárním serverem napíšeme příkaz #vtp primary vlan. Tímto bude v daném segmentu pouze jeden primární server a nebude detekována žádná kolize v přepínačích (všichni budou mít opět stejné číslo revize). Postup byl následující. Nastavili jsme na všech přepínačích verzi protokolu VTP na verzi 3. Odpojili jsme přepínač s názvem Clientv1 (viz Obrázek 1.3) a nastavili jsme jej jako primární server. Následně jsme přidali novou VLAN, abychom docílili toho, že na tomto přepínači bude vyšší číslo revize. Přepínač s názvem Clientv1 tak měl číslo revize 11: clientv1(config)#do show vtp status VTP Version capable : 1 to 3 VTP version running : 3 VTP Domain Name : sps VTP Pruning Mode : Disabled VTP Traps Generation : Disabled Device ID : 0024.f9be.d980 Feature VLAN: -------------VTP Operating Mode : Primary Server Number of existing VLANs : 12 Number of existing extended VLANs : 0 Configuration Revision : 11 Primary ID : 0024.f9be.d980 Primary Description : clientv1
Zbylé dva přepínače mají číslo revize 10: serverv3(config)#do show vtp status VTP Version capable : 1 to 3 VTP version running : 3 VTP Domain Name : sps VTP Pruning Mode : Disabled VTP Traps Generation : Disabled Device ID : 40f4.ec54.ab00 Feature VLAN: -------------VTP Operating Mode : Primary Server Number of existing VLANs : 11 Number of existing extended VLANs : 0 Maximum VLANs supported locally : 1005 Configuration Revision : 10 Primary ID : 40f4.ec54.ab00 Primary Description : serverv3
Následně jsme přepínač opět připojili a sledovali, jestli se přepíše databáze či nikoliv. K přepsání nedošlo a po zhlédnutí tabulky s připojenými přepínači (příkaz #show vtp devices) bylo patrné, že dané přepínače detekují kolizi (sloupec Conf):
1
duben 2015
7/9
serverv3#show vtp devices Retrieving information from the VTP domain. Waiting for 5 seconds. VTP Feature Conf Revision Primary Server Device ID Device Description ------------ ---- -------- -------------- ----------------------------------VLAN Yes 11 0024.f9be.d980=0024.f9be.d980 Clientv1 VLAN No 10 40f4.ec54.ab00 108c.cf9e.fe00 Clientv2
Rozhodli jsme se, že do role primárního serveru dáme nově připojený přepínač s názvem Clientv1. Následně jsme na něm přidali nové VLAN (také VLAN s číslem 1500, kterou předchozí verze nepodporovali) a zjišťovali jsme, jestli se databáze přepíše i na předchozím přepínači v roli serveru. K přepsání došlo korektně a na tomto přepínači byli následující čísla VLAN: serverv3#show vlan VLAN Name Status Ports ---- -------------------------------- --------------------------------------1 default active Fa0/2, Fa0/3, Fa0/4, Fa0/5 Fa0/6, Fa0/7, Fa0/8, Fa0/9 Fa0/10, Fa0/11, Fa0/12, Fa0/13 Fa0/14, Fa0/15, Fa0/16, Fa0/17 Fa0/18, Fa0/19, Fa0/20, Fa0/21 Fa0/22, Fa0/23, Fa0/24, Gi0/1 Gi0/2 10 desitka active 20 dvacitka active 30 tricitka active 40 ctyricet active 50 padesatka active 60 sedesat active 100 stovka active 1002 fddi-default act/unsup 1003 trcrf-default act/unsup 1004 fddinet-default act/unsup 1005 trbrf-default act/unsup 1500 patnactistovka active
5 Závěr Cílem tohoto projektu bylo otestovat v praxi, jakým způsobem pracuje a jak naimplementovat na cisco zařízeních Virtual Trunking protocol, který zjednodušuje konfiguraci vlan, při velkém množství přepínačů v topologii sítě. Podařilo se nám jak naimplementovat jednotlivá nastavení, tak prozkoušet kompatibilitu různých verzí daného protokolu a jejich chování mezi sebou. Realizace probíhala v laboratoři k tomu určené, na přepínačích řady CATALYST 3560. Pracovali jsme na druhé vrstvě RAM OSI modelu. Podrobnosti ohledně chování tohoto protokolu jsou zpracovány výše. Chtěl bych podotknout fakt, že v praxi je nejvhodnější na všech přepínačích pracovat s verzí tohoto protokolu označenou č. 3 a to hlavně díky jejím přednostem jako je množství podporovaných vlan a ochrany proti přepisu databáze. Samozřejmě v neposlední řadě jde také o to, že jednotlivé zařízení pracující na různých verzích tohoto protokolu, nemusí splňovat veškeré potřebné parametry a může tím často docházet k různým typům komplikací.
1
duben 2015
8/9
6 Použitá literatura [1]
Cisco Catalyst 2960-X Switch VLAN Configuration Guide, Cisco IOS Release 15.0(2)EX: configuration VTP [online]. [cit.20150418].Dostupné: http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960x/software/
15-0_2_EX/vlan/configuration_guide/b_vlan_152ex_2960-x_cg/b_vlan_152ex_2960x_cg_chapter_010.html [2]
Cisco Virtual LANs/VLAN Trunking Protocol (VLANs/VTP): Understanding VLAN Trunk Protocol (VTP) [online]. [cit. 2015-04-18]. Dostupné z: http://www.cisco.com/c/en/us/support/docs/lan-
switching/vtp/10558-21.html [3]
Jeff Kronlage's CCIE study Blog: VTP v3 [online]. 2014 [cit. 2015-04-18]. Dostupné z:http://brbccie.blogspot.cz/2014/07/vtp-v3.html
1
duben 2015
9/9