squid の名前解決

Squid を 3.0.9 から 3.5.19 にあげたらアクセスできなくなったのでメモ

NetBSD サーバの pkgsrc を 2016Q2 にし、squid を更新したところ 3.0.9 が 3.5.19 になった。

以前に特別な設定はしていなかったことを確認して、デフォルトの squid.conf を /usr/pkg/etc/squid/ にコピー。
squid を起動…したところつながらない。

ブラウザにはエラーが出ている。

ホスト名 “qiita.com” の IPアドレスがわかりません。

名前解決のエラーだ。

言うまでもないが、squid 以外の接続は正常で、ローカルの DNS は問題ない。

cache.log を見ると

2016/07/26 xx:xx:xx kid1| Adding nameserver 0.0.0.0 from /etc/resolv.conf
2016/07/26 xx:xx:xx kid1| WARNING: Squid does not accept 0.0.0.0 in DNS server specifications.
2016/07/26 xx:xx:xx kid1| Will be using [::1] instead, assuming you meant that DNS is running on the same machine

/etc/resolv.conf で指定した 0.0.0.0 が [::1] にフォールバックしている。
3.0.9 のときのログを見るとここは 127.0.0.1 だった。
というか 0.0.0.0 が許可されていないことに気づいてなかった。

ローカルの named はオプション -4 で運用しているのでつながらなかったわけだ。

どうしたものかちょっと考えた結果、squid.conf で明示的に 127.0.0.1 を指定することに。

dns_nameservers 127.0.0.1

今まで深くは考えていなかったけど、resolv.conf での 0.0.0.0 の指定ってどうなんだろう?