VTP (ou comment se simplifier la vie avec les VLAN)

27

A quoi sert ce protocole? Imaginons que vous devez configurer plusieurs VLANs dans votre réseau:

  • Créer 3 VLANs sur un switch est une opération de configuration rapide
  • Créer 5 VLANs sur 4 switchs devient une opération de configuration plus longue
  • Créer 70 VLANs sur 100 switchs est alors une opération de configuration fastidieuse avec une probabilité d’erreur/oubli très élevée!

Et c’est là que le VTP prend toute son importance. Il sert à la propagation de création/suppression/modification de VLAN sur tous les switchs de votre réseau à partir d’un seul switch.

Propriétés

C’est un protocole propriétaire Cisco de niveau 2. De part sa simplicité et sa puissance, l’IEEE a sorti un protocole similaire afin de permettre cette fonctionnalité entre switchs de constructeurs différents: GVRP (GARP VLAN Registration Protocol). La norme est IEEE 802.1ak

Fonctionnement

Les messages VTP diffuse des annonces de création, de suppression ou de modification de VLAN. Cette diffusion s’effectue à travers tous les switchs grâce à une trame niveau 2 avec une adresse de destination MAC multicast bien particulière qui est 01-00-0C-CC-CC-CC.

Architecture du VTP

Le switch possède 3 modes VTP: client, transparent ou server (acitf par défaut):

  • VTP Server: switch qui crée les annonces VTP
  • VTP Client: switch qui reçoit, se synchronise et propage les annonces VTP
  • VTP Transparent: switch qui ne traite pas les annonces VTP

Switch en mode VTP Server

Le switch en mode Server permet à l’administrateur de faire toute modification sur les VLANs et de propager automatiquement ses modifications vers tous les switchs du réseau.

Mind à télécharger:

 

Switch en mode VTP Client

Le switch en mode Client ne permet pas à l’administrateur de faire des modifications sur les VLANs. Vous recevez un message d’erreur quand vous essayez de créer un VLAN.

Mind à télécharger:

 

Switch en mode VTP Transparent

Le switch en mode Transparent permet à l’administrateur de faire toute modification sur les VLANs en local uniquement et donc ne propage pas ses modifications vers tous les switchs du réseau. Très pratique pour des maquettes!

Mind à télécharger:

Synchronisation

A chaque création/suppression/modification de VLAN, une variable appelée RN – Revision Number – s’incrémente (initialement 0 puis 1 puis 2 puis 3…). A chaque création/suppression/modification de VLAN, le switch Server envoi un message VTP avec la nouvelle valeur du RN. Les autres switchs compare le RN reçu du switch Server avec le RN qu’ils stocke en local, si ce dernier est plus petit (logiquement) alors les switchs se synchronisent avec le Server et récupère la nouvelle base de données des VLANs.

Par défaut, le RN est envoyé automatiquement dès une création/suppression/modification de VLAN puis envoyé toutes les 5 minutes.

 

VTP Pruning

Cette commande optionnelle permet de faire des économies de bande passante.

Explication: imaginons qu’un switch reçoit les VLANs 1 et 2 mais qu’aucunes de ses interfaces appartiennent au VLAN 2. Lorsque le switch voisin lui enverra des trames du VLAN 2, ce switch les supprimera car aucune de ses interfaces appartiennent à ce VLAN. Il est donc inutile que le switch voisin lui envoi du trafic pour le VLAN 2.

On active alors la fonction VTP pruning pour avertir le switch voisin de ne pas lui envoyer de trafic pour ce VLAN. La fonction s’active à partir du switch Server.

 

Important: si un switch client possède un RN plus élevé que le switch Server (imaginons qu’il était dans un autre réseau puis branché au notre), contrairement à ce qu’on peut penser, le client ne va pas récupérer la base de données de VLAN du Server mais l’inverse!

Pourquoi? Parce que quelque soit le mode du switch, Server ou Client, il se synchronise toujours sur celui qui a le RN le plus élevé. Dans notre cas, c’est le Server qui va se synchroniser et récupérer la base de données de VLAN du Client. Il est donc très important de remettre le RN à zéro. Pour cela, effectuer un simple basculement en mode Transparent puis en mode Client (exemple plus bas)

