DNS Long-Lived Queries

DNS Long-Lived Queries is a mechanism that allows DNS clients to learn about changes to DNS data without polling.

DNS LLQ is currently used by Apple Inc.'s Back To My Mac (BTMM) service to track changes in the IP addresses of BTMM servers and clients. DNS LLQ has also been proposed as a solution for doing DNS-Based Service Discovery (DNS-SD) on routed networks, using long-lived TCP/IP connections. DNS-SD is a mechanism for identifying services on the local network. DNS-SD is typically used to present names of services (for example, printers or file servers) in user interfaces. DNS Long-Lived Queries (DNS-LLQ) can be used for DNS-SD to allow new services to appear automatically in an active user interface without requiring frequent polling. DNS-LLQ is being proposed in the IETF DNSSD working group as one option for providing service discovery in these routed networks. Although DNS LLQ over TCP/IP has not been standardized, it is in use in Apple Inc.'s current mDNS implementation.

DNS LLQ is initiated by a client resolver that wishes to track one or more names in the DNS. The client resolver sends a registration message to a caching server, or to the authoritative server for the zone containing the name or names to be tracked. The query includes a lease; the tracking persists for the duration of the lease. If tracking is desired after the lease expires, the client resolver sends a new registration. The registration message includes a list of one or more queries. The server immediately returns the answers it has for these queries. For the duration of the lease, whenever the information covered by any of the queries changes, the server sends a "gratuitous response" containing new answers. Before the queries are answered and the lease recorded, the server and client perform a challenge/response exchange to validate the registration. Gratuitous answers are acknowledged by the client, and retransmitted if not acknowledged. After several tries, the server holding the registration will assume that the client resolver is no longer available, and will delete the registration.