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 to false
, 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 to true
, 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 in bypassDomains
, i.e. example.com
also matches subdomain.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:
NoError
response codeAAAA
AAAA
recordA
record for the same domain is successful and returns an addressNote 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.