Remarques importantes

  • Les messages VTP se propagent sur les liens configurés en Trunk (norme 802.1Q) et pas en Access
  • VTP ne gère que la plage de VLAN comprise entre 1 et 1005. La plage étendue 1006 à 4096 n’est pas supportée. Pour cela, il faut basculer en mode Transparent sur tous les switchs et créer ses VLANS étendus à la mano
  • Il existe 3 versions de VTP, bien vérifier qu’une et une seule version est active sur son réseau pour éviter les surprises (v1 et v2 incompatibles entre elles)
  • La configuration VTP n’est pas visualisable dans la running-config mais est stockée dans le fichier vlan.dat situé dans la flash (faites un show flash: pour voir le fichier)

Configuration

Pour configurer le VTP, voici les étapes:

  1. obligatoire: configurer un domaine VTP qui permet à tous les switchs d’être dans le même “groupe d’amis”
  2. obligatoire: configurer le mode de votre switch (client, transparent ou server)
  3. optionnel: activer la fonction pruning
  4. optionnel: configurer un mot de passe pour sécuriser les messages VTP
  5. optionnel: activer la version 2 ou 3 de VTP (version 1 active par défaut)

Mind à télécharger:

 

1. configuration domaine VTP qu’on appelle TEST:

Switch>enable
Switch#configure terminal
Switch(config)#vtp domain TEST
Changing VTP domain name from NULL to TEST

2. configuration du mode Server:

Switch(config)#vtp mode server
Device mode already VTP SERVER.

On remarque que le switch est déjà en mode Server par défaut, ce qui est pratique car on peut créer des VLANs une fois le switch sorti du carton.

3. activation de la fonction pruning (à partir du switch Server):

Switch(config)#vtp pruning
Pruning switched on

4. configuration d’un mot de passe VTP (cisco123):

Switch(config)#vtp password cisco123
Setting device VLAN database password to cisco123

5. activation de la version 2 de VTP  (à faire sur tous les switchs!):

Switch(config)#vtp version 2

Vérification

Pour vérifier que le VTP est bien configuré, voici les étapes:

  1. visualiser si le mot de passe a bien été tapé
  2. vérifier si on envoi et on reçoit bien des messages VTP avec les switchs voisins
  3. vérifier la configuration globale du VTP (commande la plus utilisée)

1. visualisation du mot de passe configuré

Switch#show vtp password
VTP Password: cisco123

2. vérification des compteurs des messages VTP envoyés et reçus:

Switch#show vtp counters
VTP statistics:
Summary advertisements received    : 0
Subset advertisements received     : 0
Request advertisements received    : 0
Summary advertisements transmitted : 0
Subset advertisements transmitted  : 0
Request advertisements transmitted : 0
Number of config revision errors   : 0
Number of config digest errors     : 0
Number of V1 summary errors        : 0

VTP pruning statistics:

Trunk            Join Transmitted Join Received    Summary advts received from
                                                   non-pruning-capable device
---------------- ---------------- ---------------- ---------------------------

On remarque que tous les compteurs sont à 0, ce qui est logique car pour le moment, je n’ai pas encore créer/supprimer/modifier des VLANs. On revérifiera ces compteurs un peu plus tard.

3. vérification de la configuration globale du VTP:

Switch#show vtp status
VTP Version                     : 2
Configuration Revision          : 1
Maximum VLANs supported locally : 255
Number of existing VLANs        : 5
VTP Operating Mode              : Server
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Enabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0xCD 0x24 0x5F 0xE3 0xF2 0x01 0xFF 0x6B
Configuration last modified by 0.0.0.0 at 3-1-11 00:15:36

Explication de chaque ligne:

  • VTP Version: affiche quelle est la version maximum supportée par le switch (ici le switch supporte les versions 1 et 2). Attention, ce n’est pas forcément celle active!
  • Configuration Revision: en mode server, elle débute à 1. En mode transparent, elle ne sert pas et donc mise à 0.
  • Maximum VLANs supported locally: nombre maximum de VLAN que le switch supporte. Dépend du type de switch (ici un 2960)
  • Number of existing VLANs: nombre de VLANs présents dans le switch (par défaut, les VLANs 1, 1002 à 1005 sont présents donc = 5)
  • VTP Operating Mode: Server, Client ou Transparent
  • VTP Domain Name: nom de votre “groupe” d’amis
  • VTP Pruning Mode: activation/désactivation de la fontion de pruning
  • VTP V2 Mode: c’est ici qu’on peut vérifier si la version 2 est bien activée (ou la version 3 si le switch la supporte)
  • VTP Traps Generation: permet d’envoyer des traps SNMP vers un serveur pour prévenir les administrateurs lorsqu’il y a un changement au niveau VTP (par exemple lors de la création d’un VLAN)
  • MD5 digest: affiche le hash du mot de passe précédent (cisco123 dans notre exemple)
  • Configuration last modified by: affiche quel est le dernier switch qui a fait une modification de VLANs (on peut avoir plusieurs switch Server dans un réseau)

