pfSense DNS Resolver and Private IP Ranges

Introduction

I ran into an issue with the Unbound DNS resolver on my pfSense router where FQDNs aliased to private IP address ranges were being cleansed and returned as empty. After some digging into the system logs, it was clear that the Unbound process was sanitizing public DNS entrees pointing to private IP address spaces with the following debug message:

sanitize: "removing public name with private address"

Documentation

According to the Unbound documentation, one may define private-domain options to specify a top-level domain which the resolver will allow private IP addresses to be returned from.

private-domain: <domain name>
              Allow this domain, and all its  subdomains  to  contain  private
              addresses.   Give  multiple times to allow multiple domain names
              to contain private addresses. Default is none.

Solution

Unfortunately, the pfSense web interface does not have a nice front-end for adding these to the configuration. Luckily, under Services/DNS Resolver/General Settings, additional configuration can be added in the Custom options text area.

The following option will allow resolving private addresses for the top level and any domain under example.com:

server:
private-domain: example.com