Ottimizzo la tua rete, proteggo il tuo futuro!

Configurazione VLAN per Condomini: Isolamento e Sicurezza per Ogni Appartamento.

Configurazione VLAN condomini:
Nel laboratorio di oggi ho replicato una situazione sempre più comune:
condividere una connessione internet tra più appartamenti in un condominio, ma non mi sono fermato solo a questo, ho anche creato per ogni appartamento una rete privata con possibilità di accedere da remoto in VPN!

Avere un’unica connessione condivisa può risultare molto pratico, riducendo i costi per i condomini e semplificando la gestione della rete.


Per risolvere questa esigenza, utilizzeremo Mikrotik e le VLAN, che permettono di suddividere la connessione in reti separate per ciascun appartamento.

Lo schema è semplice: abbiamo un Router R1 che gestisce la connessione internet e gestisce le diverse VLAN.

Per ogni piano c’è uno switch che distribuisce le reti, e nell’area comune un access point assicura la copertura wireless.

Come dicevo all’inizio, la parte interessante di questa configurazione è che ogni appartamento ha la sua rete privata, completamente isolata dalle altre.
Ciò significa che i condomini non possono accedere alle reti altrui, garantendo la privacy e la sicurezza.

Inoltre, è possibile assegnare diverse larghezze di banda a seconda delle esigenze di ciascun appartamento, ottimizzando l’utilizzo della connessione.

Se è disponibile un indirizzo IP pubblico (anche Dinamico), si può configurare una VPN, permettendo ai condomini di accedere alla propria rete anche quando sono fuori casa, migliorando la flessibilità e la sicurezza.

Nell’area comune, ogni utente può accedere alla propria rete Wi-Fi personale, evitando interferenze o rallentamenti causati da altri dispositivi.

Il tutto è gestibile da remoto, rendendo semplici sia le configurazioni iniziali che eventuali modifiche future.

Questa soluzione è ideale per condomini o piccoli complessi, dove una connessione centralizzata riduce i costi e aumenta l’efficienza della rete.


Ora vi mostro le configurazioni dei vari apparati:

Partiamo dal router R1:

Creo un bridge chiamato bridgeLAN e attivo il filtraggio VLAN per gestire il traffico di rete con separazione tra VLAN.

/interface bridge
add ingress-filtering=no name=bridgeLAN vlan-filtering=yes

Aggiungo 4 interfacce WireGuard, una per ogni VLAN (10, 20, 30, e 40), ciascuna con una porta di ascolto dedicata

/interface wireguard
add listen-port=13231 mtu=1420 name=WG-VLAN10 private-key=\
“UKC9Ulb2Kp/RcCbFZNszybk04VpdSVDNih21/+B6MXY=”
add listen-port=13232 mtu=1420 name=WG-VLAN20 private-key=\
“EBL/416pdc7swgMYjMJEaug4bAJ7HfNWnQbq0N8kUnI=”
add listen-port=13233 mtu=1420 name=WG-VLAN30 private-key=\
“qDx7tNUQbUDf8d7ELL+X5gwpM584+OtKIvhIByI4OVY=”
add listen-port=13234 mtu=1420 name=WG-VLAN40 private-key=\
“AA4R6C8bY4wOI7s8x5vbxz7NVm1bKC5ipduhI10XKFY=”

Configuro le VLAN 10, 20, 30 e 40 su bridgeLAN

/interface vlan
add interface=bridgeLAN mtu=1496 name=vlan10 vlan-id=10
add interface=bridgeLAN mtu=1496 name=vlan20 vlan-id=20
add interface=bridgeLAN mtu=1496 name=vlan30 vlan-id=30
add interface=bridgeLAN mtu=1496 name=vlan40 vlan-id=40

Configuro il bonding utilizzando LACP (802.3ad) per aggregare le interfacce fisiche e migliorare la ridondanza verso i due switch.

/interface bonding
add mode=802.3ad name=bondingToSW1 slaves=ether5,ether6 transmit-hash-policy=\
layer-2-and-3
add mode=802.3ad name=bondingToSW2 slaves=ether3,ether4 transmit-hash-policy=\
layer-2-and-3

Imposto pool di indirizzi IP per ogni VLAN e un pool separato per la gestione (mgmt).

/ip pool
add name=dhcp_pool-vlan10 ranges=192.168.10.200-192.168.10.254
add name=dhcp_pool-vlan20 ranges=192.168.20.200-192.168.20.254
add name=dhcp_pool-vlan30 ranges=192.168.30.200-192.168.30.254
add name=dhcp_pool-vlan40 ranges=192.168.40.200-192.168.40.254
add name=dhcp_pool-mgmt ranges=172.16.24.240-172.16.24.254

Configuro un server DHCP per ogni VLAN, assegnando gli indirizzi dai rispettivi pool con un tempo di lease di 1 ora.

