3.1.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

The state that needs to be maintained by a sender in this LLMNR profile is unchanged from [RFC4795]. [RFC4795] states in section 5.4 that LLMNR implementations MUST use a distinct, isolated cache for LLMNR on each interface. This statement is vague in terms of whether it means LLMNR implementations MUST support caching or it means LLMNR implementations MUST keep the LLMNR cache, if one exists, distinct from the DNS cache and isolated on a per-interface basis. Implementations of this LLMNR profile MAY support caching. If an implementation of this LLMNR profile performs negative caching for a name error response or lack of a response for an LLMNR query, then it MUST do so only if there’s already a cached DNS name error entry in the DNS cache for the name being queried. Implementations of this LLMNR profile can determine whether a negative DNS cache entry exists, by issuing a DNS query. A response of NXDOMAIN indicates that the DNS name does not exist and will thus result in a negative DNS cache entry. Any other response indicates that a negative DNS cache entry does not exist [RFC2308].