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)サービスで上書きできます。
詳細
Chuteはパフォーマンスを向上させるために、dnsmasqの'--all-servers'パラメータと同様に、全てのDNSサーバーに同時にクエリを送信します。サーバーからの最初の応答が使用されます。Chute iOSアプリとChute Dashboardは、どのサーバーが最初に応答したかを表示します。Chuteが2秒以内に応答を受信しなかった場合、全てのサーバーに再度クエリを送信します。4回の再試行後、Chuteは諦めてDNSエラーを報告します。
一部のドメイン名は権威ネームサーバーのパフォーマンスが悪く、サーバー側のタイムアウトやその他の接続問題により、アップストリームDNSサーバーが空の応答を返す場合があります。Chuteは、アップストリームDNSサーバーが明示的に空のDNS応答を返した場合、または一部のサーバーが空の応答を返し他が2秒以内に応答しなかった場合に、空のDNSエラーを報告します。
一部のDNSレコードは設定により非常に短いTTLを持ちますが、Chuteは5分未満のTTLに従いません。optimistic-dns = trueを有効にすると、キャッシュされたDNS結果を即座に返しながら、バックグラウンドで更新できます。
IPv6が利用可能で有効な場合、Chute DNSクライアントはAおよびAAAAの両方の質問をアップストリームDNSサーバーに送信します。最初に返されたAまたはAAAAの応答が使用されます。