
私はもう 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
。ブラウザはこの問題にまったく影響されないようです。(nslookup
google.com にアクセスできませんが、Firefox では問題なく開きます。)最初は、何らかの DNS リークで、ブラウザがローカル DNS にクエリしているのだと思いました。しかし、驚いたことに、そうではないようです。ブラウザは、DNS リゾルバによって処理されるドメインの DNS 応答をプライベート IP で取得しています。つまり、応答は来なければならなかったpfSense の背後から (DNS リゾルバから)...
ふぅぅぅぅ
何かアイデアはありますか?長い文章ですみません... ありがとうございます!