VLANs et mode Trunk
Introduction aux VLANs
Définition
Un VLAN (Virtual Local Area Network) est un réseau local virtuel qui permet de segmenter logiquement un réseau physique en plusieurs réseaux isolés.
Principe
- Séparation logique des équipements sur un même commutateur
- Isolation du trafic entre VLANs
- Flexibilité dans l'organisation du réseau
Avantages
- Sécurité : Isolation du trafic entre départements
- Performance : Réduction des domaines de diffusion
- Flexibilité : Regroupement logique indépendant de la localisation physique
- Gestion : Administration centralisée
- Économie : Réduction du nombre d'équipements nécessaires
Types de VLANs
VLAN par port (Port-based)
- Affectation statique des ports à un VLAN
- Configuration manuelle sur chaque port
- Le plus couramment utilisé
VLAN par adresse MAC
- Affectation basée sur l'adresse MAC de l'équipement
- Mobilité des équipements
- Configuration plus complexe
VLAN par protocole
- Affectation basée sur le type de protocole (IP, IPX, etc.)
- Rarement utilisé aujourd'hui
VLAN par authentification (802.1X)
- Affectation dynamique après authentification
- Sécurité renforcée
- Utilisé dans les environnements d'entreprise
Identification des VLANs
VLAN ID (VID)
- Numéro unique identifiant le VLAN
- Plage : 1 à 4094 (12 bits)
- VLAN 1 : VLAN par défaut
- VLANs 1002-1005 : Réservés pour Token Ring et FDDI
VLANs réservés
| VLAN ID | Usage |
|---|---|
| 0 | Priorité uniquement |
| 1 | VLAN par défaut |
| 1002 | fddi-default |
| 1003 | token-ring-default |
| 1004 | fddinet-default |
| 1005 | trnet-default |
| 4095 | Réservé |
Configuration des VLANs
Création d'un VLAN (Cisco)
Switch> enable
Switch# configure terminal
Switch(config)# vlan 10
Switch(config-vlan)# name VENTE
Switch(config-vlan)# exit
Switch(config)# vlan 20
Switch(config-vlan)# name COMPTABILITE
Switch(config-vlan)# exit
Affectation des ports
Switch(config)# interface fastethernet 0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# exit
Switch(config)# interface range fastethernet 0/2-5
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 20
Switch(config-if-range)# exit
Vérification
Mode Trunk
Définition
Le mode trunk permet de transporter plusieurs VLANs sur une seule liaison physique entre commutateurs ou vers un routeur.
Principe
- Ajout d'un tag (étiquette) VLAN à chaque trame
- Identification du VLAN d'origine
- Multiplexage de plusieurs VLANs sur un lien
Avantages
- Économie de liens physiques
- Centralisation de la connectivité inter-VLANs
- Simplification du câblage
Protocoles de Trunking
IEEE 802.1Q (Dot1Q)
- Standard ouvert IEEE
- Tag : 4 octets ajoutés à la trame Ethernet
- VLAN natif : VLAN non taggé (par défaut VLAN 1)
- Supporté par tous les constructeurs
Structure du tag 802.1Q
| TPID (16 bits) | PCP (3 bits) | DEI (1 bit) | VID (12 bits) |
| 0x8100 | Priorité | Drop | VLAN ID |
- TPID : Tag Protocol Identifier (0x8100)
- PCP : Priority Code Point (QoS)
- DEI : Drop Eligible Indicator
- VID : VLAN Identifier (1-4094)
ISL (Inter-Switch Link) - Cisco propriétaire
- Encapsulation complète de la trame
- Overhead : 30 octets supplémentaires
- Obsolète : remplacé par 802.1Q
- Supporté uniquement par Cisco
Configuration du mode Trunk
Configuration basique (Cisco)
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk encapsulation dot1q
Switch(config-if)# exit
VLAN natif
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# switchport trunk native vlan 99
Switch(config-if)# exit
VLANs autorisés
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# switchport trunk allowed vlan 10,20,30
Switch(config-if)# exit
# Ajouter des VLANs
Switch(config-if)# switchport trunk allowed vlan add 40,50
# Supprimer des VLANs
Switch(config-if)# switchport trunk allowed vlan remove 30
# Tous les VLANs sauf certains
Switch(config-if)# switchport trunk allowed vlan except 1,1002-1005
Vérification du trunk
Switch# show interfaces trunk
Switch# show interfaces gigabitethernet 0/1 switchport
Switch# show interfaces gigabitethernet 0/1 trunk
DTP (Dynamic Trunking Protocol)
Principe
Protocole Cisco pour négocier automatiquement le mode trunk entre commutateurs.
Modes DTP
| Mode | Description | Négociation |
|---|---|---|
| trunk | Trunk forcé | Envoie DTP |
| access | Access forcé | N'envoie pas DTP |
| dynamic auto | Trunk si l'autre côté initie | Répond à DTP |
| dynamic desirable | Initie la négociation trunk | Envoie DTP |
| nonegotiate | Trunk sans négociation | N'envoie pas DTP |
Configuration DTP
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# switchport mode dynamic desirable
Switch(config-if)# exit
# Désactiver DTP (recommandé)
Switch(config-if)# switchport nonegotiate
VLAN natif
Définition
Le VLAN natif est le VLAN dont les trames ne sont pas taggées sur un lien trunk.
Caractéristiques
- Par défaut : VLAN 1
- Trames non taggées sur le trunk
- Doit être identique des deux côtés du lien
- Utilisé pour le trafic de gestion
Bonnes pratiques
- Changer le VLAN natif par défaut (sécurité)
- Utiliser un VLAN dédié non utilisé
- Configurer le même VLAN natif des deux côtés
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# switchport trunk native vlan 999
Switch(config-if)# exit
Routage inter-VLANs
Problématique
Les VLANs sont isolés par défaut. Pour communiquer entre VLANs, il faut un routage.
Solutions
1. Routeur externe (Router-on-a-stick)
# Configuration du trunk vers le routeur
Switch(config)# interface gigabitethernet 0/24
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 10,20,30
Switch(config-if)# exit
# Configuration du routeur
Router(config)# interface gigabitethernet 0/0
Router(config-if)# no shutdown
Router(config-if)# exit
Router(config)# interface gigabitethernet 0/0.10
Router(config-subif)# encapsulation dot1Q 10
Router(config-subif)# ip address 192.168.10.1 255.255.255.0
Router(config-subif)# exit
Router(config)# interface gigabitethernet 0/0.20
Router(config-subif)# encapsulation dot1Q 20
Router(config-subif)# ip address 192.168.20.1 255.255.255.0
Router(config-subif)# exit
2. Commutateur de niveau 3 (SVI)
Switch(config)# ip routing
Switch(config)# vlan 10
Switch(config-vlan)# exit
Switch(config)# vlan 20
Switch(config-vlan)# exit
Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1 255.255.255.0
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface vlan 20
Switch(config-if)# ip address 192.168.20.1 255.255.255.0
Switch(config-if)# no shutdown
Switch(config-if)# exit
Sécurité des VLANs
Attaques courantes
VLAN Hopping
- Switch Spoofing : Se faire passer pour un commutateur
- Double Tagging : Exploitation du VLAN natif
Prévention
# Désactiver DTP
Switch(config-if)# switchport nonegotiate
# Ports access explicites
Switch(config-if)# switchport mode access
# Changer le VLAN natif
Switch(config-if)# switchport trunk native vlan 999
# Shutdown des ports inutilisés
Switch(config-if)# shutdown
# VLAN inutilisé pour les ports non utilisés
Switch(config-if)# switchport access vlan 999
Bonnes pratiques sécurité
- Désactiver DTP sur tous les ports
- Utiliser un VLAN natif dédié non routé
- Configurer explicitement les modes access/trunk
- Limiter les VLANs autorisés sur les trunks
- Isoler le trafic de gestion (VLAN management)
VTP (VLAN Trunking Protocol)
Principe
Protocole Cisco pour synchroniser la configuration VLAN entre commutateurs.
Modes VTP
| Mode | Description | Base de données |
|---|---|---|
| Server | Crée, modifie, supprime VLANs | Lecture/Écriture |
| Client | Reçoit les mises à jour | Lecture seule |
| Transparent | Relaie sans traiter | Local uniquement |
Configuration VTP
Switch(config)# vtp domain ENTREPRISE
Switch(config)# vtp mode server
Switch(config)# vtp password motdepasse
Switch(config)# vtp version 2
Vérification VTP
Exemple pratique : Réseau d'entreprise
Topologie
- 3 départements : Vente (VLAN 10), Comptabilité (VLAN 20), IT (VLAN 30)
- 2 commutateurs reliés par trunk
- 1 routeur pour l'inter-VLAN
Configuration Commutateur 1
# Création des VLANs
Switch1(config)# vlan 10
Switch1(config-vlan)# name VENTE
Switch1(config-vlan)# exit
Switch1(config)# vlan 20
Switch1(config-vlan)# name COMPTABILITE
Switch1(config-vlan)# exit
Switch1(config)# vlan 30
Switch1(config-vlan)# name IT
Switch1(config-vlan)# exit
# Configuration des ports access
Switch1(config)# interface range fa0/1-8
Switch1(config-if-range)# switchport mode access
Switch1(config-if-range)# switchport access vlan 10
Switch1(config-if-range)# exit
Switch1(config)# interface range fa0/9-16
Switch1(config-if-range)# switchport mode access
Switch1(config-if-range)# switchport access vlan 20
Switch1(config-if-range)# exit
# Configuration du trunk vers Switch2
Switch1(config)# interface gi0/1
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# switchport trunk allowed vlan 10,20,30
Switch1(config-if)# switchport trunk native vlan 99
Switch1(config-if)# switchport nonegotiate
Switch1(config-if)# exit
# Configuration du trunk vers le routeur
Switch1(config)# interface gi0/2
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# switchport trunk allowed vlan 10,20,30
Switch1(config-if)# switchport trunk native vlan 99
Switch1(config-if)# switchport nonegotiate
Switch1(config-if)# exit
Configuration Commutateur 2
# Création des VLANs (identique)
Switch2(config)# vlan 10
Switch2(config-vlan)# name VENTE
Switch2(config-vlan)# exit
Switch2(config)# vlan 30
Switch2(config-vlan)# name IT
Switch2(config-vlan)# exit
# Configuration des ports access
Switch2(config)# interface range fa0/1-12
Switch2(config-if-range)# switchport mode access
Switch2(config-if-range)# switchport access vlan 30
Switch2(config-if-range)# exit
# Configuration du trunk vers Switch1
Switch2(config)# interface gi0/1
Switch2(config-if)# switchport mode trunk
Switch2(config-if)# switchport trunk allowed vlan 10,20,30
Switch2(config-if)# switchport trunk native vlan 99
Switch2(config-if)# switchport nonegotiate
Switch2(config-if)# exit
Plan d'adressage
| VLAN | Nom | Réseau | Passerelle |
|---|---|---|---|
| 10 | VENTE | 192.168.10.0/24 | 192.168.10.1 |
| 20 | COMPTABILITE | 192.168.20.0/24 | 192.168.20.1 |
| 30 | IT | 192.168.30.0/24 | 192.168.30.1 |
| 99 | NATIF | 192.168.99.0/24 | - |
Dépannage des VLANs
Commandes de diagnostic
# Vérification des VLANs
Switch# show vlan brief
Switch# show vlan id 10
# Vérification des trunks
Switch# show interfaces trunk
Switch# show interfaces gi0/1 switchport
# Vérification de la connectivité
Switch# show mac address-table vlan 10
Switch# show spanning-tree vlan 10
# Debug (avec précaution)
Switch# debug sw-vlan vtp events
Problèmes courants
1. Pas de communication dans le VLAN
- Vérifier l'affectation des ports
- Contrôler la configuration du VLAN
- Vérifier le spanning-tree
2. Pas de communication entre VLANs
- Vérifier la configuration du routage inter-VLAN
- Contrôler les trunks
- Vérifier les passerelles par défaut
3. Problèmes de trunk
- Vérifier l'encapsulation (802.1Q)
- Contrôler le VLAN natif des deux côtés
- Vérifier les VLANs autorisés
Évolutions et alternatives
VXLAN (Virtual Extensible LAN)
- Extension des VLANs sur IP
- Support de 16 millions d'identifiants
- Utilisé dans les datacenters et le cloud
EVPN (Ethernet VPN)
- Standard pour les VPNs Ethernet
- Basé sur BGP
- Remplace progressivement les solutions propriétaires
Software-Defined Networking (SDN)
- Contrôle centralisé des VLANs
- Programmabilité via APIs
- Flexibilité accrue