FILTER-AAAA(8)
π filter-aaaa(8) β the BIND 9 glow-up page π
Okay so this is the manual page for filter-aaaa(8) from BIND 9, and it's literally about filtering AAAA records in DNS responses when A is present. Yes bestie, we're doing selective IPv6 hiding, let's go. π¦
β¨ NAME β¨
filter-aaaa β filter AAAA in DNS responses when A is present. That's the whole name, periodt. π
πΈ SYNOPSIS πΈ
plugin query "filter-aaaa.so" [{ parameters }];
That's the summoning spell, bestie. π
π¦ DESCRIPTION π¦
filter-aaaa.so is a query plugin module for named, enabling named to omit some IPv6 addresses when responding to clients. It's giving selective AAAA suppression, lowkey. π
Until BIND 9.12, this feature was implemented natively in named and enabled with the filter-aaaa ACL and the filter-aaaa-on-v4 and filter-aaaa-on-v6 options. These options are no longer available in named.conf but can be passed as parameters to the filter-aaaa.so plugin, for example:
plugin query "filter-aaaa.so" {
filter-aaaa-on-v4 yes;
filter-aaaa-on-v6 yes;
filter-aaaa { 192.0.2.1; 2001:db8:2::1; };
};
This module is intended to aid transition from IPv4 to IPv6 by withholding IPv6 addresses from DNS clients which are not connected to the IPv6 Internet, when the name being looked up has an IPv4 address available. Use of this module is not recommended unless absolutely necessary. No cap, the manual itself says not recommended unless absolutely necessary β so don't just enable this for funsies. π
Note: This mechanism can erroneously cause other servers not to give AAAA records to their clients. If a recursing server with both IPv6 and IPv4 network connections queries an authoritative server using this mechanism via IPv4, it is denied AAAA records even if its client is using IPv6. That's the messy part, bestie β please read it twice. π
β OPTIONS β
filter-aaaaβ this option specifies a list of client addresses for which AAAA filtering is to be applied. The default isany. So if you don't specify, it's literally any client. πfilter-aaaa-on-v4β if set toyes, this option indicates that the DNS client is at an IPv4 address, infilter-aaaa. If the response does not include DNSSEC signatures, then all AAAA records are deleted from the response. This filtering applies to all responses, not only authoritative ones. π«Ά
If set to break-dnssec, then AAAA records are deleted even when DNSSEC is enabled. As suggested by the name, this causes the response to fail to verify, because the DNSSEC protocol is designed to detect deletions. That's the "break" part, bestie β it's not a cute nickname, it's a warning. π
Also, this mechanism can erroneously cause other servers not to give AAAA records to their clients. If a recursing server with both IPv6 and IPv4 network connections queries an authoritative server using this mechanism via IPv4, it is denied AAAA records even if its client is using IPv6. β οΈ
filter-aaaa-on-v6β this option is identical tofilter-aaaa-on-v4, except that it filters AAAA responses to queries from IPv6 clients instead of IPv4 clients. To filter all responses, set both options toyes. Slay, now you've got both sides covered. π
π SEE ALSO π
BIND 9 Administrator Reference Manual. β yes, go read the big manual too. π
πΈ Author πΈ
Internet Systems Consortium β iconic. π
π Copyright π
2026, Internet Systems Consortium β respect the copyright, bestie. π«Ά
mwah π β this page is from BIND version 9.20.30, dated 2026-10-12, and yes it's the FILTER-AAAA(8) manual. Bye bestie! π
π¦ where this page comes from
- alpine 3.22: bind-doc 9.20.30-r0 Β· MPL-2.0
- alpine 3.23: bind-doc 9.20.30-r0 Β· MPL-2.0
- alpine 3.24: bind-doc 9.20.30-r0 Β· MPL-2.0
- nixos 26.05: bind 9.20.30
- nixpkgs unstable: bind 9.20.30
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms