Unifi Network VLAN setup with IoT and access to Pi-hole
Introduction
This guide covers the setup of VLANs and WiFi networks using the Unifi Network Application. It also provides instructions for configuring the firewall to enable devices on any VLAN to utilize the Pi-hole.
I have created the following networks:
- LAN (this is the default network and renamed to LAN) - very trusted - this contains all network equipment
- SERVER-VLAN - very trusted - this contains servers and a NAS
- CLIENT-VLAN - trusted - this contains clients like desktops, laptops, tablets and phones
- IOT-VLAN - not trusted - this contains smart(home) devices and media players
- GUEST-VLAN - not trusted - this contains not trusted clients including devices from work
Setup
Network setup
Determine the VLAN ID each VLAN should have
For the IOT-VLAN I use VLAN ID 20 for example. This number will match the Gateway IP/Subnet: 192.168.20.0/24.

Create the IOT-VLAN
-
Go to
SettingsandNetworks -
Create a
New Virtual NetworkAll settings remain at their default values except for the modifications detailed below.Instructions:
- Required Network Name:
IOT-VLAN - Required Gateway IP/Subnet: Uncheck
Auto-Scale Networkand change the Host Address to192.168.20.1with Netmask24
Advanced:
First selectManual.- Required VLAN ID:
20 - Optional Multicast DNS: please read [[Unifi Network - Setup Chromecast between VLANs]] for more information
DHCP:
- Required DHCP Range Start:
192.168.20.150 - Required DHCP Range Stop:
192.168.20.254
Now expand
Show optionsafterDHCP Service Management.- Optional DNS Server: In my case I unchecked
Autoand added the IP address of my Pi-hole - Optional Domain Name:
home.arpa
- Required Network Name:
-
Click
Add
Repeat the above steps for any other VLAN.
Port management
Now that the networks/VLANs have been created, we can adjust the switch port settings. With this we ensure that wired devices use the correct VLAN and, for example, will receive the correct IP address. For wireless devices, we will create the corresponding WiFi networks in the WiFi Setup part.
Change the port settings
-
Go to
Ports, or alternatively go toUnifi Devices, click on a switch or the router and click thePort Managerbutton -
Go to the tab
Ports, if this is not already selected -
Now you can select a port and change the settings
For example:
- Optional Name:
P1Reader- this is the name of the IoT device - Required Native VLAN / Network:
IOT-VLAN (20) - Required Tagged VLAN Management:
Block All - Optional PoE: you can turn PoE off if the device does not need Power over Ethernet

- Optional Name:
-
And finally click
Apply Changes.
Repeat this for all ports for which it is necessary to change the port settings.
Check the results
To check if the port settings are working properly, do the following:
-
Go to
Client Devices -
And there is the P1Reader within the IOT-VLAN network and a corresponding IP address:

-
Give the client device a fixed IP address if needed
- Optional Click on the device and go to
Settingsand give it a fixed IP address, which I did for the above P1Reader example
- Optional Click on the device and go to
WiFi setup
To ensure that wireless devices connect to the correct network, I have created three WiFi networks:
- WiFi-Client
- WiFi-IoT
- WiFi-Guest
All settings remain at their default values except for the modifications detailed below.
-
Go to
SettingsandWiFi -
Click
Create New:Instructions:
- Required Name: for example
WiFi-IoT - Required Password: Your password
- Required Network: for example
IOT-VLAN- or linkWiFi-ClienttoCLIENT-VLANandWiFi-GuesttoGUEST-VLAN
Advanced:
First selectManual.- Required Client Device Isolation: I have enabled this only for the
WiFi-Guestnetwork - Optional WiFi Speed Limit:
Default- for theWiFi-Guestnetwork I have created a guest profile that limits the bandwidth slightly - Optional Multicast Enhancement and Multicast and Broadcast Control: please read this note for more information
- Optional MAC Address Filter: I have enabled the filter for
WiFi-ClientandWiFi-IoT - Optional Security Protocol: use
WPA2for backwards compatibility, so I usedWPA2forWiFi-IoTenWPA2/WPA3forWiFi-GuestandWiFi-Client. At some point I will completely switch toWPA3 - Optional Group Rekey Interval:
Enable 3600 seconds- for increased security
- Required Name: for example
-
And finally click
Add WiFi Network.
Repeat the above steps for any other WiFi network.
Firewall setup
To make the VLANs work properly the first rule I created is to allow established/related sessions from client devices. Then I made sure traffic between the networks is no longer possible. Blocking inter-VLAN routing is also described by Ubiquiti here.
RFC1918 IP group
First create the IP Group needed for blocking inter-VLAN routing:
- Go to
SettingsandProfiles - Go to tab
IP Groups - Create a new profile
Instructions:
- Required Profile Name:
RFC1918 - Required Type:
IPv4 Address/Subnet - Required Address: add
10.0.0.0/8,172.16.0.0/12, and192.168.0.0/16
- Required Profile Name:
- Click the
Addbutton (all the way at the bottom left)

