Difference between revisions of "Cisco VTP"

From HackerNet
Jump to: navigation, search
Line 1: Line 1:
VTP står för VLAN Trunking Protocol men tänk VLAN Management Protocol då det används för att managera VLAN-databaser på flera switchar samtidigt från en switch. Det går endast över ISL/802.1q-länkar så trunk mellan switcharna är ett måste. VTP annonserar VLAN ID, namn, typ och tillstånd men dock inget om vilka portar som tillhör vilket VLAN. VTP jobbar med revisionsnummer för att veta vilka databas som är korrekt uppdaterad, högre revisionsnummer vinner.  
+
VTP står för VLAN Trunking Protocol men tänk VLAN Management Protocol då det används för att managera VLAN-databaser på flera switchar centralt från en switch. Det går endast över ISL/802.1q-länkar så trunk mellan switcharna är ett måste. VTP annonserar VLAN ID, namn, typ och tillstånd men dock inget om vilka portar som tillhör vilket VLAN. VTP jobbar med revisionsnummer för att veta vilka databas som är korrekt uppdaterad, högre revisionsnummer vinner.  
 
Se även [[Cisco_VLAN|Cisco VLAN]].
 
Se även [[Cisco_VLAN|Cisco VLAN]].
  
''OBS'' VTP har potentialen att sänka en hel miljö på några enstaka sekunder, förstå hur det fungerar och räkna med riskerna.
+
''OBS'' VTP har potentialen att sänka en hel L2-miljö på några enstaka sekunder, förstå hur det fungerar och räkna med riskerna.
 +
 
 +
===Versioner===
 +
VTP finns i version 1, 2 och 3. VTPv1 är default.
 +
 
 +
Skillnader mellan v1 och v2.
 +
* Stöd för diverse Token Ring VLAN
 +
* Stöd för unknown TLV records, v1 ignorerar dessa.
 +
* VLAN-databasen konsistenscheckas ej om ändringen kommer med VTP. Implementation optimization.
  
 
===Pakettyper===
 
===Pakettyper===
Line 18: Line 26:
 
Skickas av server och client var 6 sekund om pruning är påslaget. Berättar om vilka VLAN som är aktiva.
 
Skickas av server och client var 6 sekund om pruning är påslaget. Berättar om vilka VLAN som är aktiva.
  
=Versioner=
+
=Konfiguration=
VTP finns i version 1, 2 och 3. VTPv1 är default.
 
 
 
Skillnader mellan v1 och v2.
 
* Stöd för diverse Token Ring VLAN
 
* Stöd för unknown TLV records, v1 ignorerar dessa.
 
* VLAN-databasen konsistenscheckas ej om ändringen kommer med VTP. Implementation optimization.
 
 
 
Konfiguration
 
 
  vtp version [version]
 
  vtp version [version]
 +
Vill man byta vlan.dat kan man göra det, det har bara lokal signifikans.
 +
vtp file ''filename''
 +
VTP kan stängas av per interface
 +
no vtp
 +
show vtp interface
 +
Debug
 +
debug sw-vlan vtp events
 +
debug sw-vlan vtp packets
  
=VTP Modes=
+
'''Server''' <br/>
===Server===
 
 
På VTP-servrar skapar, modifierar och tar man bort VLAN, detta propageras sedan ut till klienter och övriga servrar. Detta är default för Cisco IOS men uppdateringar skickas inte förrens VTP domain är konfigurerat. Uppdateringar accepteras från server och client och VLAN sparas i vlan.dat.
 
På VTP-servrar skapar, modifierar och tar man bort VLAN, detta propageras sedan ut till klienter och övriga servrar. Detta är default för Cisco IOS men uppdateringar skickas inte förrens VTP domain är konfigurerat. Uppdateringar accepteras från server och client och VLAN sparas i vlan.dat.
 +
vtp mode server
  
===Client===
+
'''Client''' <br/>
 
Behöver ej ha VTP domain konfigurerat utan tar det från den första VTP-uppdateringen som tas emot. Dock måste vtp mode client konfigureras. Uppdateringar accepteras från server och client och VLAN sparas i vlan.dat. Eftersom klienter originerar uppdateringar kan en klient med högre revisionsnummer uppdatera databasen på en server.
 
