I looked over this draft in detail, and found a handful of ambiguous points
("Clarifications" and "Potentially Missing Data" below). But more
importantly, it is very close to defining a format that could replace much
of my organization's in-house technology. Would you consider some
generalizations to take it over the finish line ("Extension Fields" and
"Opt-in Lossyness")? Only the suggestions related to representing time and
"classtype" items would change the representation of existing data in such
a way that implementations already supporting the draft specification would
require changes.

*Clarifications*
* Items in the "classtype" table (section 7.11) are missing data type
documentation. Both "type" and "class" should be unsigned numbers.
  * And speaking of 7.11, why are CLASS/TYPE pairs represented as CBOR maps
instead of more efficient two-item arrays? If it was an intentional
decision for clarity, then maybe the section 7.7 block preamble
"earliest-time" field should also be promoted to a map ("time-seconds",
"time-useconds", "time-pseconds", mirroring Q/R items) for the same reason.
* In "query-sig" table items (section 7.13) "transport-flags" field, the
bit corresponding to "trailing bytes" shouldn't be limited to UDP.
* In section 7.18, "and an unsigned key" appears to be meaningless and
should probably be removed.

*Potentially Missing Data*
* In "query-sig" table items (section 7.13), "transport-flags" should
probably be extended to include a TLS bit (cf. RFC 7858).

*Extension Fields*
Of the many potentially open-ended key-value maps (file preamble, file
preamble configuration, block preamble, block statistics, query signatures,
Q/R data), only block statistics allows for "implementation-specific
fields", and no further guidance is provided. I think all maps should allow
such fields, with a recommendation that they use an implementation-specific
prefix to avoid collisions with fields added by other implementations or
later versions of C-DNS. Example use cases:
* Extend file preamble configuration (section 7.5) to document aggregation
of queries answered by wildcard names.
* Extend the block preamble (section 7.7) to override file preamble fields
like "host-id" and "server-addresses", enabling fleet-wide file merges.
* Extend query signatures (section 7.13) to indicate EDNS Client Subnet use
(cf. RFC 7871) or selection of context-dependent handling like views.
* Extend Q/R data (section 7.18) to include actual EDNS Client Subnet
values or even a "count" field (which would come with *tremendous* space
savings, sufficient for my organization to abandon its internal
summarization format in favor of C-DNS).

*Opt-in Lossyness*
The format is generally quite good about allowing for detail without
requiring it. However, there are some areas where more space savings could
be had:
* Communicate aggregation of IP addresses into prefixes (i.e., the
irrelevance of least-significant bits in ip-address values) with new
"client-prefix-length-ipv4" and "client-prefix-length-ipv6" and
"server-prefix-length-ipv4" and "server-prefix-length-ipv6" file preamble
configuration options.
* Communicate case-normalizing aggregation of names (e.g., transforming
"eXaMpLe.com" into "example.com") with a new boolean-valued
"name-normalization" file preamble configuration option.
* In "rr" table items (section 7.15), "ttl" should be optional to
accommodate decrementing in recursive resolver responses.
* In Q/R data items (section 7.18) and malformed packet records (section
7.20), I'd like "time-useconds" broken out into "time-seconds" and optional
"time-useconds", both for parity with block-preamble "earliest-time" and
for space savings in applications that are content with second-level
resolution.
* For truly customizable aggregation, I think all query signature (section
7.13) and Q/R (section 7.18) data item fields should be optional... but
especially Q/R data "client-port" and "transaction-id".

On Mon, Jul 3, 2017 at 5:08 AM, <internet-dra...@ietf.org> wrote:

>
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
> This draft is a work item of the Domain Name System Operations of the IETF.
>
>         Title           : C-DNS: A DNS Packet Capture Format
>         Authors         : John Dickinson
>                           Jim Hague
>                           Sara Dickinson
>                           Terry Manderson
>                           John Bond
>         Filename        : draft-ietf-dnsop-dns-capture-format-03.txt
>         Pages           : 49
>         Date            : 2017-07-03
>
> Abstract:
>    This document describes a data representation for collections of DNS
>    messages.  The format is designed for efficient storage and
>    transmission of large packet captures of DNS traffic; it attempts to
>    minimize the size of such packet capture files but retain the full
>    DNS message contents along with the most useful transport metadata.
>    It is intended to assist with the development of DNS traffic
>    monitoring applications.
>
>
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-dnsop-dns-capture-format/
>
> There are also htmlized versions available at:
> https://tools.ietf.org/html/draft-ietf-dnsop-dns-capture-format-03
> https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-dns-
> capture-format-03
>
> A diff from the previous version is available at:
> https://www.ietf.org/rfcdiff?url2=draft-ietf-dnsop-dns-capture-format-03
>
>
> Please note that it may take a couple of minutes from the time of
> submission
> until the htmlized version and diff are available at tools.ietf.org.
>
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>
> _______________________________________________
> DNSOP mailing list
> DNSOP@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsop
>
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to