尽管在绑定中禁用了 IPv6,为什么我仍然看到 IPv6 解析错误?

WoJ*_*WoJ 2 linux bind nameserver linux-networking

我看到诸如

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
Run Code Online (Sandbox Code Playgroud)

/var/log/syslog尽管运行bind在只有IPv4模式

srv # cat /etc/default/bind9
# run resolvconf?
RESOLVCONF=no

# startup options for the server
OPTIONS="-u bind -4"
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

小智 5

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

/lib/systemd/system/bind9.service改为编辑文件-4并向ExecStart变量添加选项。我正在使用 Ubuntu 16 并且不得不这样做。

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

还要仔细检查重新启动后named正在运行的-4选项。

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

  • 这个答案不正确。Debian 和 Ubuntu 上的 systemd 单元文件通常通过 `EnvironmentFile` 使用 `/etc/default` 中的相应文件。bind9/named 单元当然可以。在 Debian 11 又名 *bullseye* (和 *buster-backports*)中,文件已从 `/etc/default 更改](https://salsa.debian.org/dns-team/bind9/-/commit/6fd962a36bb54e0106e001aff6cce056d54e2526)但是 /bind` 到 `/etc/default/named` 。 (2认同)