Behöver ej ha VTP domain konfigurerat utan tar det från den första VTP-uppdateringen som tas emot. Dock måste vtp mode client konfigureras. Uppdateringar accepteras från server och client och VLAN sparas i vlan.dat. Eftersom klienter originerar uppdateringar kan en klient med högre revisionsnummer uppdatera databasen på en server.
 +
vtp mode client
  
===Transparent===
+
'''Transparent''' <br/>
Med vtp mode transparent sparas alla vlan i running config och vlan.dat
+
Enheter i VTP mode transparent släpper igenom VTP frames men behandlar dem ej själv. VLAN på dessa enheter sparas lokalt i running config och vlan.dat.
 +
vtp mode transparent
  
===Off===
+
'''Off''' <br/>
 
Finns endast med VTPv3 och stänger av VTP-forwarding helt.
 
Finns endast med VTPv3 och stänger av VTP-forwarding helt.
 +
vtp mode off
  
'''Konfiguration'''
+
===Domain===
vtp mode [mode]
+
Domän måste vara samma på alla enheter annars ignoreras updates, har man inget domännamn konfigurerat lånar man det som andra sidan skickar med i sina paket (v3 gör ej så). Byt namn på domän för att resetta revision number.
 
 
=VTP Domain=
 
Domän måste vara samma på alla annars ignoreras updates. Byt namn på domän för att resetta revision number.
 
 
  vtp domain [domain]
 
  vtp domain [domain]
 
  show vtp status
 
  show vtp status
  
Använd lösenord för att skydda din miljö annars kan t.ex. domäner propagera till switchar automatiskt. Detta skyddar ej mot eavesdropping utan endast mot unauthorized switches. En MD5-summa räknas fram av VLAN-databasen och lösenordet för att sedan skickas med Summary advertisement. Hidden password är VTPv3 only och då hashas lösenordet i vlan.dat också.
+
Använd lösenord för att skydda din miljö annars kan t.ex. domäner propagera till switchar automatiskt. Detta skyddar ej mot eavesdropping utan endast mot unauthorized switches. En MD5-summa räknas fram av VLAN-databasen och lösenordet för att sedan skickas med Summary advertisement. Hidden password är VTPv3 only och då hashas lösenordet i vlan.dat också, v1/2 funkar inte ifall det finns ett hidden password konfigurerat.
  vtp password [password] {hidden|secret}
+
  vtp password SECRETZ {hidden|secret}
 
  show vtp password
 
  show vtp password
  
=VTP Pruning=
+
===Pruning===
 
VTP pruning erbjuder en dynamisk mekanism som automatisk konfigurerar vilka VLAN som ska tillåtas på trunkar inom VTP-domänen. Slå på pruning för att hindra flooding i alla VLAN till switchar som inte har portar i alla VLAN. För utbyte av information om aktiva VLAN används VTP join messages. VTP pruning kan läras av VTP-klienter, så om man slår på det på en VTP-server och den börjar skicka ut join messages så kommer också klienterna att slå på pruning automatiskt.
 
VTP pruning erbjuder en dynamisk mekanism som automatisk konfigurerar vilka VLAN som ska tillåtas på trunkar inom VTP-domänen. Slå på pruning för att hindra flooding i alla VLAN till switchar som inte har portar i alla VLAN. För utbyte av information om aktiva VLAN används VTP join messages. VTP pruning kan läras av VTP-klienter, så om man slår på det på en VTP-server och den börjar skicka ut join messages så kommer också klienterna att slå på pruning automatiskt.
 
  vtp pruning
 
  vtp pruning
Line 65: Line 73:
  
 
=VTPv3=
 
=VTPv3=
 +
Med VTPv3 introduceras ''primary server'' och det är bara dennes VLAN-databas som får modifieras och skickas ut i domänen. Alla andra servrar blir secondary. Vilken switch som är primary server måste switcharna vara eniga om för att kommunicera. Är switchar oeniga blir det konflikt och ingen databas synkas, '''show vtp devices conflicts'''. Detta minskar ytterliggare risken för att oavsiktligt skriva över en VLAN-databas.
 +
 