You can now use this IP group when creating the firewall rule.
Select LAN In rules
- Go to
SettingsandSecurity - Go to tab
Traffic & Firewall Rules - Go to
LANrules and selectLAN In
All settings remain at their default values except for the modifications detailed below.
Rule allow established/related sessions
-
Click
Create Entryand make sureRule Typeis set toAdvancedInstructions:
- Required Type:
LAN In - Required Name:
allow established/related sessions, for example - Required Action:
Accept - Required Protocol:
AllandBefore Predefinedis selected
Advanced:
First selectManual.- Required Match State: Only
EstablishedandRelatedare selected
- Required Type:
-
Leave the other fields at their default value and click the
Add Rulebutton (all the way at the bottom left)
Rule drop traffic between vlans
- Click
Create Entryand make sureRule Typeis set toAdvancedInstructions:
- Required Type:
LAN In - Required Name:
drop traffic between vlans, for example - Required Action:
Drop - Required Protocol:
AllandBefore Predefinedis selected
Source:
- Required Source Type:
Port/IP Group - Required Address Group:
RFC1918
Destination:
- Required Destination Type:
Port/IP Group - Required Address Group:
RFC1918
- Required Type:
- Leave the other fields at their default value and click the
Add Rulebutton (all the way at the bottom left)
Now all VLANs/networks are seperated from each other.
The rules below will make it possible that:
- All VLANs has access to Pi-hole DNS
- LAN has access to all other networks
- CLIENT-VLAN has access to LAN (or make sure that you allow individual devices from the CLIENT-VLAN to manage LAN)
- CLIENT-VLAN has access to SERVER-VLAN
- CLIENT-VLAN has access to IOT-VLAN
- Some IOT-VLAN devices has access to SERVER-VLAN
This seems to me personally a good basis to start with. The next step could be to set up access between the VLANs in more detail.
Rule allow dns from vlans
- Click
Create Entryand make sureRule Typeis set toAdvancedInstructions:
- Required Type:
LAN In - Required Name:
allow dns from vlans, for example - Required Action:
Accept - Required Protocol:
AllandBefore Predefinedis selected
Source:
- Required Source Type:
Port/IP Group - Required Address Group:
RFC1918
Destination:
- Required Destination Type:
Port/IP Group - Required Address Group: Create a new
IP Groupand add the IP address(es) of your Pi-hole(s) - Required Port Group: Create a new
Port Groupand add port53
- Required Type:
- Leave the other fields at their default value and click the
Add Rulebutton (all the way at the bottom left)
Rule allow lan to all vlans
- Click
Create Entryand make sureRule Typeis set toAdvancedInstructions:
- Required Type:
LAN In - Required Name:
allow lan to all vlans, for example - Required Action:
Accept - Required Protocol:
AllandBefore Predefinedis selected
Source:
- Required Source Type:
Network - Required Network:
LAN - Required Network Type:
Ipv4 Subnet
Destination:
- Required Destination Type:
Port/IP Group - Required Address Group:
RFC1918
- Required Type:
- Leave the other fields at their default value and click the
Add Rulebutton (all the way at the bottom left)
Rule allow clients to lan
- Click
Create Entryand make sureRule Typeis set toAdvancedInstructions:
- Required Type:
LAN In - Required Name:
allow clients to lan, for example - Required Action:
Accept - Required Protocol:
AllandBefore Predefinedis selected
Source:
- Required Source Type:
Network - Required Network:
CLIENT-VLAN - Required Network Type:
Ipv4 Subnet
Destination:
- Required Source Type:
Network - Required Network:
LAN - Required Network Type:
Ipv4 Subnet
- Required Type:
- Leave the other fields at their default value and click the
Add Rulebutton (all the way at the bottom left)
Rule allow clients to servers
- Click
Create Entryand make sureRule Typeis set toAdvancedInstructions:
- Required Type:
LAN In - Required Name:
allow clients to servers, for example - Required Action:
Accept - Required Protocol:
AllandBefore Predefinedis selected
Source:
- Required Source Type:
Network - Required Network:
CLIENT-VLAN - Required Network Type:
Ipv4 Subnet
Destination:
- Required Source Type:
Network - Required Network:
SERVER-VLAN - Required Network Type:
Ipv4 Subnet
- Required Type:
- Leave the other fields at their default value and click the
Add Rulebutton (all the way at the bottom left)
Rule allow clients to iot
- Click
Create Entryand make sureRule Typeis set toAdvancedInstructions:
- Required Type:
LAN In - Required Name:
allow clients to iot, for example - Required Action:
Accept - Required Protocol:
AllandBefore Predefinedis selected
Source:
- Required Source Type:
Network - Required Network:
CLIENT-VLAN - Required Network Type:
Ipv4 Subnet
Destination:
- Required Source Type:
Network - Required Network:
IOT-VLAN - Required Network Type:
Ipv4 Subnet
- Required Type:
- Leave the other fields at their default value and click the
Add Rulebutton (all the way at the bottom left)
Rule allow some iot to servers
- Click
Create Entryand make sureRule Typeis set toAdvancedInstructions:
- Required Type:
LAN In - Required Name:
allow some iot to servers, for example - Required Action:
Accept - Required Protocol:
AllandBefore Predefinedis selected
Source:
- Required Source Type:
Port/IP Group - Required Address Group: Create a new
IP Groupand add the IP address(es) of the IoT device(s)
Destination:
- Required Destination Type:
Port/IP Group - Required Address Group: Create a new
IP Groupand add the IP address(es) of the server(s)
- Required Type:
- Leave the other fields at their default value and click the
Add Rulebutton (all the way at the bottom left)
Check the results
In this way I have created a few more rules. A number of things are accepted first and otherwise the traffic will be dropped between the VLANs. The firewall rules then look like this:

Test if it works, for example with your mobile phone by temporarily connecting to the IoT WiFi network.
No comments found for this note.
Join the discussion for this note on Github. Comments appear on this page instantly.