Cisco - Implémentation de VLAN et Trunk
Description : Nous allons voir comment affecter un port à un VLAN ou à un Trunk et à quoi sert le DTP.VLAN
Configuration :
Commande | Description |
---|---|
Switch# conf t | Entrer en mode configuration |
Switch(config)# vlan 25 | Création de VLAN |
Switch(config-vlan)# name SRV_SMTP | Assigner un nom au VLAN |
Switch(config-vlan)# interface f0/2 | Configurer une interface |
Switch(config-if)# switchport mode access | Spécifier que le port aura une fonction de Layer 2 avec un VLAN |
Switch(config-if)# switchport access vlan 25 | Assignation du VLAN |
Switch(config-if)# no shutdown | On ouvre le port |
Vérification :
Vérifier l’affectation des vlans :
Switch# show vlan VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active 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 2 test active Fa0/1 25 SRV_SMTP active Fa0/2 1002 fddi-default act/unsup 1003 token-ring-default act/unsup 1004 fddinet-default act/unsup 1005 trnet-default act/unsup VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ 1 enet 100001 1500 - - - - - 0 0 2 enet 100002 1500 - - - - - 0 0 25 enet 100025 1500 - - - - - 0 0 1002 fddi 101002 1500 - - - - - 0 0 1003 tr 101003 1500 - - - - - 0 0 1004 fdnet 101004 1500 - - - ieee - 0 0 1005 trnet 101005 1500 - - - ibm - 0 0 Remote SPAN VLANs ------------------------------------------------------------------------------ Primary Secondary Type Ports ------- --------- ----------------- ------------------------------------------
Attention, cette commande n’affiche pas les vlans qui passent par des trunks, voir commande show interface trunk ou la commande suivante :
Switch# show vlan id 25 VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 25 SRV_SMTP active Fa0/2 VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ 25 enet 100025 1500 - - - - - 0 0
Description des champs :
Champs | Description |
---|---|
VLAN | VLAN number. |
Name | Name, if configured, of the VLAN. |
Status | Status of the VLAN (active or suspend). |
Ports | Ports that belong to vlan |
Type | Media type of the VLAN. |
SAID | Security association ID value for the VLAN. |
MTU | Maximum transmission unit size for the VLAN. |
Parent | Parent VLAN, if one exists. |
RingNo | Ring number for the VLAN, if applicable. |
BrdgNo | Bridge number for the VLAN, if applicable. |
Stp | Spanning Tree Protocol type used on the VLAN. |
BrdgMode | Bridging mode for this VLAN. |
Trans1 | Translation bridge 1 |
AREHops | Maximum number of hops for All-Routes Explorer frames. |
STEHops | Maximum number of hops for Spanning Tree Explorer frames. |
Afficher la configuration d’un port :
Switch# show interfaces f0/2 switchport Name: Fa0/2 Switchport: Enabled Administrative Mode: static access Operational Mode: down Administrative Trunking Encapsulation: dot1q Operational Trunking Encapsulation: native Negotiation of Trunking: Off Access Mode VLAN: 25 (SRV_SMTP) Trunking Native Mode VLAN: 1 (default) Voice VLAN: none Administrative private-vlan host-association: none Administrative private-vlan mapping: none Administrative private-vlan trunk native VLAN: none Administrative private-vlan trunk encapsulation: dot1q Administrative private-vlan trunk normal VLANs: none Administrative private-vlan trunk private VLANs: none Operational private-vlan: none Trunking VLANs Enabled: ALL Pruning VLANs Enabled: 2-1001 Capture Mode Disabled Capture VLANs Allowed: ALL Protected: false Appliance trust: none
Trunk
Configuration :
Commande | Description |
---|---|
Switch# conf t | Entrer en mode configuration |
Switch(config)# vlan 5,7-9 | Création des vlan 5,7,8 et 9 |
Switch(config-vlan)# interface f0/1 | Entrer dans la conf de l'interface f0/1 |
Switch(config-if)# shutdown | on ferme l'interface car on va modifier le type d'encapsulation |
Switch(config-if)# switchport trunk encapsulation dot1q | On met l'encapsulation à dot1q |
Switch(config-if)# switchport mode trunk | On forme l'interface en trunk |
Switch(config-if)# switchport nonegotiate | on désactive le DTP |
Switch(config-if)# switchport trunk native vlan 99 | On modifie le native vlan (facultatif) |
Switch(config-if)# switchport trunk allowed vlan 3,5,7-9 | On autorise que les vlans3,5,7,8,9 sur ce trunk |
Switch(config-if)# switchport trunk allowed vlan add 10 | on ajoute le vlan 10 aux vlans existant |
Switch(config-if)# no shutdown | on ouvre le port |
Vérification :
Voir la configuration des trunks
Switch# show interfaces trunk Port Mode Encapsulation Status Native vlan Fa0/1 on 802.1q trunking 99 Port Vlans allowed on trunk Fa0/1 3,5,7-10 Port Vlans allowed and active in management domain Fa0/1 3,5,7,8,9,10 Port Vlans in spanning tree forwarding state and not pruned Fa0/1 3,5,7,8,9,10
Afficher la configuration d’un port :
Switch# show interfaces f0/1 switchport Name: Fa0/1 Switchport: Enabled Administrative Mode: trunk Operational Mode: trunk Administrative Trunking Encapsulation: dot1q Operational Trunking Encapsulation: dot1q Negotiation of Trunking: Off <= état DTP Access Mode VLAN: 1 (default) Trunking Native Mode VLAN: 99 Voice VLAN: none Administrative private-vlan host-association: none Administrative private-vlan mapping: none Administrative private-vlan trunk native VLAN: none Administrative private-vlan trunk encapsulation: dot1q Administrative private-vlan trunk normal VLANs: none Administrative private-vlan trunk private VLANs: none Operational private-vlan: none Trunking VLANs Enabled: 3,5,7-10 Pruning VLANs Enabled: 2-1001 Capture Mode Disabled Capture VLANs Allowed: ALL Protected: false Unknown unicast blocked: disabled Unknown multicast blocked: disabled Appliance trust: none
Différence entre une trame ethernet et 802.1q :
Tag sur 32bits (4Bytes) : TPID et TCI
Tag Protocol IDentifier, TPID : EtherType (16bits) : 0x8100
Tag Control Information (16bits) contient :
- Priority (3 bits) : Ce champ de 3 bits fait référence au standard IEEE 802.1p. Sur 3 bits on peut coder 8 niveaux de priorité de 0 à 7. Ces 8 niveaux sont utilisés pour fixer une priorité aux trames d’un VLAN relativement aux autres VLANs. La notion de priorité dans les VLANs (niveau 2) est indépendante des mécanismes de priorité IP (niveau 3).
- CFI (1 bit) : Canonical Format Identifier est codé sur 1 bit assure la compatibilité entre les adresses MAC Ethernet et Token Ring. Un commutateur Ethernet fixera toujours cette valeur à 0. Si un port Ethernet reçoit une valeur 1 pour ce champ, alors la trame ne sera pas propagée puisqu’elle est destinée à un port «sans balise» (untagged port).
- Vlan ID, VID (12 bit) : Ce champ de 12 bits sert à identifier le virtual lan (VLAN) auquel appartient la trame. Il est possible de coder 4096 VLANs avec ce champ.
Dynamic Trunk Protocol alias DTP :
DTP est un protocole propriétaire Cisco qui permet de gérer dynamiquement l’activation/désactivation du mode trunk d’un port sur un switch si l’équipement distant le reconnait.
La commande switchport mode prends plusieurs arguments :
Switch(config-if)# switchport mode {access | dynamic {auto | desirable} | trunk }
Dynamic desirable : Annonce activement sa volonté de monter un trunk (option par défaut).
Dynamic auto : N’envoie pas de requêtes mais répond aux solicitations du distant.
Matrice d’interconnexion :
Dynamic Auto | Dynamic Desirable | Trunk | Access | |
---|---|---|---|---|
Dynamic Auto (DTP on) | Access | Trunk | Trunk | Acess |
Dynamic Desirable (DTP on) | Trunk | Trunk | Trunk | Access |
Trunk (DTP on/off) | Trunk | Trunk | Trunk | Limited connectivity (Not recommended) |
Access (DTP on/off) | Access | Acces | Limited connectivity (Not recommended) |
Access |
Vérification :
TOS = Trunk Operational Status
TAS = Trunk Administrative Status
TNS = Trunk Negotiation Status
TOT = Trunk Operational (encapsulation) Type
TAT = Trunk Adminstrative (encapsulation) Type
TNT = Trunk Negotiation (encapsulation) Type
#Dynamic Desirable switch# show dtp interface f0/22 DTP information for FastEthernet0/22: TOS/TAS/TNS: ACCESS/DESIRABLE/ACCESS TOT/TAT/TNT: 802.1Q/802.1Q/802.1Q #Dynamic Auto swicth# show dtp interface f0/22 DTP information for FastEthernet0/22: TOS/TAS/TNS: ACCESS/AUTO/ACCESS TOT/TAT/TNT: 802.1Q/802.1Q/802.1Q #Trunk (port down) switch# show dtp interface f0/22 DTP information for FastEthernet0/22: TOS/TAS/TNS: ACCESS/ON/ACCESS TOT/TAT/TNT: 802.1Q/802.1Q/802.1Q #Access (port down) switch# show dtp interface f0/22 DTP information for FastEthernet0/22: TOS/TAS/TNS: ACCESS/OFF/ACCESS TOT/TAT/TNT: 802.1Q/802.1Q/802.1Q #trunk (port up) et nonegotiate swicth# show dtp interface g0/1 DTP information for GigabitEthernet0/1: TOS/TAS/TNS: TRUNK/NONEGOTIATE/TRUNK TOT/TAT/TNT: 802.1Q/802.1Q/802.1Q
Désactivation du DTP :
Switch(config-if)# switchport nonegotiate
Personnellement c’est de base dans mes templates de configuration.
Recommandations :
- Configurer les VLANs
- Configurer le mode trunk
- Désactiver la négociation du trunk
- Retirer manuellement les VLANs qui ne sont pas nécessaires du trunk
- Configurer le native VLAN à un VLAN non utilisé.
- Désactiver le trunk sur les ports d’accès
- Ne pas utiliser VTP
Note :
Les best practices recommandent de désactiver le DTP lors de la création d’un trunk.
Si un port trunk n’est pas utilisé, on peux le désactiver avec la commande switchport host qui est une commande macro de switchport mode access et spanning-tree portfast.
Quand vous utilisez DTP, les switchs d’extrémités doivent être dans le même VTP domaine.
Vlan Trunking Protocol alias VTP
Vous pouvez utiliser le VTP en mode Client/Server pour propager la définition des VLAN à travers les switchs du réseau. Ce mode est parfois utilisé pour les nouveaux réseaux pour implémenter les nouveaux VLANs. Dans les réseaux de grandes taille cela peut être dangereux, si vous effacer un VLAN par erreur sur un VTP server, cela va se répercuter sur tous les switchs du domaine VTP et cela peut être une source d’attaque.
Pour propager les VLANs via VTP il faut que les switchs appartiennent au même VTP Domain.
Après l’interprétation des annonces VTP par un switch dépend de sont mode VTP :
- Server
- Créer, modifier et supprimer les VLANs en CLI.
- Générer et transférer les avertissement VTP aux autres switchs du même domaine de management.
- Peut mettre à jour sa propre VLAN database avec les informations reçues des autres server du même domaine de management.
- Sauvegarder la configuration des VLANs dans le vlan.dat dans la flash.
- Client
- Ne peut pas créer, modifier ou supprimer un VLAN en CLI
- Transfert les avertissements VTP reçus.
- Synchronise sa VLAN database avec les dernières information reçus des servers dans le domaine de management.
- Les informations de VLANs sont seulement stockée en RAM, elles sont recrées par un VTP server lors d’un reboot.
- Transparent
- Créer, modifier et supprimer les VLANs locaux
- Ne génère pas d’avertissement VTP
- Ne met pas à jour sa VLAN database avec les informations reçus des VTP server du même domaine
- Transfère les avertissement VTP reçus des VTP servers dans le même domaine VTP
- Le numéro de révision est toujours à zéro
- Sauvegarde de la configuration des VLANs en NVRAM
Autre définition avec ce protocole, le 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.
Attribut de VTP :
- Propriétaire Cisco
- Mode server par défaut
- VTP avertit les VLANs de 1 à 1005 seulement
- Les updates VTP sont réalisées seulement sur les trunks
- Chaque switch qui opère dans un mode VTP détermine comment les VTP updates sont envoyées et reçus ce switch
- Un switch ne peut être que dans un seul domaine VTP
- Un domaine VTP peut contenir seulement un switch
- Les updates VTP seront échangées seulement avec les switchs du domaine
- La façon dont l’information des VLANs est échangée entre les switchs du domaine dépend du mode VTP du switch
- Par défaut il n’y a pas de VTP domaine de configuré, si le switch reçoit un avertissement VTP sur un port trunk, celui-ci configurera le domaine automatiquement (mais pas le password).
Recommandation :
Configurer le VTP en mode transparent, l’information des VLANs est stockée dans la configuration du switch et pas d’avertissements VTP aux autres switchs.
Configuration (pour la recommandation) :
Switch(config)# vtp mode transparent Switch(config)# vtp domain Cisco Switch(config)# vtp password wxcVBN123
Commandes de configuration :
Commande | Description |
---|---|
Switch(config)# vtp domain CiscO | Création du domaine VTP |
Switch(config)# vtp password toto | Mot de passe pour envoyer et valider la reception d'avertissement VTP. Valeur sur 16B en MD5, password en ASCII de 1 à 32 caractères et case-sensitive. |
Switch(config)# vtp version 2 | Activation du VTP version 2 |
Switch(config)# vtp v2-mode | Activation du VTP version 2 suivant les versions IOS |
Switch(config)# vtp mode { client | server | transparent } | Choix du mode |
Switch(config)# vtp prunning | Active le prunning |
Switch# show vtp status | Affiche divers informations sur la configuration VTP |
Switch# show vtp counters | Indique si les VTP updates sont envoyées et reçues par le switch |
Switch# show vtp password | Affiche le password VTP en claire |
Native VLAN :
- les trames de native VLAN sont envoyées non taguées sur les liens trunk.
- Le native VLAN doit être identique sur les deux extrémités d’un trunk.
- Une différence de native VLAN sur un trunk mélangera le traffic de VLANs différent
- Par défaut le native VLAN est le VLAN 1
- Configurer un native VLAN avec un VLAN non utilisé sur les trunks
Les swictchs qui utilisent CDP seront avertis de différence de native VLAN sur un trunk.