Skip to main content

Segmenting a Home Network with Omada — VLANs, SSIDs, DHCP Reservations and Firewall Rules

· 7 min read
Pere Pages
Software Engineer
Omada network topology with segmented VLANs

A flat home network puts your laptop, your IoT gadgets, and your guests on the same wire. Here's how I carved my house into isolated zones with TP-Link Omada — VLANs, dedicated SSIDs, DHCP reservations, and firewall rules that actually keep them apart.

I recently reorganized my home network using a TP-Link Omada setup. The goal was not to build an enterprise-grade network, but to get something cleaner, safer, and easier to reason about.

The main objectives were:

GoalWhy
Map all devicesKnow what is connected and where
Separate trusted devices from IoTReduce blast radius if an Internet of Things (IoT) device is compromised
Keep media devices usableTVs and audio devices often need local discovery
Keep guests isolatedGuest devices should not reach internal devices
Use DHCP reservationsStable IPs without configuring static IPs manually on devices
Avoid overengineeringSimple enough to maintain

Sensitive values in this post are intentionally anonymized.


Starting point

The house already had an Omada Controller managing the network.

The topology was roughly:

There was one main LAN:

LAN - Main
VLAN ID: 1
Subnet: 192.168.X.0/24
Gateway: 192.168.X.1

The /24 means that the network has 254 usable addresses:

192.168.X.1 gateway
192.168.X.2 device
...
192.168.X.254 device

Key concepts

ConceptMeaning
SSID (Service Set Identifier)The Wi-Fi name devices connect to
LAN / NetworkThe IP network behind the SSID or wired port
VLAN (Virtual LAN)A tagged network segment
GatewayThe router/firewall between networks and the Internet
DHCP (Dynamic Host Configuration Protocol)Service that assigns IPs automatically
DHCP reservationAlways gives the same IP to a specific device MAC (hardware) address
ACL (Access Control List) / firewall ruleControls which networks can communicate

A useful mental model:

SSID = door into the network
VLAN = separated room
Firewall rule = locked or unlocked door between rooms

Final VLAN plan

I kept the design intentionally small.

VLANNameSubnetPurpose
1LAN - Main192.168.X.0/24Trusted devices and media devices
30LAN - IoT192.168.Y.0/24Smart appliances and weak IoT
40LAN - Guest192.168.Z.0/24Visitor devices

I considered separate Media and Security VLANs, but decided not to create them yet. TVs, streamers and audio devices often need local discovery, so moving them too early can break casting and control apps.


SSID plan

SSIDVLANPurpose
home-mainLAN - MainTrusted phones, laptops, media devices
home-iotLAN - IoTSmart appliances and IoT
home-guestLAN - GuestVisitors

The IoT SSID was configured for compatibility:

SettingValue
Band2.4 GHz only
SecurityWPA2-PSK / AES
WPA3Disabled
PMF (Protected Management Frames)Disabled or optional
Fast roamingDisabled
Band steeringDisabled
PasswordUnique, long, easy to type

For IoT, boring is good. Many smart devices behave badly with WPA3, band steering, roaming optimizations or 5 GHz-only networks.


Device classification

The important decision was not “is this device smart?”, but “how does this device need to communicate?”

Device typeNetworkReason
LaptopsLAN - MainTrusted
PhonesLAN - MainTrusted controllers
Omada ControllerLAN - MainInfrastructure
Gateway / switches / APsLAN - MainInfrastructure
TV used for castingLAN - MainNeeds discovery
Audio streamerLAN - MainNeeds discovery
Oven / appliancesLAN - IoTCloud-controlled IoT
Domotics hubLAN - IoT, after testingDepends on local needs
Alarm panelLAN - Main for nowCritical; avoid breaking it
Guest devicesLAN - GuestFully untrusted

The key rule:

Cloud-controlled device → IoT VLAN
Local-discovery device → Main for now
Critical unknown device → Main until tested

DHCP reservations

Instead of manually setting static IPs inside devices, I used DHCP reservations from Omada.

A DHCP reservation means:

When this MAC address asks for an IP, always give it this IP.

