DNS長期クエリは、 DNSクライアントがポーリングなしでDNSデータの変更を知ることができるメカニズムです。[ 1 ]
DNS LLQは、Apple社のBack To My Mac(BTMM)サービスで、BTMMサーバーとクライアントのIPアドレスの変更を追跡するために使用されます。[ 2 ] DNS LLQは、長時間持続するTCP/IP接続を使用して、ルーティングされたネットワーク上でDNSベースのサービス検出(DNS-SD)を実行するためのソリューションとしても提案されています。
DNS-SDは、ローカルネットワーク上のサービスを識別するためのメカニズムです。[ 3 ] DNS-SDは通常、プリンタやファイルサーバなどのサービス名をユーザインタフェースに表示するために使用されます。DNS Long-Lived Queries(DNS-LLQ)は、DNS-SDで使用でき、頻繁なポーリングを必要とせずに、新しいサービスがアクティブなユーザインタフェースに自動的に表示されるようにします。DNS-LLQは、これらのルーティングされたネットワークでサービス検出を提供するための1つのオプションとして、 IETF DNSSDワーキンググループで提案されています。[ 4 ] TCP/IP上のDNS LLQは標準化されていませんが、Apple社の現在のmDNS実装 で使用されています。[ 5 ]
DNS LLQは、DNS内の1つ以上の名前を追跡したいクライアントリゾルバによって開始されます。クライアントリゾルバは、登録メッセージをキャッシュサーバー、または追跡対象の名前を含むゾーンの権威サーバーに送信します。クエリにはリースが含まれており、追跡はリース期間中継続されます。リースの有効期限が切れた後も追跡が必要な場合、クライアントリゾルバは新しい登録を送信します。登録メッセージには、1つ以上のクエリのリストが含まれます。サーバーは、これらのクエリに対する回答を直ちに返します。リース期間中、クエリに含まれる情報が変更されるたびに、サーバーは新しい回答を含む「Gratuitous Response」を送信します。クエリに回答してリースを記録する前に、サーバーとクライアントは登録を検証するためにチャレンジ/レスポンス交換を実行します。Gratuitous Responseはクライアントによって確認応答され、確認応答がない場合には再送信されます。数回試行した後、登録を保持しているサーバーはクライアントリゾルバが利用できなくなったと見なし、登録を削除します。[ 1 ]