Skip to content

Current Network — Live Snapshot

Baseline capture: 2026-08-09 (read-only UniFi API dump of UDM SE) Prior baseline: 2026-06-03 (superseded for topology / clients / DNS evidence)

DNS authoritative on AdGuard

Per-VLAN DHCP DNS is 192.168.6.17 (AdGuard) on GenPop, Personal, Appliances, Servers, IoT, Security, and Management. WAN1 manual DNS is AdGuard. Legacy PiHole LXC 104 was destroyed 2026-06-17. Servers VLAN was corrected 2026-08-09 (was gateway .1; now .17).

Source: uv run python -m scripts.labctl unifi dump → unifi-live/unifi-dump-2026-08-09.sanitized.json Controller: UDM SE — UniFi Network 10.5.67 (previous at last reboot path: 10.4.x era); gateway firmware 5.1.27; uptime ~9 days at capture

This document is the as-built picture of the network at capture time. It is hand-authored from a live scan, not generated from inventory, so where inventory or the older device-VLAN mapping disagree, this document reflects reality. For the intended/design view see network.md; for firewall posture see firewall-live.md.

Regenerate anytime with labctl unifi dump (prefer infra-services /etc/homelab/labctl.env). Sanitize before commit — see unifi-live/README.md.


1. Physical topology

How the wired backbone and access points are actually cabled, from the UniFi device table (uplink MAC + port).

graph TD
    ISP["ISP — Cable"]
    MODEM["Cable Modem (UCI)<br/>192.168.100.1<br/>d0:21:f9:05:8f:21"]
    UDM["UDM SE (Gateway)<br/>WAN1 98.167.204.33 / eth8<br/>60:22:32:26:2f:89"]
    WAN2["WAN2 / eth9<br/>(enabled, failover-only)"]
    SW["USW Pro Max 16 PoE<br/>192.168.1.58<br/>28:70:4e:32:67:6d"]
    FLEX["USW Flex Mini<br/>192.168.1.95"]
    APH["Hallway AP — U7 Pro<br/>192.168.1.110 · 17 clients"]
    APD["Dining AP — AC Pro<br/>192.168.1.34 · 11 clients"]
    WIRED["Wired endpoints<br/>(servers, cameras, IoT, printers)"]
    WIFI["Wi-Fi clients<br/>(4 SSIDs → VLANs)"]

    ISP --> MODEM --> UDM
    WAN2 -.-> UDM
    UDM -->|port 11| SW
    SW -->|port 2| FLEX
    SW -->|port 13| APH
    SW -->|port 14| APD
    SW --> WIRED
    FLEX --> WIRED
    APH --> WIFI
    APD --> WIFI
Device Model Mgmt IP Firmware Uplink → Clients
UDM SE UDMPROSE 98.167.204.33 (WAN) / LAN 192.168.1.1 5.1.27 Cable modem (port 1) 51
USW Pro Max 16 PoE USPM16P 192.168.1.58 7.5.9 UDM port 11 22
USW Flex Mini USMINI 192.168.1.95 2.1.6 Pro Max port 2 1
Hallway AP (U7 Pro) U7PRO 192.168.1.110 8.7.11 Pro Max port 13 17
Dining AP (AC Pro) U7PG2 192.168.1.34 6.9.1 Pro Max port 14 11
Cable Modem UCI 192.168.100.1 1.4.3 — (WAN) 1

Dual-WAN: WAN1 weighted; WAN2 failover-only (no second ISP expected).


2. Layer-3 / VLAN topology

Every routed network on the UDM SE and the firewall zone it belongs to (zones drive the inter-VLAN policy — see firewall-live.md).

graph TD
    UDM["UDM SE<br/>inter-VLAN router + DHCP"]

    subgraph EXTERNAL["Zone: External"]
        W1["WAN1 / Internet 1<br/>98.167.204.33"]
        W2["WAN2 / Internet 2"]
    end

    subgraph INTERNAL["Zone: Internal (trusted)"]
        V1["VLAN 1 · GenPop<br/>192.168.1.0/24"]
        V2["VLAN 2 · Personal<br/>192.168.3.0/24"]
        V4["VLAN 4 · Servers<br/>192.168.6.0/24"]
        V10["VLAN 10 · Management<br/>192.168.10.0/24"]
    end

    subgraph IOTZ["Zone: IoT (untrusted)"]
        V5["VLAN 5 · IoT<br/>192.168.7.0/24"]
        V3["VLAN 3 · Appliances<br/>192.168.5.0/24"]
    end

    subgraph SECZ["Zone: Security"]
        V6["VLAN 6 · Security/Cameras<br/>192.168.8.0/24"]
    end

    subgraph VPNZ["Zone: Vpn"]
        VPN["VPN Server pool<br/>192.168.2.0/24"]
    end

    UDM --- W1
    UDM -.- W2
    UDM --- V1 & V2 & V4 & V10
    UDM --- V5 & V3
    UDM --- V6
    UDM --- VPN