Exemple

On veut effectuer les actions suivantes:

  1. activer le mode Server sur switch_A et le mode client sur switch_B
  2. activer la version 2 sur switch_A et switch_B
  3. définir le domaine VTP = TEST
  4. créer les VLAN 3 et 4 sur switch_A
  5. vérifier que tout est bon

configuration de switch_A:

switch_A(config)#vtp mode server
Setting device to VTP SERVER mode.
switch_A(config)#vtp version 2
switch_A(config)#vtp domain TEST
Changing VTP domain name from NULL to TEST
switch_A(config)#vlan 3
switch_A(config-vlan)#exit
switch_A(config)#vlan 4
switch_A(config-vlan)#exit
switch_A(config)#

configuration de switch_B:

Avant de brancher physiquement switch_B avec swich_A, je bascule en mode Transparent pour mettre son RN à zéro avant de le rebasculer en mode Client

switch_B(config)#vtp mode transparent
Setting device to VTP TRANSPARENT mode.
switch_B(config)#vtp mode client
Setting device to VTP CLIENT mode.

switch_B#show vtp status
VTP Version                     : 2
Configuration Revision          : 0 Maximum VLANs supported locally : 255
Number of existing VLANs        : 5
VTP Operating Mode              : Client VTP Domain Name                 :
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x7D 0x5A 0xA6 0x0E 0x9A 0x72 0xA0 0x3A
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00

Maintenant, je peux configurer mon switch_B avec les paramètres VTP demandés:

switch_B(config)#vtp version 2
Cannot modify version in VTP client mode
switch_B(config)#vtp domain TEST
Changing VTP domain name from NULL to TEST

Vérification de la configuration VTP sur les deux switchs:

Sur switch_A:

switch_A#show vtp status
VTP Version                     : 2
Configuration Revision          : 3 Maximum VLANs supported locally : 255
Number of existing VLANs        : 7 VTP Operating Mode              : Server
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Enabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0xA0 0x0E 0x63 0xE1 0xB0 0xAE 0xDF 0x2C
Configuration last modified by 10.1.1.1 at 1-22-12 16:29:28
Local updater ID is 10.1.1.1 on interface Vl1 (lowest numbered VLAN interface found)
switch_A#
switch_A#show vlan brief

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, Gig1/1
                                                Gig1/2
3    VLAN0003                         active    
4    VLAN0004                         active    
1002 fddi-default                     active    
1003 token-ring-default               active    
1004 fddinet-default                  active    
1005 trnet-default                    active

Sur switch_B:

switch_B#show vtp status
VTP Version                     : 2
Configuration Revision          : 3 
Maximum VLANs supported locally : 255
Number of existing VLANs        : 7 VTP Operating Mode              : Client
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Enabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0xA0 0x0E 0x63 0xE1 0xB0 0xAE 0xDF 0x2C
Configuration last modified by 10.1.1.1 at 1-22-12 16:29:28
switch_B#
switch_B#show vlan brief

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, Gig1/1
                                                Gig1/2
3    VLAN0003                         active    
4    VLAN0004                         active    
1002 fddi-default                     active    
1003 token-ring-default               active    
1004 fddinet-default                  active    
1005 trnet-default                    active    
switch_B#

Vous pouvez visualiser les messages envoyés/reçus avec la commande suivante:

switch_A#show vtp counters
VTP statistics:
Summary advertisements received    : 9
Subset advertisements received     : 5
Request advertisements received    : 1
Summary advertisements transmitted : 10
Subset advertisements transmitted  : 7
Request advertisements transmitted : 1
Number of config revision errors   : 3
Number of config digest errors     : 1
Number of V1 summary errors        : 0
PARTAGER SUR

