O teorii, možnostech a výhodách VLAN jsem psal v článku VLAN - Virtual Local Area Network. Pár informací o konfiguraci VLAN, ve spojitosti se zařazováním portu do VLANy či trunku, jsem popsal již v článku Cisco IOS 3 - nastavení interface/portu - access, trunk, port securit. Nezmínil jsem však vlastní vytváření VLAN. V tomto článku je souhrnný popis konfigurace VLAN a věcí s tím souvisejících.
Čísla VLAN
VLANy se běžně identifikují pomocí čísla, takže máme například VLAN 10. Pro jednoduší zapamatování a orientaci se k nim ještě přiřazují jména.
Cisco switche by v posledních letech měly podporovat tyto číselné rozsahy pro VLANy. Starší zařízení nepodporují čísla nad 1005, navíc tyto VLANy nejsou přenášeny pomocí VTP a neukládají se do VLAN databáze.
VLANy | popis |
---|---|
0 a 4095 | rezervované pro systémové použití |
1 | defaultní VLAN, standardně obsahuje všechny porty, nedá se smazat |
2-1001 | běžný rozsah pro ethernetové VLANy |
1002-1005 | speciální defaultní VLANy pro Token Ring a FDDI, nedají se smazat |
1006-4094 | Extended VLAN - rozšířené VLANy pro ethernet, nejsou vždy podporovány |
Vytvoření a pojmenování VLANy
Konfigurace VLAN je (u některých typů switchů) udržována v běžící konfiguraci a v souboru vlan.dat
.
Novou VLANu vytvoříme následujícím příkazem, pokud již VLANa existuje, tak se přepneme do její konfigurace.
SWITCH(config)#vlan 10 // vytvoření/přepnutí do VLAN 10
Nyní jsme v konfiguraci VLANy a můžeme nastavit několik parametrů, dobré je nastavit jméno VLANy pro snadnější orientaci.
SWITCH(config-vlan)#name net1 // pojmenování VLANy
Z vlastností, které můžeme nastavit pro celou VLANu, zmíním pouze změnu IP MTU (maximální velikost přenášených paketů - payload rámce), standardní je 1500B pro Ethernet (rámec má velikost 1518B).
SWITCH(config-vlan)#mtu 2000 // možné hodnoty 576 až 18190 (podle typu switche)
Změny se uloží při opuštění konfigurace.
SWITCH(config-vlan)#exit // o úroveň výš
Zrušit VLANu můžeme standardně. Při zrušení VLANy však nedojde k odstranění vazeb, které na ni existují (jako zařazení portů do VLANy).
SWITCH(config)#no vlan 10 // smazání VLANy 10
Pozn.: VLANu vytvoříme také tím, když ji použijeme na určitém místě. Například pokud port zařadíme do neexistující VLANy, tak se tato vytvoří.
Nastavení IP adresy pro VLANu
VLANy jsou virtuální interfacy, proto s nimi můžeme provádět řadu operací jako s klasickým interfacem (portem). Jednou z možností je nastavení IP adresy, tím vlastně nastavíme adresu switche v dané VLANě.
SWITCH(config)#interface vlan 10 // přepnutí do konfigurace SWITCH(config-if)#ip address 192.168.190.1 255.255.255.0 // nastavení IP adresy SWITCH(config-if)#no shutdown // nahození interfacu
Switch Virtual Interface - SVI
Výše uvedená informace není přesná. Správně musíme říci, že pro každou VLANu můžeme vytvořit Switch Virtual Interface (SVI), což je ten zmiňovaný virtuální interface. VLANy a SVI však existují nezávisle na sobě, i když se provádí mapování (které může být maximálně 1:1) mezi SVI a VLANou. SVI vytvoříme prvním přístupem do něj a můžeme jej vytvořit i pro neexistující VLANu. SVI pracuje na 3. vrstvě ISO/OSI modelu a defaultně je vytvořen pro VLAN 1 (a nelze jej smazat). SVI potřebujeme, pokud chceme provádět inter VLAN routing (routovat provoz mezi VLANami) nebo umožnit IP konektivitu ke switchi (pro přístup na CLI přes telnet/SSH a podobné funkce).
SWITCH(config)#interface vlan 15 // vytvoření SVI
Pro smazání SVI použijeme
SWITCH(config)#no interface vlan 15 // smazání SVI
VLAN 1
Na switchích, které podporují VLANy, musí existovat alespoň jedna VLANa, protože každý port musí být do nějaké zařazen. Na Cisco zařízeních je to VLAN 1 a všechny porty, ve výchozím stavu, jsou do ní zařazeny.
Z bezpečnostního hlediska je dobré nepoužívat tuto defaultní VLAN 1, nebo ji použít pouze pro hostovský přístup, a pro vlastní síť vytvořit jiné VLANy.
VLAN 1 nelze smazat a nelze ji ani vypnout, což je možné u všech ostatních VLAN.
SWITCH(config-vlan)#shutdown // vypnutí VLANy
Přiřazení portu do VLANy
Standardně jsou všechny porty zařazeny do VLAN 1. Pokud chceme nakonfigurovat přístupový port s pevným zařazením do VLANy, postupujeme následovně.
SWITCH(config)#interface f0/1 // přepnutí do konfigurace portu SWITCH(config-if)#switchport mode access // nastavení portu do přístupového módu SWITCH(config-if)#switchport access vlan 10 // zařazení do VLANy 10
Voice VLAN
Pro VoIP (IP telefonie) má Cisco řadu zjednodušení. Jedním z nich je konfigurace, kdy je do portu připojen Cisco telefon (který obsahuje malý 3-portový switch) a za ním je připojeno PC. Na portu nastavíme access VLAN, do ní spadá komunikace PC, a také voice VLAN (někde označována jako auxiliary VLAN - má i více použití) , do které se zařadí komunikace telefonu. Aby vše fungovalo jak má, tak musíme použít Cisco IP telefon a na portu musí být povoleno CDP. Ve skutečnosti vše funguje tak, že se na portu nastaví trunk, access VLAN se stane native VLAN (tedy netagovaná) a komunikace telefonu použije 802.1q.
SWITCH(config-if)#switchport voice vlan 20 // zařazení hlasu do VLANy 20
Konfigurace Trunku
Aby se zachovala informace o zařazení do VLANy, a aby se přenášela data v různých VLANách mezi switchi, je třeba mezi nimi zřídit trunk. Ten se nastavuje na obou stranách, na portu, kterým jsou switche propojeny mezi sebou. Můžeme využít standard IEEE802.1q (tagování rámců) nebo Cisco proprietální ISL (zapouzdřování), které je podporováno pouze u vyšších Cisco switchů. Také je možné vyjmenovat VLANy, které se mohou trunkem přenášet, pokud příkaz neuvedeme, tak se přenáší všechny.
SWITCH(config)#interface f0/1 // přepnutí na správný port SWITCH(config-if)#shutdown // doporučeno nejprve vypnout port SWITCH(config-if)#switchport trunk encapsulation dot1q // zvolím metodu rozlišování VLAN SWITCH(config-if)#switchport trunk allowed vlan 2-200 // které VLANy se přenáší SWITCH(config-if)#switchport trunk native vlan 10 // určení nativní VLAN SWITCH(config-if)#switchport mode trunk // nastavení portu do TRUNK modu SWITCH(config-if)#switchport nonegotiate // nevyjednává se trunk protokolem DTP SWITCH(config-if)#no shutdown // nahození portu
Pozn.: Stejnou konfiguraci je třeba provést na druhé straně. Aby se ustanovil trunk, tak je třeba dodržet několik předpokladů. Musí se jednat o Point to Point linku, porty musí mít nastavenu stejnou rychlost (speed), duplex, metodu encapsulace a nativní VLANu (u ISL se může lišit).
Dynamic Trunk Protocol (DTP)
Dynamic Trunk Protocol (DTP) slouží pro automatické vyjednávání, zda je daný port trunk. Z bezpečnostního hlediska se doporučuje tuto možnost nepoužívat, protože by některá stanice mohla vyjednat, že se jedná o trunk a pak zachytávat veškerou komunikaci.
Konfigurace DTP se provádí na každém portu.
- Pokud nastavíme port napevno do přístupového módu (access), tak není ovlivněn DTP protokolem.
- Pokud jej nastavíme napevno do trunk módu, tak se opět jeho mód nemůže změnit, ale on vyjednává pomocí DTP, aby se linka (druhá strana) přepnula do trunku.
- Pokud je port v trunk módu, tak můžeme nastavit, aby negeneroval DTP rámce (a vůbec nepoužíval DTP).
SWITCH(config-if)#switchport nonegotiate
- Poslední možností je nastavení portu do dynamického módu, kdy aktivně využívá DTP.
SWITCH(config-if)#switchport mode dynamic auto // pokud přijde žádost, tak se přepne do trunku SWITCH(config-if)#switchport mode dynamic desirable // posílá žádosti o vytvoření trunku
Nejvhodnější je nastavit přístupové porty napevno do módu access a trunk porty napevno do trunk módu s vypnutým vyjednáváním.
Pro zobrazení informací o DTP slouží příkazy:
SWITCH#show dtp SWITCH#show dtp interface f0/1
Zobrazení informací o VLANach - show příkazy
SWITCH#show vlan // stručné info o VLAN a zařazení portů SWITCH#show vlan id 500 // seznam portů ve VLAN 500 a MTU pro VLANu SWITCH#show interface vlan 10 // informace o SVI SWITCH#show running-config vlan // informace o VLAN z běžící konfigurace SWITCH#show interfaces f0/1 switchport // informace o portu spolu s VLAN SWITCH#show interfaces trunk // info o truncích
VTP - VLAN Trunking Protocol
Většinou chceme, aby vytvořené VLANy existovaly v celé síti (nebo v určité části, ale ne pouze na jednom switchi). Pro přenášení dat v těchto VLANách mezi switchi se využívají trunky. Aby se však dalo s těmito VLANami pracovat, tak musí být vytvořeny na každém switchi. Při menším počtu switchů (a pokud chceme větší dohled), tyto VLANy na každém switchi nakonfigurujeme ručně (většinou to není tolik práce). Musíme však pamatovat při vytvoření nové VLANy ji opět všude nakonfigurovat.
Druhou možností je využití VLAN Trunking Protocol (VTP), což je L2 protokol, který slouží k přenášení informací o VLANách mezi switchi. VTP spravuje přidávání, mazání a přejmenování VLAN uvnitř VTP domény. VTP doména je tvořena jedním nebo více síťovými zařízeními, která mají nastaveno stejné jméno domény (volitelně i heslo) a jsou propojeny pomocí trunku.
Princip je takový, že každý switch ve VTP doméně má nastavený jeden ze tří módů
- server - spravuje seznam všech VLAN, má jej uložen v NVRAM, může vytvářet a mazat VLANy, přijímá a odesílá advertisements přes trunky 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
- transparentní - neúčastní se VTP, pracuje samostatně, může vytvářet i mazat VLANy, ale změny jsou lokální, přijímá advertisements a ve verzi 2 je i přeposílá (ale nesynchronizuje svoje VLANy, ani je nezveřejňuje), je to jediný mód, kde můžeme vytvářet Extended a Private VLANy, VTP a VLAN konfigurace je uložena v NVRAM
Pozn.: Konfigurace VTP, pokud je v režimu server nebo klient, se nenachází v running config.
Server rozesílá (pouze přes trunky) VTP advertisements (oznámení) každých 5 minut nebo při změně v konfiguraci. Server udržuje konfigurační revizní číslo (configuration revision number), které při každé změně zvýší o jedna. Klient při synchronizaci porovnává svoje a přijaté číslo. VTP advertisements obsahuje management domain, revision number, verzi VTP, známé VLANy a jejich parametry. Advertisements jsou tří typů, Summary, Subset a Client Request.
Pozn.: Standardizovanou obdobou VTP je protokol Generic VLAN Registration Protocol - GVRP a jeho nástupce Multiple VLAN Registration Protocol - MVRP. Na Cisco zařízeních jej však příliš nenajdeme.
Konfigurace VTP
Pro konfiguraci musíme nejprve vytvořit VTP doménu, těch může existovat více a informace se předávají pouze v rámci domény.
Pozn.: VTP pakety neprochází přes router.
SWITCH(config)#vtp domain domena1
Volitelně můžeme nastavit heslo, které musí být na všech switchích v doméně shodné. Heslo není uloženo v running-config.
SWITCH(config)#vtp password heslo
Jako poslední nastavíme, v jakém módu switch operuje.
SWITCH(config)#vtp mode server // možnosti server, client, transparent
Na dnešních Cisco switchích můžeme použít VTP ve dvou verzích (VTP 1 a 2). Verze 2 navíc podporuje Token Ring, VLAN consistency check, unrecognized TLV a v Transparent modu přeposílá advertisements. Defaultní je verze 1, nastavení můžeme změnit.
SWITCH(config)#vtp version 2
Informace o VTP zjistíme pomocí příkazů
SWITCH#show vtp status // základní info o běhu VTP na switchi SWITCH#show vtp counters // statistika VTP přenosů SWITCH#show vtp password // zobrazí VTP heslo
VTP Pruning
Můžeme také povolit pruning. Konfiguruje se na VTP serveru a ovlivní celou doménu. Zabrání odesílání zbytečných paketů (broadcast, multicast, neznámé) na switche, kde není žádný port v dané VLANě a ani přes něj nevede funkční cesta dál.
SWITCH(config)#vtp pruning
VLAN 1 je pruning ineligible, to znamená, že se na ni pruning neuplatňuje, VLAN 2 až 1001 je standardně pruning eligible, ale můžeme změnit konfigurací.
bezva článek,přesně tohle sem potřeboal abych se dostal do obrazu
Opravdu super, tvoje clanky jsou strucne, ale zaroven velice vystizne. Thx much
Děkuji. Takovéhle reakce potěší :). Ještě musím získat více čtenářů.
Nahodou (jako vzdy ) jsem nasel tuhle stranku a vypada fakt skvele, ukladam do slozky s uzitecnymi odkazy! :)
Taky me to konecne dostalo do obrazu :D
Pekne . Jen pripominam, ze se lze dost casto setkat se starsimi prepinaci (treba rada 2900, kde podpora konci IOSem 12.0.5-WC17). U nich zejmena VLAN a VTP konfiguruje jinak:
SwitchA# vlan database
SwitchA(vlan)# vlan 10 name Horni
SwitchA(vlan)# vlan 20 name Dolni
SwitchA(vlan)# vtp domain Cisco
SwitchA(vlan)# vtp server
SwitchA(vlan)# exit
Jojo,povedeny popis, diky trochu me to nakoplo k pochopeni trunku a nastaveni vtp
U VTP by možná stálo za zmínku, že nespolupracuje s VLAN > 1005
odpověď na [8]davro: Pravda, pro někoho je dobré to napsat takhle jasně. Já tam mám napsáno, že pouze ve VTP Transparent je možno použít Extended VLANy.
odpověď na [9]Samuraj:
Bohužel termín Extended VLAN není v článku popsán a vzhledem k tomu, že to je Cisco terminologie, mohla by tato "featura" trochu zmást neznalého, koupivšího člověka :)
Možná by se šiknul i článek o GVRP (jenom takový námět :))
odpověď na [10]tomfi: První kapitola Čísla VLAN, ale tam jsem to uvedl pouze česky .
Ahoj Samuraji. Děkuji za tyto bezva IT stránky. Hodně je využívám. Je to stručné a výstižné a vím, že když zadám do vyhledávacího okénka na tvých stránkách VTP, tak mi to najde to, co mám na mysly a né jako při googlování Voda Topení Plyn :-D
Perfektne veci. a pomoze to nielen pri praci ale ja v skole :) zajtra mam prakticky test zo sieti a toto je presne co som potreboval. diky moc :)
Ještě taková drobnost, pokud někdo využívá DTP v dynamickém, tak se musí shodovat i VTP domény! Jinak se dva switche na trunku nedomluví. Další záludná věc ohledně VTP prunningu jsou trunky vůči jiným výrobcům, lehce se může stát, že okrajový Cisco switch odřízne access porty na switchi jiného výrobce...
Podrobný Cisco popis s omáčkou: www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094c52.shtml
Fakt super, díky moc!!
Jsem právě na Cisco školení A2 a již se nedoporučuje DTP ani VTP používat, pro ty, kdo chtějí předejít problémům :)
Raději vše pěkně ručně, ale mám pak jistotu že trunk naběhne kde má a nepřijdu o VLAN díky nějakému nově zapojenému switchi (co má stejnou doménu a vyšší rev. číslo)
Jinak díky, skvělá práce, skvělý web!
Dobrý den,
předem musím podotknout, že Vaše články jsou opravdu čtivé a hlavně chápavé. Mám nakonfigurovanou vlan na ciscu 2960. Kde mám na testovacím portu Gi0/47 a tam mám také nastaven i DHCP server. VLANa funguje a DHCP server mně adresy rozdává, no a kde je problém? Nemám internet...,
V síťi mám pouze jednu gateway, takže tuto gateway jsem také určil ip default-gateway a v konfiguraci DHCP -> default-router jsem tuto gateway také uvedl, nicméně asi je něco špatně.
Děkuji za radu
S pozdrave
Tomas
odpověď na [17]Tomas: A je ta GW připojena do té stejné VLANy? Dá se z počítače, který dostal IP adresu z toho DHCP na GW pingnout?
Ahoj, super clanky. Len mala poznamka. Defaultna vlan 1 sa da vypnut.
odpověď na [19]Ronald: Tak to by mne zajímalo jak . Vypnout můžeme VLAN 1 interface, ale vlastní VLAN 1 nevypneme (když se o to pokusíme, tak dostaneme informaci, že to nelze).
odpověď na [20]Samuraj:
Mate pravdu :) Zle som to napisal. Vlan 1 interface sa da shut-nut
odpověď na [16]Michal: Taky mi někde říkali na školení (asi CCNA), že nemám používat VTP. Podle mě, pokud se dodrží potřebné kroky a nebudu připojovat switch se stejnou VTP doménou jako server (taky, kde bych ho přece vzal), tak je vše v pohodě. A v praxi až narazíte na síť bez VTP, tak je to dost opruz. Ted řeším jen malou část v serverovně a to je takovej bordel, když tam ručně přidávaj asi 3 lidi VLANy. O výluce to budu předělávat na VTP.
Máte někdo zkušenost se dvěma VTP servery v jedné VTP doméně? Zahlídl jsem, že to jde, ale nějak nemůžu najít přesné a bezpečné informace a nemám to kde otestovat. Ale přijde mi to jako dobrý nápad, kdyby VTP server switch odešel. Ale abych si celou VTP doménu nerozházel na Rev number.