为什么我看到IPv6解决错误,尽pipe已禁用IPv6绑定?

我看到如

Feb 13 21:45:48 srv named[2355]: address not available resolving 'secure.gravatar.com/A/IN': 2a04:fa87:ffff::c6b5:7405#53 Feb 13 21:42:29 srv named[2355]: address not available resolving 'la1.akamaiedge.net/AAAA/IN': 2001:500:a8::e#53 

/var/log/syslog尽pipe只在IPv4模式下运行bind

 srv # cat /etc/default/bind9 # run resolvconf? RESOLVCONF=no # startup options for the server OPTIONS="-u bind -4" 

为什么这样?

-4选项只是改变告诉绑定来监听和响应IPv4数据包。 它AAAAAAAAlogging。

那么有没有办法在绑定中丢弃IPv6地址?

如果这是你真正想要的,那么你可以调整你的绑定configuration,包括以下内容。 您必须禁用dnssecvalidation,因为您正在删除有效的logging。

 options { ... dnssec-enable no; filter-aaaa-on-v4 yes; ... }; 

如果系统正在使用systemd,那么编辑/etc/default/bind9将不起作用。

编辑/lib/systemd/system/bind9.service文件,并将-4选项添加到ExecStartvariables。 我使用的是Ubuntu 16,必须这样做。

ExecStart=/usr/sbin/named -f -4 -u bind

再次检查重新启动named后运行-4选项。

实际上有一个关于这个configuration混淆的错误https://bugs.launchpad.net/ubuntu/+source/bind9/+bug/1565060

停止消息的解决scheme是将转发器添加到configuration中(recursion是否启用无关紧要):

 options { (...) forwarders { 8.8.8.8; 8.8.4.4; }; };