# VLAN Trunking Protocol

In telecomunicazioni e informatica, il VLAN Trunking Protocol (acronimo VTP) è un protocollo di rete proprietario di Cisco utilizzato nelle reti dati per distribuire le informazioni relative alle VLAN (virtual local area network).

## Descrizione

Il protocollo lavora a livello Ethernet e viene quindi utilizzato da elementi in grado di operare a tale livello come gli switch e i router.
Lo scopo del protocollo VTP è quello di permettere una facile gestione delle Vlan all'interno di una rete. Normalmente le Vlan vengono create manualmente su ogni switch, operazione che può risultare complicata su reti di grosse dimensioni, in cui sono presenti numerosi switch.
Utilizzando il protocollo VTP è possibile definire una Vlan solo su uno switch, il quale distribuirà agli altri switch appartenenti al dominio VTP questa definizione.

### VTP Mode

Gli switch possono essere configurati come client, come server o in modalità trasparente.
* I server sono switch abilitati alla creazione di nuove VLAN, le informazioni riguardanti le VLAN sono contenute nella NVRAM, quindi disponibili anche dopo un riavvio. I server VTP annunciano il dominio VTP con le informazioni delle VLAN agli altri switch appartenenti allo stesso dominio VTP. La NVRAM è la sezione di memoria non-volatile in cui vengono creati, eliminati e rinominati i domini.
* I client possono solo ricevere VLAN da un server e eventualmente ritrasmetterle ad altri client, le informazioni riguardanti le VLAN sono salvate in RAM e vengono perse nel riavvio.
* Gli switch "Transparent" non partecipano alla creazione di VLAN, né aggiornano la loro configurazione in base alle informazioni ricevute, ma tuttavia trasmettono gli advertisement agli switch connessi.
* VTP Pruning- migliora le prestazioni della rete in termini di larghezza di banda, restringendo il traffico "flooding". Senza il VTP Pruning uno switch inonda il dominio di traffico in broadcast, multicast e unicast sconosciuti attraverso tutti i link trunk appartenenti al dominio VTP.
Per fare questo è necessario configurare alcuni parametri:
* Dominio VTP: deve essere lo stesso su tutti gli switch appartenenti al dominio VTP
* Password VTP: deve essere la stessa su tutti gli switch appartenenti al dominio VTP

### VTP revision number

Il revision number è un numero a 32 bit che serve a determinare il livello di "revisione" di un frame VTP. Di default è 0. Ogni volta che si esegue un'operazione come l'aggiunta di una VLAN questo numero è incrementato di 1. Serve a determinare se un'informazione ricevuta da un server è aggiornata o meno.

### VTP Advertisement

Le informazioni vengono scambiate tra gli switch attraverso dei VTP Advertisement
Esistono tre tipi di advertisement:
* Summary advertisement:
Contengono le informazioni riguardo al nome di dominio VTP, VTP revision number e altri dettagli. Sono inviati solo dal server ogni 5 minuti automaticamente, oppure in modalità "triggered" quando avviene un cambiamento.
* Subset advertisement:
Vengono inviate dal server, contengono le informazioni contenute nel file vlan.dat, sono inviati a seguito di:
* creazione di nuove VLAN
* eliminazione di una VLAN
* cambiamento del nome di una VLAN
* cambiamento dell'MTU di una VLAN
* request advertisement
* Request advertisement:
Sono inviate dai client ai server se:
* ricevono un advertisement con un dominio diverso
* ricevono un advertisement con un revision number diverso
* il client è stato resettato

### VTP Pruning

Il pruning è una funzione che serve ad impedire che il traffico di broadcast appartenente a una VLAN non presente su uno switch venga instradato su link di trunk. Normalmente, quando su un server viene creata una nuova VLAN, questa viene inserita nella configurazione di tutti client, anche se sullo switch non è presente alcuna porta access appartenente a questa VLAN. Di conseguenza sul trunk viene consentito il passaggio del traffico relativo a questa VLAN. Il traffico di broadcast generato su questa VLAN raggiungerebbe anche switch nei quali questo non è necessario. Il pruning aiuta a diminuire questo overhead bloccando dinamicamente il traffico per le VLAN che non hanno porte in modalità access sullo switch.

### Problematiche di configurazione tipiche

* La maggior problematica relativa alla configurazione del VTP si verifica quando si aggiunge all'ambiente di produzione uno switch proveniente da un ambiente di test. Questo dispositivo potrebbe infatti avere un revision number maggiore rispetto a quello dell'ambiente di produzione con il rischio di diffondere informazioni su VLAN inesistenti o differenti.
È buona norma riportare gli switch alla configurazione di fabbrica e eliminare il file vlan.dat prima di eseguire questa operazione.
* I parametri VTP domain e VTP password sono case sensitive, ovvero riconoscono il maiuscolo e il minuscolo. "Cisco" non equivale a "cisco".
* Gli advertisement viaggiano solo su link trunk. in una configurazione base due switch possono essere connessi tramite porte access, ma non sarebbero in grado di scambiare informazioni VTP.
Attualmente il protocollo VTP è arrivato alla versione numero 3.