đ VLAN & Trunk â Segmentation RĂ©seau (802.1Q & Inter-VLAN)
Guide complet IDEO-Lab sur la segmentation de Couche 2 (VLANs) et les liaisons (Trunks).
Concept : VLAN
Virtual LAN. Isolation logique (L2). 1 Switch -> N Switchs.
VLAN Couche 2 SegmentationDomaine de Broadcast
1 VLAN = 1 Domaine de Broadcast = 1 Sous-réseau.
Broadcast Sous-réseauObjectifs (Pourquoi ?)
Sécurité (Isolation), Performance (Broadcast), Flexibilité.
Sécurité PerformancePort "Access" (AccÚs)
1 seul VLAN. Trafic non-tagué (Untagged). Vers PC/Périph.
Access UntaggedPort "Trunk" (Agrégation)
Multiples VLANs. Trafic tagué. Vers Switch/Routeur.
Trunk TaggedProtocole : 802.1Q
Le standard du "Tagging". Insertion d'un tag (VLAN ID).
802.1Q TaggingLe ProblĂšme (Isolation)
VLAN 10 ne peut pas parler à VLAN 20 (L2). Nécessite un routeur.
Isolation Couche 3Solution 1 : Router-on-a-Stick
Legacy. 1 Routeur externe, 1 Trunk, Sous-interfaces.
ROAS LegacySolution 2 : Switch L3 (SVI)
Moderne. Interface Virtuelle (SVI). Routage hardware.
SVI Switch L3ProblĂšme : Boucles L2
TempĂȘtes de Broadcast (Broadcast Storms). Redondance.
Boucle (Loop) Broadcast StormSolution : STP (802.1D)
Spanning Tree Protocol. Ălection Root, Blocage de port.
STP 802.1DĂvolution : RSTP & PortFast
Rapid Spanning Tree (802.1w). PortFast (AccĂšs).
RSTP PortFastNative VLAN
Le seul VLAN non-tagué sur un Trunk (VLAN 1 par défaut).
Native VLAN UntaggedVTP (Cisco)
VLAN Trunking Protocol (Propagation BDD VLANs).
VTP CiscoVoice VLAN (VoIP)
Port Access avec 2 VLANs (Data + Voix taguée).
Voice VLAN QoS VoIPCLI (Cisco) : Access
switchport mode access, switchport access vlan 10.
CLI (Cisco) : Trunk
switchport mode trunk, allowed vlan, native vlan.
Cheat-sheet
Résumé Access vs Trunk. Routage L2 vs L3.
Checklist RésuméLa Segmentation Logique
Un VLAN (Virtual Local Area Network) est une technique de Couche 2 (Liaison) qui permet de prendre un switch physique et de le diviser en plusieurs switchs virtuels (logiques).
Des appareils sur des VLANs diffĂ©rents sont totalement isolĂ©s, comme s'ils Ă©taient sur des switchs physiques sĂ©parĂ©s, mĂȘme s'ils sont branchĂ©s sur le mĂȘme matĂ©riel.
Exemple
Un switch de 24 ports peut ĂȘtre divisĂ© :
- VLAN 10 (Compta) : Ports 1-8
- VLAN 20 (Ventes) : Ports 9-16
- VLAN 30 (Invités) : Ports 17-24
Un PC sur le Port 1 (VLAN 10) ne peut communiquer que avec les ports 2-8. Il ne "voit" pas et ne peut pas atteindre les ports 9-24.
Nécessite un switch manageable.
Le ProblĂšme (Segmentation Physique)
Avant les VLANs, pour isoler des départements (ex: Compta et Ventes), il fallait :
- Acheter un Switch A pour la Compta.
- Acheter un Switch B pour les Ventes.
- Acheter un Routeur avec 2 interfaces pour les faire communiquer.
[PC Compta] --- [SWITCH A] --- [Routeur (Port 1)] [PC Ventes] --- [SWITCH B] --- [Routeur (Port 2)]
Inconvénients : Coûteux (plus de matériel), rigide (si un comptable déménage dans le bureau des ventes, il faut recùbler physiquement).
Les VLANs résolvent ce problÚme en virtualisant les switchs.
La raison technique d'ĂȘtre des VLANs est la division des domaines de broadcast.
Le ProblĂšme (Sans VLAN)
Par défaut, un switch (contrairement à un routeur) ne bloque pas les broadcasts (ex: ARP, DHCP). Un switch physique = 1 grand domaine de broadcast.
Si 200 appareils sont sur le mĂȘme switch, un seul "DHCP Discover" (broadcast) est envoyĂ© aux 199 autres, consommant de la bande passante et du CPU (TempĂȘte de Broadcast).
La Solution (VLAN)
Un VLAN = Un Domaine de Broadcast.
Si le PC du VLAN 10 (Compta) envoie un broadcast, seuls les autres membres du VLAN 10 le reçoivent. Les VLANs 20 et 30 sont protégés.
C'est pourquoi la rÚgle d'or du design réseau est : 1 VLAN = 1 Sous-réseau IP.
- VLAN 10 = 192.168.10.0/24
- VLAN 20 = 192.168.20.0/24
| Objectif | Description |
|---|---|
| SĂ©curitĂ© (Isolation) | (Raison n°1) Isoler les dĂ©partements. EmpĂȘcher le VLAN "InvitĂ©s" d'accĂ©der au VLAN "Serveurs". Le trafic est cloisonnĂ©. Un pirate sur le Wi-Fi InvitĂ© ne peut pas "scanner" le rĂ©seau interne. |
| Performance | RĂ©duire la taille des domaines de broadcast. Une tempĂȘte de broadcast (ex: boucle L2 non gĂ©rĂ©e) dans le VLAN 10 n'affecte pas le VLAN 20. RĂ©duit le "bruit" rĂ©seau. |
| FlexibilitĂ© (Organisation) | Un utilisateur (Compta) peut dĂ©mĂ©nager au 3Ăšme Ă©tage (oĂč sont les Ventes). L'admin assigne simplement son nouveau port au VLAN 10 (Compta) via la configuration. Pas de recĂąblage physique. |
| QoS (Voice VLAN) | Isoler le trafic sensible (VoIP) pour lui donner la priorité (Quality of Service) et le protéger du trafic de données "normal". (Voir 5.3). |
Un port de switch peut ĂȘtre configurĂ© en mode "Access" ou "Trunk".
Mode Access (AccĂšs)
- Objectif : Connecter des appareils finaux (End-devices : PC, imprimantes, serveurs).
- Appartenance : N'appartient qu'à UN SEUL VLAN de données (ex: VLAN 10).
- Trafic : Les trames envoyées et reçues sur ce port sont des trames Ethernet standard, non-taguées (untagged). L'appareil final (PC) n'a *aucune idée* qu'il est dans un VLAN.
- Fonctionnement :
- (Sortant) Quand le switch envoie une trame (taguée VLAN 10) au PC, il retire le tag 802.1Q.
- (Entrant) Quand le switch reçoit une trame (non-taguée) du PC, il ajoute le tag du VLAN auquel le port est assigné (VLAN 10).
Exemple de configuration (Cisco)
interface FastEthernet0/1 ! Définit le port en mode AccÚs (statique) switchport mode access ! Assigne le port au VLAN 10 switchport access vlan 10
Mode Trunk (Agrégation)
- Objectif : Connecter des appareils réseau (Switch <-> Switch, Switch <-> Routeur, Switch <-> AP Wi-Fi).
- Appartenance : N'appartient pas Ă un VLAN, mais agit comme un "tuyau" (un "trunk") pour transporter PLUSIEURS VLANs en mĂȘme temps.
- Trafic : Les trames envoyées et reçues sont taguées (tagged) avec le protocole 802.1Q (voir 2.3) pour que l'autre appareil sache à quel VLAN la trame appartient.
Exemple de configuration (Cisco)
interface GigabitEthernet0/1 ! Définit l'encapsulation (obligatoire sur certains modÚles) switchport trunk encapsulation dot1q ! Définit le port en mode Trunk (statique) switchport mode trunk ! (Optionnel) Spécifie quels VLANs sont autorisés ! (Par défaut : tous les VLANs 1-4094) switchport trunk allowed vlan 10,20,30 ! (Optionnel) Définit le VLAN Natif (voir 4.1) switchport trunk native vlan 999
IEEE 802.1Q (aussi appelé "dot1q") est le standard industriel du "Tagging" (étiquetage) de trames, qui permet aux Trunks de fonctionner.
Le "Tag" (Ătiquette)
C'est un en-tĂȘte de 4 octets (32 bits) insĂ©rĂ© au milieu de la trame Ethernet (entre l'adresse MAC Source et le champ EtherType).
[Trame Ethernet Standard] (MAC Dest) | (MAC Source) | (EtherType) | (Data) | (FCS) [Trame Ethernet 802.1Q (Taguée)] (MAC Dest) | (MAC Source) | [ TAG 802.1Q ] | (EtherType) | (Data) | (FCS)
Contenu du Tag 802.1Q
| Champ | Taille | Description |
|---|---|---|
| TPID (Tag Protocol ID) | 16 bits | Indique que c'est une trame 802.1Q (Valeur fixe: 0x8100). |
| PCP (Priority Code Point) | 3 bits | Utilisé pour la QoS (Couche 2). Permet de prioriser le trafic (ex: 7 pour la Voix). |
| DEI (Drop Eligible Indicator) | 1 bit | (Anciennement CFI). Indique si la trame peut ĂȘtre "droppĂ©e" en prioritĂ© en cas de congestion. |
| VLAN ID (VID) | 12 bits | L'identifiant du VLAN (1-4094). C'est le champ le plus important. (0 et 4095 sont réservés). |
Les VLANs sont conçus pour isoler le trafic (Couche 2).
Un PC du VLAN 10 (Réseau 192.168.10.0/24) ne peut pas communiquer avec un Serveur du VLAN 20 (Réseau 192.168.20.0/24). Ils sont dans des domaines de broadcast et des sous-réseaux IP différents.
La Solution : La Couche 3
Pour que deux sous-réseaux IP différents communiquent, il faut un Routeur (Couche 3). C'est le routage Inter-VLAN.
Le trafic doit "monter" au routeur (sa passerelle) pour ĂȘtre "routĂ©" vers l'autre sous-rĂ©seau.
Flux de trafic (VLAN 10 -> VLAN 20) : 1. [PC (VLAN 10)] -> (L2) -> [Switch] 2. [Switch] -> (L2) -> [Routeur (Passerelle 192.168.10.1)] 3. [Routeur] (Routage L3 de 10.x vers 20.x) 4. [Routeur (Passerelle 192.168.20.1)] -> (L2) -> [Switch] 5. [Switch] -> (L2) -> [Serveur (VLAN 20)]
C'est la méthode "legacy" (historique) pour le routage Inter-VLAN. Elle utilise un Switch L2 et un Routeur externe.
Configuration
- On connecte un port du Switch Ă un port du Routeur.
- Le port du Switch est configuré en Trunk (802.1Q) (pour laisser passer tous les VLANs : 10 et 20).
- Le port du Routeur est configuré avec des sous-interfaces (une par VLAN), qui agissent comme passerelles (Gateways).
Exemple de configuration (Routeur Cisco)
! Interface Physique (juste allumée) interface GigabitEthernet0/1 no shutdown ! Sous-interface pour VLAN 10 interface GigabitEthernet0/1.10 encapsulation dot1Q 10 (Spécifie le Tag VLAN 10) ip address 192.168.10.1 255.255.255.0 (Gateway du VLAN 10) ! Sous-interface pour VLAN 20 interface GigabitEthernet0/1.20 encapsulation dot1Q 20 ip address 192.168.20.1 255.255.255.0 (Gateway du VLAN 20)
Inconvénient : Goulot d'étranglement (Bottleneck). Tout le trafic inter-VLAN (Compta <-> Ventes) doit passer (deux fois) par ce seul cùble Trunk. Non scalable.
C'est la méthode moderne et performante. Elle utilise un Switch L3 (Multicouche), qui est un switch capable de router (Couche 3).
Configuration (SVI)
Pas besoin de routeur externe. On crée des SVI (Switched Virtual Interfaces) directement sur le switch. Ce sont les "passerelles" virtuelles (interfaces L3) pour chaque VLAN.
Exemple de configuration (Switch L3 Cisco)
! Activer le routage (Couche 3) sur le switch (config)# ip routing ! Créer le VLAN 10 (config)# vlan 10 (config-vlan)# name COMPTA ! Créer l'interface virtuelle (SVI) pour VLAN 10 (config)# interface Vlan10 (config-if)# ip address 192.168.10.1 255.255.255.0 (Gateway) (config-if)# no shutdown ! Créer l'interface virtuelle (SVI) pour VLAN 20 (config)# interface Vlan20 (config-if)# ip address 192.168.20.1 255.255.255.0 (config-if)# no shutdown
Avantage : Le routage se fait Ă la vitesse du "backplane" (matrice) du switch (hardware, via des ASICs), ce qui est extrĂȘmement rapide (vitesse "filaire" / "wirespeed").
La redondance physique est bonne (ex: 2 cùbles entre 2 switchs pour la tolérance de panne), mais elle crée des boucles (loops) de Couche 2, ce qui est catastrophique pour un réseau commuté.
La TempĂȘte de Broadcast (Broadcast Storm)
Contrairement aux paquets IP (L3) qui ont un "TTL" (Time To Live) pour mourir, les trames Ethernet (L2) n'ont pas de TTL. Une trame en boucle tournera éternellement.
(Lien 1) [ SW A ] ========= [ SW B ] â â (Lien 2) (PC)
- Un PC envoie un Broadcast (ex: ARP, DHCP).
- SW B le "flood" (inonde) sur tous ses ports, y compris Lien 1 et Lien 2.
- SW A reçoit le broadcast sur Lien 1. Il le "flood" sur tous ses ports, y compris Lien 2.
- SW A reçoit le broadcast sur Lien 2. Il le "flood" sur tous ses ports, y compris Lien 1.
- La trame tourne en boucle, se multipliant à l'infini (Instabilité de la table MAC).
Résultat : Saturation de la bande passante, 100% CPU sur les switchs, le réseau s'effondre (DoS).
STP (IEEE 802.1D) est un protocole de Couche 2 (actif par défaut sur les switchs manageables) qui prévient les boucles en bloquant logiquement les liens redondants.
Processus (Simplifié)
Les switchs s'envoient des "BPDUs" (trames STP) pour :
- Ălire un "Root Bridge" (Pont Racine) : Le switch "chef" (basĂ© sur la PrioritĂ© + MAC la plus basse).
- Définir les "Root Ports" : Chaque switch non-root détermine son *meilleur* (plus court) chemin (port) vers le Root Bridge.
- Définir les "Designated Ports" : Sur chaque segment (cùble), le port le plus proche du Root Bridge.
- BLOCAGE : Tous les autres ports (non-root, non-designated) sont mis en état Blocking.
(Lien 1 - FORWARD [Root Port]) [ SW A (Root) ] === [ SW B ] â â (Lien 2 - BLOCKED [Alt Port])
Le Lien 2 est bloqué, la boucle est rompue. Si le Lien 1 tombe, STP recalcule et débloque le Lien 2 (convergence).
RSTP (Rapid Spanning Tree Protocol)
Le STP (802.1D) original était trÚs lent. La convergence (passer du blocage au forwarding si un lien tombe) pouvait prendre 30 à 50 secondes (Phases : Blocking -> Listening -> Learning -> Forwarding).
RSTP (802.1w) est le standard moderne. Il est rétrocompatible mais beaucoup plus rapide.
Il simplifie les états (Blocking, Learning, Forwarding) et utilise un mécanisme de "handshake" pour une convergence en quelques millisecondes (ou < 1-2 secondes).
PortFast (Cisco)
ProblÚme : Un port "Access" (connecté à un PC) n'a pas besoin d'attendre les 30-50 secondes de STP (il ne peut pas causer de boucle). Pendant ce temps, le PC ne peut pas obtenir d'IP (DHCP time-out).
Solution : La commande spanning-tree portfast (sur un port Access uniquement).
Elle dit au switch : "Fais confiance à ce port, passe-le immédiatement en mode Forwarding, sans passer par Listening/Learning."
Le Native VLAN est un concept spécifique aux ports Trunk (802.1Q).
Il définit quel VLAN doit transporter le trafic non-tagué (untagged) sur ce lien Trunk.
Fonctionnement
- Par défaut, le Native VLAN est le VLAN 1.
- Si le Switch A (Trunk) reçoit une trame *non-taguée* (venant d'un appareil "legacy" comme un vieux Hub), il l'assigne automatiquement au VLAN 1.
- Si le Switch A (Trunk) doit envoyer une trame du VLAN 1, il l'envoie *sans* tag 802.1Q.
Risque de Sécurité (VLAN Hopping)
Garder le VLAN 1 comme natif est un risque. Un attaquant sur un port Access (VLAN 10) pourrait "double-tagger" une trame pour la faire "sauter" (hop) vers le VLAN 1 (souvent le VLAN de management).
Bonne Pratique
- Créer un VLAN "poubelle" (ex: VLAN 999).
- Configurer tous les ports Trunk pour utiliser
switchport trunk native vlan 999. - N'utiliser le VLAN 999 pour aucun appareil ("black hole").
VTP est un protocole propriétaire Cisco (ne fonctionne qu'entre switchs Cisco) conçu pour faciliter la gestion des VLANs (uniquement la plage 1-1005).
Objectif : Créer un VLAN (ex: VLAN 50) sur 1 switch (Serveur VTP), et VTP le propage automatiquement à tous les autres switchs (Clients VTP) du réseau.
Modes VTP
- Serveur (Server) : (Défaut) Peut créer, modifier, supprimer des VLANs. Propage sa base de données (et son "Numéro de Révision") aux Clients.
- Client : Ne peut pas créer/modifier de VLANs. Il "écoute" les annonces du Serveur et synchronise sa base de données.
- Transparent : Ne participe pas. Il "ignore" les annonces VTP (mais les relaie sur ses trunks). Il gĂšre sa propre base de VLAN locale.
La "Bombe VTP" (VTP Bomb)
Danger : VTP se base sur un Numéro de Révision pour savoir quelle base de données est la plus "récente".
Si vous branchez un nouveau switch (ou un ancien switch reconfiguré) en mode "Serveur" avec un Numéro de Révision supérieur à celui du réseau de production, ce nouveau switch va écraser la base de VLANs de toute la production, causant une panne réseau massive.
Bonne pratique : Toujours mettre les nouveaux switchs en mode "Transparent" ou "Client" avant de les brancher.
Un VLAN Voix (Voice VLAN) est une fonctionnalité spéciale d'un port "Access" qui lui permet de gérer deux VLANs simultanément : un pour les données (PC) et un pour la voix (Téléphone IP).
Architecture (Daisy-Chain)
Courant dans les bureaux : le PC est branché *derriÚre* le téléphone IP, qui lui est branché à la prise murale.
[Prise Murale (Switch Port)] <--- [Téléphone IP] <--- [PC]
Configuration (Cisco)
interface FastEthernet0/5 ! VLAN 10 (Data) pour le PC (Trafic normal, non-tagué) switchport mode access switchport access vlan 10 ! VLAN 110 (Voice) pour le Téléphone (Trafic tagué 802.1Q) switchport voice vlan 110
Fonctionnement
- Le téléphone se branche, le port est sur VLAN 10 (Access).
- Le switch (via CDP ou LLDP) dit au tĂ©lĂ©phone : "PS: le trafic Voix doit ĂȘtre taguĂ© VLAN 110."
- Le téléphone se met en mode "mini-trunk".
- Le téléphone envoie son trafic VoIP (tagué 110) et relaie le trafic du PC (non-tagué, qui atterrit sur VLAN 10).
Objectif : Isoler le trafic Voix pour lui appliquer de la QoS (Quality of Service) et le prioriser (le trafic voix est sensible Ă la latence).
Configuration d'un port (FastEthernet 0/1) pour le VLAN 10 (Data).
Switch> enable Switch# configure terminal Switch(config)# ! Créer le VLAN (si non existant) Switch(config)# vlan 10 Switch(config-vlan)# name COMPTA Switch(config-vlan)# exit ! Configurer l'interface Switch(config)# interface FastEthernet0/1 Switch(config-if)# description PC de Bob (Compta) Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 10 Switch(config-if)# spanning-tree portfast (Recommandé, voir 4.3) Switch(config-if)# no shutdown Switch(config-if)# end
Configuration d'un port (GigabitEthernet 0/1) pour lier Ă un autre switch.
Switch> enable Switch# configure terminal Switch(config)# ! Configurer l'interface Trunk Switch(config)# interface GigabitEthernet0/1 Switch(config-if)# description TRUNK vers SW2 Switch(config-if)# switchport trunk encapsulation dot1q Switch(config-if)# switchport mode trunk ! (Bonne pratique) Spécifier les VLANs autorisés Switch(config-if)# switchport trunk allowed vlan 10,20,30,110 ! (Bonne pratique) Changer le Native VLAN (par défaut 1) Switch(config-if)# switchport trunk native vlan 999 Switch(config-if)# no shutdown Switch(config-if)# end
| Concept | Mode Port (Switch) | Trafic (Trame) | Usage |
|---|---|---|---|
| VLAN de Données (ex: VLAN 10) | Access | Non-tagué (Untagged) | Connecter un appareil final (PC, Imprimante). |
| Trunk | Trunk | Tagué (Tagged - 802.1Q) | Connecter un autre Switch, un Routeur, ou un AP. |
| Native VLAN (ex: VLAN 999) | Trunk | Non-tagué (Untagged) | Compatibilité (Legacy) / Sécurité (Black Hole). |
| Voice VLAN (ex: VLAN 110) | Access (Mode spécial) | Tagué (802.1Q) (le Data VLAN reste non-tagué) | Connecter un Téléphone IP (QoS). |
| Inter-VLAN (SVI) | (Interface Virtuelle) | (Routage L3) | Permettre aux VLANs de communiquer (via Switch L3). |
