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
| Avantage | Explication |
|---|---|
| Sécurité | Les VLAN ne se voient pas sans passer par un routeur / pare-feu |
| Performance | Chaque VLAN = un domaine de broadcast séparé |
| Souplesse | Déplacer un PC de service = changer 1 ligne de config, pas un câble |
| Économie | Un 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
| Access | Trunk | |
|---|---|---|
| Transporte | Un seul VLAN | Plusieurs VLAN |
| Branché vers | Un PC, une imprimante, un serveur | Un autre switch, un routeur, un hyperviseur |
| Étiquette 802.1Q | Non (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 memorySur certains switchs de niveau 3 (ex. 3560), il faut d'abord taper
switchport trunk encapsulation dot1qavantswitchport 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 switchport4. 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 memorySolution 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-stick | Switch L3 | |
|---|---|---|
| Matériel | Routeur + switch simple | Switch L3 (plus cher) |
| Performance | Limitée par le câble trunk unique | Routage à vitesse du switch |
| Usage | Petites structures, Packet Tracer | Entreprises |
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 VLANNon persistant : pour le garder au redémarrage, passer par NetworkManager (
nmcli connection add type vlan ...) ou/etc/network/interfacessur Debian.
6. Dépannage VLAN
| Symptôme | Cause probable | Vérification / correction |
|---|---|---|
| PC sans IP en DHCP | Port dans le mauvais VLAN | show vlan brief |
| VLAN 10 marche, VLAN 20 non, entre 2 switchs | VLAN 20 non autorisé sur le trunk | show interfaces trunk → switchport trunk allowed vlan add 20 |
| Aucun inter-VLAN | Interface physique du routeur en shutdown | show ip interface brief → no shutdown |
| Inter-VLAN KO pour un seul PC | Mauvaise passerelle sur le PC | ipconfig / ip r |
| VLAN absent sur un switch | VLAN pas créé sur ce switch (pas de VTP) | vlan 20 sur chaque switch |