Skillnader mellan v2 och v3.
 
Skillnader mellan v2 och v3.
* Möjligt att använda krypterade lösenord
+
* Möjligt att använda krypterade lösenord även i vlan.dat.
 
* Stöd för private och extended vlan, dvs över 1005.  
 
* Stöd för private och extended vlan, dvs över 1005.  
 
* Off mode, alla VTP-meddelanden droppas, globalt eller per interface.
 
* Off mode, alla VTP-meddelanden droppas, globalt eller per interface.
* Stöd för mer än bara VLAN-databassynk, det finns även en instans för [[Cisco_MST|MST]]-konfiguration.
+
* Stöd för mer än bara VLAN-databassynk, det finns även en instans för [[Cisco_MST|MST]]-konfiguration samt forwarda VTP-frames för UNKNOWN features ifall det hittas på något i framtiden.
 +
* Stöd för att flagga VLAN som [[Cisco_SPAN#RSPAN|RSPAN]], dvs disables MAC learning i VLANet på alla switchar.
 
* Serverrollen, se nedan.
 
* Serverrollen, se nedan.
  
Kör man v1/v2 på ena sidan och v3 på den andra kommer v3 känna av det och återgå till v2 vilket tvingar den första switchen att använda v2-only. Med VTPv3 introduceras ''primary server'' och det är bara dennes VLAN-databas som får modifieras och skickas ut i domänen. Alla andra servrar blir secondary. Vilken switch som är primary server måste switcharna vara eniga om för att kommunicera. Är switchar oeniga blir det konflikt och ingen databas synkas, '''show vtp devices conflicts'''. Detta minskar ytterliggare risken för att oavsiktligt skriva över en VLAN-databas.  
+
Bakåtkompabilitet får man när man kör v1/v2 på ena sidan och v3 på den andra kommer v3 känna av det och återgå till v2 vilket tvingar den första switchen att använda v2-only. v2-sidan kan aldrig uppdatera v3-domänen så allt i v2 bör vara client.
  
För att bli primary krävs lösenord.
+
Konfiguration
 +
vtp domain hackernet.se
 +
vtp version 3
 +
vtp mode server
 +
Skapa VLAN
 +
vlan 100
 +
''VTP VLAN configuration not allowed when device is not the primary server for vlan database.''
 +
 
 +
För att bli primary krävs lösenordet. Primary är endast operational state, det är inget som sparas i running eller startup.  
 
  vtp primary
 
  vtp primary
 +
 +
Ta primary utan att först kontrollera efter conflicting devices (som annars kan ta lite tid).
 +
vtp primary vlan force
  
 
Verify
 
Verify
  show vtp status enhanced
+
  show vtp status
  show vtp devices feature
+
  show vtp devices #Endast v3-enheter syns
 
  show vtp counters
 
  show vtp counters
 +
 +
===MST===
 +
MST-konfiguration kan också distribueras med hjälp av VTPv3. Precis som för VLAN får endast ändringar göras på primary server (som ej behöver vara samma som för feature VLAN).
 +
vtp mode server mst
 +
vtp mode client mst
 +
Ta primary-rollen
 +
vtp primary mst
 +
vtp primary mst force
 +
Verify
 +
show vtp status
 +
 +
===Extended VLANs===
 +
Varje gång man skapar en routed port eller SVI i en L3-switch binds ett VLAN till det interfacet för intern kommunikation till control plane. Detta görs lokalt och kan därmed skilja mellan switcharna i miljön. Detta leder till att om man skapar ett högnummer VLAN på en VTP server switch utan SVI:er (vilket funkar bra) kanske det inte skapas på alla switchar även om VTP fungerar som det ska, ''"VLAN_CREATE_FAIL"'' pga VLAN 1007 currently in use by GigabitEthernet0/3. Vilka VLAN en switch använder till detta beror på policy i switchen.
 
  show vlan internal usage
 
  show vlan internal usage
  
=Övrigt=
+
Default är att starta på VLAN 1006 och gå uppåt.
Troubleshoot
+
  vlan internal allocation policy ascending
show vtp interface
+
På nyare switchar kan man ändra detta till att starta på 4094 och gå neråt.
  debug sw-vlan vtp events
+
  vlan internal allocation policy descending
debug sw-vlan vtp packets
 
 
 
Vill man byta vlan.dat kan man göra det med
 
  vtp file ''filename''
 
  
 
[[Category:Cisco]]
 
[[Category:Cisco]]

Revision as of 12:05, 28 May 2016

VTP står för VLAN Trunking Protocol men tänk VLAN Management Protocol då det används för att managera VLAN-databaser på flera switchar centralt från en switch. Det går endast över ISL/802.1q-länkar så trunk mellan switcharna är ett måste. VTP annonserar VLAN ID, namn, typ och tillstånd men dock inget om vilka portar som tillhör vilket VLAN. VTP jobbar med revisionsnummer för att veta vilka databas som är korrekt uppdaterad, högre revisionsnummer vinner. Se även Cisco VLAN.

OBS VTP har potentialen att sänka en hel L2-miljö på några enstaka sekunder, förstå hur det fungerar och räkna med riskerna.

Versioner

VTP finns i version 1, 2 och 3. VTPv1 är default.

Skillnader mellan v1 och v2.

  • Stöd för diverse Token Ring VLAN
  • Stöd för unknown TLV records, v1 ignorerar dessa.
  • VLAN-databasen konsistenscheckas ej om ändringen kommer med VTP. Implementation optimization.

Pakettyper

Gäller VTPv1 och v2.
Summary advertisements
Skickas av server och client var 5 minut eller vid VLAN-modifikation och innehåller allt utom själva VLAN-databasen. Innehåller VTP domain name, revision number, identity of last updater, time stamp of last update, MD5 sum of VLAN database, VTP password och antalet efterkommande Subset advertisements.

Subset advertisement
Skickas ut efter en VLAN-förändring och innehåller hela databasen. Kan dock behövas flera paket ifall det är en stor databas.

Advertisement requests
Skickas av server och client när de vill ha hela VLAN-databasen, t.ex. när de får in en Summary Advertisement med högre revisionsnummer. Skickas även av klienter när de startas om eller blir client.

VTP join messages
Skickas av server och client var 6 sekund om pruning är påslaget. Berättar om vilka VLAN som är aktiva.

Konfiguration

vtp version [version]

Vill man byta vlan.dat kan man göra det, det har bara lokal signifikans.

vtp file filename

VTP kan stängas av per interface

no vtp
show vtp interface

Debug

debug sw-vlan vtp events
debug sw-vlan vtp packets

Server
På VTP-servrar skapar, modifierar och tar man bort VLAN, detta propageras sedan ut till klienter och övriga servrar. Detta är default för Cisco IOS men uppdateringar skickas inte förrens VTP domain är konfigurerat. Uppdateringar accepteras från server och client och VLAN sparas i vlan.dat.

vtp mode server

Client
Behöver ej ha VTP domain konfigurerat utan tar det från den första VTP-uppdateringen som tas emot. Dock måste vtp mode client konfigureras. Uppdateringar accepteras från server och client och VLAN sparas i vlan.dat. Eftersom klienter originerar uppdateringar kan en klient med högre revisionsnummer uppdatera databasen på en server.

vtp mode client

Transparent
Enheter i VTP mode transparent släpper igenom VTP frames men behandlar dem ej själv. VLAN på dessa enheter sparas lokalt i running config och vlan.dat.

vtp mode transparent

Off
Finns endast med VTPv3 och stänger av VTP-forwarding helt.

vtp mode off

Domain

Domän måste vara samma på alla enheter annars ignoreras updates, har man inget domännamn konfigurerat lånar man det som andra sidan skickar med i sina paket (v3 gör ej så). Byt namn på domän för att resetta revision number.

vtp domain [domain]
show vtp status

Använd lösenord för att skydda din miljö annars kan t.ex. domäner propagera till switchar automatiskt. Detta skyddar ej mot eavesdropping utan endast mot unauthorized switches. En MD5-summa räknas fram av VLAN-databasen och lösenordet för att sedan skickas med Summary advertisement. Hidden password är VTPv3 only och då hashas lösenordet i vlan.dat också, v1/2 funkar inte ifall det finns ett hidden password konfigurerat.

vtp password SECRETZ {hidden|secret}
show vtp password

Pruning

VTP pruning erbjuder en dynamisk mekanism som automatisk konfigurerar vilka VLAN som ska tillåtas på trunkar inom VTP-domänen. Slå på pruning för att hindra flooding i alla VLAN till switchar som inte har portar i alla VLAN. För utbyte av information om aktiva VLAN används VTP join messages. VTP pruning kan läras av VTP-klienter, så om man slår på det på en VTP-server och den börjar skicka ut join messages så kommer också klienterna att slå på pruning automatiskt.

vtp pruning

Vill man att endast vissa VLAN ska vara med i VTP pruning kan man lägga dem per trunk i Prune Eligible List. By default är alla VLAN utom 1 prune eligible.

switchport trunk pruning vlan VLAN-RANGE

Verify

show interface trunk

VTPv3

Med VTPv3 introduceras primary server och det är bara dennes VLAN-databas som får modifieras och skickas ut i domänen. Alla andra servrar blir secondary. Vilken switch som är primary server måste switcharna vara eniga om för att kommunicera. Är switchar oeniga blir det konflikt och ingen databas synkas, show vtp devices conflicts. Detta minskar ytterliggare risken för att oavsiktligt skriva över en VLAN-databas.

Skillnader mellan v2 och v3.

  • Möjligt att använda krypterade lösenord även i vlan.dat.
  • Stöd för private och extended vlan, dvs över 1005.
  • Off mode, alla VTP-meddelanden droppas, globalt eller per interface.
  • Stöd för mer än bara VLAN-databassynk, det finns även en instans för MST-konfiguration samt forwarda VTP-frames för UNKNOWN features ifall det hittas på något i framtiden.
  • Stöd för att flagga VLAN som RSPAN, dvs disables MAC learning i VLANet på alla switchar.
  • Serverrollen, se nedan.

Bakåtkompabilitet får man när man kör v1/v2 på ena sidan och v3 på den andra då kommer v3 känna av det och återgå till v2 vilket tvingar den första switchen att använda v2-only. v2-sidan kan aldrig uppdatera v3-domänen så allt i v2 bör vara client.

Konfiguration

vtp domain hackernet.se
vtp version 3
vtp mode server

Skapa VLAN

vlan 100
VTP VLAN configuration not allowed when device is not the primary server for vlan database.

För att bli primary krävs lösenordet. Primary är endast operational state, det är inget som sparas i running eller startup.

vtp primary

Ta primary utan att först kontrollera efter conflicting devices (som annars kan ta lite tid).

vtp primary vlan force

Verify

show vtp status
show vtp devices  #Endast v3-enheter syns
show vtp counters

MST

MST-konfiguration kan också distribueras med hjälp av VTPv3. Precis som för VLAN får endast ändringar göras på primary server (som ej behöver vara samma som för feature VLAN).

vtp mode server mst
vtp mode client mst

Ta primary-rollen

vtp primary mst 
vtp primary mst force

Verify

show vtp status

Extended VLANs

Varje gång man skapar en routed port eller SVI i en L3-switch binds ett VLAN till det interfacet för intern kommunikation till control plane. Detta görs lokalt och kan därmed skilja mellan switcharna i miljön. Detta leder till att om man skapar ett högnummer VLAN på en VTP server switch utan SVI:er (vilket funkar bra) kanske det inte skapas på alla switchar även om VTP fungerar som det ska, "VLAN_CREATE_FAIL" pga VLAN 1007 currently in use by GigabitEthernet0/3. Vilka VLAN en switch använder till detta beror på policy i switchen.

show vlan internal usage

Default är att starta på VLAN 1006 och gå uppåt.

vlan internal allocation policy ascending

På nyare switchar kan man ändra detta till att starta på 4094 och gå neråt.

vlan internal allocation policy descending