VPNとローカルDNSを使用して漏洩することなく名前解決

VPNとローカルDNSを使用して漏洩することなく名前解決

ほとんどの場合、Ubuntu 18がインストールされているネットワークとネットワークコンテンツ用のローカル専用DNSサービスがあります。

私が望むのは、システムが起動時にDHCPを介して正常にネームサーバーを取得することです。これらの要求をインターネットに送信するのではなく、ローカルコンピュータにローカルDNSサーバーを使用する必要がありますが、他のすべてのルックアップにはインターネットサーバーを使用する必要があります。

ユーザーがメニューバーのNetworkManagerコントロールVPNクライアントに接続するときは、ローカルでない要求にのみVPNのDNSサーバーを使用する必要があり、DHCPから取得したDNSサーバーは絶対に使用しないでください。ただし、引き続きローカルサーバーを使用する必要があります。ローカル要求を処理中です。

私の考えでは、ローカルチェックのためにdnsmasqの「サーバー」オプションを正常に使用したようです。ただし、正規化されたローカル名に対しても依然として要求をインターネットに転送します。

最初にローカルサーバーで古いスタイルのresolv.confを設定しようとしましたが(サーバーは要求を渡すのではなく拒否するように構成されています)、Ubuntuのリゾルバーは構文解析で2番目のサーバーをすぐに使用しようとしなかったため失敗しました。最初のサーバーが要求を拒否した場合は、2番目のサーバーを試す前に5秒後に強制的にタイムアウトします。 options timeout:1を使用してタイムアウトを1秒に減らすことはできますが、それでも理想的なレベルではなく、VPNがファイルを書き換えるたびに解決するためにネットワーク管理者にそのオプションを作成する方法が見つかりませんでした。またはダウン。私はNetworkManagerと競合しない解決策を好むが、うまくいく解決策であれば何でもよい。

答え1

この質問を偶然見つけた他の人のために私が現在使っている答えは次のとおりです。

ローカルDNSサーバーを使用してローカルドメインを確認し、リモートDNSサーバーを使用してリモートドメインを確認するようにsystemd-resolvedとsystemd-networkdを構成するにはどうすればよいですか?

しかし、問題があります。文書の内容に関係なく、リモートアドレスを照会するたびに一連の要求をローカルサーバーに送信します。私のローカルサーバーは高速で、研究室には人数が少ないため、これは許容可能ですが、一般的なソリューションではスケーラブルではありません。

関連情報