Re: [DNSOP] [Tsv-art] Tsvart last call review of draft-ietf-dnsop-dns-error-reporting-06

Gorry Fairhurst <gorry@erg.abdn.ac.uk> Tue, 17 October 2023 11:34 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B9183C1705E1; Tue, 17 Oct 2023 04:34:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.091, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EcbQcIf0j_HT; Tue, 17 Oct 2023 04:33:57 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [137.50.19.135]) by ietfa.amsl.com (Postfix) with ESMTP id E9E75C1705E0; Tue, 17 Oct 2023 04:33:53 -0700 (PDT)
Received: from [192.168.1.2] (66.152.7.51.dyn.plus.net [51.7.152.66]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPSA id E8A771B00055; Tue, 17 Oct 2023 12:33:46 +0100 (BST)
Message-ID: <eb5e69b6-21c1-7625-d11c-7422f47439d7@erg.abdn.ac.uk>
Date: Tue, 17 Oct 2023 12:33:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1
To: Roy Arends <roy@dnss.ec>
Cc: tsv-art@ietf.org, dnsop@ietf.org, draft-ietf-dnsop-dns-error-reporting.all@ietf.org, last-call@ietf.org
References: <169753457719.49641.9320126993042446652@ietfa.amsl.com> <A6822643-F01F-437A-A5DF-5EBB8F7EA523@dnss.ec>
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Organization: UNIVERSITY OF ABERDEEN
In-Reply-To: <A6822643-F01F-437A-A5DF-5EBB8F7EA523@dnss.ec>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/XESEld83p51039Jk205UsCCnawM>
Subject: Re: [DNSOP] [Tsv-art] Tsvart last call review of draft-ietf-dnsop-dns-error-reporting-06
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2023 11:34:01 -0000

On 17/10/2023 12:05, Roy Arends wrote:
> Thanks Gorry,
>
> Comments inline.
See a quicjk response as GF:
>> On 17 Oct 2023, at 10:22, Gorry Fairhurst via Datatracker <noreply@ietf.org> wrote:
>>
>> Reviewer: Gorry Fairhurst
>> Review result: Not Ready
>>
>> This document has been reviewed as part of the transport area review team's
>> ongoing effort to review key IETF documents. These comments were written
>> primarily for the transport area directors, but are copied to the document's
>> authors and WG to allow them to address any issues raised and also to the IETF
>> discussion list for information.
>>
>> When done at the time of IETF Last Call, the authors should consider this
>> review as part of the last-call comments they receive. Please always CC
>> tsv-art@ietf.org if you reply to or forward this review.
>>
>> Thank you for a well written document, and it's description of the service to
>> be provided.
>>
>> This is proposed as a "lightweight" reporting mechanism.
>>
>> The method states it can be used over TCP. In this case, TCP provides the
>> necessary congestion control, flow control and segmentation. I did not see
>> additional transport concerns.
>>
>> The method also states it can be used over UDP - which is equally recommended.
>> However, the specification for use over UDP is incomplete and raises some
>> transport concerns:
> I want to stress here that the reporting mechanism is using DNS.
>
> Subsequently, it relies on existing methods of transport that DNS relies on. As an application that uses DNS to send a report, additional requirements such as mechanisms for flow control, segmentation, fragmentation, packet reassembly, order, congestion control, buffering, etc, feel like a layer violation.
>
> With that in mind, I suggest the following:
>
>> 1. There is a recommendation to use DNS COOKIEs [RFC7873] over UDP (PS), but no
>> statement about how to mitigate the effects when these are not used.
> There is a statement in the security section:
>
> "The monitoring agent SHOULD respond to queries received over UDP that have no DNS COOKIE set with a response that has the truncation bit (TC bit) set to challenge the resolver to re-query over TCP.”
>
> Let me know if that is sufficient.
GF: I think it might be wise to include this in the body, so it is not 
overlooked?
>
>> 2. There is no discussion of how to handle reports larger than the maximum UDP
>> datagram payload. See RFC 8085 section 3.2.
> The report encoded in the QNAME. In section 6.1.1 there is the following statement:
>
> "If the report query QNAME exceeds 255 octets, it MUST NOT be sent.”
>
> It is not possible to send a report larger than the maximum UDP datagram payload.
>
> Let me know if that is sufficient.
GF: This sounds a sensible limit - I overlooked that, this is fine.
>
>> 3. I think this method can in some uses could generate a stream of reports at a
>> rate that could be more than a few UDP datagrams per RTT, (e.g., if implement
>> automated responses). In this case, I think method would need to provide some
>> basic rate limiting or implement a form of congestion control.
> DNS software have mitigations for these kind of streams. DNS is a well known method to be abused for DDoS purposes, and mitigation strategies have been wide and far. Any rate limiting methods in this document would require special casing in the DNS software to deal with error reporting. This is wholly unnecessary. As far as the transport and application layers are concerned, this is just a DNS query going out.
>> I understand the rate is usually "damped" by caching to one message/TTL per
>> report, but I am unsure this is sufficient to mitigate any congestion control
>> concerns.
>>
>> One potential remedy could be to require/recommend use over a
>> congestion-controlled transport (such as TCP) when using an Internet path;  an
>> alternative would be to be define appropriate mechanisms to provide at least
>> starvation prevention for UDP services. See RFC 8085 section 3.1.
> We simply can’t. It would require special casing: a DNS query that happens to contain a DNS-error-report in its QNAME, should now only be send over TCP. An application that asks a stub resolver can’t do this. It would require a full “DNS-stack” that makes sure that these reports go over TCP.
GF: I think you likely undertand the gist of my review point 3. 
Generally -  there would be a problem in repeatedly sending with a UDP 
transport (i.e. for something that is more than a query/response 
protocol), which results in multiple packets per RTT.

Now it might be also that I simply don't fully understand the expected 
interaction, in which case, it might also be easy to  add a little to 
help avoid this line of questions....

>> NiT: It could be useful to expand "DS records" on first usage.
> Okay. Will add that.
>
> Thanks Gerry for your review.
>
> Warmly,
>
> Roy
>
>>
>>
>> _______________________________________________
>> DNSOP mailing list
>> DNSOP@ietf.org
>> https://www.ietf.org/mailman/listinfo/dnsop
> _______________________________________________
> Tsv-art mailing list
> Tsv-art@ietf.org
> https://www.ietf.org/mailman/listinfo/tsv-art

Hope this helps,

Gorry