Segmenter un réseau avec des VLANs
10 min · Intermédiaire · 7 août 2026
Une séparation logique, pas physique
Un VLAN (réseau local virtuel) isole un groupe d’équipements au niveau 2, indépendamment de leur câblage physique réel : deux machines branchées sur le même commutateur, mais affectées à des VLANs différents, ne se voient pas directement. Chaque VLAN correspond généralement à son propre sous-réseau IP, exactement le sujet du chapitre 1.
Une segmentation typique
import ipaddress
vlans = {
"VLAN 10 - Serveurs": ipaddress.ip_network("10.0.10.0/24"),
"VLAN 20 - Utilisateurs": ipaddress.ip_network("10.0.20.0/24"),
"VLAN 30 - Invites": ipaddress.ip_network("10.0.30.0/24"),
}
def trouver_vlan(adresse):
hote = ipaddress.ip_address(adresse)
for nom, reseau in vlans.items():
if hote in reseau:
return nom
return "inconnu"
paires = [
("10.0.20.15", "10.0.20.42"), # deux postes utilisateurs
("10.0.30.7", "10.0.10.5"), # un invite vers un serveur
]
for a, b in paires:
vlan_a, vlan_b = trouver_vlan(a), trouver_vlan(b)
print(f"{a} ({vlan_a}) <-> {b} ({vlan_b})")
if vlan_a == vlan_b:
print(" -> meme segment : communication directe")
else:
print(" -> segments differents : necessite un routeur ET des regles de pare-feu explicites") Pourquoi segmenter : limiter la portée, pas seulement organiser
Danger
L’intérêt principal de la segmentation n’est pas organisationnel : c’est de limiter la portée d’une compromission. Un poste utilisateur piégé (via une XSS ou un e-mail piégé, par exemple) placé dans le VLAN « Utilisateurs » ne peut pas atteindre directement le VLAN « Serveurs » sans franchir un pare-feu qui applique une politique explicite, contrairement à un réseau plat où tout communique avec tout par défaut.
Cette limitation directe fait écho au chapitre sur les scénarios d’attaque du cours sur la reconnaissance : une chaîne d’exploitation qui progresse d’un segment à l’autre doit franchir, à chaque étape, une frontière défendue plutôt qu’un réseau totalement ouvert.