内部ネットワーク内でパブリック IP を使用すると、外部 DNS サーバーは外部ドメイン名を解決できません。

内部ネットワーク内でパブリック IP を使用すると、外部 DNS サーバーは外部ドメイン名を解決できません。

nslookup内部ネットワーク内のコンピューターからクエリを実行するために使用します。DNS サーバーのプライベート IP を使用すると、外部ドメイン名を正常に解決できます。

> www.ust.hk
サーバー: 192.168.28.58
アドレス: 192.168.28.58#53

非権威的な回答:
名前: www.ust.hk
住所: 143.89.14.1

ただし、内部ネットワーク内で DNS サーバーのパブリック IP を使用すると、外部ドメイン名を解決できません。

$ nslookup
server wxyz
デフォルトサーバー: wxyz
アドレス wxyz#53
> www.ust.hk
サーバー: wxyz
アドレス: wxyz#53
サーバーは www.ust.hk を見つけることができません: 拒否されました

dns.log を調べると、外部ドメイン名が拒否されていることが示されています。

(www.ust.hk): クエリ (キャッシュ) 'www.ust.hk/A/IN' が拒否されました

内部ネットワークでは再帰が許可されているため、これは不合理です。コンピュータが内部ネットワークの外部にある場合、外部ドメインを解決できないのは当然です。

次のような名前の設定ファイルがあります:

acl "trusted" {
               192.168.0.0/16;
               localhosts;
               localnets;
};

options{
listen-on port {any;};
listen-on-v6 port 53 { none; };
allow-query { any; };
allow-recursion {trusted;};
allow-query-cache {trusted;};
....
};

この問題の原因は何でしょう。ファイアウォールの設定ミスが原因でしょうか? dns.log には拒否と記載されているので、ファイアウォールの問題ではないようです。
ループバック NAT ルールも追加しましたが、それでも効果がありません。DNS サーバーは DMZ ゾーンにあることに注意してください。

その他編集

編集1

ポイントは、「NAT 設定を変更して、この特定のトラフィックをカバーしないようにし、ソースがローカルのままになるようにする」ことです。これは最も実現可能に思えますが、どのように実行すればよいのか疑問に思います。

PDNS1 (パブリック) IP は WAN ゾーンにあり、PDNS1 (プライベート) IP は DMZ ゾーンにあります。

弊社のファイアウォール ブランドは sonicwall です。現在の NAT は次のとおりです:
source-original: 任意
source-translated: Pdns(パブリック)
Destination-original: Pdns(パブリック)
Destination-translated: Pdns(プライベート)
service-original: DNS(ネーム サービス)
service-translated: オリジナル

他の 2 つの NAT ルールは、通常の 1 対 1 の再帰 NAT です。

特定のトラフィックをカバーせずにソースをローカルのままにする方法がわかりません。 親切にアドバイスして、詳細を詳しく説明してください。 どうもありがとうございます。

編集2

「パブリック IP を追加する (ローカル ネットワークのリストに sNAT されるもの)」という点については、以下の設定を試しました。内部ネットワーク内のパブリック IP を使用した DNS クエリは、外部ドメイン名を正常に解決できるのは事実です。

残念ながら、内部ネットワーク外のパブリック IP を使用した DNS クエリは、外部ドメイン名も解決できます。これは、DNS 増幅攻撃に対して脆弱なオープン DNS サーバーになるため、望ましくありません。

acl "信頼済み" {
219.189.213.25;
192.168.0.0/16;
ローカルホスト;
ローカルネット;
};

ポイントは、「任意の IP からのドメインへの応答を有効にする (望ましくない場合もあります)」

これは、named.conf の以下の設定を意味していると思います: recursion yes;
または、
allow-recursion { any; };
allow-query-cache { any; };

同様に、DNS サーバーがオープン DNS になってしまうため、非常に望ましくありません。

編集3

  1. 以下は、内部ネットワーク内のプライベート IP を使用した DNS クエリです:
    [root@pdns1 ~]# nslookup
    server 192.168.28.58
    デフォルト サーバー: 192.168.28.58
    アドレス: 192.168.28.58#53
    www.hku.edu.hk
    サーバー: 192.168.28.58
    アドレス: 192.168.28.58#53
    非権限回答:
    名前: www.hku.edu.hk
    アドレス: 147.8.2.58

  2. 以下は、内部ネットワーク内のパブリック IP を使用した DNS クエリです:
    サーバー 219.189.213.25
    デフォルト サーバー: 219.189.213.25
    アドレス: 219.189.213.25#53
    www.mingpao.com
    サーバー: 219.189.213.25
    アドレス: 219.189.213.25#53
    ** サーバーは www.mingpao.com を見つけることができません: 拒否

以下は dns.log です:
16-Jan-2020 20:40:12.460 セキュリティ: 情報: クライアント @0x7f963c508310 219.189.213.25#43529。 (www.mingpao.com): クエリ (キャッシュ) 'www.mingpao.com/A/IN' が拒否されました

以下はqueries.logです:
16-Jan-2020 20:39:42.109 クエリ: 情報: クライアント @0x7f963c0a3ce0 192.168.28.58#60338 (www.hku.edu.hk): クエリ: www.hku.edu.hk IN A + (192.168.28.58)

2020 年 1 月 16 日 20:39:42.401 クエリ: 情報: クライアント @0x7f963c58e9c0 192.168.28.58#58101 (www.hku.edu.hk): クエリ: www.hku.edu.hk IN AAAA + (192.168.28.58)

2020年1月16日 20:40:12.460 クエリ: 情報: クライアント @0x7f963c508310219.189.213.25#43529 (www.mingpao.com): クエリ: www.mingpao.com IN A + (192.168.28.58)

リクエストが WAN から来たというのは本当ですか?

答え1

質問/ヒントは、パブリック IP を使用して DNS サーバーにアクセスしようとした後、どのようにして DNS サーバーにアクセスするかということです...

DMZ 内のパブリック IP を使用してサーバーに到達すると、トラフィックは既に sNAT されている可能性が高くなります。サーバーの観点から見ると、通信はローカルではありません。ログ レコードをもう一度確認してください。リクエストの送信元の IP が表示されます...

これを動作させるには、次の操作を実行できます。

  • 任意の IP からのドメインへの応答を有効にする (望ましくない場合もあります)

  • NAT設定を変更して、この特定のトラフィックをカバーしないようにし、ソースがローカルのままになるようにします。

  • パブリック IP を追加します (ローカル ネットワークのリストに sNAT されるもの)

関連情報