Créer et faire fonctionner un VLAN
Standard : IEEE 802.1Q · Plateformes : Cisco IOS, Linux · Niveau : Intermédiaire---
Topologie de référence
┌─────────────────────┐
│ R1 — Inter-VLAN │ (Routeur)
└──────────┬──────────┘
│ Trunk 802.1Q
┌──────────┴──────────┐
│ SW1 — Cisco 2960 │ (Commutateur)
└──┬────┬────┬────────┘
│ │ │
VLAN10 VLAN20 VLAN30
Gestion Prod. Invités
192.168.10.x/24 20.x/24 30.x/24
01 — Comprendre les VLANs
Un VLAN (Virtual Local Area Network) est une segmentation logique d'un réseau physique. Il permet d'isoler des groupes de machines comme s'ils étaient sur des réseaux séparés, même s'ils partagent le même commutateur.
Avantages
| Aspect | Description |
|---|---|
| 🔒 Sécurité | Les machines de VLANs différents ne communiquent pas sans routage explicite |
| ⚡ Performance | Réduit les domaines de broadcast, limitant les tempêtes et le trafic inutile |
| 🏗️ Flexibilité | Regroupez des machines par fonction (RH, IT, Invités) indépendamment de leur localisation physique |
| 📋 Standard | IEEE 802.1Q ajoute un tag de 4 octets dans la trame Ethernet — jusqu'à 4094 VLANs distincts |
Types de ports
| Type | Description | Usage typique |
|---|---|---|
| Access | Appartient à un seul VLAN. Connecte les hôtes finaux (PC, serveurs) | Ports vers postes de travail |
| Trunk | Transporte plusieurs VLANs avec tags 802.1Q. Connecte switches entre eux ou un routeur | Liaison switch-switch, switch-routeur |
| Native | Trafic non tagué sur un trunk. VLAN 1 par défaut (à changer !) | VLAN de gestion dédié |
ℹ️ Note : Le tag 802.1Q contient un VLAN ID (VID) de 12 bits, permettant jusqu'à 4094 VLANs distincts (1–4094, 0 et 4095 étant réservés).
02 — Configuration sur Cisco IOS
Créer les VLANs
! Entrer en mode configuration globale
SW1# enable
SW1# configure terminal
! Créer le VLAN 10 — Gestion
SW1(config)# vlan 10
SW1(config-vlan)# name Gestion
SW1(config-vlan)# exit
! Créer le VLAN 20 — Production
SW1(config)# vlan 20
SW1(config-vlan)# name Production
SW1(config-vlan)# exit
! Créer le VLAN 30 — Invités
SW1(config)# vlan 30
SW1(config-vlan)# name Invites
SW1(config-vlan)# exit
Assigner des ports Access
! Assigner Fa0/1 et Fa0/2 au VLAN 10 (Gestion)
SW1(config)# interface range FastEthernet0/1-2
SW1(config-if-range)# switchport mode access
SW1(config-if-range)# switchport access vlan 10
SW1(config-if-range)# exit
! Assigner Fa0/3 et Fa0/4 au VLAN 20 (Production)
SW1(config)# interface range FastEthernet0/3-4
SW1(config-if-range)# switchport mode access
SW1(config-if-range)# switchport access vlan 20
SW1(config-if-range)# exit
! Assigner Fa0/5 au VLAN 30 (Invités)
SW1(config)# interface FastEthernet0/5
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 30
SW1(config-if)# exit
Configurer un port Trunk
! Configurer Fa0/24 comme trunk vers le routeur
SW1(config)# interface FastEthernet0/24
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
! Autoriser uniquement nos VLANs (bonne pratique)
SW1(config-if)# switchport trunk allowed vlan 10,20,30
! Changer le VLAN natif (ne jamais laisser le VLAN 1)
SW1(config-if)# switchport trunk native vlan 99
SW1(config-if)# exit
! Sauvegarder la configuration
SW1# write memory
⚠️ Attention : Toujours changer le VLAN natif depuis le VLAN 1 pour éviter les attaques de type VLAN hopping.
Commandes de vérification
! Voir tous les VLANs et leurs ports
SW1# show vlan brief
! Voir le statut des trunks
SW1# show interfaces trunk
! Voir la config d'une interface
SW1# show interfaces FastEthernet0/1 switchport
! Voir les VLANs en base de données
SW1# show vlan id 10
03 — Configuration sur Linux
Sur Linux, les VLANs sont créés via le module 8021q du noyau.
ip / iproute2 (temporaire)
# Charger le module VLAN
sudo modprobe 8021q
# Créer les interfaces VLAN sur eth0
sudo ip link add link eth0 name eth0.10 type vlan id 10
sudo ip link add link eth0 name eth0.20 type vlan id 20
sudo ip link add link eth0 name eth0.30 type vlan id 30
# Activer les interfaces
sudo ip link set eth0.10 up
sudo ip link set eth0.20 up
sudo ip link set eth0.30 up
# Assigner les adresses IP
sudo ip addr add 192.168.10.1/24 dev eth0.10
sudo ip addr add 192.168.20.1/24 dev eth0.20
sudo ip addr add 192.168.30.1/24 dev eth0.30
# Vérifier
ip -d link show eth0.10
ip addr show
Netplan (Ubuntu — persistant)
Créer le fichier /etc/netplan/01-vlan.yaml :
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
vlans:
eth0.10:
id: 10
link: eth0
addresses: [192.168.10.1/24]
eth0.20:
id: 20
link: eth0
addresses: [192.168.20.1/24]
eth0.30:
id: 30
link: eth0
addresses: [192.168.30.1/24]
Puis appliquer :
sudo netplan apply
NetworkManager / nmcli
# Créer les connexions VLAN
nmcli connection add type vlan con-name vlan10 \
dev eth0.10 vlan.parent eth0 vlan.id 10 \
ipv4.addresses 192.168.10.1/24 ipv4.method manual
nmcli connection add type vlan con-name vlan20 \
dev eth0.20 vlan.parent eth0 vlan.id 20 \
ipv4.addresses 192.168.20.1/24 ipv4.method manual
# Activer
nmcli connection up vlan10
nmcli connection up vlan20
04 — Routage inter-VLAN (Router-on-a-Stick)
Par défaut, les VLANs sont isolés. Pour leur permettre de communiquer, on utilise un routeur avec des sous-interfaces — technique dite "router-on-a-stick".
R1
| (GigabitEthernet0/0 — trunk)
SW1
/ | \
V10 V20 V30
Configuration du routeur R1
! Activer l'interface physique sans IP
R1(config)# interface GigabitEthernet0/0
R1(config-if)# no shutdown
R1(config-if)# exit
! Sous-interface pour VLAN 10
R1(config)# interface GigabitEthernet0/0.10
R1(config-subif)# encapsulation dot1Q 10
R1(config-subif)# ip address 192.168.10.254 255.255.255.0
R1(config-subif)# exit
! Sous-interface pour VLAN 20
R1(config)# interface GigabitEthernet0/0.20
R1(config-subif)# encapsulation dot1Q 20
R1(config-subif)# ip address 192.168.20.254 255.255.255.0
R1(config-subif)# exit
! Sous-interface pour VLAN 30
R1(config)# interface GigabitEthernet0/0.30
R1(config-subif)# encapsulation dot1Q 30
R1(config-subif)# ip address 192.168.30.254 255.255.255.0
R1(config-subif)# exit
! Vérifier le routage
R1# show ip route
💡 Astuce : Configurez les passerelles par défaut de vos hôtes vers l'IP du routeur sur leur VLAN (ex:
192.168.10.254pour les hôtes du VLAN 10).
05 — Bonnes pratiques & Sécurité
- ✅ Désactiver le VLAN 1 pour le trafic utilisateur — réserver le VLAN 1 uniquement au trafic interne du switch.
- ✅ Changer le VLAN natif sur tous les trunks vers un VLAN dédié (ex: VLAN 99) pour prévenir le VLAN hopping.
- ✅ Limiter les VLANs autorisés sur les trunks avec
switchport trunk allowed vlan— ne jamais laisser "all". - ✅ Utiliser Port Security (
switchport port-security) sur les ports access pour limiter les adresses MAC. - ⚠️ Documenter votre plan d'adressage VLAN dès le départ — un tableau ID/Nom/Sous-réseau/Rôle évite les conflits.
- ✅ Activer STP (Spanning Tree) pour éviter les boucles en cas de liens redondants entre switches.
- ✅ Sauvegarder la config après chaque modification avec
write memoryoucopy run startsur Cisco.
⚠️ VLAN Hopping : Si le VLAN natif d'un trunk correspond au VLAN d'un port access, un attaquant peut injecter du trafic double-tagué pour sauter entre VLANs. Toujours utiliser un VLAN natif dédié et non utilisé.
06 — Dépannage rapide
| Symptôme | Cause probable | Solution |
|---|---|---|
| Deux hôtes du même VLAN ne se pingent pas | Port mal assigné au VLAN | show vlan brief → vérifier l'assignation du port |
| Trafic inter-VLAN impossible | Sous-interface manquante ou trunk mal configuré | Vérifier show interfaces trunk et les subinterfaces |
| VLAN absent du trunk | VLAN non autorisé sur le trunk | switchport trunk allowed vlan add X |
| Interface VLAN Linux inactive | Module 8021q non chargé | sudo modprobe 8021q |
| VLAN créé mais non actif | VLAN en état "suspended" | show vlan id X → vérifier l'état |
IEEE 802.1Q · Cisco IOS / Linux · NET/LAB