Homelab Academy / Modules
Learn: instruction, vocabulary, worked example.
Module: Segmentation, Backup & Power
Activity type: Reading (Learn)
Objective: Separate homelab devices into VLANs based on trust, function, and operational requirements
| Term | Meaning |
|---|---|
| VLAN | A logical Layer 2 broadcast domain identified by a VLAN ID on equipment that supports IEEE 802.1Q. |
| Access port | A switch port intended to place ordinary untagged endpoint traffic into one configured VLAN. |
| Trunk port | A link that carries multiple VLANs, normally as explicitly allowed tagged VLANs. |
| Tagged VLAN | A VLAN transported on a frame containing an IEEE 802.1Q tag. |
| Untagged VLAN | The VLAN assigned to frames sent or received without an IEEE 802.1Q tag on a particular port. |
| PVID | The port VLAN identifier used to classify an untagged ingress frame. Vendor terminology may call this an access VLAN or native VLAN depending on port mode. |
| Native VLAN | On platforms that support the concept, the VLAN associated with untagged traffic on a trunk. This lesson assigns an unused, unrouted blackhole VLAN for that role. |
| SVI | A switched virtual interface that provides a Layer 3 gateway address for a VLAN. |
| Trust boundary | A point at which traffic crosses between systems with different security assumptions and should be evaluated by policy. |
| Default deny | A policy posture in which traffic is rejected unless a specific allow rule authorizes it. |
| VLAN hopping | A class of attacks intended to move traffic into a VLAN that the sender should not be able to reach. |
| Double-tagging | A VLAN-hopping technique that places two VLAN tags in a frame and can exploit unsafe native-VLAN behavior on some switched paths. |
A VLAN is a Layer 2 boundary, not a complete security control. Hosts in different VLANs require a Layer 3 device to communicate, but meaningful isolation exists only when that device enforces an explicit policy. Begin by grouping systems according to trust and function rather than placing every device in one large subnet. This design uses management, infrastructure, lab, guest, and IoT zones. Management is reserved for authorized administration clients. Infrastructure contains shared servers. Lab contains experimental workloads. Guest and IoT devices are treated as untrusted. Each routed VLAN receives a unique subnet and gateway, while VLAN 999 is an unrouted blackhole VLAN used only for unused or untagged-port handling.
An access port should have one untagged VLAN and a matching PVID. A trunk should carry only the tagged VLANs required by the attached device. Do not automatically place the management VLAN on every hypervisor trunk. In this worked design, core-02 carries tagged VLAN 10 because the hypervisor host has an explicitly documented management interface in VLAN 10. It also carries VLANs 20 and 30 for infrastructure and lab workloads. It deliberately omits VLANs 40 and 50 because this host does not run guest or IoT workloads. If host management used a separate physical access port, VLAN 10 should be removed from the workload trunk. The access-point trunk carries VLANs 40 and 50 for wireless client networks and VLAN 10 only because the access point itself has a tagged management interface there.
Policy design starts with required flows, not broad statements such as allow internal or allow selected. Every policy row must name a defined source, a defined destination, a protocol, destination ports, an action, and a purpose. Client zones need DHCP for addressing, DNS for name resolution, and NTP for time synchronization. This model represents those shared gateway-hosted services with the defined destination gateway_services. The internet destination is also explicitly defined. Management receives narrowly scoped administrative access to infrastructure and IoT HTTPS interfaces. Lab, guest, and IoT may use specified internet services but are explicitly denied access to other internal zones. A default-deny policy covers traffic not listed.
Trunk allowlists reduce accidental exposure and limit the impact of mistakes. A trunk carrying every VLAN defeats that goal even if routing rules are otherwise correct. Untagged traffic on trunks is mapped to VLAN 999, which has no gateway or SVI. This helps reduce native-VLAN ambiguity, but it does not replace other controls. Disable dynamic trunk negotiation where supported, avoid using the native VLAN for user or management traffic, and keep native-VLAN behavior consistent at both ends. These practices help mitigate VLAN hopping, including double-tagging scenarios. Unused switch ports must not merely be assigned to VLAN 999; they must also be administratively disabled. Finally, treat the generated plan as vendor-neutral intent. Validate it, review it, and only then translate it into syntax appropriate for the actual switch, router, hypervisor, and access point.
One unique IPv4 subnet per routed VLAN
VLANs are assigned by trust and function
All trunk VLANs use explicit allowlists
Management VLAN membership requires a documented management function
Guest, IoT, and lab zones cannot initiate connections to internal zones
DHCP, DNS, NTP, and approved internet flows are explicitly represented
Unlisted routed traffic is denied
Unused physical ports are assigned to VLAN 999 and administratively disabled
VLAN 999 has no gateway, SVI, or routed policy
gateway_services
service_endpoint
Gateway-operated DHCP, DNS, and NTP services reachable by explicitly listed client VLANs
internet
external_endpoint
Destinations outside the homelab reached through the upstream route
10
management
10.70.10.0/24
10.70.10.1
True
high
Authorized administration clients and explicitly documented device-management interfaces
20
infrastructure
10.70.20.0/24
10.70.20.1
True
controlled
Shared internal services
30
lab
10.70.30.0/24
10.70.30.1
True
limited
Experimental workloads
40
guest
10.70.40.0/24
10.70.40.1
True
untrusted
Guest devices requiring internet access but no internal access
50
iot
10.70.50.0/24
10.70.50.1
True
untrusted
Embedded and appliance devices requiring limited internet access
999
blackhole
False
none
Unused ports and untagged trunk traffic; no SVI or gateway
core-01
router
trunk
10
20
30
40
50
999
999
up
Router-on-a-stick link for all routed VLANs
core-02
hypervisor-01
trunk
10
20
30
999
999
up
Tagged VLAN 10 for the host management interface and VLANs 20 and 30 for approved workloads; VLANs 40 and 50 are excluded
core-03
ap-01
trunk
10
40
50
999
999
up
Tagged access-point management on VLAN 10 and guest and IoT wireless networks on VLANs 40 and 50
core-04
nas-01
access
20
20
up
Infrastructure NAS
core-05
admin-workstation
access
10
10
up
Authorized management workstation
core-06
lab-node
access
30
30
up
Untagged lab endpoint
core-07
unused
access
999
999
down
Unused port assigned to the blackhole VLAN and administratively disabled
Central Layer 3 gateway
deny
Return traffic for an established allowed flow is expected to be handled by the eventual stateful policy implementation.
source
destination
protocol
destination_ports
action
purpose
lab
guest
iot
management
infrastructure
lab
guest
iot