VLAN Name Subnet Gateway DHCP pool Zone DHCP-handed DNS
1 GenPop 192.168.1.0/24 .1 .6–.254 Internal AdGuard 192.168.6.17
2 Personal 192.168.3.0/24 .1 .6–.254 Internal AdGuard 192.168.6.17
3 Appliances 192.168.5.0/24 .1 .6–.254 IoT AdGuard 192.168.6.17
4 Servers 192.168.6.0/24 .1 .6–.254 Internal AdGuard 192.168.6.17
5 IoT 192.168.7.0/24 .1 .6–.254 IoT AdGuard 192.168.6.17
6 Security 192.168.8.0/24 .1 .6–.254 Security AdGuard 192.168.6.17
10 Management 192.168.10.0/24 .1 .10–.100 Internal AdGuard 192.168.6.17
— VPN Server 192.168.2.0/24 .1 — Vpn (DHCP DNS off)

Note: Appliances (VLAN 3) is in the IoT firewall zone, not Internal.

Wi-Fi SSID → VLAN (live)

SSID Security Network → VLAN
The LAN Before Time WPA2-PSK GenPop → 1
IsThisTheKrustyKrab WPA2-EAP Personal → 2
Rebellious Amish Family WPA2-EAP Appliances → 3
HotSignalsInYourArea WPA2-EAP IoT → 5

Many IoT/Appliances clients still report association to The LAN Before Time while UniFi places them on IoT/Appliances networks — treat SSID column in §4 as association evidence, not as the VLAN truth (network name wins).


3. DNS resolution path

3a. Baseline at capture (2026-06-03)

At the June scan, every VLAN handed out the UDM gateway as DNS and WAN1 forwarded to PiHole 192.168.6.80. AdGuard existed but was not in path. See observation O1.

3b. Live path (2026-08-09 dump)

graph LR
    C["Clients (all VLANs)"]
    ADG["AdGuard + Unbound<br/>192.168.6.17:53<br/>infra-services"]
    UB["Root DNS"]
    RW["Rewrites<br/>*.lab.local<br/>*.infra.realemail.app"]

    C -->|"DHCP DNS"| ADG
    ADG --> RW
    ADG --> UB
Item Status (2026-08-09)
AdGuard + Unbound running Yes (ops — not from UniFi dump)
Per-VLAN DHCP DNS → .17 Yes — all data VLANs (Servers fixed 2026-08-09 via UniFi API)
UDM WAN1 DNS → .17 Yes (wan_dns1)
WAN1 IPv6 DNS Manual link-local-style addr on UDM (not AdGuard)
PiHole decom (LXC 104) Done (2026-06-17)

Servers VLAN note: AdGuard lives on this VLAN (192.168.6.17). Pointing Servers DHCP at .17 (same as other VLANs) does not worsen the failure domain vs using the UDM gateway as DNS: WAN1 upstream DNS is already AdGuard, so if .17 is down recursive resolution fails either way. Direct .17 keeps Servers consistent with GenPop/Personal/IoT and avoids an extra hop. Remaining caveat is Tailscale prefer-main on hosts that advertise 192.168.6.0/24 — see AdGuard — Servers VLAN caveat.

Verify from any VLAN:

dig @192.168.6.17 google.com +short

4. Live device inventory (by VLAN)

51 clients associated at capture (stat/sta). Names are UniFi hostnames / friendly names from the dump.

VLAN 4 — Servers (192.168.6.0/24)

