DNS
Chuteは高度な機能をサポートするためにカスタマイズされたDNSクライアントを使用します。お使いのオペレーティングシステムのDNSクライアントとは異なる動作をする場合があります。
Chuteは、セッションにDIRECTルールが適用された場合にDNSサーバーとして機能します。ChuteはまずホストのDNSレコードを確認し、DNSレコードで返されたIPを使用してソケットを初期化します。この方法により、DIRECTルールが適用された全てのセッションはシステムDNS設定をバイパスし、Chute DNSサーバーでルーティングされます。
Chute iOSはシステムDNSサーバーをChute DNSサーバーに設定します。
アップストリームDNSサーバー
ChuteはデフォルトでオペレーティングシステムのDNSサーバーアドレスを使用します。'dns-server'オプションを使用して、DNSサーバー、DoH(DNS-over-HTTPS)、DoT(DNS-over-TLS)、DoQ(DNS-over-QUIC)、DoH3(DNS-over-HTTP/3)サービスで上書きできます。
DNSセクション
DNSオプションは通常[General]に記述しますが、トップレベルの[DNS]セクションに記述しても同等です: dns-server、doh(エイリアスdoh-server)、dot、doq、doh3、hijack-dns、always-real-ipはどちらのセクションでも同じ動作をします。同じセクションはローカルDNSマッピング行、つまり[Host]で使われるドメイン単位の形式も受け付けるため、両方の行形式が1つのセクション内に共存できます。それ以外のキーはログに通知を出して無視されます。
[DNS]
doh = https://dns.google/dns-query
always-real-ip = *.lan
*.example.com = server:1.1.1.1
詳細
Chuteはパフォーマンスを向上させるために、dnsmasqの'--all-servers'パラメータと同様に、全てのDNSサーバーに同時にクエリを送信します。サーバーからの最初の応答が使用されます。Chute iOSアプリとChute Dashboardは、どのサーバーが最初に応答したかを表示します。Chuteが2秒以内に応答を受信しなかった場合、全てのサーバーに再度クエリを送信します。なお、再試行に参加するのはDNSサーバー、DoT、DoQのアップストリームのみです。DoH、DoH3、syslibは最初のラウンドでのみクエリされます。3回の再試行(合計4回の試行)後、または10秒経過後、Chuteは諦めてDNSエラーを報告します。
一部のドメイン名は権威ネームサーバーのパフォーマンスが悪く、サーバー側のタイムアウトやその他の接続問題により、アップストリームDNSサーバーが空の応答を返す場合があります。Chuteは、アップストリームDNSサーバーが明示的に空のDNS応答を返した場合、または一部のサーバーが空の応答を返し他が3秒以内に応答しなかった場合に、空のDNSエラーを報告します。
一部のDNSレコードは設定により非常に短いTTLを持ちますが、Chuteは60秒の最小TTLを強制します: それより短いTTLは60秒に引き上げられます。楽観的DNS(Optimistic DNS)はデフォルトで有効です — キャッシュされたDNS結果を即座に返しながら、バックグラウンドで更新します。optimistic-dns = falseで無効にできます。
IPv6が利用可能で有効な場合、Chute DNSクライアントはAおよびAAAAの両方の質問をアップストリームDNSサーバーに送信します。最初に返されたAまたはAAAAの応答が使用されます。シングルスタックのネットワークでは、現在ルーティングできないアドレスファミリの応答はもう一方のファミリを優先して保留され、もう一方のファミリが何も返さなかった場合のフォールバックとしてのみ使用されます。
本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。