Communitygithub.com

Segmentation VLAN pour Homelab

Segmenter un réseau domestique en VLANs pour l'IoT, les invités, les appareils de confiance et les serveurs avec UniFi, pfSense/OPNsense et MikroTik — y compris la configuration des ports trunk, les règles de pare-feu et le mappage SSID-VLAN. À utiliser lorsque vous divisez un réseau domestique en VLANs IoT, invités, de confiance et serveurs sur UniFi, pfSense/OPNsense ou MikroTik.

Qu'est-ce que Segmentation VLAN pour Homelab ?

Ce guide détaille comment segmenter un réseau domestique en VLANs isolés afin de sécuriser les communications entre les appareils IoT, les invités, les postes de confiance et les serveurs. Il est conçu pour les utilisateurs d'UniFi, pfSense/OPNsense et MikroTik, et couvre la création de VLANs, la configuration des ports trunk et access, le mappage SSID-VLAN pour les points d'accès, ainsi que les règles de pare-feu essentielles pour bloquer les accès non désirés tout en autorisant le trafic légitime (ex : DNS vers Pi-hole). Le guide inclut des exemples concrets, des anti-patrons à éviter et des bonnes pratiques pour une mise en œuvre robuste. Il est particulièrement utile pour les homelabeurs qui souhaitent améliorer la sécurité de leur réseau sans compromettre la fonctionnalité.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/homelab-vlan-segmentation

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Segmentation VLAN pour Homelab ?

Comment diviser un réseau domestique en VLANs isolés afin que les appareils IoT, les invités et vos PC principaux ne puissent pas communiquer entre eux. La mise à niveau de sécurité la plus impactante pour un réseau domestique.

Toutes les règles de pare-feu présentées ici ajoutent de l'isolation entre les segments — elles ne suppriment pas les protections existantes. Appliquez les modifications pendant une fenêtre de maintenance et vérifiez la connectivité entre les segments après chaque étape avant de passer à la suivante.

Quand l'utiliser

  • Configurer des VLANs sur un réseau domestique pour la première fois
  • Isoler les appareils IoT (ampoules connectées, caméras, téléviseurs) des appareils de confiance
  • Créer un réseau Wi-Fi invité qui ne peut pas accéder aux appareils domestiques
  • Expliquer le fonctionnement des VLANs à quelqu'un qui n'est pas familier avec le concept
  • Configurer les ports trunk, les ports access et le mappage SSID-VLAN
  • Résoudre les problèmes de routage inter-VLAN ou de règles de pare-feu sur pfSense/OPNsense/UniFi

Comment ça fonctionne

Sans VLANs — réseau plat :
  Tous les appareils sur 192.168.1.0/24
  Smart TV (potentiel malware) → peut accéder à votre NAS, vos PC, tout

Avec VLANs :
  VLAN 10 — Confiance    192.168.10.0/24  (PC, téléphones, laptops)
  VLAN 20 — IoT          192.168.20.0/24  (Smart TV, ampoules, caméras)
  VLAN 30 — Serveurs     192.168.30.0/24  (NAS, Pi, VMs)
  VLAN 40 — Invité       192.168.40.0/24  (Wi-Fi visiteur)
  VLAN 99 — Gestion      192.168.99.0/24  (Interfaces web switch/AP)

  Smart TV → bloquée pour atteindre 192.168.10.0/24 et 192.168.30.0/24
  Invités → internet uniquement, ne peuvent voir aucun appareil domestique

Modèle de conception VLAN

VLAN  Nom          Sous-réseau           Passerelle         Objectif
10    confiance    192.168.10.0/24       192.168.10.1       PC, téléphones, laptops
20    iot          192.168.20.0/24       192.168.20.1       Appareils domotiques
30    serveurs     192.168.30.0/24       192.168.30.1       NAS, Pi, auto-hébergé
40    invité       192.168.40.0/24       192.168.40.1       Wi-Fi visiteur
99    gestion      192.168.99.0/24       192.168.99.1       Interfaces web équipement réseau

Exemples

Homelab typique avec point d'accès UniFi et switch géré :

Scénario : Maison de 3 chambres, UniFi Dream Machine + switch UniFi 8 ports + 2 points d'accès

VLAN 10 — Confiance    192.168.10.0/24   MacBook, iPhones, iPad
VLAN 20 — IoT          192.168.20.0/24   Nest thermostat, Philips Hue, Ring sonnette, Smart TV
VLAN 30 — Serveurs     192.168.30.0/24   Synology NAS (192.168.30.10), Pi-hole (192.168.30.2)
VLAN 40 — Invité       192.168.40.0/24   Wi-Fi visiteur — internet uniquement

Mappage SSID → VLAN :
  "Maison"     → VLAN 10 (WPA2, mot de passe fort, appareils de confiance uniquement)
  "IoT"        → VLAN 20 (WPA2, mot de passe séparé, imprimé sur le routeur pour la configuration)
  "Invité"     → VLAN 40 (WPA2, mot de passe simple que vous pouvez partager librement)

