Phase 7R — ZBF remediation (owner decisions)¶
Date: 2026-06-18 Context: Phase 7R audit questionnaire + HA API evidence (§0.3).
Apply policies before existing BLOCK rules in each zone pair. After changes, re-test HA integrations, AirPlay, and printing from Personal WiFi.
Phase 7R outcome (2026-06-18)¶
| Item | Status |
|---|---|
| SLZB-06M / HA → IoT | ✅ Settled after Allow HA → IoT zone |
| Samsung printer | ✅ Personal → printer allow (reordered above block) |
| HomePod AirPlay | ❌ Still broken — confirm Allow Personal → IoT Action = Allow |
| Fiio AirPlay | ⏸ Low priority — same VLAN; see device-vlan-mapping.md |
| Aqara hub / TP-Link moves | ⏸ Owner follow-up |
Next cohort: AdGuard deploy, DNS cutover, backup-client — not HomePod/Fiio tuning.
Owner decisions¶
| ID | Decision |
|---|---|
| Q3.1 | B — 192.168.6.227 → IoT zone only (HA IP, not all of Servers) |
| Q3.1b | B — Move TP-Link plugs to IoT or Appliances WiFi and re-pair |
| Q3.2 | Yes — AirPlay / casting from Personal to IoT |
| Q3.3 | Not intentional — add Personal → IoT VLAN 5 (see Q3.3 explained) |
| Q3.4 | Yes — IoT → 192.168.6.17:53 when AdGuard is live (defer) |
| Q2.1 | Printer stays GenPop .167; Aqara → IoT; OnePlus → Personal (done) |
Q2.1 — GenPop device placement¶
| IP | Device | Decision |
|---|---|---|
| 192.168.1.167 | Samsung printer | Stay on GenPop — print from Personal devices; GenPop → Servers already allowed for scan-to-server / NAS features |
| 192.168.1.82 | Aqara Hub M2 | Move to IoT WiFi (HotSignalsInYourArea) |
| 192.168.1.218 | OnePlus 8 Pro | Personal VLAN 2 — was guest SSID for testing; owner moved back |
Printer firewall gap: Personal → GenPop is blocked today. GenPop → Servers is already allowed — no rule needed for “send to Servers.” Add Policy 3 so phones and laptops on Personal can reach the printer. Optional Policy 4 if HA IPP integration should work.
Q3.3 explained¶
UniFi groups Appliances (VLAN 3) and IoT (VLAN 5) into one IoT zone. You already had Personal → Appliances ALLOW but not Personal → IoT (VLAN 5). HomePod / Apple TV live on VLAN 5 — discovery worked, streaming did not.
UDM click-through (apply policies 1–4)¶
Prerequisite: UniFi Network 9.x+, gateway on 4.1+ (you are on 10.5.43). Optional: Settings → System → Backup before changes.
Open the zone matrix¶
- Open UniFi Network (https://192.168.1.1 or unifi.ui.com).
- Select your UDM SE site.
- Go to Settings (gear, bottom-left).
- Security → Policy Engine (or Zone-Based Firewall / Zones).
- Open the Zone Matrix (grid: source zones on the left, destination across the top).
Policies are evaluated top to bottom within each zone pair. New Allow rules must sit above Block inter-VLAN / default deny for that pair.
Policy 1 — Home Assistant → IoT zone¶
Goal: HA at 192.168.6.227 reaches SLZB, Aqara (after WiFi move), TP-Link
(on IoT/Appliances), doorbell repeater — without opening all of Servers VLAN.
- In the matrix, click Internal → IoT (source Internal, destination IoT).
- Create Policy (or + / Add rule).
- Set fields:
| Field | Value |
|---|---|
| Name | Allow HA → IoT zone |
| Action | Allow |
| Source zone | Internal |
| Source | IP address → 192.168.6.227 |
| Destination zone | IoT |
| Destination | Any (all networks in IoT zone: Appliances + IoT) |
| Protocol | All / Any |
- Save / Apply changes.
- If the UI offers Move up / drag reorder, place this above any Block rule for Internal → IoT.
Policy 2 — Personal → IoT (AirPlay)¶
Goal: Phone on Personal WiFi can stream to HomePod / Apple TV on IoT VLAN 5.
- Click Internal → IoT again (same cell as Policy 1).
- Create Policy.
- Set fields:
| Field | Value |
|---|---|
| Name | Allow Personal → IoT |
| Action | Allow |
| Source zone | Internal |
| Source | Network → Personal Devices (VLAN 2) |
| Destination zone | IoT |
| Destination | Network → IoT (VLAN 5) |
| Protocol | All / Any |
- Save / Apply.
- Order: Allow rules above Block for Internal → IoT.
Policy 3 — Personal → Samsung printer (GenPop)¶
Goal: Print from laptops/phones on Personal to printer at 192.168.1.167
on GenPop. Narrow destination = printer IP only (guests on GenPop stay isolated).
- Click Internal → Internal (both sides Internal zone).
- Create Policy.
- Set fields:
| Field | Value |
|---|---|
| Name | Allow Personal → Samsung printer |
| Action | Allow |
| Source zone | Internal |
| Source | Network → Personal Devices (VLAN 2) |
| Destination zone | Internal |
| Destination | IP address → 192.168.1.167 |
| Protocol | All / Any |
- Save / Apply.
- Place above Block inter-VLAN (Internal) (policy index 10004 in your live config).
Already works without a new rule: GenPop → Servers (existing allow) covers the printer initiating traffic to NAS / print server on Servers VLAN.
Policy 4 — Home Assistant → Samsung printer (optional)¶
Goal: Fix HA ipp / syncthru integrations for the Samsung (currently
setup_retry in §0.3). Skip if you do not use the printer in HA.
- Click Internal → Internal.
- Create Policy:
| Field | Value |
|---|---|
| Name | Allow HA → Samsung printer |
| Action | Allow |
| Source zone | Internal |
| Source | IP address → 192.168.6.227 |
| Destination zone | Internal |
| Destination | IP address → 192.168.1.167 |
| Protocol | All / Any |
- Save / Apply — above Block inter-VLAN.
Apply to gateway¶
- Click Apply changes if the UI shows pending updates.
- Wait ~30–60 seconds.
When creating each policy, double-check Action = Allow before saving. The Name field alone does not set allow vs block.
Reference only: rule evaluation order (not a click checklist)
UniFi evaluates rules top-to-bottom. Allow rules must sit above **Block inter-VLAN**. See [Troubleshooting](#troubleshooting) if traffic still fails.WiFi moves (no firewall change)¶
Aqara Hub M2 (192.168.1.82 → IoT)¶
- Settings → WiFi → confirm HotSignalsInYourArea (IoT, VLAN 5) is enabled.
- Factory reset or use Aqara app to change WiFi on the hub → join HotSignalsInYourArea.
- Expect new IP on
192.168.7.0/24(reserve.81in DHCP if desired). - In HA: remove stale Aqara-Hub-M2-7E74 entry if stuck; re-add via HomeKit or Aqara after hub is on IoT (Policy 1 lets HA reach it).
TP-Link plugs (Q3.1b)¶
Move each plug from GenPop to IoT or Appliances SSID; re-pair in Kasa / HA.
| Plug | Old IP | Target SSID |
|---|---|---|
| ProxBox EP10 | 192.168.1.248 | IoT or Appliances |
| MotoPlug EP10 | 192.168.1.107 | IoT or Appliances |
| Living Room Lamp EP10 | 192.168.1.39 | IoT or Appliances |
Troubleshooting¶
Printer allow rule exists but PC still cannot print (2026-06-18)¶
Live API pull after Action was fixed to Allow:
| Index | Rule | Action | Hits |
|---|---|---|---|
| 10004 | Block inter-VLAN | BLOCK | 8 |
| 10005 | Allow Personal → Samsung printer | ALLOW | 527k+ |
| 10002 | Allow Personal → IoT | BLOCK | 8k+ |
Root cause: UniFi evaluates rules top → bottom by index. Block inter-VLAN
(10004) runs before Allow Personal → Samsung printer (10005). New sessions
from 192.168.3.17 → 192.168.1.167 hit the block rule first and never reach
the printer allow.
The high hit count on 10005 is misleading — it does not mean printing works.
Fix — reorder (Internal → Internal):
- Settings → Security → Policy Engine → Zone Matrix
- Click Internal → Internal
- Move up (or drag) Allow Personal → Samsung printer so it sits above Block inter-VLAN — directly under Allow Personal → Servers is fine.
- Same for Allow HA → Samsung printer if you use HA printing.
- Apply changes → wait 30–60 s.
Target order (user rules only):
Allow Management → All
Allow GenPop → Servers
Allow Personal → Servers
Allow Personal → Samsung printer ← must be HERE
Allow HA → Samsung printer ← optional, same band
Drop invalid state
Block inter-VLAN ← after all allows
Also still wrong: Allow Personal → IoT — Action is Block (10002, 8k+ hits). Change to Allow; destination Network: IoT (VLAN 5) (not Block + Any). Same index band is fine once Action flips — no reorder needed in Internal→IoT.
Fiio R7 (separate issue): At 192.168.3.44 on Personal VLAN 2 — same VLAN as
KrustyKrab phones. ZBF Personal → IoT does not apply. UniFi shows Fiio last on
The LAN Before Time SSID name; phone is on KrustyKrab. Fix WiFi/mDNS on
Personal, not IoT firewall — see AirPlay: Fiio on Personal.
HA / IoT¶
In HA: Settings → Devices & services → reload SLZB-06M / smlight.
AirPlay: HomePod / Apple TV (IoT VLAN 5)¶
Symptom: iPhone on KrustyKrab sees targets sometimes but cannot stream.
Live cause (2026-06-18): Allow Personal → IoT — Action = Block, 8k+ hits.
- Settings → Security → Policy Engine → Zone Matrix → Internal → IoT
- Open Allow Personal → IoT
- Action → Allow
- Source: Personal Devices (VLAN 2)
- Destination: Network → IoT (VLAN 5) — not “Any” if the UI offers IoT network
- Apply changes
Verify: iPhone .169 on KrustyKrab → AirPlay to HomePod 192.168.7.124.
HomePod is on IoT VLAN 5 (may still show old SSID name in UniFi; IP matters).
AirPlay: Fiio R7 (same VLAN)¶
Symptom: Phone on KrustyKrab cannot AirPlay to Fiio.
Live cause: Fiio is 192.168.3.44 — Personal VLAN 2, same subnet family as
the phone. Not blocked by Personal → IoT (that rule is for VLAN 5 only).
| Device | IP | VLAN | SSID (UniFi) |
|---|---|---|---|
| iPhone | 192.168.3.169 | 2 | IsThisTheKrustyKrab |
| Fiio R7 | 192.168.3.44 | 2 | The LAN Before Time (stale or wrong SSID) |
Fix (WiFi / iOS, not firewall): Owner keeps Fiio on LAN Before Time with Personal network override — see device-vlan-mapping.md. Optional: iOS Local Network for Music; multicast enhancement on KrustyKrab.
Mac/phone on Personal → print to Samsung at 192.168.1.167.
GenPop → Servers (printer outbound)¶
Should already work; test scan-to-folder or whatever uses Servers if applicable.
Policy to add later — AdGuard DNS (Q3.4)¶
When: AdGuard running on 192.168.6.17, before UDM DNS cutover.
- IoT → Internal → Create Policy
- Source zone IoT, source Any
- Destination zone Internal, destination IP
192.168.6.17 - Allow, ports TCP 53 + UDP 53 only
Post-change HA checklist¶
- Reload smlight / SLZB-06M
- Reload mqtt / zigbee2mqtt
- Re-pair TP-Link after WiFi move
- Re-add / reload Aqara after hub on IoT
- Re-auth UniFi Protect
- Remove stale synology_dsm entries (
192.168.1.88,.105) - Reload ipp / syncthru if Policy 4 added
Re-run audit: uv run python .scratch/audit/ha-pull.py
Rollback¶
Disable the four new Allow policies in the zone matrix. Isolation posture returns; HA, AirPlay, and Personal→printer break again.