Filter out AAAA DNS responses
November 7, 2020
Tl;DR
: with RPZ
we can hide AAAA
records while preserving other records
For those who look up the way to filter out AAAA
records in their local
caching DNS server here is my unbound
snippet for a single ipv6
address:
$ cat /etc/unbound/rpz.home
$ORIGIN rpz.home.
;; fails to resolve: https://bugs.gentoo.org/742326
;; block 2607:fcc0:4:ffff::4/128 -> NODATA (CNAME *.)
128.4.0.0.0.ffff.4.fcc0.2607.rpz-ip.rpz.home. CNAME *.
$ cat /etc/unbound/unbound.conf
server:
... usual configuration goes here
module-config: "respip validator iterator"
rpz:
name: rpz.home.
zonefile: /etc/unbound/rpz.home
Resolver can’t see the ipv6
address, only ipv4
:
$ dig bugs.gentoo.org AAAA @8.8.8.8
gannet.gentoo.org. 21599 IN AAAA 2607:fcc0:4:ffff::4
$ dig bugs.gentoo.org AAAA | fgrep AAAA
# nothing
$ dig bugs.gentoo.org A @8.8.8.8
gannet.gentoo.org. 21599 IN A 204.187.15.4
$ dig bugs.gentoo.org A
gannet.gentoo.org. 20091 IN A 204.187.15.4
You can do full sub-networks as well.
Why would I need it?
The other day I tried to reach bugs.gentoo.org
programmatically over
HTTP API and observed 100% traffic loss. wget
was also showing
hangups:
$ wget bugs.gentoo.org
--2020-09-19 09:24:22-- http://bugs.gentoo.org/
Resolving bugs.gentoo.org... 2607:fcc0:4:ffff::4, 204.187.15.4
Connecting to bugs.gentoo.org|2607:fcc0:4:ffff::4|:80...
# hung up
^C
$ wget -4 bugs.gentoo.org
--2020-09-19 09:25:02-- http://bugs.gentoo.org/
Resolving bugs.gentoo.org... 204.187.15.4
Connecting to bugs.gentoo.org|204.187.15.4|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
...
2020-09-19 09:25:03 (1.08 MB/s) - 'index.html' saved [13934]
As a workaround I added AAAA
response filtering locally as specified
in TL;DR
to unblock the scripts.