Re: [IPsec] Martin Duke's No Objection on draft-ietf-ipsecme-rfc8229bis-07: (with COMMENT)

Valery Smyslov <svan@elvis.ru> Sat, 13 August 2022 04:28 UTC

Return-Path: <svan@elvis.ru>
X-Original-To: ipsec@ietfa.amsl.com
Delivered-To: ipsec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8B005C15DD68; Fri, 12 Aug 2022 21:28:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=elvis.ru
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 cRQPPBAc3hk1; Fri, 12 Aug 2022 21:28:37 -0700 (PDT)
Received: from akmail.elvis.ru (akmail.elvis.ru [82.138.51.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4B99DC15790C; Fri, 12 Aug 2022 21:28:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=elvis.ru; s=mail; h=Content-Type:MIME-Version:Message-ID:Date:Subject:In-Reply-To: References:CC:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=2jdiNVAlJY6c0plZMtV3SBENmeggx1uTxwy8FeysmIY=; b=nmYycOYCQVsyl9Dbohf9z8dhH+ KdIGvkBZ3/Ell2JJFF7xjJfwlNCRsz+hKU0wWwTCTg6xdFuTOYcjwcCK6dXskFIreAP4Ycu5HY+7J 0VmrjbfRaaD/juWW5Mvensr+5Ynum4ZR9jEEUe9Am4q3O5GY26m3b9z6McwaqUgMMeF4=;
Received: from kmail.elvis.ru ([93.188.44.208]) by akmail.elvis.ru with esmtp (Exim 4.92) (envelope-from <svan@elvis.ru>) id 1oMilD-0004qr-Iu; Sat, 13 Aug 2022 07:28:31 +0300
Received: from mail16.office.elvis.ru ([10.111.1.29] helo=mail.office.elvis.ru) by kmail.elvis.ru with esmtp (Exim 4.92) (envelope-from <svan@elvis.ru>) id 1oMilD-0006HE-B0; Sat, 13 Aug 2022 07:28:31 +0300
Received: from MAIL16.office.elvis.ru (10.111.1.29) by MAIL16.office.elvis.ru (10.111.1.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Sat, 13 Aug 2022 07:28:31 +0300
Received: from svannotebook (10.100.100.6) by MAIL16.office.elvis.ru (10.111.1.29) with Microsoft SMTP Server id 15.1.1779.2 via Frontend Transport; Sat, 13 Aug 2022 07:28:30 +0300
From: Valery Smyslov <svan@elvis.ru>
To: 'Martin Duke' <martin.h.duke@gmail.com>
CC: 'The IESG' <iesg@ietf.org>, draft-ietf-ipsecme-rfc8229bis@ietf.org, ipsecme-chairs@ietf.org, ipsec@ietf.org, kivinen@iki.fi
References: <165973261426.54808.11128651982166539913@ietfa.amsl.com> <051401d8ab20$28b98660$7a2c9320$@elvis.ru> <CAM4esxR182_=Y+F6MC8Kk9czUvjepAQQAAFTjNZ1nsG955Yw+Q@mail.gmail.com> <068e01d8ac92$ad49b080$07dd1180$@elvis.ru> <CAM4esxRQG0rPna81pbhDSAYEZp_yAJ2sN2VNncc++8K23xJvTw@mail.gmail.com> <CAM4esxTOM_9LkwB8-viOj19T0B3UzD2mQgOaxAPSNauOMdj1WQ@mail.gmail.com>
In-Reply-To: <CAM4esxTOM_9LkwB8-viOj19T0B3UzD2mQgOaxAPSNauOMdj1WQ@mail.gmail.com>
Date: Sat, 13 Aug 2022 07:28:30 +0300
Message-ID: <013a01d8aecd$24371cf0$6ca556d0$@elvis.ru>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_013B_01D8AEE6.49890FE0"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQHF0YRJw8EkDTxqScqkLhJqLvUzTgGfy90pAoEVsKkCRdgh3QIYsEBeAcVrfrWtf867sA==
Content-Language: ru
X-CrossPremisesHeadersFilteredBySendConnector: MAIL16.office.elvis.ru
X-OrganizationHeadersPreserved: MAIL16.office.elvis.ru
X-KLMS-AntiSpam-Interceptor-Info: not scanned
X-KLMS-Rule-ID: 1
X-KLMS-Message-Action: clean
X-KLMS-AntiSpam-Status: not scanned, disabled by settings
X-KLMS-AntiPhishing: Clean, bases: 2022/08/13 03:04:00
X-KLMS-AntiVirus: Kaspersky Security for Linux Mail Server, version 8.0.3.30, bases: 2022/08/13 01:35:00 #20107997
X-KLMS-AntiVirus-Status: Clean, skipped
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipsec/tNPKWAp4KuNqcJr04T0-k2zfqV8>
Subject: Re: [IPsec] Martin Duke's No Objection on draft-ietf-ipsecme-rfc8229bis-07: (with COMMENT)
X-BeenThere: ipsec@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Discussion of IPsec protocols <ipsec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipsec>, <mailto:ipsec-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipsec/>
List-Post: <mailto:ipsec@ietf.org>
List-Help: <mailto:ipsec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipsec>, <mailto:ipsec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Aug 2022 04:28:42 -0000

Hi Martin,

 

Re: the ECN rules for aggregated packets, I got intrigued by this problem and wrote a draft. The rules I proposed earlier are, unsurprisingly, not the whole story.

 

          :-)

 

On Wed, Aug 10, 2022 at 7:05 AM Martin Duke <martin.h.duke@gmail.com <mailto:martin.h.duke@gmail.com> > wrote:

Sounds good to me, we're all set modulo the thread with Joe.

 

      So, after conversation with Joe, what do you think we shall do with the text describing

      "TCP meltdown" - do you still think it's inaccurate? If so can you 

      fix it? Or shall we leave it as is?

 

      Regards,

      Valery.

 

 

On Wed, Aug 10, 2022, 01:25 Valery Smyslov <svan@elvis.ru <mailto:svan@elvis.ru> > wrote:

Hi Martin,

 

please see inline.

 

On Mon, Aug 8, 2022 at 5:12 AM Valery Smyslov < <mailto:svan@elvis.ru> svan@elvis.ru> wrote:

> 
> (Sec 9.1)
> "TCP-in-TCP can also lead to "TCP meltdown", where stacked instances
>    of TCP can result in significant impacts to performance
>    [TCP-MELTDOWN].  For the case in this document, such meltdown can
>    occur when the window size of the outer TCP connection is smaller
>    than the window sizes of the inner TCP connections.  The resulting
>    interactions can lead to packets backing up in the outer TCP
>    connection's send buffers.  In order to limit this effect, the outer
>    TCP connection should have limits on its send buffer size and on the
>    rate at which it reduces its window size."
> 
> Which "window" are you referring to? Receive window, congestion window,
> or the
> send buffer? My reading of [TCP-MELTDOWN] is that the tunnel ingress
> should set
> its send buffer size to the BDP of the tunnel, which is easier said than done.
> It appears you are using "window" and "send buffer" interchangeably here in a
> way that is confusing.

This text was suggested by Joe Touch (https://mailarchive.ietf.org/arch/msg/ipsec/eD85hixrzfqwg4UhwRZ8WL5PkDA/)
If you think it is unclear, can you please suggest how it can be improved?

 

OK, I'll start a separate thread with Joe and you.

 

          OK, thank you.

 


> (9.5)
> Implementations SHOULD follow the ECN compatibility mode for tunnel
>    ingress as described in [RFC6040].  In compatibility mode, the outer
>    tunnel TCP connection marks its packet headers as not ECN-capable.
>    If upon egress, the arriving outer header is marked with CE, the
>    implementation will drop the inner packet, since there is not a
>    distinct inner packet header onto which to translate the ECN
>    markings.
> 
> This is not an accurate summary of compatibility mode. In compatibility mode,
> the outer packet is marked Not-ECT, which means it will not be marked CE. In
> normal mode, the outer packet is marked as the inner, and this might result in
> an outer CE marking.

Can you please, clarify why the description is inaccurate?

According to RFC 6040 in compatibility mode outer packet are marked as not ECN-capable
(Not-ECT). On the other hand, since using compatibility mode is SHOULD here
and currently it is assumed that IPsec tunnels are used with normal mode (RFC 4301, RFC 6040), then some 
additional guidelines are given what to do if peer still uses normal mode.

Am I missing something?

 

I think my confusion here was that I read the second sentence ("If upon egress...") as also describing RFC6040,

which I see now it does not. My apologies; perhaps splitting it into two paragraphs would help. However, the need

for this text is related to difficulty mapping outer to inner; see also below.

 

          I moved this sentence to a new paragraph.

 


> It's a shame that there is no attempt to figure out a mapping between inner
> and
> outer that would make normal mode work, as this reviewer is optimistic that
> ECN
> marks will become increasingly important. But regardless, this section should
> be clear and make correct statements.

I'm not sure this is generally possible given that one outer TCP tunnel
can include many inner TCP tunnels, so you have to decide which 
of them to inform. The things get worse if AggFrag mechanism
is in use (draft-ietf-ipsecme-iptfs-13, in IESG evaluation).

 

This isn't a DISCUSS, so you can choose to ignore this advice or not. However, my concern is that IPSec is going to miss

out on the low-latency services operators are now enabling through ECN.

 

          Not exactly :-) Note, that TCP is not a default transport for IPsec

          and in case ESP is sent over IP or UDP, all the modern ECN 

          techniques must work well (I guess you mean L4S networks?).

          TCP is a backup transport in case no other is available and

          due to the inherent problems (TCP-in-TCP) we don't expect

          to get good performance in this case, so there is no point

          to complicate the protocol. TCP encapsulation is for those cases

          when you need things to work somehow, not in the best way.

 

If it were me I would design it this way:

 

1) Encapsulators SHOULD NOT mix ECT(0), Not-ECT, and ECT(1) inner packets in the same outer packet.

2) If they do, the outer packet MUST be marked Not-ECT.

3) If all packets are marked CE, mark the outer packet CE.

4) If CE packets are mixed with "something else", mark it "something else".

5) Decapsulators follow Figure 4 in RFC6040, except they SHOULD NOT log an event or raise an alarm when

the outer packet is ECT(1) and one of the inner packets is CE.

 

Per 3168, if an inner packet is fragmented, any CE applied to a fragment is applied to the reassembled packet.

 

          This might work, but please, see above.

 


> (Appendix A) Why not provide an in-band way to determine TLS support?
> There
> could be another port number, or different magic bytes to indicate that TLS
> handshake messages follow.

Actually, with this draft in-band switching to TLS is really a downgrade, rather than an upgrade (surprise?).
The reason is that actual protection of the traffic is provided by IPsec and both TCP and TLS
are only used as transport mechanisms that allow IPsec to work in environments where it cannot
be used otherwise. And TLS is worse, since it requires more resources and has bigger overhead.
So, once you get through using plain TCP there is no sense to switch to TLS.

 

Thanks for the info. It might be good to explicitly state this in Appendix A, but feel free to ignore that suggestion.

 

          Thank you!

          Valery.

 


Regards,
Valery.