Comportement des ports du switch :
  Port 1  → trunk vers routeur (VLANs taggés 10,20,30,40,99)
  Port 2  → trunk vers points d'accès (VLANs taggés 10,20,40 ; le point d'accès gère le marquage par SSID)
  Port 3  → access VLAN 30 (NAS — non taggé, aucune conscience VLAN nécessaire)
  Port 4  → access VLAN 30 (Pi-hole — non taggé)
  Port 5–8 → access VLAN 10 (postes de travail filaires)

Règles de pare-feu appliquées (toutes les règles ajoutent de l'isolation, aucune ne supprime les protections existantes) :
  IoT → Confiance : BLOQUER
  IoT → Serveurs : BLOQUER sauf 192.168.30.2:53 (DNS Pi-hole autorisé)
  IoT → Internet : AUTORISER
  Invité → Réseaux locaux : BLOQUER
  Invité → Internet : AUTORISER
  Confiance → partout : AUTORISER

Configuration UniFi

Créer des réseaux dans le contrôleur UniFi

Paramètres → Réseaux → Créer un nouveau réseau

Pour chaque VLAN :
  Nom : IoT
  Objectif : Corporate  (donne DHCP + routage)
  ID VLAN : 20
  Réseau : 192.168.20.0/24
  Adresse IP de passerelle : 192.168.20.1
  DHCP : Activer
  Plage DHCP : 192.168.20.100 – 192.168.20.254

Mapper les SSID aux VLANs (UniFi)

Paramètres → WiFi → Créer un nouveau WiFi

  Nom : IoT-Network
  Mot de passe : <mot de passe séparé>
  Réseau : IoT  ← sélectionnez votre VLAN ici
  # Tous les appareils se connectant à ce SSID atterrissent dans le VLAN 20

  Nom : Invité
  Mot de passe : <mot de passe invité>
  Réseau : Invité
  Politique Invité : Activer  ← isole également les invités entre eux

Règles de pare-feu UniFi (Règles de trafic)

Paramètres → Trafic et Sécurité → Règles de trafic

# Bloquer l'IoT pour atteindre le VLAN de confiance
  Action : Bloquer
  Catégorie : Réseau local
  Source : IoT (192.168.20.0/24)
  Destination : Confiance (192.168.10.0/24)

# Autoriser l'IoT à atteindre internet uniquement
  Action : Autoriser
  Source : IoT
  Destination : Internet

# Bloquer l'Invité de tous les réseaux locaux
  Action : Bloquer
  Source : Invité
  Destination : Réseaux locaux

Configuration pfSense / OPNsense

Créer des VLANs

Interfaces → Affectations → VLANs → Ajouter

  Interface parente : em1  (votre carte réseau LAN)
  Tag VLAN : 20
  Description : IoT

# Répéter pour chaque VLAN, puis affecter chaque VLAN à une interface :
Interfaces → Affectations → Ajouter
  Sélectionnez le VLAN que vous avez créé → cliquez sur Ajouter
  Activez l'interface, définissez l'IP sur l'adresse de passerelle (192.168.20.1/24)

DHCP pour chaque VLAN

Services → Serveur DHCP → Sélectionnez votre interface VLAN

  Activer DHCP
  Plage : 192.168.20.100 à 192.168.20.254
  Serveurs DNS : 192.168.30.2  ← Adresse IP du Pi-hole si vous en avez un

Règles de pare-feu (pfSense/OPNsense)

# Les règles sont traitées de haut en bas, la première correspondance gagne.

# Sur l'interface IoT (VLAN 20) :
  Règle 1 : Autoriser IoT → DNS Pi-hole  ← DOIT venir avant la règle de blocage RFC1918
    Protocole : UDP/TCP
    Source : réseau IoT
    Destination : 192.168.30.2 port 53
    Action : Autoriser

  Règle 2 : Bloquer IoT → RFC1918 (toutes les plages IP privées)
    Protocole : any
    Source : réseau IoT
    Destination : RFC1918  (192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12)
    Action : Bloquer

  Règle 3 : Autoriser IoT → internet
    Protocole : any
    Source : réseau IoT
    Destination : any
    Action : Autoriser

# Sur l'interface Confiance (VLAN 10) :
  Tout autoriser (les appareils de confiance peuvent atteindre tout)
    Source : réseau Confiance
    Destination : any
    Action : Autoriser

# Exceptions supplémentaires pour les appareils IoT qui ont besoin de services locaux spécifiques :
  Insérer avant la Règle 2 (le bloc RFC1918) :
    Protocole : TCP
    Source : réseau IoT
    Destination : 192.168.30.x port 8123  ← Home Assistant
    Action : Autoriser

Configuration MikroTik

# Étape 1 : Créer un pont avec filtrage VLAN activé
/interface bridge
add name=bridge vlan-filtering=yes

# Étape 2 : Ajouter les ports physiques au pont
# Port trunk vers routeur/liaison montante (taggé pour tous les VLANs)
/interface bridge port
add bridge=bridge interface=ether1 frame-types=admit-only-vlan-tagged

# Port access pour les appareils de confiance (VLAN 10 non taggé)
/interface bridge port
add bridge=bridge interface=ether2 pvid=10 frame-types=admit-only-untagged-and-priority-tagged

# Port access pour les appareils IoT (VLAN 20 non taggé)
/interface bridge port
add bridge=bridge interface=ether3 pvid=20 frame-types=admit-only-untagged-and-priority-tagged

# Étape 3 : Définir quels VLANs sont autorisés sur quels ports
/interface bridge vlan
add bridge=bridge tagged=ether1 untagged=ether2 vlan-ids=10
add bridge=bridge tagged=ether1 untagged=ether3 vlan-ids=20

# Étape 4 : Créer des interfaces VLAN sur le pont (adresses IP de passerelle)
/interface vlan
add interface=bridge name=vlan10 vlan-id=10
add interface=bridge name=vlan20 vlan-id=20

# Étape 5 : Attribuer les adresses IP de passerelle
/ip address
add interface=vlan10 address=192.168.10.1/24
add interface=vlan20 address=192.168.20.1/24

# Étape 6 : Pools DHCP et serveurs
/ip pool
add name=pool-trusted ranges=192.168.10.100-192.168.10.254
add name=pool-iot ranges=192.168.20.100-192.168.20.254

/ip dhcp-server
add interface=vlan10 address-pool=pool-trusted name=dhcp-trusted
add interface=vlan20 address-pool=pool-iot name=dhcp-iot

/ip dhcp-server network
add address=192.168.10.0/24 gateway=192.168.10.1
add address=192.168.20.0/24 gateway=192.168.20.1

# Étape 7 : Pare-feu — bloquer l'IoT pour atteindre le VLAN de confiance
/ip firewall filter
add chain=forward src-address=192.168.20.0/24 dst-address=192.168.10.0/24 \
    action=drop comment="Bloquer IoT vers Confiance"

Ports Trunk vs Access du Switch

# Port trunk : transporte plusieurs VLANs (taggés) — relie switch-à-switch, switch-à-routeur, switch-à-point d'accès
# Port access : transporte un seul VLAN (non taggé) — relie aux périphériques finaux (PC, caméra, NAS)

# Un port de switch géré connecté à votre routeur doit être un trunk :
  VLANs autorisés : 10, 20, 30, 40, 99

# Un port connecté à un PC doit être un port access :
  VLAN : 10 (confiance)
  Pas de marquage — le PC ne connaît pas et ne se soucie pas des VLANs

# Un port connecté à un point d'accès doit être un trunk :
  Le point d'accès marque le trafic de chaque SSID avec le bon ID VLAN
  VLANs autorisés : 10, 20, 40  (quels que soient les SSID que le point d'accès dessert)

Anti-patrons

# MAUVAIS : Créer des VLANs sans ajouter de règles de pare-feu
# Les VLANs sans règles de pare-feu n'offrent pas de sécurité — le routage inter-VLAN est ouvert par défaut
# BON : Ajouter des règles de blocage explicites immédiatement après la création des VLANs

# MAUVAIS : Mettre le Pi-hole dans le VLAN IoT
# Les appareils IoT peuvent l'atteindre mais les appareils de confiance ne le peuvent pas (sans règles supplémentaires)
# BON : Pi-hole dans le VLAN Serveurs avec une règle autorisant tous les VLANs à atteindre le port 53

# MAUVAIS : VLAN natif égal au VLAN de gestion
# Le trafic non taggé atterrissant dans votre VLAN de gestion permet des attaques de saut de VLAN (VLAN hopping)
# BON : Utiliser un VLAN dédié inutilisé comme VLAN natif (ex : VLAN 999), garder le trafic de gestion taggé

# MAUVAIS : Même mot de passe Wi-Fi pour le SSID IoT et le SSID de confiance
# Quiconque apprend le mot de passe peut connecter des appareils IoT au mauvais segment

Bonnes pratiques

  • Commencez avec 4 VLANs : Confiance, IoT, Serveurs, Invité — ajoutez-en plus selon les besoins
  • Placez Pi-hole dans le VLAN Serveurs (192.168.30.x)
  • Ajoutez une règle de pare-feu autorisant le DNS (port 53) depuis tous les VLANs vers l'IP du Pi-hole — avant toute règle de blocage RFC1918
  • Testez l'isolation après chaque changement de règle : depuis le VLAN IoT, essayez de pinguer un appareil de confiance — cela doit échouer
  • Utilisez un VLAN de gestion pour les interfaces web du switch et du point d'accès, et restreignez l'accès au seul VLAN de confiance
  • Documentez votre conception VLAN dans un tableau (ID VLAN, nom, sous-réseau, objectif)

Compétences connexes

  • homelab-network-setup
  • homelab-pihole-dns
  • homelab-wireguard-vpn

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Skills associés