02 draft L0-network validé 2026-05-21

Switches TP-Link — VLAN config salon + garage

Switches TP-Link — VLAN config

Setup minimum pour homelab minfra-v2 : 2 switches managés L2 avec VLAN 802.1Q. Permet à OPNsense (sur coruscant) de router LAN/WAN/DMZ proprement.

Architecture

Topologie

Salon : box SFR + naboo + TV connectés au TP-Link salon. Garage : coruscant (Proxmox + OPNsense VM) + jedha NAS + autres serveurs sur TP-Link garage. Trunk Cat6 ~40m relie salon p8 ↔ garage p1, porte 3 VLANs.

VLANs

IDNomSubnetUsage
1Default10.0.1.0/24LAN (vlan natif, untagged)
20WAN192.168.1.0/24Box SFR ↔ OPNsense WAN
30DMZ10.0.2.0/24Containers/serveurs Docker exposés

Vlan natif 1 = LAN car coruscant a IP 10.0.1.30 directement sur vmbr0 untagged (PVE bridge vlan-aware).

802.1Q VLAN Configuration

VLAN IDNameUntagged PortsTagged Ports
1Default2-8
20WAN18
30DMZ8

⚠️ Port 1 retiré du VLAN 1 Default — isole box SFR du LAN (sinon box répond DHCP 192.168.1.x aux clients LAN).

Port PVID

PortÉquipementPVID
g1Box SFR20
g2naboo (PC)1
g3Coin TV / Apple TV1
g4-g7LAN libre1
g8Trunk → garage1

802.1Q VLAN Configuration

VLAN IDNameUntagged PortsTagged Ports
1Default1-8
20WAN1, 4
30DMZ1, 4

Port PVID

PortÉquipementPVID
g1Trunk → salon1
g2LIBRE1
g3endor (Mac Mini)1
g4coruscant (trunk OPNsense)1
g5yavin4-kvm1
g6dagobah (RPi)1
g7jedha (NAS)1
g8yavin4 ESXi (trunk legacy)1

⚠️ Coruscant p4 doit recevoir vlan 1 untagged (LAN OPNsense) + tagged 20 (WAN) + tagged 30 (DMZ) → bridge vmbr0 vlan-aware Linux décode chaque vlan vers les NICs virtuelles VM 200 (OPNsense).

Pièges à éviter

  1. Save Config explicite : Apply ≠ Save. Sans Save → perdu au reboot switch.
  2. Box SFR isolée : port box SFR PVID 20 + Not Member vlan 1 untagged. Sinon DHCP race box SFR vs OPNsense Kea.
  3. VLAN 10 inutile : ancien plan (vlan 10 = LAN) abandonné. LAN = vlan natif 1 → simplifie config + matche coruscant.
  4. PVID g8 (trunk salon) = 1 : pour porter native vlan 1 untagged (LAN) vers trunk.
  5. OPNsense Kea conflit dnsmasq : dnsmasq DHCP doit être stoppé (port 67). Géré par Ansible role opnsense (task dhcp: désactiver dnsmasq DHCP).

Vérification

# Depuis naboo : ping OPNsense LAN
ping 10.0.1.1

# Internet via OPNsense WAN
ping 1.1.1.1

# Switch garage joignable
ping 10.0.1.3

# DHCP test depuis PC sur tp-link p3
ipconfig /release ; ipconfig /renew  # Windows
# Doit obtenir 10.0.1.X via Kea OPNsense

Debug

Voir DHCP arriver côté coruscant :

ssh root@10.0.1.30 'tcpdump -i nic0 -nn -e -c 10 udp port 67 or 68'

Voir DHCP côté OPNsense LAN :

ssh -J root@10.0.1.30 root@10.0.1.1 '/bin/sh -c "tcpdump -i vtnet0 -nn -e -c 10 udp port 67 or 68"'

Logs Kea :

ssh -J root@10.0.1.30 root@10.0.1.1 '/bin/sh -c "tail -50 /var/log/kea/latest.log"'

Conflit dnsmasq DHCP :

ssh -J root@10.0.1.30 root@10.0.1.1 '/bin/sh -c "sockstat -l4 | grep :67"'
# Doit voir kea-dhcp4 uniquement, PAS dnsmasq