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