27 COMMENTAIRES

    • Bonjour Ahmed,
      En effet on n’a pas mis de mot de passe car cela n’est pas demandé (dans l’exemple) et n’est pas obligatoire. Mais dans la vraie vie, il est fortement recommandé de mettre un mot de passe VTP.

  1. Impressionant je souhaite passer la CCNA, je suis des cours en anglais mais c’est assez chaud! Tu as peut-être sauver 2 ou 3 questions voir plus pour l’examen ! Merci

  2. Bonjour,

    Merci pour cet article très détaillé, petite précision sur les Vlan étendus, le VTP les supportent bien en V3.

    Source Cisco :

    VTP version 3 supports these features that are not supported in version 1 or version 2:

    •Enhanced authentication—You can configure the authentication as hidden or secret. When hidden, the secret key from the password string is saved in the VLAN database file, but it does not appear in plain text in the configuration. Instead, the key associated with the password is saved in hexadecimal format in the running configuration. You must reenter the password if you enter a takeover command in the domain. When you enter the secret keyword, you can directly configure the password secret key.

    •Support for extended range VLAN (VLANs 1006 to 4094) database propagation. VTP versions 1 and 2 propagate only VLANs 1 to 1005. If extended VLANs are configured, you cannot convert from VTP version 3 to version 1 or 2.

    Cordialement.

  3. J’aimerais avoir la procédure de configuration complète des vlans avec VTP car j’aimerais voir cmt le server intègre les machines dans les différents VLAN. Svp c’est vraiment urgent merci

    • Bonjour,
      Attention le protocole VTP sert à la déclaration (création, suppression, modification) des VLAN dans le switch. Mais il n’intervient pas dans l’attribution des ports du switch dans les VLANs souhaités.

  4. Hello, merci pour cet article.
    Je ne savais pas qu’on pouvait “reset” le revision number en passant en mode transparent.
    J’avais appris à changer le domain name ou sinon supprimer le fichier ‘vlan.dat’. Ca m’a l’air plus simple comme ça 🙂

  5. Merci pour ce site, très bien fait et compréhensif pour un novice que je suis.
    pour répondre à Yamine Ze,il suffit de cliquer sur l’article en clic droit pour imprimer et choisir dans les imprimantes “PDF Creator” tout simplement.
    on choisit aussi le dossier de destination et voilà.

    Merci encore Cyril

  6. Bonjour Cyril,

    Merci pour ce site et les supports très pédagogique surtout pour les débutants 🙂

    J’ai eu un problème pour remplacer un swittch 2950 par un 3560, voici le cas:

    Je n’arrive pas a récupéré les Vlans avec le VTP sur des switchs 3560 connecté en cascade sur des 2960 et 2950 . Y a t’il autre chose a rajouter au trunk autre que encapsulation dotq1?

    merci

    • Bonjour Salem,

      – Vérifie que les ports entre les switchs sont bien en Trunk: tape “show interface trunk” et vérifie que tes ports y sont bien présents.
      – Vérifie toujours avec cette commande que le VLAN natif est le meme sur chaque switch car les messages VTP passe par ce VLAN là.
      – Vérifie qu’au niveau VTP, les informations suivantes entre les switchs (en faisant un “show vtp status“):
      domain VTP: identique sur tous les switchs
      VTP mode: server ou client (et pas transparent)
      VTP version et VTP V2/V3 Mode: Verifie que la version activee est la meme partout !
      MD5 digest: c’est le hash du mot de passe, il doit etre identique partout

      Si certains de ces paramètres ne sont pas bons, corrige les.
      Bonne chance!

  7. Sur Packet tracer, j’ai connecté deux 2960 et le VTP ne fonctionne pas alors que j’ai suivi pas à pas ton article. Sais-tu pourquoi?

    Sinon, les explications de l’article sont claires, merci!

    • Bonjour Adrien,

      Pour que les messages VTP se propagent entre les switchs, il faut que les liens soient configurés en Trunk (par exemple 802.1Q).
      – sur les switchs 2950, les liens Trunk montent automatiquement grâce au protocole DTP (Dynamic Trunking Protocol) que je détaillerai prochainement
      – sur les switchs 2960, il faut activer le DTP (désactivé par défaut) ou créer un trunk en statique entre les deux switchs.

      Voici la configuration que tu peux ajouter sur tes interfaces entre les deux switchs:
      interface fasterthenet 0/0
      shut
      switchport mode trunk
      switchport trunk nonegociate
      no shut

LAISSER UNE RÉPONSE