DTP et négociation de trunk
Définition
Le DTP (Dynamic Trunking Protocol) est un protocole propriétaire Cisco qui permet à deux switches de négocier automatiquement si un lien inter-switch sera configuré en mode access ou trunk. Il détermine aussi l'encapsulation trunk à utiliser (802.1Q ou ISL).
Contexte
La certification CCST couvre DTP car il est activé par défaut sur les switches Cisco et peut engendrer des comportements inattendus ou des failles de sécurité (VLAN hopping). La bonne pratique est de désactiver DTP et de configurer manuellement les ports.
Détails techniques
Modes de port switchport
| Mode | Comportement |
|---|---|
| access | Port en mode accès, ne négocie jamais de trunk |
| trunk | Port en mode trunk, envoie des DTP pour que l'autre côté passe aussi en trunk |
| dynamic desirable | Initie activement la négociation DTP pour devenir trunk |
| dynamic auto | Accepte de devenir trunk si l'autre côté le demande (passif) |
| nonegotiate | Désactive DTP sur le port (ne négocie pas) |
Matrice de négociation DTP
| Port A ↓ / Port B → | access | trunk | dynamic desirable | dynamic auto |
|---|---|---|---|---|
| access | Access | ❌ (mismatch) | Access | Access |
| trunk | ❌ (mismatch) | Trunk | Trunk | Trunk |
| dynamic desirable | Access | Trunk | Trunk | Trunk |
| dynamic auto | Access | Trunk | Trunk | Access |
Piège : deux ports en
dynamic autorestent en access car aucun côté n'initie la négociation.
Configuration recommandée
Pour un lien trunk (inter-switch) :
Switch(config)# interface GigabitEthernet 0/1
Switch(config-if)# switchport trunk encapsulation dot1q
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport nonegotiate ! Désactive DTP
Switch(config-if)# switchport trunk allowed vlan 10,20,30
Pour un port d'accès (vers un PC) :
Switch(config)# interface GigabitEthernet 0/5
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# switchport nonegotiate ! Désactive DTP
Risque de sécurité : VLAN Hopping via DTP
Un attaquant branche un outil qui envoie des paquets DTP pour négocier un trunk avec le switch. Une fois le trunk établi, il accède à tous les VLANs.
Contre-mesures :
- Configurer tous les ports accès en
switchport mode access - Ajouter
switchport nonegotiatesur tous les ports - Désactiver les ports inutilisés (
shutdown) - Mettre les ports inutilisés dans un VLAN « trou noir » (ex. VLAN 999)
Vérification
Switch# show interfaces trunk
Switch# show interfaces GigabitEthernet0/1 switchport
Administrative Mode: trunk
Operational Mode: trunk
Negotiation of Trunking: Off
Exemple concret
Un administrateur constate qu'un port inter-switch ne passe pas en trunk. Les deux côtés sont configurés en dynamic auto. La négociation échoue car aucun côté n'est « desirable ». Il corrige en configurant les deux ports en switchport mode trunk + switchport nonegotiate, ce qui est aussi la best practice sécurité.