web-dev-qa-db-ja.com

バインドでIPv6を無効にしても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 IPv4モードでのみbindを実行しているにもかかわらず

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

# startup options for the server
OPTIONS="-u bind -4"

なぜそうなのですか?

2
WoJ

システムがsystemdを使用している場合、/etc/default/bind9を編集しても効果はありません。

代わりに/lib/systemd/system/bind9.serviceファイルを編集し、ExecStart変数に-4オプションを追加します。私はUbuntu 16を使用しており、それを行わなければなりませんでした。

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

また、再起動後、named-4オプションで実行されていることを再確認してください。

この構成の混乱について実際に満たされたバグがあります https://bugs.launchpad.net/ubuntu/+source/bind9/+bug/156506

4

-4オプションの変更のみが、IPv4パケットをリッスンして応答するようにbindに指示します。 AAAAレコードの使用は無効になりません。

バインドでIPv6アドレスを破棄する方法はありますか?

それが本当に必要な場合は、バインド構成を調整して以下を含めることができます。有効なレコードをドロップしているため、dnssec検証を無効にする必要があります。

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

-4namedコマンドラインに追加する代わりに(これは機能しますが、namedの起動方法によっては不便な場合があります)、以下を追加することもできます。 IPv6を介して接続を試行しないことに関して同様の効果を持つ構成:

server ::/0 {
        bogus yes;
};

これは、IPv6アドレスを持つサーバーにbogusとしてフラグを立て、これらのアドレスへのクエリを防止します。

おそらく言うまでもありませんが、これらのオプションは両方とも、グローバルIPv6接続のない環境でのみ使用する必要があります。namedは、これらすべての種類のエラーを常にログに記録します。
特定のサーバーへの接続に時々発生する問題に遭遇しただけの場合、それはあなた自身の側でプロトコル全体の使用を無効にする理由にはなりません。

0