Get desktop application:
View/edit binary Protocol Buffers messages
"Dnstap": this is the top-level dnstap type, which is a "union" type that contains other kinds of dnstap payloads, although currently only one type of dnstap payload is defined. See: https://developers.google.com/protocol-buffers/docs/techniques#union
DNS server identity. If enabled, this is the identity string of the DNS server which generated this message. Typically this would be the same string as returned by an "NSID" (RFC 5001) query.
DNS server version. If enabled, this is the version string of the DNS server which generated this message. Typically this would be the same string as returned by a "version.bind" query.
Extra data for this payload. This field can be used for adding an arbitrary byte-string annotation to the payload. No encoding or interpretation is applied or enforced.
One of the following will be filled in.
Identifies which field below is filled in.
Used in:
Message: a wire-format (RFC 1035 section 4) DNS message and associated metadata. Applications generating "Message" payloads should follow certain requirements based on the MessageType, see below.
Used in:
One of the Type values described above.
One of the SocketFamily values described above.
One of the SocketProtocol values described above.
The network address of the message initiator. For SocketFamily INET, this field is 4 octets (IPv4 address). For SocketFamily INET6, this field is 16 octets (IPv6 address).
The network address of the message responder. For SocketFamily INET, this field is 4 octets (IPv4 address). For SocketFamily INET6, this field is 16 octets (IPv6 address).
The transport port of the message initiator. This is a 16-bit UDP or TCP port number, depending on SocketProtocol.
The transport port of the message responder. This is a 16-bit UDP or TCP port number, depending on SocketProtocol.
The time at which the DNS query message was sent or received, depending on whether this is an AUTH_QUERY, RESOLVER_QUERY, or CLIENT_QUERY. This is the number of seconds since the UNIX epoch.
The time at which the DNS query message was sent or received. This is the seconds fraction, expressed as a count of nanoseconds.
The initiator's original wire-format DNS query message, verbatim.
The "zone" or "bailiwick" pertaining to the DNS query message. This is a wire-format DNS domain name.
The time at which the DNS response message was sent or received, depending on whether this is an AUTH_RESPONSE, RESOLVER_RESPONSE, or CLIENT_RESPONSE. This is the number of seconds since the UNIX epoch.
The time at which the DNS response message was sent or received. This is the seconds fraction, expressed as a count of nanoseconds.
The responder's original wire-format DNS response message, verbatim.
Operator policy applied to the processing of this message, if any.
Used in:
AUTH_QUERY is a DNS query message received from a resolver by an authoritative name server, from the perspective of the authoritative name server.
AUTH_RESPONSE is a DNS response message sent from an authoritative name server to a resolver, from the perspective of the authoritative name server.
RESOLVER_QUERY is a DNS query message sent from a resolver to an authoritative name server, from the perspective of the resolver. Resolvers typically clear the RD (recursion desired) bit when sending queries.
RESOLVER_RESPONSE is a DNS response message received from an authoritative name server by a resolver, from the perspective of the resolver.
CLIENT_QUERY is a DNS query message sent from a client to a DNS server which is expected to perform further recursion, from the perspective of the DNS server. The client may be a stub resolver or forwarder or some other type of software which typically sets the RD (recursion desired) bit when querying the DNS server. The DNS server may be a simple forwarding proxy or it may be a full recursive resolver.
CLIENT_RESPONSE is a DNS response message sent from a DNS server to a client, from the perspective of the DNS server. The DNS server typically sets the RA (recursion available) bit when responding.
FORWARDER_QUERY is a DNS query message sent from a downstream DNS server to an upstream DNS server which is expected to perform further recursion, from the perspective of the downstream DNS server.
FORWARDER_RESPONSE is a DNS response message sent from an upstream DNS server performing recursion to a downstream DNS server, from the perspective of the downstream DNS server.
STUB_QUERY is a DNS query message sent from a stub resolver to a DNS server, from the perspective of the stub resolver.
STUB_RESPONSE is a DNS response message sent from a DNS server to a stub resolver, from the perspective of the stub resolver.
TOOL_QUERY is a DNS query message sent from a DNS software tool to a DNS server, from the perspective of the tool.
TOOL_RESPONSE is a DNS response message received by a DNS software tool from a DNS server, from the perspective of the tool.
UPDATE_QUERY is a Dynamic DNS Update request (RFC 2136) received by an authoritative name server, from the perspective of the authoritative name server.
UPDATE_RESPONSE is a Dynamic DNS Update response (RFC 2136) sent from an authoritative name server, from the perspective of the authoritative name server.
Policy: information about any name server operator policy applied to the processing of a DNS message.
Used in:
type: the type of policy applied, e.g. "RPZ" for a policy from a Response Policy Zone.
rule: the rule matched by the message. In a RPZ context, this is the owner name of the rule in the Reponse Policy Zone in wire format.
action: the policy action taken in response to the rule match.
match: the feature of the message exchange which matched the rule.
The matched value. Format depends on the matched feature .
The Action taken to implement the Policy.
Used in:
Respond with NXDOMAIN
Respond with empty answer section
Do not alter the response (passthrough)
Do not respond.
Truncate UDP response, forcing TCP retry
Respond with local data from policy
Match: what aspect of the message or message exchange triggered the application of the Policy.
Used in:
Name in question section of query
Client IP address
Address in A/AAAA RRSet
Authoritative name server, by name
Authoritative name server, by IP address
SocketFamily: the network protocol family of a socket. This specifies how to interpret "network address" fields.
Used in:
IPv4 (RFC 791)
IPv6 (RFC 2460)
SocketProtocol: the protocol used to transport a DNS message.
Used in:
DNS over UDP transport (RFC 1035 section 4.2.1)
DNS over TCP transport (RFC 1035 section 4.2.2)
DNS over TLS (RFC 7858)
DNS over HTTPS (RFC 8484)
DNSCrypt over UDP (https://dnscrypt.info/protocol)
DNSCrypt over TCP (https://dnscrypt.info/protocol)
DNS over QUIC (RFC 9250)