/ip dhcp-server
add address-pool=dhcp_pool-vlan10 interface=vlan10 lease-time=1h name=\
dhcp-vlan10
add address-pool=dhcp_pool-vlan20 interface=vlan20 lease-time=1h name=\
dhcp-vlan20
add address-pool=dhcp_pool-vlan30 interface=vlan30 lease-time=1h name=\
dhcp-vlan30
add address-pool=dhcp_pool-vlan40 interface=vlan40 lease-time=1h name=\
dhcp-vlan40
add address-pool=dhcp_pool-mgmt interface=bridgeLAN lease-time=4h name=\
dhcp-mgmt

Imposto delle limitazioni di velocità per ogni VLAN, in questo caso con diverse velocità massime in base alle eventuali richieste.

/queue simple
add max-limit=10M/15M name=VLAN10 target=192.168.10.0/24
add max-limit=10M/40M name=VLAN40 target=192.168.40.0/24
add max-limit=10M/30M name=VLAN30 target=192.168.30.0/24
add max-limit=10M/20M name=VLAN20 target=192.168.20.0/24

Aggiungo i bonding al bridge.

/interface bridge port
add bridge=bridgeLAN ingress-filtering=no interface=bondingToSW1
add bridge=bridgeLAN ingress-filtering=no interface=bondingToSW2

Configuro le VLAN sul bridge, taggando le interfacce bonding e il bridge stesso per garantire che il traffico VLAN sia instradato correttamente.

/interface bridge vlan
add bridge=bridgeLAN tagged=bridgeLAN,bondingToSW1,bondingToSW2 vlan-ids=10
add bridge=bridgeLAN tagged=bridgeLAN,bondingToSW1,bondingToSW2 vlan-ids=20
add bridge=bridgeLAN tagged=bridgeLAN,bondingToSW1,bondingToSW2 vlan-ids=30
add bridge=bridgeLAN tagged=bridgeLAN,bondingToSW1,bondingToSW2 vlan-ids=40

Aggiungo un peer WireGuard, in questo specifico caso ne ho fatto solo uno di test.

/interface wireguard peers
add allowed-address=10.10.10.2/30 endpoint-port=13231 interface=WG-VLAN10 \
public-key=”SqXnQ+i61bAqhLX4KCL707Xmx6mbLdctp+tV6aOXLh0=”

Assegno gli indirizzi IP a ciascuna VLAN, al bridge LAN e alle interfacce WireGuard.

/ip address
add address=192.168.10.1/24 interface=vlan10 network=192.168.10.0
add address=192.168.20.1/24 interface=vlan20 network=192.168.20.0
add address=192.168.30.1/24 interface=vlan30 network=192.168.30.0
add address=192.168.40.1/24 interface=vlan40 network=192.168.40.0
add address=172.16.24.1/24 interface=bridgeLAN network=172.16.24.0
add address=10.10.10.1/30 interface=WG-VLAN10 network=10.10.10.0
add address=10.10.20.1/30 interface=WG-VLAN20 network=10.10.20.0
add address=10.10.30.1/30 interface=WG-VLAN30 network=10.10.30.0
add address=10.10.40.1/30 interface=WG-VLAN40 network=10.10.40.0

Configuro un client DHCP sull’interfaccia ether1 per ottenere automaticamente un indirizzo IP da un server esterno.

/ip dhcp-client
add interface=ether1

Definisco le reti gestite dai server DHCP, specificando i gateway e i server DNS per ogni subnet.

/ip dhcp-server network
add address=172.16.24.0/24 dns-server=1.1.1.2 gateway=172.16.24.1
add address=192.168.10.0/24 dns-server=1.1.1.2 gateway=192.168.10.1
add address=192.168.20.0/24 dns-server=1.1.1.2 gateway=192.168.20.1
add address=192.168.30.0/24 dns-server=1.1.1.2 gateway=192.168.30.1
add address=192.168.40.0/24 dns-server=1.1.1.2 gateway=192.168.40.1

Imposto i server DNS

/ip dns
set servers=8.8.8.8,1.1.1.1

Creo liste di indirizzi per gestire il traffico tra le varie VLAN e isolare il traffico indesiderato.

/ip firewall address-list
add address=192.168.20.0/24 list=ForVLAN10
add address=192.168.30.0/24 list=ForVLAN10
add address=192.168.40.0/24 list=ForVLAN10
add address=172.16.24.0/24 list=ForVLAN10
add address=192.168.10.0/24 list=ForVLAN20
add address=192.168.30.0/24 list=ForVLAN20
add address=192.168.40.0/24 list=ForVLAN20
add address=172.16.24.0/24 list=ForVLAN20
add address=192.168.10.0/24 list=ForVLAN30
add address=192.168.20.0/24 list=ForVLAN30
add address=192.168.40.0/24 list=ForVLAN30
add address=172.16.24.0/24 list=ForVLAN30
add address=192.168.10.0/24 list=ForVLAN40
add address=192.168.20.0/24 list=ForVLAN40
add address=192.168.30.0/24 list=ForVLAN40
add address=172.16.24.0/24 list=ForVLAN40

