Wheelhouse docs

mDNS repeater#

The third tab of DNS, at /dns. It owns service mdns repeater.

Printers, speakers and casting devices announce themselves with multicast DNS, which is link-local by design: it does not cross a router. Put the televisions on an IoT VLAN and the laptops on the LAN and they stop seeing each other, which is usually the moment somebody discovers this tab. The repeater re-announces multicast traffic between the interfaces you name, and discovery works across them again.

Where the data comes from#

GET /api/config?path=service mdns repeater, tolerating an unset path, plus GET /api/interfaces/detail for the interface list with lo removed — ui/src/pages/DnsExtras.tsx.

Note that this tab, like the rest of the DNS page, only renders on a router where service dns forwarding is configured. See the warning on the DNS page.

When it is configured#

FieldNodeWhen unset
Betweeninterface
IP versionip-versionboth
Allowed servicesallow-serviceall
Extra browse domainsbrowse-domain
Statedisableenabled

Below the values, each repeating interface appears as a chip. A chip carries a small × that stages the removal of that one interface — but only while more than two are configured, because a repeater with fewer than two interfaces has nothing to repeat between:

delete service mdns repeater interface eth0.20

Remove repeater stages a delete of the parent node, not just the repeater:

delete service mdns

That is worth knowing if the router ever grows another service mdns child.

The editor#

Visible only when no repeater is configured and the principal may write. It is a checkbox per interface, an IP-version menu, and a preview.

ControlCommand
interface checkboxesset service mdns repeater interface <if> per ticked interface
IP version menuset service mdns repeater ip-version ipv4 or … ip-version ipv6 — the first entry, IPv4 and IPv6, writes nothing

At least two interfaces must be ticked or nothing is staged; the preview says # pick at least two interfaces until they are.

set service mdns repeater interface eth0
set service mdns repeater interface eth0.20

allow-service and browse-domain are displayed when configured and are not written by this editor. Restricting the repeater to particular service types — allowing AirPlay and printing but not file shares — is a CLI command.

The interface list, and the VLAN problem#

The pickers are built from GET /api/interfaces/detail, which enumerates one entry per configured interface node and does not expand VLAN sub-interfaces. The commonest use of this feature is repeating between a LAN and an IoT VLAN, and the VLAN will not be in the list.

Configure it from the CLI, or from the config tree, and this tab will display the result correctly afterwards — reading is not affected, only the picker. See what the Interfaces table does not show.

What it costs#

Two smaller costs: multicast traffic from both segments now appears on both, which on a noisy IoT network is not nothing; and every repeated announcement is one more thing on the wire for a device that was working fine without it.

What breaks if you get it wrong#

  • One interface. Nothing is repeated. The editor refuses to stage it; the CLI does not.
  • The wrong pair. Repeating between the LAN and the WAN puts your internal service announcements on the provider's segment.
  • Firewall rules that do not follow. Discovery works, connecting does not, and the symptom is a device that appears in the list and times out when selected.
  • Expecting it to fix a subnet-routing problem. The repeater carries discovery. If the two segments cannot route to each other, discovering a service does not let you use it.

See also#

  • DNS — the resolver tab, and why this one needs it configured.
  • Adding an interface — creating the VLAN in the first place.
  • Interfaces — why the VLAN is not in the picker.
  • DHCP — addressing the segment you are bridging discovery to.

Checked against ui/src/pages/DnsExtras.tsx (MdnsTab), ui/src/pages/Dns.tsx, agent/opmode.go (collectInterfaces), ui/src/lib/api.ts.

Updated 2026-09-02 manual network dns mdns multicast