Paul Hoffman wrote:
> Greetings again. The following is a proposal to help end-users who are told 
> "please enter this record in your zone to prove your existence". It 
> simplifies the process without automating it; in short, it makes 
> copy-and-pasting more likely to work, particularly for the _label names that 
> are being used more. (DomainConnect is working on automation, but with a 
> different target audience.)
> 
> If this interests you, please read the short draft, particularly the use case 
> and design descriptions in the introduction. Those sections describe why the 
> format is purposely limited for this narrow use case.

Hi, Paul:

1) This format does not specify what zone to apply the change to. E.g.,
taking the example:

    ["DUJ", [["add", "mail.yourname.example", "TXT",
     "v=spf1 a:mail.yourname.example ip4:192.0.2.49"]]]

Should this update be applied to the mail.yourname.example zone, the
yourname.example zone, the example zone, or the root zone?

If the goal is to reduce errors by making it easier for a user to
specify an operation to a DNS operator's interface, including the zone
name would make sure the correct zone is being operated on, or allow
reducing the number of interactions (for instance, not needing to
manually select a zone to operate on first).

2) Regarding:

    The DNS operator SHOULD be able to handle [RFC3597] RRtypes.
    However, they may have a local policy to not allow users to add or
    delete unknown RRtypes.

    A DNS operator MAY reject any DUJ string for any reason. If the
    DUJ was received from a user interface, the DNS operator SHOULD
    clearly describe why a DUJ was rejected.

The RFC 3597 generic syntax is not limited to unknown RRtypes. It can
also be used to represent RRtypes known to the implementation. Whether
to support the 3597 syntax or not should probably be orthogonal to
whether the operator supports the RRtype or not for updating via a DUJ
string (indeed, the next sentence allows rejecting a DUJ object for
any reason).

If the use case is to support ease copy-and-paste operations, though,
why not *only* use the RFC 3597 generic syntax? That would simplify
parsing and generation of DUJ strings. Presumably an operator accepting
a DUJ string could render the record data encoded in the DUJ string and
present UI to the user to confirm the operation. Actually, this would
be a good idea even if the DUJ string contained display format encoded
record data.

So my suggestion would be to mandate the RFC 3597 syntax as the only
allowable syntax for encoding record data, unless there is also an
unstated requirement that the record data be visually decipherable on
its own to end-users without the aid of external tools (in which case,
*allowing* RFC 3597 format as an option would seem to cut against such
a requirement).

3) Regarding:

    Some RRtypes require multiple character-strings, where
    "character-string" is defined in Section 5.1 of [RFC1035]. In such a
    case, each character-string is a separate JSON string. For example:

    ["DUJ", [["add", "yourname.example", "WALLET", "ETH",
      "0xb775599c76b4672B0D820E3AA534F7cF9312c263"]]]

I guess this should be "<character-string>", which appears in the
section of RFC 1035 about the encoding of the zone file format used
by nameservers. So does a DUJ encode the display format of record data,
or does it encode a zone file fragment that embeds the display format of
record data?

Not all record types are encoded as one or more <character-string>'s,
for instance the SOA RDATA encodes two <domain-name>'s followed by five
32-bit integers. Should that be represented like this?

    ["DUJ", [["add", "yourname.example", "SOA",
      "ns1.yourname.example", "hostmaster.yourname.example", "2024112101", 
"7200", "3600", "604800", "60"]]]

Or like this?

    ["DUJ", [["add", "yourname.example", "SOA",
      "ns1.yourname.example hostmaster.yourname.example 2024112101 7200 3600 
604800 60"]]]

What about this?

    ["DUJ", [["add", "yourname.example", "SOA",
      "(\n yourname.example. ; MNAME\n hostmaster.yourname.example. ; RNAME\n 
2024112101 ; SERIAL\n 2H ; REFRESH\n 1H ; RETRY\n 1W ; EXPIRE\n 1M ; MINIMUM\n)"
    ]]]

SOA's are probably unlikely to be encoded using DUJ strings, but what
about e.g. MX records? Should those be represented like this?

    ["DUJ", [["add", "yourname.example", "MX", "10 mx1.provider.example"]]]

Or like this?

    ["DUJ", [["add", "yourname.example", "MX", "10", "mx1.provider.example"]]]

-- 
Robert Edmonds

_______________________________________________
DNSOP mailing list -- dnsop@ietf.org
To unsubscribe send an email to dnsop-le...@ietf.org

Reply via email to