Definisco regole nel firewall per proteggere la rete, accettando il traffico desiderato come ping, connessioni WireGuard e WinBox, e bloccando il traffico indesiderato tra le VLAN e altre connessioni non autorizzate.

/ip firewall filter
add action=drop chain=input comment=”Drop Invalid” connection-state=invalid \
in-interface=ether1
add action=accept chain=input comment=”Accept ping” in-interface=ether1 \
protocol=icmp
add action=accept chain=input comment=”Accept established and related” \
connection-state=established,related in-interface=ether1
add action=accept chain=input comment=”Accept Wireguard Connection” dst-port=\
13231,13232,13233,13234 in-interface=ether1 protocol=udp
add action=accept chain=input comment=”Accept WinBox” in-interface=ether1 \
port=8291 protocol=tcp
add action=drop chain=input comment=”block everything” in-interface=ether1
add action=drop chain=forward dst-address-list=ForVLAN30 src-address=\
192.168.30.0/24
add action=drop chain=forward dst-address-list=ForVLAN20 src-address=\
192.168.20.0/24
add action=drop chain=forward dst-address-list=ForVLAN40 src-address=\
192.168.40.0/24
add action=drop chain=forward dst-address-list=ForVLAN10 src-address=\
192.168.10.0/24
add action=drop chain=forward dst-address-list=ForVLAN10 in-interface=\
WG-VLAN10
add action=drop chain=forward dst-address-list=ForVLAN40 in-interface=\
WG-VLAN40
add action=drop chain=forward dst-address-list=ForVLAN30 in-interface=\
WG-VLAN30
add action=drop chain=forward dst-address-list=ForVLAN20 in-interface=\
WG-VLAN20
add action=drop chain=forward comment=”Drop Invalid FW” connection-state=\
invalid in-interface=ether1
add action=accept chain=forward comment=”Accept established and related” \
connection-state=established,related in-interface=ether1
add action=drop chain=forward comment=”block everything” in-interface=ether1

Applico una regola di masquerade per permettere ai dispositivi della rete di uscire su internet tramite l’interfaccia ether1.

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1

Disabilito servizi di accesso remoto non necessari (come Telnet e FTP) per aumentare la sicurezza del router.

/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes

Imposto il nome del router come R1 per identificarlo

/system identity
set name=R1

Questa configurazione mi permette di gestire in modo sicuro e organizzato la rete, separando il traffico tra VLAN, utilizzando WireGuard per le VPN e applicando regole firewall per proteggere il sistema.


Configurazione SW01:

Creo un bridge chiamato bridgeLAN e abilito il filtraggio VLAN, permettendo la gestione delle VLAN all’interno del bridge.

/interface bridge
add ingress-filtering=no name=bridgeLAN vlan-filtering=yes

Configuro il bonding tra le interfacce ether7 e ether8 con la modalità 802.3ad (LACP)

/interface bonding
add mode=802.3ad name=bondingToR1 slaves=ether7,ether8 transmit-hash-policy=\
layer-2-and-3

Aggiungo le interfacce ether1 e ether2 al bridge con VLAN ID predefinita (PVID) di 20, il che significa che il traffico non taggato che arriva su queste porte viene automaticamente assegnato alla VLAN 20.
Aggiungo ether3 al bridge con una PVID di 10 per instradare il traffico non taggato nella VLAN 10.
Disabilito le interfacce ether4, ether5, e ether6 nel bridge poiché non sono attualmente in uso onde evitare che qualcuno possa collegarsi e navigare nelle reti altrui.
Aggiungo l’interfaccia bondingToR1 al bridge per assicurarmi che tutto il traffico passi attraverso le interfacce aggregate.

/interface bridge port
add bridge=bridgeLAN comment=VLAN20 ingress-filtering=no interface=ether1 \
pvid=20
add bridge=bridgeLAN comment=VLAN20 ingress-filtering=no interface=ether2 \
pvid=20
add bridge=bridgeLAN comment=VLAN10 ingress-filtering=no interface=ether3 \
pvid=10
add bridge=bridgeLAN disabled=yes ingress-filtering=no interface=ether4
add bridge=bridgeLAN disabled=yes ingress-filtering=no interface=ether5
add bridge=bridgeLAN disabled=yes ingress-filtering=no interface=ether6
add bridge=bridgeLAN ingress-filtering=no interface=bondingToR1

