The Filter AAAA
app allows filtering AAAA
records by returning NODATA
responses when A
records for the same domain name are available. This allows clients with dual-stack (IPv4 and IPv6) internet connections to prefer using IPv4 to connect to websites and use IPv6 only when a website has no IPv4 support.
The app is a post processor. That means, it modifies a response generated by the DNS server before it is sent to the client.
As any post processor, this app is configured globally in the app settings. Its configuration file is a JSON document which looks like the following:
{
"enableFilterAaaa": true,
"defaultTtl": 30,
"bypassLocalZones": false,
"bypassNetworks": [
"192.168.1.0/24"
],
"bypassDomains": [
"example.com"
],
"filterDomains": [
]
}
The individual settings are:
-
enableFilterAaaa
: when set tofalse
, this app is disabled and passes through the original response. -
defaultTtl
: The default TTL (seconds) to use for the response. This will be used by clients to cache negative response. -
bypassLocalZones
: when set totrue
, authoritative answers are passed through unmodified. -
bypassNetworks
: a list of networks. If a request originates from a client in any of the specified networks, the original response is passed through unmodified. -
bypassDomains
a list of domain names. If a request is for a domain in this list, the original response is passed through unmodified. This includes subdomains of the domains inbypassDomains
, i.e.example.com
also matchessubdomain.example.com
. -
filterDomains
a list of domain names. If the list of filtered domain names is specified then the app will filter AAAA responses only for the specified domain names and their subdomain names. When the list is empty then the app will filter AAAA responses for all domain names.
The app processes any response which matches all of the following criteria:
- the response has a
NoError
response code - the query type is
AAAA
- the response contains at least one
AAAA
record - the request / response pair is not excluded by any configuration setting
- a lookup for an up
A
record for the same domain is successful and returns an address
Note that this means that NXDOMAIN
, SERVFAIL
, and NODATA
responses are left unmodified.
The matching responses are replaced by one which includes all the CNAME
records from the original response and a SOA
record, but no AAAA
record.