This keeps Omada as the source of truth.

Main LAN ranges

RangePurpose
.1Gateway
.2 - .19Infrastructure / security
.20 - .49Services
.50 - .79Trusted personal devices
.80 - .99Media
.100 - .254Dynamic DHCP pool

Example structure:

Device typeExample reserved range
Gateway.1
Controller.7
Laptop Ethernet.10 - .19
Laptop Wi-Fi.50 - .59
TV / audio.80 - .89

IoT LAN ranges

RangePurpose
.1Gateway
.10 - .19IoT hubs
.20 - .39Cameras
.40 - .59Appliances
.100 - .254Dynamic IoT DHCP

DHCP lease time

NetworkLease time
LAN - Main1440 min
LAN - IoT1440 min
LAN - Guest120-240 min

A lease time does not force devices to change IP immediately. It only controls how often they renew. To force a specific device to get its new reserved IP, reconnect Wi-Fi, reboot the device, or unplug/replug Ethernet.


Firewall / ACL policy

VLANs alone are not the full security boundary. The gateway can route between VLANs unless ACL/firewall rules block that traffic.

The final policy was:

Guest → Main BLOCK
Guest → IoT BLOCK
IoT → Main BLOCK
IoT → Guest BLOCK
Main → IoT ALLOW
All → Internet ALLOW

In Omada, these are Gateway ACL rules because they control traffic between VLANs/subnets.

These rules block traffic by direction of the initiating connection. Because the gateway is stateful, Main → IoT ALLOW plus IoT → Main BLOCK still lets replies to a Main-initiated session return — IoT simply cannot start a connection to Main. You don't need an extra "established/related" allow rule for the return path.

If Omada supports multiple destinations per rule, the policy can be reduced to two rules:

RuleSourceDestinationAction
Block Guest to InternalLAN - GuestLAN - Main, LAN - IoTDeny
Block IoT to InternalLAN - IoTLAN - Main, LAN - GuestDeny

If multiple destinations are not supported, create four explicit rules:

RuleSourceDestinationAction
Block Guest to MainLAN - GuestLAN - MainDeny
Block Guest to IoTLAN - GuestLAN - IoTDeny
Block IoT to MainLAN - IoTLAN - MainDeny
Block IoT to GuestLAN - IoTLAN - GuestDeny

The result:


Guest network bandwidth limit

For guest Wi-Fi, I used per-client rate limiting.

DirectionLimit per client
Download5 Mbps
Upload1 Mbps

This is enough for basic browsing and roughly 720p YouTube, but prevents guests from saturating the connection.


Why media devices stayed in Main

Some devices are technically IoT but behave more like local media infrastructure.

Examples:

DeviceWhy it stayed in Main
TVNeeded casting/discovery from phone
Audio streamerNeeded app discovery/control
Printer / NAS (network-attached storage), if presentOften need local access

Protocols like mDNS, Bonjour, SSDP, UPnP, AirPlay, Chromecast and DLNA often assume devices are on the same local network.

So the safer initial decision was:

Media devices stay in Main.
Weak cloud-only devices move to IoT.

Later, a dedicated LAN - Media could be created with mDNS reflection, but that adds complexity.


What I learned

LessonExplanation
VLANs separate networks, but ACLs enforce policySegmentation without rules is incomplete
DHCP reservations are better than manual static IPsOne source of truth
IoT should be boring2.4 GHz, WPA2, no fancy roaming
Not all smart devices belong in IoTTVs and audio devices often need local discovery
Guest and IoT should be separateGuests should not see your IoT devices
Start smallMain + IoT + Guest is enough for most homes

Final architecture

LAN - Main
- Trusted devices
- Network infrastructure
- Media devices needing discovery

LAN - IoT
- Appliances
- Smart devices
- Weak/cloud-controlled devices

LAN - Guest
- Visitors
- Internet only

Security posture:

Main can manage IoT.
IoT cannot reach Main.
Guests cannot reach Main or IoT.
All networks can reach the Internet.

This gives a good balance: safer than a flat home network, but still usable.