bind9 で特定のドメインの A レコードを返しますが、AAAA レコードは返しません。

bind9 で特定のドメインの A レコードを返しますが、AAAA レコードは返しません。

私はルートヒント方式(例えばこれ)。期待通りに動作しますが、私たちの IPv6 トラフィックは私の国外のゲートウェイを通過するため、Netflix は私たちがその国からアクセスしていると認識し、子供たちが好きな番組を視聴できなくなります。そのため、bind9 が netflix.com の AAAA レコードを返さないようにできれば、クライアントは Netflix への IPv4 接続のみを試行するようになるのではないかと考えています。

つまり、netflix.com の AAAA レコード検索が抑制され、netflix.com の有効な A レコード結果が返されるように、bind9 をどのように構成すればよいのでしょうか?

Netflix ドメインのみでゾーン ファイルを作成し、netflix.com の A レコードをすべて含め、AAAA レコードを含めないようにできることはわかっています。ただし、ゾーン ファイル内の A レコードを更新したままにしなくても済むように、上記の方法が可能かどうか疑問に思っています。

答え1

これは古い投稿であることは承知していますが、(少なくとも)私のバージョンの bind(Ubuntu 18.04 上の 9.11)では、ビューで filter-aaaa-on-v4 と match-destinations を組み合わせて使用​​できることがわかりました。

依然として 2 つの IP アドレスでバインド リッスンが必要ですが、少なくとも複数のインスタンスは必要ありません。

192.168.1.1 は通常の DNS サーバーです。192.168.1.2 は IPv6 をブロックするサーバーです。

私の設定は次のようになります (一部):

options {
    listen-on port 53 { 192.168.1.1; };
    listen-on port 5353 { 192.168.1.2; };
};

view "ipv4only" {
  match-destinations { 192.168.1.2/24; };
  filter-aaaa-on-v4 yes;
};

view "normal" {
  match-clients { 192.168.1.1/24; };
  zone "netflix.com" {
    type forward;
    forward only;
    forwarders { 192.168.1.2 port 5353; };
  };
};

これにより、ドメインが netflix.com と一致する場合、bind は別の IP で自身への前方参照を実行します。

これにより、2 つのインスタンスは不要になりますが、残念ながら 2 つの内部 IP アドレスが必要になります。「match-destinations」でポート番号も指定できれば便利です。

答え2

コメントで示されているように、bind ではこれができない可能性があります。ただし、回避策で問題を解決することができました。

まず、次の構成ファイルを使用して、ポート 5353 でリッスンする 2 番目のバインド サービスを追加しました。

acl mynetworks {
    localhost;
    (And a list with my various LAN networks such as 192.168.0.0/24;)
};

acl everyone {
    any;
};

options {
    directory "/var/cache/bind-ipv4limited";
    filter-aaaa-on-v4 yes;
    #dnssec-validation auto;
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
    dnssec-lookaside . trust-anchor dlv.isc.org.;
    recursion yes;
    allow-query { mynetworks; };

    forwarders {
        8.8.8.8;
        8.8.4.4;
    };
    forward only;

    auth-nxdomain no;    # conform to RFC1035
    listen-on port 5353 { any; };
};

ここで重要なのは、「filter-aaaa-on-v4 yes;」を使用して AAAA 要求を無視することです。

次に、元のバインド サービスに、上記の DNS サービスを使用する netflix.com のゾーンを追加しました。

zone "netflix.com" {
    type forward;
    forward only;
    forwarders {
        127.0.0.1 port 5353;
    };
};

醜いハックですが、機能しているようです。

関連情報