Smart Home Privacy

mDNS on VLANs: Smart Home Discovery Privacy 2026

How mDNS and DNS-SD work for Home Assistant and IoT, why VLANs break discovery, and how to relay reflector traffic without exposing your whole LAN in 2026.

Privacy Smart Home Research Desk Apr 02, 2026

Keywords: mDNS VLAN, Avahi smart home, Home Assistant discovery, DNS-SD IoT, Bonjour firewall

Quick answer: How do I get Home Assistant discovery working across VLANs safely?

Use a dedicated mDNS reflector (Avahi on Linux, OPNsense os-mdns-repeater, or pfSense Avahi package) scoped to only the subnets that need discovery. Avoid broad anycast rules that turn your VLAN strategy into a flat network.

Source: IETF multicast DNS overview

Executive Summary

Multicast DNS (mDNS) on 224.0.0.251:5353 powers Bonjour, Chromecast, AirPlay, and many Home Assistant integrations1. VLANs block Layer-2 multicast by design—so phones on LAN cannot discover printers on IoT unless you relay reflector traffic under control.

This guide explains why discovery breaks, which tools fix it, and privacy trade-offs (wider multicast scope = more device visibility). Pair with IoT VLAN setup and OPNsense vs pfSense.

Bottom line: Enable minimal mDNS relaying between subnets that need it—never “open all VLANs” for convenience.


How mDNS and DNS-SD expose devices

mDNS lets hosts announce _hap._tcp, _googlecast._tcp, _home-assistant._tcp without a central DNS server2. That is convenient for consumers but leaks service inventory to anyone on the broadcast domain. On a single flat LAN, every phone sees every Chromecast—acceptable for many homes; unacceptable for guest networks.

MechanismWhat leaksMitigation
mDNS broadcastService names + portsVLAN isolation
LLMNR (legacy Windows)HostnamesDisable if unused
SSDP (UPnP)HTTP control URLsBlock at firewall

Why VLANs break Home Assistant companion apps

Home Assistant Mobile Discovery may rely on mDNS when the app and server share a broadcast domain. Put HA on 10.0.10.0/24 and your phone on 10.0.20.0/24 without a reflector—auto-discovery fails even though TCP port 8123 might be reachable3. Users mistakenly punch giant firewall holes when the real fix is targeted multicast relay.


Reflector options compared

PlatformToolNotes
OPNsenseos-mdns-repeaterGUI-friendly; define interfaces explicitly4
pfSenseAvahi packageSimilar semantics; verify version
Linux / Proxmox hostavahi-daemon reflect-filtersFine-grained if you manage config files
Access pointsVendor “mDNS proxy”Verify it is not bridging all SSIDs blindly

Step-by-step design pattern

  1. Inventory which subnets need discovery (e.g., LAN + IoT, not Guest).
  2. Allow unicast HTTPS to HA (8123 or reverse proxy) with firewall rules—do not rely on mDNS for routine access.
  3. Enable reflector only on those interfaces; log blocked multicast elsewhere.
  4. Test with one IoT device before scaling.

DNS filtering interaction

Pi-hole and AdGuard can answer local DNS for static names, reducing reliance on mDNS for known hosts5. That does not replace discovery for roaming devices—combine static records for servers with limited mDNS for ephemeral gadgets. See Pi-hole vs AdGuard.


Common misconfigurations

MistakeSymptomFix
Reflector on every VLANExcessive broadcast loadLimit to two interfaces
Blocking all multicastBreaks legitimate IPv6Scope rules carefully
Expecting discovery without relayApp cannot find HAAdd unicast bookmark or relay

Testing and validation

After enabling a reflector, capture packets on both VLANs to confirm only expected service types traverse (e.g., _hap._tcp for HomeKit). Use iperf separately to ensure multicast storms are not saturating switches. Roll back if CPU on the firewall spikes.


Threat model: what attackers gain from wider mDNS

Broader multicast visibility helps attackers fingerprint devices (printer models, smart TVs). Keep guest Wi-Fi isolated with no reflector into trusted VLANs. Document exceptions for AirPrint or casting if family requirements demand it.

Network diagram illustrating mDNS Bonjour traffic blocked by VLAN segmentation and optional Avahi or OPNsense mdns repeater for controlled smart home device discovery without flattening the entire network in 2026.
Draw boundaries first, then add the smallest multicast bridge that restores UX.

Checklist

  • List subnets and mark which truly need cross-VLAN discovery.
  • Prefer HTTPS bookmarks over mDNS for Home Assistant mobile access.
  • Enable reflectors on a maintenance window and capture firewall logs.
  • Verify guest SSID cannot query IoT mDNS reflections.
  • Document rollback steps if multicast storms appear.

FAQ

Frequently Asked Questions

Should I put Home Assistant on the same VLAN as IoT?

Sometimes—if you want simplest discovery—but you lose segmentation. Often better: HA on trusted VLAN + firewall + selective mDNS relay.

Does Docker break mDNS for Home Assistant?

Container networking can block multicast unless you use host networking or macvlan—check your install method.

Will reflectors slow my network?

Properly scoped relays add minimal load; misconfigured bridges can amplify broadcast storms—monitor switch counters.

Are Apple HomeKit accessories special?

HomeKit uses Bonjour; same VLAN or controlled relay applies—pair with HomeKit vs NVR context.

What about IPv6 multicast?

mDNS can use IPv6 link-local; ensure your reflector handles both stacks if dual-stack is enabled.


Primary sources

IDSourceURL
1RFC 6762 mDNSietf.org
2DNS-SD (RFC 6763)ietf.org
3Home Assistant networkhome-assistant.io

Conclusion

mDNS across VLANs is a solved but sensitive problem: reflect sparingly, log changes, and prefer static DNS for infrastructure hosts. After tuning, revisit DNS leak blocking so IoT cannot bypass your resolver with DoH.

Footnotes

  1. mDNS uses link-local multicast 224.0.0.251 and UDP port 5353 per RFC 6762.

  2. DNS-SD service types such as _http._tcp advertise capabilities without centralized DNS.

  3. Unicast reachability does not imply working discovery—applications may still expect multicast responses.

  4. OPNsense mdns-repeater plugin documentation describes per-interface reflection.

  5. Local DNS records in Pi-hole/AdGuard reduce need for mDNS for fixed hosts.