/// A 16 bit identifier assigned by the program that generates any kind of query.
/// This identifier is copied the corresponding reply and can be used by the requester to match up replies to outstanding queries.
/// </summary>
publicushortId{get;set;}
publicushortId{get;set;}
/// <summary>
/// A one bit field that specifies whether this message is a query (0), or a response (1).
/// </summary>
publicboolIsResponse{get;set;}
publicboolIsResponse{get;set;}
/// <summary>
/// Specifies whether this message is a query or a response.
/// </summary>
publicboolIsQuery
publicboolIsQuery
{
{
get{return!IsResponse;}
get{return!IsResponse;}
set{IsResponse=!value;}
set{IsResponse=!value;}
}
}
publicDnsOpCodeOpCode{get;set;}
/// <summary>
/// Specifies kind of query in this message.
/// This value is set by the originator of a query and copied into the response.
/// </summary>
publicDnsOpCodeOpCode{get;set;}
/// <summary>
/// This bit is valid in responses, and specifies that the responding name server is an authority for the domain name in question section.
/// Note that the contents of the answer section may have multiple owner names because of aliases.
/// The AA bit corresponds to the name which matches the query name, or the first owner name in the answer section.
/// </summary>
publicboolIsAuthoritativeAnswer{get;set;}
publicboolIsAuthoritativeAnswer{get;set;}
/// <summary>
/// Specifies that this message was truncated due to length greater than that permitted on the transmission channel.
/// </summary>
publicboolIsTruncated{get;set;}
publicboolIsTruncated{get;set;}
/// <summary>
/// This bit may be set in a query and is copied into the response.
/// If RD is set, it directs the name server to pursue the query recursively.
/// Recursive query support is optional.
/// </summary>
publicboolIsRecursionDesired{get;set;}
publicboolIsRecursionDesired{get;set;}
publicboolIsRecursionAvailable{get;set;}
/// <summary>
/// This bit is set or cleared in a response, and denotes whether recursive query support is available in the name server.
/// </summary>
publicboolIsRecursionAvailable{get;set;}
/// <summary>
/// Reserved for future use.
/// Must be false in all queries and responses.
/// </summary>
publicboolFutureUse{get;set;}
publicboolFutureUse{get;set;}
/// <summary>
/// The name server side of a security-aware recursive name server must not set the AD bit in a response
/// unless the name server considers all RRsets in the Answer and Authority sections of the response to be authentic.
/// The name server side should set the AD bit if and only if the resolver side considers all RRsets in the Answer section
/// and any relevant negative response RRs in the Authority section to be authentic.
/// The resolver side must follow the Authenticating DNS Responses procedure to determine whether the RRs in question are authentic.
/// However, for backward compatibility, a recursive name server may set the AD bit when a response includes unsigned CNAME RRs
/// if those CNAME RRs demonstrably could have been synthesized from an authentic DNAME RR that is also included in the response
/// according to the synthesis rules described in RFC 2672.
/// </summary>
publicboolIsAuthenticData{get;set;}
publicboolIsAuthenticData{get;set;}
/// <summary>
/// Exists in order to allow a security-aware resolver to disable signature validation
/// in a security-aware name server's processing of a particular query.
///
/// The name server side must copy the setting of the CD bit from a query to the corresponding response.
///
/// The name server side of a security-aware recursive name server must pass the state of the CD bit to the resolver side
/// along with the rest of an initiating query,
/// so that the resolver side will know whether it is required to verify the response data it returns to the name server side.
/// If the CD bit is set, it indicates that the originating resolver is willing to perform whatever authentication its local policy requires.
/// Thus, the resolver side of the recursive name server need not perform authentication on the RRsets in the response.
/// When the CD bit is set, the recursive name server should, if possible, return the requested data to the originating resolver,
/// even if the recursive name server's local authentication policy would reject the records in question.
/// That is, by setting the CD bit, the originating resolver has indicated that it takes responsibility for performing its own authentication,
/// and the recursive name server should not interfere.
///
/// If the resolver side implements a BAD cache and the name server side receives a query that matches an entry in the resolver side's BAD cache,
/// the name server side's response depends on the state of the CD bit in the original query.
/// If the CD bit is set, the name server side should return the data from the BAD cache;
/// if the CD bit is not set, the name server side must return RCODE 2 (server failure).
///
/// The intent of the above rule is to provide the raw data to clients that are capable of performing their own signature verification checks
/// while protecting clients that depend on the resolver side of a security-aware recursive name server to perform such checks.
/// Several of the possible reasons why signature validation might fail involve conditions
/// that may not apply equally to the recursive name server and the client that invoked it.
/// For example, the recursive name server's clock may be set incorrectly, or the client may have knowledge of a relevant island of security
/// that the recursive name server does not share.
/// In such cases, "protecting" a client that is capable of performing its own signature validation from ever seeing the "bad" data does not help the client.
/// </summary>
publicboolIsCheckingDisabled{get;set;}
publicboolIsCheckingDisabled{get;set;}
/// <summary>
/// A response of the server that can sign errors or other messages.