IP Name Conn
192.168.6.17 infra-services wired
192.168.6.71 Proxbox (prox) wired
192.168.6.98 recordurbate wired
192.168.6.100 ubuncap wired
192.168.6.101 sonarqube (Prox guest) wired
192.168.6.119 harbor-registry wired
192.168.6.124 (Prox guest) wired
192.168.6.197 graylog wired
192.168.6.199 pulse wired
192.168.6.214 Whrrr LAN2 wired
192.168.6.215 Whrrr LAN1 wired
192.168.6.216 Whrrr LAN3 wired
192.168.6.222 octoprint wired
192.168.6.227 poopcastle (HAOS) wired
192.168.6.243 saltierpoop wired
192.168.6.252 postgresql wired

VLAN 2 — Personal (192.168.3.0/24)

IP Name Conn
192.168.3.17 CaptainKangapoo wired
192.168.3.37 Mac (MBP M4) Wi-Fi (KrustyKrab)
192.168.3.44 Fiio R7 Wi-Fi
192.168.3.60 OnePlus-8-Pro Wi-Fi (KrustyKrab)
192.168.3.85 Samsung Wi-Fi
192.168.3.169 iPhone Wi-Fi (KrustyKrab)
192.168.3.234 Mac Wi-Fi (KrustyKrab)
192.168.3.240 LM-L06YF9KDC1 wired

VLAN 5 — IoT (192.168.7.0/24)

IP Name Conn
192.168.7.22 Xiaomi air purifier Wi-Fi
192.168.7.81 Aqara Hub M2 Wi-Fi
192.168.7.93 Govee / Whrrr-named AP client Wi-Fi
192.168.7.106 Bedroom (Apple TV) wired
192.168.7.107 Doorbell (Aqara G4) Wi-Fi
192.168.7.124 Kitchen (HomePod) Wi-Fi
192.168.7.132 SLZB-06M wired
192.168.7.145 PETLIBRO feeder Wi-Fi
192.168.7.156 neakasa-M1 Wi-Fi
192.168.7.159 Blueair / espressif Wi-Fi
192.168.7.168 Google Nest Mini Wi-Fi
192.168.7.169 Smart feeder (lwip0) Wi-Fi
192.168.7.184 Yale Lock — Front Door Wi-Fi
192.168.7.212 roborock-vacuum-a288 Wi-Fi
192.168.7.217 ChargePoint-class client Wi-Fi
192.168.7.241 BooBEE (ecobee) Wi-Fi

VLAN 3 — Appliances (192.168.5.0/24)

IP Name Conn
192.168.5.39 Fellow-Aiden Wi-Fi
192.168.5.59 prusa-core-one Wi-Fi
192.168.5.71 EcoNet water heater Wi-Fi
192.168.5.239 GEMODULE (GE) Wi-Fi
192.168.5.247 bosch-dishwasher Wi-Fi

Rollo label printer not seen in this capture.

VLAN 6 — Security (192.168.8.0/24)

IP Name Conn
192.168.8.10 g5-flex — rack monitor wired
192.168.8.76 g4frontdoor wired
192.168.8.173 g4carport wired

VLAN 1 — GenPop (192.168.1.0/24)

Infra APs/switches are devices (not always in stat/sta). Client stations:

IP Name Conn
192.168.1.91 android (Raven Scanner target) Wi-Fi
192.168.1.167 Samsung printer (SEC30…) Wi-Fi
192.168.1.178 A2BUHOVA… Wi-Fi

VLAN 10 — Management (192.168.10.0/24)

No clients in dump — reserved for admin / out-of-band.


5. WAN exposure (port forwards)

Service WAN port → Internal target
HTTP 80 192.168.6.243:80 (saltierpoop)
HTTP_Too 8080 192.168.6.243:8080
HTTPS 443 192.168.6.243:443

No SMB/445 forward is present (consistent with the Phase 0 hotfix).


6. Drift & anomalies (2026-08-09)

Finding Evidence Notes
Servers DHCP DNS → AdGuard PUT networkconf 2026-08-09 → dhcpd_dns_1=192.168.6.17 Renew leases / wait TTL on Servers clients
Aqara Hub on IoT 192.168.7.81 Was GenPop in June notes; now IoT
cam-rack IP 192.168.8.10 Matches inventory (June live doc had .11)
postgresql LXC 102 inventory postgresql + UniFi .252 VMID reused after aiproject destroy
Inventory firmware drift UDM/AP/switch versions in dump ahead of some YAML Docs/pages updated; inventory bump optional

Older June observations remain in Network Observations (2026-06-03) for historical context; do not treat them as current matrix truth.