
複数のネームサーバーに同時にクエリを送信できるローカル DNS リゾルバーを設定するにはどうすればよいでしょうか?
なぜ必要なのか:
- 1.1.1.1 または 8.8.8.8 の信頼性はあまり良くありません。(1.1.1.1 では、先週、ダウンまたは不安定な時間が観測されました)
- マシンは https/socks5 プロキシをホストしているため、名前の検索は重要かつ頻繁に行われます。1
つのネームサーバーがサービスを提供できない場合は、遅延を減らすために並列検索が推奨されます。
Linux マシンは Ubuntu サーバー 22.04 です。https
/socks5 プロキシ サービスは複数の DNS サーバーを処理できないため、ローカル リゾルバーが並列またはフォールバック検索を処理する必要があります。
答え1
ドキュメントによると、これは次のようにして可能となる。 ドメイン名。
使用するパラメータは次のとおりです。
--all-servers
デフォルトでは、dnsmasq に複数のアップストリーム サーバーが利用可能な場合、1 つのサーバーにのみクエリが送信されます。このフラグを設定すると、dnsmasq はすべてのクエリをすべての利用可能なサーバーに送信するように強制されます。最初に応答したサーバーからの応答が元の要求者に返されます。
次のように DNSMASQ_OPTS を編集し/etc/default/dnsmasq
て追加することでこれを実行できます。–all-servers
DNSMASQ_OPTS="--all-servers"
参考文献:
- dnsmasq –all-servers で DNS を飛ばす
- dnsmasq を使用した並列 DNS ルックアップ (archive.org)
答え2
DNSMASQ だけではそれができませんが、Pihole (バックグラウンドで DNSMASQ を使用) が Unbound で使用され、再帰 DNS サーバーが提供されるのを確認しました。つまり、サーバーは TLD サーバーに直接問い合わせ、Google/Cloudflare を完全にスキップします。