Wheelhouse docs

DNS#

Services → DNS, at /dns. Four tabs: Forwarding, Local names, Dynamic DNS and mDNS, plus CLI in Advanced mode. This page documents the first two; Dynamic DNS and mDNS repeater have pages of their own.

The resolver is the router answering DNS for the hosts behind it: sending what it does not know to the servers upstream, caching the answers, and answering for the names you give it itself. Everything the tabs show can be changed from them. Like every editor in the product, a form adds to the pending changes, and nothing reaches the router until you apply them from the bar at the bottom of the page.

Forwarding#

Without a resolver#

A router with no resolver shows DNS forwarding is off and a Turn on DNS forwarding button. The form it opens is filled in from the router's own networks: it answers on the router's address on every interface that does not carry the default route, allows the networks those addresses are in, and forwards to the router's own DNS servers (the ones in the system settings). Check the lists and save.

The tiles#

TileWhat it shows
Cached answershow many answers the cache holds, and the most it will hold
Cache memorywhat the cache occupies, as the router reports it
Upstream servershow many servers questions are sent to, and which
Local namesrecords plus host names: everything the router answers for itself

The first two are live figures from the running resolver. A dash means the router did not report that figure.

The settings#

The Forwarding panel lists the settings, and Edit opens them:

FieldWhat it does
Upstream serverswhere questions the router cannot answer are sent. Each server has an address and, when it is not 53, a port — a local ad-blocking or encrypting resolver often listens on another
Use the router’s own DNS serversalso forward to the DNS servers in the router's system settings
Use DNS servers learned by DHCP onalso forward to the servers an interface learned from its DHCP server, typically the uplink's
Listen addressesthe router's addresses that answer DNS queries
Allowed networksthe clients that may use the resolver
Cache sizehow many answers are kept, 10000 when unset
Negative cache timehow long "no such name" answers are kept, in seconds
DNSSEChow signed answers are treated, below

Save stays unavailable while the form cannot be applied, and says why: the router needs at least one listen address and one allowed network, and somewhere to forward to.

Turn off removes the resolver, and with it every record and forwarded domain, since those live inside it. It asks before it does.

DNSSEC#

SettingBehaviour
Pass signatures through without validatingthe default: signatures go to clients that ask, nothing is checked
Validate for clients that askchecks signatures for a client that sets the flag for it
Validate and log failureschecks every signed answer and logs the ones that fail, but still returns them
Validate every answera signed answer that fails is refused (SERVFAIL)
Offno DNSSEC processing

Validate every answer is the protective setting. A private domain whose server does not sign its answers then needs Validate DNSSEC turned off under domain forwarding, below, or its names stop resolving.

Domain forwarding#

Questions for one domain can go to a different server from everything else — the office domain to the office's DNS server, a lab domain to the lab's. This is split DNS from the router's side: the rest of the internet still resolves through the upstream servers.

The Domain forwarding table lists each domain, its servers, whether they are resolvers, and whether its answers are validated. Add domain and a click on a row open the same form:

FieldWhat it does
Domainthe domain, and every name under it
Serverswhere its questions go, each with an optional port
Recursive serverson when the servers are resolvers (another router, an ad-blocker); off when they are the domain's own name servers
Validate DNSSECoff for a private domain whose server does not sign its answers

Delete stops forwarding the domain after asking.

Local names#

Two tables: names the router answers from its host list, and records in zones it answers for.

Host names#

The simplest way to give a device a name. Each entry is a name, one or more addresses and any aliases; the router answers for it, and uses it itself. Add host name and a click on a row open the form; Delete asks first.

Host names do not need the resolver's settings, and they do not take over a domain: a host name nas.home.example.net answers for that name and nothing else.

Records#

The Records table lists every record the router answers for, as Name, Type, Value, TTL and Zone. The name reads the way a client asks for it: the zone itself is the zone's name, and a wildcard reads *. in front of it. A record turned off carries Off.

Add record and a click on a row open the record form. It asks for the zone, the type and the name, then for what that type holds:

TypeHolds
A, AAAAone or more IPv4 or IPv6 addresses
CNAMEanother name
MXmail servers, each with a priority (10 when unset; lower is tried first)
NSthe name servers of a delegated subdomain
PTRa name, for a reverse lookup
TXTone or more text values
SPFone sender-policy value
SRVtargets, each a host and port with a priority and weight
NAPTRrules: order, preference, flags, service, expression, replacement

Every record also takes a TTL in seconds (300 when unset) and a Disabled switch, which keeps the record and stops answering it. Changing the zone, the type or the name replaces the record: the old one is removed in the same change.

The name is @ for the zone itself and * for every name in the zone that has no record of its own — a wildcard. Only A and AAAA records can be wildcards. The router stores the wildcard as any, which is the only spelling its configuration accepts; the page shows and takes *.

Delete record asks first. Deleting the only record in a zone deletes the zone too.

Zones#

A zone is every name under a domain, answered by the router. The Zones table lists each zone with its record count; a click opens it, with an Answer for this zone switch and Delete zone, which removes every record in it after asking how many that is.

Pending changes#

The Commit Bar lists what the editors staged as sentences: Change DNS forwarding settings — Cache size 20000, DNSSEC “Validate every answer”, Forward corp.example.net to 192.0.2.53, Add DNS record nas.home.example.net (A) — Address 192.0.2.10. In Advanced mode each editor also shows the commands it will stage, and the CLI tab shows the whole of service dns as the router's commands.

A dynamic DNS password is never in any of it: see Dynamic DNS.

What breaks if you get it wrong#

  • Clients pointed at an address the resolver does not listen on. Check the listen addresses against the DNS servers the DHCP scope hands out — see DHCP.
  • Allowed networks narrower than your networks. A new VLAN gets addresses and no name resolution, and it looks like a DHCP fault.
  • A zone that swallows a public domain. Described above. One name works and everything else in the domain stops.
  • Validate every answer, and a private domain. Its unsigned answers are refused. Turn off Validate DNSSEC for that domain.
  • A CNAME for the zone itself. A CNAME at @ is invalid DNS and behaves unpredictably even where it is accepted.
  • Cache size raised past what the box can hold. The resolver competes with everything else on the router for memory.

Worked example: split-horizon for your own domain#

The reference workload answers *.example.net with the address of the server that publishes those names, so that inside the network every name under the domain goes straight to it rather than out to the public address and back.

  1. Services → DNS, Local names, Add record.
  2. Zone example.net, type A, name *, address 192.0.2.10. Save.
  3. Add record again: the same zone, name @, the same address, for the domain itself. Save.
  4. Apply the changes. The records read *.example.net and example.net.
  5. Check it the way a client would, through the router's own resolver: the Diagnostics page's lookup tool asks the router, which is the answer your clients get — see Diagnostics → Tools.

If the lookup returns nothing, the client is usually not using this resolver at all: look at the DNS servers the DHCP scope hands out.

App integrations#

Installed apps can offer configuration for this page — an ad-filtering or DNS container offering to become the upstream, for instance. Offers appear between the header and the tabs, and only when an app declaring a hint for the dns page is installed. An offer may carry placeholders — the router's own address and its domain among them — which are filled from this router's configuration first; the full list is on Integration offers.

See also#

  • Dynamic DNS — keeping a public name pointed at a changing address.
  • mDNS repeater — discovery across networks.
  • DHCP — where clients learn which resolver to use.
  • DHCP and IPv6 — the same question for IPv6, answered by router advertisements.
  • Diagnostics → Tools — a lookup through the router's own resolver.

Updated 2026-09-18 manual network dns resolver forwarding split-horizon