Definisco le VLAN sul bridge:
VLAN 10 e VLAN 20 sono configurate come taggate su bridgeLAN e sul bond bondingToR1, il che significa che il traffico tra queste VLAN e l’altra estremità del bonding viene taggato correttamente.
VLAN 30 e VLAN 40 non disabilitate in quanto non richieste, le ho comunque messe perchè in caso di implementazione basta attivarle.

/interface bridge vlan
add bridge=bridgeLAN tagged=bridgeLAN,bondingToR1 vlan-ids=10
add bridge=bridgeLAN tagged=bridgeLAN,bondingToR1 vlan-ids=20
add bridge=bridgeLAN disabled=yes tagged=bridgeLAN,bondingToR1 vlan-ids=30
add bridge=bridgeLAN disabled=yes tagged=bridgeLAN,bondingToR1 vlan-ids=40

Aggiungo un client DHCP su bridgeLAN, permettendo al bridge di ottenere automaticamente un indirizzo IP dal server DHCP mgmt sulla rete.

/ip dhcp-client
add interface=bridgeLAN

Imposto il nome dello switch come SW01 per identificarlo

/system identity
set name=SW01


Configurazione SW02:

Creo un bridge chiamato bridgeLAN e abilito il filtraggio VLAN, permettendo la gestione delle VLAN all’interno del bridge.

/interface bridge
add ingress-filtering=no name=bridgeLAN vlan-filtering=yes

Configuro il bonding tra le interfacce ether7 e ether8 con la modalità 802.3ad (LACP)

/interface bonding
add mode=802.3ad name=bondingToR1 slaves=ether7,ether8 transmit-hash-policy=\
layer-2-and-3

Aggiungo il bonding al bridge, permettendo così il passaggio di tutto il traffico attraverso il bond.
Aggiungo l’interfaccia ether1 al bridge con PVID 40 per gestire il traffico non taggato della VLAN 40.
Aggiungo ether2 e ether3 al bridge con PVID 30 per gestire il traffico non taggato della VLAN 30.
Disabilito temporaneamente ether4 e ether5, nel bridge poiché non sono attualmente in uso onde evitare che qualcuno possa collegarsi e navigare nelle reti altrui.
Aggiungo l’interfaccia ether6 dove in questo caso è collegato l’access point

/interface bridge port
add bridge=bridgeLAN ingress-filtering=no interface=bondingToR1
add bridge=bridgeLAN comment=VLAN40 ingress-filtering=no interface=ether1 \
pvid=40
add bridge=bridgeLAN comment=VLAN30 ingress-filtering=no interface=ether2 \
pvid=30
add bridge=bridgeLAN comment=VLAN30 ingress-filtering=no interface=ether3 \
pvid=30
add bridge=bridgeLAN disabled=yes ingress-filtering=no interface=ether4
add bridge=bridgeLAN disabled=yes ingress-filtering=no interface=ether5
add bridge=bridgeLAN ingress-filtering=no interface=ether6

Definisco le VLAN sul bridge, taggando sia il bridge stesso (bridgeLAN), il bond (bondingToR1), e la ether6 dove è collegato l’AP per tutte le VLAN (10, 20, 30, e 40).

/interface bridge vlan
add bridge=bridgeLAN tagged=bridgeLAN,bondingToR1,ether6 vlan-ids=10
add bridge=bridgeLAN tagged=bridgeLAN,bondingToR1,ether6 vlan-ids=20
add bridge=bridgeLAN tagged=bridgeLAN,bondingToR1,ether6 vlan-ids=30
add bridge=bridgeLAN tagged=bridgeLAN,bondingToR1,ether6 vlan-ids=40

Aggiungo un client DHCP su bridgeLAN, permettendo al bridge di ottenere automaticamente un indirizzo IP dal server DHCP mgmt sulla rete.

/ip dhcp-client
add interface=bridgeLAN

Imposto il nome dello switch come SW02 per identificarlo.

/system identity
set name=SW02


Manca la configurazione dell’access point in quanto per il test virtuale ho usato sempre uno switch, per quanto riguarda la wifi sono personalmente più propenso ad usare apparati diversi da mikrotik come esempio Ubiquiti o Ruckus.

Infine in questa immagine si può notare dalla schermata dei lease del router R1 la corretta configurazione delle VLAN in quanto i vari dispositivi collegati vengono assegnati correttamente gli ip delle rispettive VLAN

In sintesi, la configurazione VLAN condomini non solo facilita la gestione della rete, ma garantisce anche la sicurezza e l’isolamento necessari per ogni appartamento, rendendo la soluzione ideale per i moderni complessi residenziali.


Se ti appassiona il mondo Mikrotik, ho anche creato un corso completo dove tratto molte configurazioni pratiche! Lo trovi su Udemy a questo indirizzo.

Hai un’azienda ed hai bisogno di supporto o assistenza? Contattami direttamente! 🚀

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Come posso aiutarti?