WireGuard/pfSense に接続すると DNS クエリが拒否される

WireGuard/pfSense に接続すると DNS クエリが拒否される

私はもう 10 年以上、OpenVPN で pfSense を使用しています。また、pfSense の多くのサービス (DNS リゾルバ、DHCP、HA プロキシ、SquidGuard、もちろんファイアウォールなど) も集中的に使用しています。つまり、ある程度の経験があります。しかし、OpenVPN を WireGuard に置き換えてみることにしました...

pfSense 側でトンネルを作成し、Windows クライアントを構成して、正常に接続しました。pfSense の背後にある (ほぼ) すべてのサーバーにアクセスできます。しかし、DNS の動作に非常に奇妙な点があることに気付きました。問題を説明するために、自分の環境を簡単に説明する必要があります。そのため、次の操作を実行しました。

  • 分割 DNS 設定 (内部 DNS はプライベート アドレスに解決され、パブリック DNS はパブリック アドレスに解決されます)。
  • 内部 DNS サーバーは、2 つの Zentyal ドメイン コントローラー (pfSense の背後のネットワーク内) です。これらは、メイン ドメイン「mydomain.com」の権限のあるネーム サーバーです。
  • これら 2 つは、他のドメインの DNS クエリを pfSense の DNS リゾルバに転送するように構成されています。(DNS リゾルバは Zentyal DNS よりもはるかにユーザーフレンドリーで優れているため、DNS リゾルバでさらにいくつかのドメインを構成しています。)
  • 最後に、DNS リゾルバは解決されないドメインのクエリを外部 DNS に転送します。
DNS request -> Zentyal DNS (172.16.0.1) -> pfSense DNS Resolver (172.16.1.1) -> External DNS

少し奇妙な設定であることは認めますが、それはもう何年も機能していました。

OpenVPNを使用してWindows 11マシンに接続すると、nslookupどのドメイン(メインまたは別のドメイン)でも問題なく実行できます。しかし、OpenVPNを切断してWireGuardに接続すると、クエリできるのはメインドメイン:

nslookup web.mydomain.com
Server:  zentyal-1.mydomain.com
Address:  172.16.0.1

Name:    web.mydomain.com
Address:  172.16.2.5

しかし、他のドメイン (DNS リゾルバまたは外部 DNS によって処理される) をクエリすると、「クエリが拒否されました」というエラーが発生します。

nslookup google.com
Server:  zentyal-1.mydomain.com
Address:  172.16.0.1

*** zentyal-1.mydomain.com can't find google.com: Query refused

OpenVPN を使用して接続している場合もまったく同じ要求が返されます。

nslookup google.com
Server:  zentyal-1.mydomain.com
Address:  172.16.0.1

Non-authoritative answer:
Name:    google.com
Addresses:  2a00:1450:4001:80f::200e
          142.250.185.142

明らかに、どちらの場合も同じ DNS サーバー (zentyal-1) がリクエストを受信し、同じサーバーが応答します。1 回は「クエリが拒否されました」、もう 1 回は成功した応答です。WireGuard 経由で接続している場合、DNS Resolver が Zentyal への応答を拒否しているようです。

私の WireGuard クライアント設定:

[Interface]
PrivateKey = XXXX=
Address = 172.16.26.2/24
DNS = 172.16.0.1

[Peer]
PublicKey = YYYYY=
AllowedIPs = 172.16.0.0/16
Endpoint = 1.2.3.4:51820

そして、これは奇妙な動作の終わりではありません。コマンドプロンプトでのみ「クエリ拒否」問題が発生していますnslookup。ブラウザはこの問題にまったく影響されないようです。(nslookupgoogle.com にアクセスできませんが、Firefox では問題なく開きます。)最初は、何らかの DNS リークで、ブラウザがローカル DNS にクエリしているのだと思いました。しかし、驚いたことに、そうではないようです。ブラウザは、DNS リゾルバによって処理されるドメインの DNS 応答をプライベート IP で取得しています。つまり、応答は来なければならなかったpfSense の背後から (DNS リゾルバから)...

ふぅぅぅぅ

何かアイデアはありますか?長い文章ですみません... ありがとうございます!

関連情報