R05 - VLAN et routage inter-VLAN

Objectif

Découper un switch physique en plusieurs réseaux logiques isolés (VLAN), faire passer plusieurs VLAN sur un seul câble (trunk), puis les faire communiquer quand on le décide (routage inter-VLAN).


1. Le principe

Un VLAN (Virtual LAN) = un groupe de ports qui forme son propre réseau, comme s’il était sur un switch à part.

flowchart TB
  subgraph SW["Un seul switch physique"]
    direction LR
    subgraph V10["VLAN 10 — Compta<br/>192.168.10.0/24"]
      P1[Port 1] --- P2[Port 2]
    end
    subgraph V20["VLAN 20 — Commerce<br/>192.168.20.0/24"]
      P3[Port 3] --- P4[Port 4]
    end
    subgraph V99["VLAN 99 — Admin<br/>192.168.99.0/24"]
      P5[Port 5]
    end
  end
AvantageExplication
SécuritéLes VLAN ne se voient pas sans passer par un routeur / pare-feu
PerformanceChaque VLAN = un domaine de broadcast séparé
SouplesseDéplacer un PC de service = changer 1 ligne de config, pas un câble
ÉconomieUn seul switch pour plusieurs réseaux

1 VLAN = 1 sous-réseau IP. Ne mélange jamais deux réseaux IP dans le même VLAN.


2. Port access et port trunk

AccessTrunk
TransporteUn seul VLANPlusieurs VLAN
Branché versUn PC, une imprimante, un serveurUn autre switch, un routeur, un hyperviseur
Étiquette 802.1QNon (l’équipement final ne la voit pas)Oui : chaque trame porte le numéro de VLAN

L’étiquette 802.1Q (tag)

Sur un trunk, le switch insère 4 octets dans la trame Ethernet, dont le VLAN ID sur 12 bits → VLAN 1 à 4094 utilisables (0 et 4095 réservés).

flowchart LR
  A["MAC dest<br/>6 o"] --> B["MAC src<br/>6 o"] --> C["TAG 802.1Q<br/>4 o<br/>(VLAN ID)"] --> D["Type<br/>2 o"] --> E["Données<br/>46-1500 o"] --> F["FCS<br/>4 o"]
  style C fill:#fcd34d,stroke:#92400e
  • VLAN natif : sur un trunk, le VLAN dont les trames passent sans étiquette (VLAN 1 par défaut). Bonne pratique : le changer pour un VLAN inutilisé.
  • Q-in-Q (802.1ad) : double étiquette, utilisé par les opérateurs (pour info).

3. Configuration Cisco d’un switch

enable
configure terminal
hostname SW1
 
! 1) Créer et nommer les VLAN
vlan 10
 name COMPTA
vlan 20
 name COMMERCE
vlan 99
 name ADMIN
vlan 999
 name PARKING
exit
 
! 2) Ports access (PC)
interface range fa0/1 - 8
 switchport mode access
 switchport access vlan 10
 ! démarrage immédiat du port (uniquement vers un PC !)
 spanning-tree portfast
exit
interface range fa0/9 - 16
 switchport mode access
 switchport access vlan 20
 spanning-tree portfast
exit
 
! 3) Port trunk vers le routeur / l'autre switch
interface g0/1
 switchport mode trunk
 switchport trunk allowed vlan 10,20,99
 switchport trunk native vlan 999
exit
 
! 4) Ports inutilisés : dans un VLAN poubelle ET éteints (sécurité)
interface range fa0/17 - 24
 switchport mode access
 switchport access vlan 999
 shutdown
exit
 
! 5) IP d'administration du switch (dans le VLAN admin)
interface vlan 99
 ip address 192.168.99.2 255.255.255.0
 no shutdown
exit
ip default-gateway 192.168.99.254
end
write memory

Sur certains switchs de niveau 3 (ex. 3560), il faut d'abord taper switchport trunk encapsulation dot1q avant switchport mode trunk.

Vérifier

! quels ports dans quels VLAN
show vlan brief
! trunks actifs et VLAN autorisés
show interfaces trunk
show interfaces fa0/1 switchport

4. Faire communiquer les VLAN

Sans routeur, deux VLAN ne se parlent pas (c’est voulu). Deux solutions :

Solution A - Router-on-a-stick (un routeur, un câble trunk)

flowchart TB
  R["Routeur R1<br/>g0/0.10 → 192.168.10.254<br/>g0/0.20 → 192.168.20.254<br/>g0/0.99 → 192.168.99.254"]
  R ===|"trunk 802.1Q (g0/0 ↔ g0/1)"| SW[Switch SW1]
  SW ---|access VLAN 10| PC1["PC Compta<br/>192.168.10.1<br/>passerelle .254"]
  SW ---|access VLAN 20| PC2["PC Commerce<br/>192.168.20.1<br/>passerelle .254"]
enable
configure terminal
interface g0/0
 ! l'interface PHYSIQUE doit être allumée
 no shutdown
exit
interface g0/0.10
 encapsulation dot1Q 10
 ip address 192.168.10.254 255.255.255.0
exit
interface g0/0.20
 encapsulation dot1Q 20
 ip address 192.168.20.254 255.255.255.0
exit
interface g0/0.99
 encapsulation dot1Q 99
 ip address 192.168.99.254 255.255.255.0
exit
end
write memory

Solution B - Switch de niveau 3 (SVI)

Plus performant : le switch route lui-même (ex. Cisco 3560/3650).

enable
configure terminal
! active le routage sur le switch L3
ip routing
interface vlan 10
 ip address 192.168.10.254 255.255.255.0
 no shutdown
interface vlan 20
 ip address 192.168.20.254 255.255.255.0
 no shutdown
end
write memory
Router-on-a-stickSwitch L3
MatérielRouteur + switch simpleSwitch L3 (plus cher)
PerformanceLimitée par le câble trunk uniqueRoutage à vitesse du switch
UsagePetites structures, Packet TracerEntreprises

5. VLAN sous Linux (bonus)

Un serveur Linux peut lui aussi être sur un trunk (ex. routeur Linux, hyperviseur) :

sudo ip link add link eth0 name eth0.10 type vlan id 10   # sous-interface VLAN 10
sudo ip addr add 192.168.10.254/24 dev eth0.10
sudo ip link set eth0.10 up
ip -d link show eth0.10                                    # vérifier l'ID VLAN

Non persistant : pour le garder au redémarrage, passer par NetworkManager (nmcli connection add type vlan ...) ou /etc/network/interfaces sur Debian.


6. Dépannage VLAN

SymptômeCause probableVérification / correction
PC sans IP en DHCPPort dans le mauvais VLANshow vlan brief
VLAN 10 marche, VLAN 20 non, entre 2 switchsVLAN 20 non autorisé sur le trunkshow interfaces trunk → switchport trunk allowed vlan add 20
Aucun inter-VLANInterface physique du routeur en shutdownshow ip interface brief → no shutdown
Inter-VLAN KO pour un seul PCMauvaise passerelle sur le PCipconfig / ip r
VLAN absent sur un switchVLAN pas créé sur ce switch (pas de VTP)vlan 20 sur chaque switch

Voir aussi