m4nifest0-tech

Cerca nel sito

Networking

Segmentare la rete con le VLAN: schema di riferimento per un homelab

Perché dividere la rete in segmenti, uno schema di VLAN per gestione, server, client, IoT e ospiti, il bridge VLAN-aware di Proxmox VE e gli errori più comuni.
Pubblicato il Aggiornato il 6 min di letturaLivello: Intermedio

In una rete piatta ogni dispositivo può raggiungere tutti gli altri: la compromissione di una lampadina smart o del portatile di un ospite espone anche l'hypervisor e i backup. La segmentazione limita il raggio d'azione di un incidente (il cosiddetto blast radius) dividendo la rete in domini separati, con regole esplicite tra l'uno e l'altro. Lo schema di riferimento per un homelab si realizza con le VLAN 802.1Q e, su Proxmox VE, con un bridge VLAN-aware.

Perché segmentare

I vantaggi concreti sono tre. Il primo è il contenimento: un dispositivo compromesso raggiunge solo ciò che il suo segmento consente. Il secondo è la leggibilità delle policy, che si scrivono per ruolo («i dispositivi domestici non avviano connessioni verso i server») invece che per singolo indirizzo. Il terzo è la riduzione del traffico broadcast e multicast in ogni dominio.

Importante

Una VLAN separa il livello 2, ma non protegge da sola. La sicurezza dipende dal punto in cui i segmenti vengono instradati, cioè il firewall o il router, che deve applicare una policy restrittiva. Senza filtri tra le VLAN si ottiene solo una rete più complessa.

Schema di riferimento

Lo schema usa cinque segmenti. Ogni VLAN corrisponde a una sottorete IP distinta, documentata in un unico elenco; gli ID sono indicativi.

IDNomeContenuto tipico
10Gestioneinterfacce di amministrazione di hypervisor, switch, access point e server di backup
20Servermacchine virtuali, container, NAS e servizi interni
30Clientcomputer e portatili di uso quotidiano
40Domotica e IoTdispositivi smart, telecamere, stampanti
50Ospitidispositivi dei visitatori, solo accesso a Internet

La VLAN 1, predefinita su molti apparati, resta inutilizzata. Secondo le esigenze si aggiungono segmenti per storage, backup o accessi VPN; la rete di Corosync di un cluster Proxmox va invece separata e non instradata (si veda Cluster Proxmox VE a tre nodi).

Trunk e porte access

Il tag 802.1Q aggiunge 4 byte al frame Ethernet e contiene un identificatore a 12 bit: gli ID utilizzabili vanno da 1 a 4094. Sullo switch una porta è access quando trasporta una sola VLAN senza tag (dispositivi finali) ed è trunk quando trasporta più VLAN con tag (collegamenti tra apparati, hypervisor, access point).

PortaModalitàVLAN
Collegamento verso il firewalltrunktutte le VLAN, con tag
Nodo Proxmoxtrunksolo quelle usate da gestione e guest
Postazione di lavoroaccess30, senza tag
Access point Wi-Fitrunk30, 40 e 50 con tag, un SSID per VLAN

Sui trunk conviene elencare esplicitamente le VLAN ammesse invece di lasciarle passare tutte.

Default-deny tra segmenti

Il traffico tra segmenti è negato per impostazione predefinita: si aprono solo i flussi necessari, per sorgente, destinazione e servizio. Il firewall è stateful, quindi le risposte ai flussi consentiti sono ammesse automaticamente. La tabella è concettuale e non descrive regole reali: indica chi può avviare una connessione verso chi (n/a è lo stesso segmento).

Origine / destinazioneGestioneServerClientDomotica e IoTOspitiInternet
Gestionen/asìsìsìnosolo aggiornamenti
Servernon/anononosolo aggiornamenti
Clientsolo postazione di amministrazioneservizi specificin/adispositivi specificinosì
Domotica e IoTnosolo DNS e NTPnon/anolimitato
Ospitinonononon/asì

Le eccezioni si documentano una per una: chi, verso cosa, perché. L'accesso remoto via VPN (si veda WireGuard: accesso remoto e VPN site-to-site) va trattato come un segmento a sé, con regole proprie, invece di collocarlo direttamente nella gestione.

Bridge VLAN-aware su Proxmox

Con un bridge VLAN-aware un unico bridge (vmbr0) trasporta tutte le VLAN e ogni scheda di rete virtuale riceve il proprio tag. Nel file di configurazione del nodo:

/etc/network/interfaces (nodo1)
auto lo
iface lo inet loopback
 
iface eno1 inet manual
 
auto vmbr0
iface vmbr0 inet manual
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094
 
auto vmbr0.10
iface vmbr0.10 inet static
    address 192.0.2.11/24
    gateway 192.0.2.1

bridge-vids 2-4094 ammette sul bridge i tag da 2 a 4094; la VLAN 1 resta quella predefinita per il traffico senza tag, che nello schema non si usa. L'indirizzo di gestione dell'host sta su un'interfaccia VLAN (vmbr0.10) e non sulla rete senza tag. Alle VM e ai container il tag si assegna dal campo «VLAN Tag» della scheda di rete: 20 per una VM del segmento server, 50 per un guest di prova nella rete ospiti. Le modifiche manuali al file si applicano con ifreload -a, che richiede ifupdown2.

Sul nodo, da console locale o fuori banda
ifreload -a

Attenzione

Una configurazione di rete errata può rendere il nodo irraggiungibile, come avverte la stessa documentazione di Proxmox VE. Conviene applicare le modifiche da console locale o fuori banda, in una finestra di manutenzione, con un modo per tornare alla configurazione precedente. Sul lato switch la porta del nodo deve già essere un trunk con le VLAN corrette.

Suggerimento

Per configurazioni più articolate Proxmox VE offre anche le zone VLAN dell'SDN, gestite dall'interfaccia web.

Errori comuni

  • VLAN nativa e VLAN 1. I frame senza tag su un trunk finiscono nella VLAN nativa; se le due estremità non concordano, il traffico passa da un segmento all'altro. Conviene non usare la VLAN 1 e impostare su ogni trunk una nativa inutilizzata, che riduce anche il rischio di VLAN hopping con doppio tag.
  • DHCP e DNS dimenticati. Ogni VLAN ha bisogno del proprio ambito DHCP (o di un relay), di un gateway e di un DNS raggiungibile. Una VLAN nuova «non funziona» quasi sempre perché ne manca uno.
  • mDNS e discovery. Il multicast non attraversa i router: stampanti, casting e dispositivi domestici individuati con mDNS spariscono tra segmenti. Si risolve con un reflector mDNS (per esempio quello di Avahi o la funzione equivalente del firewall) limitato ai segmenti necessari, aprendo solo le porte dei servizi.
  • Trunk incompleti. Una VLAN assente dall'elenco ammesso su un solo apparato interrompe il percorso: va verificata l'intera catena.
  • Gestione sullo stesso segmento dei guest. Un'interfaccia dell'hypervisor raggiungibile da ogni VM annulla gran parte del beneficio. SSH e interfaccia web restano accessibili dalla sola VLAN di gestione (si veda la checklist di hardening SSH su Debian).

Articoli correlati