- Full Obsidian vault content - Host configs (ice, grizzley, ubuntu, proxmox, truenas, panda, hyte) - Media stack documentation - Traefik HA setup - Automation scripts - Bachelor party planning
24 KiB
project
| project | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
UniFi Network Performance and Security Optimization Plan
Overview
This document captures recommended UniFi network improvements based on a live controller review performed on 2026-03-17 and a same-day pull of the latest authoritative host repositories.
This is a planning document only.
- No firewall policies, zones, VLAN assignments, SSIDs, or client placements were changed while preparing this document.
- Current-state notes are based on live UniFi data available from the local controller at
https://192.168.1.1. - Host placement recommendations were cross-checked against the latest pulled host repos for
ubuntu,grizzley,ice,proxmox,truenas, andpanda. - Existing cleanup work in ../tasks/unifi-firewall-cleanup-plan.md should be treated as historical context, not the final source of truth for the current live posture.
Live Snapshot
Controller and Inventory
- Controller: UniFi Cloud Gateway Ultra (
UDRULT) - UniFi Network version:
10.1.85 - UniFi devices currently visible:
4 - Live clients currently visible:
43 - Wireless networks currently visible:
3 - VPN servers currently visible:
1(UGC WireGuard)
Current Network and Zone Mapping
| Network | Subnet | VLAN | Current Zone | Notes |
|---|---|---|---|---|
| Default | 192.168.1.0/24 | native | Management | Contains core infrastructure today |
| Family of D. | 192.168.10.0/24 | 10 | Internal | Trusted user devices now separated from Management |
| Will of D. (Guest) | 192.168.20.0/24 | 20 | Guest | Good logical placement |
| Will of D. IoT | 192.168.30.0/24 | 30 | IoT | Good logical placement |
| Staging | 192.168.40.0/24 | 40 | Staging | Good logical placement |
| Production | 192.168.50.0/24 | 50 | Servers | Good logical placement |
| UGC WireGuard | 192.168.4.0/24 | n/a | Vpn | Keep as a dedicated VPN trust boundary |
Implementation State
First-wave UniFi changes were applied on 2026-03-17:
Family of D.was moved fromManagementintoInternalManagementwas reduced toDefaultonly- New
Internaluser-defined allow rules were created for:Internal -> Servers HTTPSInternal -> Servers HTTPInternal -> IoTInternal -> Staging
- Logging was enabled on selected user-defined edge and VPN policies:
Allow External to Web ProxyVpn to ManagementMBA VPN to ManagementVpn to ServersVpn to IoT
- Logging was also enabled on selected user-defined east-west policies for observability:
Management to ServersManagement to IoTManagement to GuestInternal to Servers HTTPSInternal to Servers HTTPInternal to IoTInternal to StagingIoT to JellyfinIoT to Traefik
- Staged reservation cleanup succeeded for:
ubuntu->192.168.1.61proxmox->192.168.1.11grizzley->192.168.10.145ice->192.168.10.178and192.168.50.197homeassistant->192.168.30.196
- First host-side migration execution succeeded for
truenasby moving its default route to192.168.50.1while preserving reachability on both192.168.50.12and192.168.1.12 - First host-side migration execution also succeeded for
proxmoxandubuntuby moving their active default routes to192.168.50.1while preserving SSH reachability on both their legacy and server-side addresses - Final legacy-address removal has now succeeded for
proxmox,ubuntu, andtruenason the old192.168.1.xpaths - Dual-network cleanup succeeded for
grizzleyandiceby removing active Wi-Fi participation onFamily of D. - Staging-side
192.168.40.xhost paths have been removed fromtruenas,grizzley, andice
Two system-defined port-forward policies were not modified because the controller rejects edits to them via the integration API:
Allow Port Forward HTTPAllow Port Forward HTTPS
Immediate Current-State Risks
- Several homelab hosts still appear on more than one network, or have records that suggest multiple interfaces. That is useful when intentional, but it reduces the value of zone-based policy if it is not tightly documented.
- The stale secondary TrueNAS reservation at
192.168.1.145has now been cleared, and the legacy192.168.1.12host address has been removed. - UniFi client inventory can still lag behind host-side changes when a single MAC participates in multiple VLANs; current stale observations should be treated as controller state lag unless they persist after refresh/age-out.
- The remaining host-side cleanup question is whether the infrastructure
192.168.30.xservice-side addresses are all intentionally needed; they were retained in this wave as the conservative default pending per-service validation. - Logging is now enabled on selected user-defined edge and VPN policies, but many block rules and system-defined edge rules still do not log.
- Internet-facing exposure still exists for reverse proxy traffic, including
HTTPandHTTPS, and should be reviewed for minimum required surface area.
Authoritative Host Repo Alignment
The latest pulled host repos describe the intended authoritative network identity below. Where live UniFi observations differ, that drift should be treated as a design and documentation issue to resolve before major firewall cleanup.
| Host | Authoritative Repo Intent | Live UniFi Observation | Planning Impact |
|---|---|---|---|
| ubuntu | 192.168.50.61, primary Docker host, primary Traefik, Gitea, Vaultwarden, Authentik, OpenCode |
currently visible at 192.168.1.61 |
Highest-priority host placement drift because many public and internal services depend on it |
| grizzley | 192.168.50.84, Pi edge ingress |
currently visible at 192.168.10.145, with another extra live record |
Edge ingress should not share a user-trust segment unless explicitly intended |
| ice | 192.168.50.197, control-plane OpenCode |
visible at 192.168.50.197 and 192.168.10.178 |
Dual placement weakens the meaning of Servers versus user-trusted access |
| proxmox | 192.168.50.11, hypervisor |
currently visible at 192.168.1.11 |
Hypervisor should remain in an infrastructure-only network |
| truenas | 192.168.50.12, storage-only host |
visible at 192.168.1.12 and also referenced as 192.168.50.12 |
Storage admin paths should be explicit and documented if multi-homed |
| panda | Home Assistant UI at 192.168.30.196, SSH endpoint at 192.168.50.196 |
live Home Assistant client at 192.168.30.196; separate admin SSH endpoint not shown in client list |
This is a valid split-access pattern and should be preserved intentionally |
What The Latest Host Repos Change In This Plan
ubuntuis more security-sensitive than the first draft implied because its latest host repo now clearly tracks hardened public edge,Gitea, andVaultwardenstate. That raises the priority of narrowing public exposure and protecting admin paths.grizzleyandiceare clearly intended to beServers-zone infrastructure nodes in their host repos, so their current appearances onFamily of D.should be treated as drift unless there is a deliberate dual-network design.pandais not simply an IoT appliance. The latest host repo explicitly documents an app endpoint on192.168.30.196and a separate SSH/admin endpoint on192.168.50.196, which supports keeping Home Assistant functionally close to IoT while retaining a cleaner administrative path.proxmoxis not just a hypervisor endpoint. Its latest repo also documents server-side infrastructure such astraefik-lxcat192.168.50.115,alpine-adguardat192.168.50.157, and other server-segment workloads that should stay out of user and guest networks.truenaslatest repo content is partially historical, but the broader homelab catalogs and current host metadata still point to192.168.50.12as the intended storage address. The plan should therefore prefer theProduction/server-side path over the currentDefaultvisibility.
Recommended Target Zone Matrix
Recommended Zone Roles
| Zone | Recommended Networks | Purpose |
|---|---|---|
| Management | Default | Admin workstations, controller access, network gear, hypervisor, storage |
| Internal | Family of D. | Trusted daily-use family devices |
| Guest | Will of D. (Guest) | Visitor and untrusted personal devices |
| IoT | Will of D. IoT | Smart home and appliance-style devices |
| Staging | Staging | Lab, test, and temporary workloads |
| Servers | Production | Public and internal homelab application hosts |
| Vpn | UGC WireGuard | Remote admin and controlled remote access |
| External | WANs | Internet |
Recommended Connectivity Matrix
| From -> To | Management | Internal | Guest | IoT | Staging | Servers | Vpn | External |
|---|---|---|---|---|---|---|---|---|
| Management | Allow | Limited | Limited | Allow | Allow | Allow | Allow | Allow |
| Internal | Deny by default | Allow | Deny | Limited | Limited | Limited | Deny | Allow |
| Guest | Deny | Deny | Allow | Deny | Deny | Deny | Deny | Allow |
| IoT | Deny | Deny | Deny | Allow | Deny | Limited | Deny | Allow |
| Staging | Limited | Limited | Deny | Deny | Allow | Allow | Deny | Allow |
| Servers | Limited | Return only | Deny | Limited | Allow | Allow | Deny | Allow |
| Vpn | Limited | Deny by default | Deny | Limited | Limited | Allow | Allow | Allow |
Matrix Interpretation
Managementshould be the only zone with broad administrative reach.Internalshould accessServersthrough specific app ports and URLs, not broad all-port access.Guestshould have internet access only.IoTshould keep internet access plus narrow exceptions for services such as media streaming, reverse proxy access, and Home Assistant as needed.Vpnshould be treated as a separate zone, not as implicitManagement. Default VPN access should reach only the minimum required destinations.
Firewall Recommendation Set
The live policy export reported 236 total policies. The visible slice used for this review showed 102 ALLOW and 98 BLOCK policies in the first 200 entries. Recommendations below focus on the posture that was visible live and should be validated against a full export before any change window.
Keep
Keep these rule patterns, assuming they are already scoped correctly to the intended hosts and ports:
- System defaults such as
Block Invalid Traffic,Block All Traffic, andAllow Return Traffic Guest -> External- Intra-zone traffic where explicitly needed (
Internal,Guest,IoT,Servers) - Reverse proxy ingress to the public web entry point over
HTTPS - Narrow published access for
GiteaandVaultwardenbehind the hardened public edge onubuntu - Narrow
IoT -> Serversexceptions for media and automation services such as Jellyfin, Traefik, and Home Assistant Vpn -> Serversfor approved administrative and remote-access workflows
Tighten
These items present the best mix of security and operational benefit:
-
Separate
Family of D.fromManagement- Move
Family of D.out ofManagementand intoInternal - Do this before treating
Managementrules as a true admin trust boundary
- Move
-
Restrict VPN reach
- Keep
Vpn -> Serversfor normal remote admin - Narrow
Vpn -> Managementto only the ports and hosts needed for network and infrastructure administration - Narrow
Vpn -> IoTto specific automation and troubleshooting needs only
- Keep
-
Reduce internet-facing exposure
- Keep
HTTPSingress for the reverse proxy - Keep
HTTPonly if it is still required for redirect handling or ACME validation - Replace any broad
External -> ServersorExternal -> Web Proxyrules with host and port scoped rules where possible - Prioritize review of the
ubuntuedge because that host now clearly carriesTraefik,Gitea, andVaultwardenin the latest host repo
- Keep
-
Reduce rule overlap and duplication
- Review overlapping VPN rules such as
Vpn to ServersandAllow WireGuard to Services (Fixed) - Review repeated return-path rules such as the visible duplicate
Management to IoT (Return)entries - Prefer one clearly named policy per intent over multiple partially overlapping policies
- Review overlapping VPN rules such as
-
Turn on useful logging
- Enable logging on selected block rules and edge-facing allow rules
- Minimum recommended logging targets:
External -> *,Vpn -> Management,Vpn -> Servers, and deniedGuestorIoTinter-zone attempts
Retire After Validation
Retire or replace these rule patterns only after confirming there is no hidden dependency:
- Broad all-port
Internal -> Serversallow rules - Broad all-port
IoT -> Serversallow rules that are no longer needed once application-specific exceptions exist - Duplicate return-path rules that do not add new behavior
HTTPport-forward exposure ifHTTPSplus redirect/ACME alternatives cover the same use case- Legacy rules tied to decommissioned hosts, empty zones, or old service names
Naming and Policy Hygiene
Use policy names that always match the real source, destination, and purpose.
Recommended naming pattern:
<source zone> -> <destination zone> | <service or intent> | <action>
Examples:
Internal -> Servers | HTTPS apps | ALLOWIoT -> Servers | Jellyfin 8096 | ALLOWGuest -> Internal | default deny | BLOCKVpn -> Management | admin https | ALLOW
Recommended Host and Service Placement
Core Homelab Hosts
| Asset | Current Observed Placement | Recommended Placement | Access Model | Notes |
|---|---|---|---|---|
| UniFi gateway and AP management IPs | Default | Management | Admin only | Keep network gear on the management network |
| Proxmox | Default (192.168.1.11) |
Management or dedicated infrastructure VLAN, wired | Management and VPN only | Latest host repo still treats Proxmox as infrastructure-only; also protect its hosted traefik-lxc and adguard style workloads |
| TrueNAS | Default (192.168.1.12), plus preferred lookup for 192.168.50.12 |
Management primary, optional secondary storage path only if intentional | Management and selected servers | Prefer the documented 192.168.50.12 server-side identity and document any secondary path explicitly |
| Ubuntu primary Docker host | Default (192.168.1.61) |
Servers long-term, or documented dual-home during migration | Internal via reverse proxy, Management for admin | Latest host repo confirms this host carries the primary public edge plus Gitea, Vaultwarden, Authentik, and core apps |
| Grizzley | Family (192.168.10.145), plus another live record |
Servers, wired | Reverse proxy and admin paths only | Latest host repo intent is Pi edge ingress and control traffic, not consumer trusted-client placement |
| Ice | Production (192.168.50.197) and Family (192.168.10.178) |
Servers primary, optional dedicated management path only if justified | Management and approved service paths | Latest host repo intent is control-plane infrastructure, so current family-network presence should be treated as drift until justified |
| Panda / Home Assistant OS | live Home Assistant endpoint at 192.168.30.196; latest host repo also documents SSH at 192.168.50.196 |
Keep app plane in IoT; keep admin plane on server/management side | Management, Internal, and selected IoT flows | This split model is preferable to exposing full Home Assistant administration on a user or guest network |
Additional Server-Segment Assets From Latest Host Repos
| Asset | Documented Address | Recommended Zone | Notes |
|---|---|---|---|
Proxmox traefik-lxc |
192.168.50.115 |
Servers | Keep isolated from Internal except through intended app ports |
Proxmox alpine-adguard |
192.168.50.157 |
Servers or Management | DNS infrastructure deserves tighter access than general apps |
| Home Assistant SSH admin endpoint | 192.168.50.196 |
Management or Servers | Keep SSH/admin access distinct from the IoT-side app endpoint |
Service Placement Guidance
| Service Class | Recommended Zone | Client Access Pattern |
|---|---|---|
| Reverse proxy / ingress (Traefik) | Servers | Internal, Management, and approved Vpn clients over 80/443 |
Public identity and secrets apps (Authentik, Gitea, Vaultwarden) |
Servers | Management and Internal over HTTPS; expose externally only through tightly scoped edge policies |
| Storage and virtualization admin (TrueNAS, Proxmox) | Management | Management and limited Vpn only |
| Media services (Jellyfin and related) | Servers | Internal by default, IoT only for TVs, streamers, and casting targets that need it |
| Home automation (Home Assistant) | IoT app plane plus management-side SSH/admin plane | Management, selected Internal, selected IoT |
| Test workloads | Staging | Management, selected Internal, and Servers as required |
Client and SSID Placement Guidance
| Client Type | Recommended Network | Recommended SSID Strategy | Notes |
|---|---|---|---|
| Primary family phones, tablets, laptops | Internal (Family of D.) |
Family of D. |
Trusted user devices should not live in Management |
| Visitors | Guest | Will of D. |
Keep internet-only |
| TVs, speakers, streamers, thermostats, hubs, plugs, lamps | IoT | Will of D. IoT |
Keep appliance devices isolated and use narrow service exceptions |
| Baby monitors | IoT | Will of D. IoT |
Current live placement in Family of D. should be reviewed and likely moved |
| Admin workstation(s) | Internal by default; optional future dedicated admin SSID/VLAN | Family of D. today |
Add a dedicated admin network only if there is a real operational need |
Performance Recommendations
Wireless Design
- Keep SSID count low. The current three-SSID model is reasonable and should scale better than adding more SSIDs unless there is a strong operational need.
- Keep
Family of D.optimized for higher-performance personal devices on5 GHzand6 GHzwhere supported. - Keep
Will of D. IoTfocused on reliability rather than peak throughput. Many smart devices behave better on2.4 GHz, and mixed-band IoT SSIDs should be reviewed carefully for compatibility issues. - Keep guest traffic off trusted SSIDs. That protects airtime and reduces unnecessary broadcast and discovery noise on the primary user network.
- For voice and discovery reliability, use
Multicast to Unicaston user SSIDs that need iPhone calling or nearby device discovery. - Keep
Multicast and Broadcast Blockeroff on user SSIDs unless there is a specific, tested reason to suppress discovery traffic. - If roaming quality matters for voice devices, prefer
Fast RoamingplusBSS Transitionon trusted SSIDs and validate client behavior after each change.
Verified SSID Posture
The live UniFi controller was updated on 2026-04-13 to support iPhone WiFi calling and gate control traffic.
| SSID | Multicast to Unicast | Fast Roaming | BSS Transition | Multicast/Broadcast Blocker |
|---|---|---|---|---|
Will of D. |
enabled | enabled | enabled | off |
Will of D. IoT |
enabled | disabled | enabled | off |
Family of D. |
enabled | enabled | enabled | off |
Will of D. IoT 2.4G |
enabled | n/a | enabled | off |
This aligns the trusted SSID with the same multicast and roaming posture already used on Family of D..
Wired and Infrastructure Placement
- Prefer wired-only placement for infrastructure hosts wherever possible.
- Reduce or eliminate unintended dual-homed infrastructure. A host that sits in multiple trust zones is harder to reason about and easier to misconfigure.
- Keep reverse proxy, server, and storage paths off Wi-Fi entirely.
Network Hygiene That Helps Performance Too
- Move non-user appliance devices, especially the visible baby monitors, out of
Family of D.and intoIoT. - Keep media exceptions narrow so background service discovery does not become broad east-west traffic.
- Review AP client distribution and radio settings only after collecting AP-side statistics, since transmit power and minimum RSSI changes should be data-driven.
Security Recommendations
Highest-Priority Changes to Plan
- Re-establish
Managementas a real infrastructure-only trust boundary - Turn on useful firewall logging for edge and deny rules
- Move live host addressing closer to the authoritative host repo intent for
ubuntu,grizzley,ice,proxmox, andtruenas - Narrow VPN access to the smallest practical set of hosts and ports
- Review and minimize all public
HTTPexposure, especially around theubuntupublic edge - Remove or consolidate duplicate and overlapping allow rules
Medium-Priority Changes to Plan
- Re-home server-class hosts so they align with the intended
Serverszone - Review whether Home Assistant should remain in
IoTor move to a dedicated automation segment later - Audit wildcard DNS usage to confirm only intended clients can reach sensitive admin applications
- Decide whether
panda's split app/admin path should become the standard pattern for other appliance-style services
Proposed Rollout Order
No changes have been applied yet. When this work is scheduled, the lowest-risk order is:
- Export and back up current zones and policies
- Enable logging on selected deny and edge allow rules
- Reconcile live host IP placement with the latest authoritative host repos
- Correct the
ManagementversusInternalnetwork assignments - Move obvious consumer/IoT devices out of
Family of D. - Review and remove duplicate or overly broad firewall policies
- Re-home server-class hosts where needed
- Re-test reverse proxy, media, Home Assistant, VPN, and admin paths after each change set
Open Questions Before Execution
- Should the Ubuntu primary Docker host stay on
Defaultfor operational simplicity, or should it move fully intoServers? - Are the extra
grizzleyandicelive placements intentional dual-homing, or leftover records/interfaces to clean up? - Should
proxmoxandtruenaskeep anyDefault-side presence, or should they be normalized to their documented192.168.50.xidentities? - Is public
HTTPstill required for any production workflow? - Does Home Assistant need to remain on
IoT, or is the current split model of IoT app access plus management-side SSH the desired long-term pattern?
Decision Summary
If no larger redesign is desired, the minimum high-value outcome is:
Management= infrastructure onlyInternal= family/trusted user devicesGuest= internet onlyIoT= appliances with narrow exceptionsServers= homelab application hostsVpn= remote access with explicit least-privilege rules
That structure provides the clearest improvement in both security and troubleshooting without requiring a full network rebuild.