[icnrg] Updates to the ICN Path Steering draft (draft-oran-icnrg-pathsteering)

"David R. Oran" <daveoran@orandom.net> Mon, 03 October 2022 15:05 UTC

Return-Path: <daveoran@orandom.net>
X-Original-To: icnrg@ietfa.amsl.com
Delivered-To: icnrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 11AFEC14E514 for <icnrg@ietfa.amsl.com>; Mon, 3 Oct 2022 08:05:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.905
X-Spam-Level:
X-Spam-Status: No, score=-1.905 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=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=crystalorb.net header.b=SbRKqU0E; dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=crystalorb.net header.b=sQjEVeYl
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 unisNPf4Ew22 for <icnrg@ietfa.amsl.com>; Mon, 3 Oct 2022 08:05:18 -0700 (PDT)
Received: from crystalorb.net (omega.crystalorb.net [IPv6:2600:3c01:e000:42e::1]) (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 CEA13C1524BD for <icnrg@irtf.org>; Mon, 3 Oct 2022 08:04:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=crystalorb.net; s=mail; h=Content-Transfer-Encoding:Content-Type: MIME-Version:Message-ID:Date:Subject:Cc:To:From:From:Sender:Reply-To:Subject: Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=cJNu9BkjkKYmsN1jSnBZYstGckObQUDx5UX1NH+Bfsg=; b=SbRKqU0EcNJwQlkODLLl1bMubz ussyeXa22XgYtFTXvLtbyTtb4YUbb7qM646R5xw3EcO6XOozL/+ON9GbgHasmE4+hi2cb1tBsR5oD KDaX+obEmUWwFm6FQDkqBPVvPZJWPrPa1tqDJ8ZUY2IL3PkwV7O45Sn0CY8ZpwyVSJzY=;
DKIM-Signature: v=1; a=ed25519-sha256; q=dns/txt; c=relaxed/relaxed; d=crystalorb.net; s=omegamail; h=Content-Transfer-Encoding:Content-Type: MIME-Version:Message-ID:Date:Subject:Cc:To:From:From:Sender:Reply-To:Subject: Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=cJNu9BkjkKYmsN1jSnBZYstGckObQUDx5UX1NH+Bfsg=; b=sQjEVeYlBtMRiK/MEIVgYWlAng B9FZgKkw7qRg8DQz/1KCdd3nJO0rPe+fJvHLPCGa/DDgn6l4y+Isw59zcXBg==;
Received: from [2601:184:407f:80cf:cba:6f64:3b77:4a61] (helo=[192.168.15.242]) by crystalorb.net with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <daveoran@orandom.net>) id 1ofMyu-00BNga-5C; Mon, 03 Oct 2022 08:03:44 -0700
From: "David R. Oran" <daveoran@orandom.net>
To: ICNRG <icnrg@irtf.org>, Davide Pesavento <davidepesa@gmail.com>
Cc: Ilya Moiseenko <iliamo@mailbox.org>
Date: Mon, 03 Oct 2022 11:04:54 -0400
X-Mailer: MailMate (1.14r5920)
Message-ID: <50E2CF3B-3F6B-4EBE-8809-499E56D41CB7@orandom.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_MailMate_76DBA540-4F28-4B75-87BE-E84E331C0E13_="
Content-Transfer-Encoding: 8bit
X-SA-Exim-Connect-IP: 2601:184:407f:80cf:cba:6f64:3b77:4a61
X-SA-Exim-Mail-From: daveoran@orandom.net
X-SA-Exim-Scanned: No (on crystalorb.net); SAEximRunCond expanded to false
Archived-At: <https://mailarchive.ietf.org/arch/msg/icnrg/96anLu5O9Sn32FGVRvoVI_xERaM>
Subject: [icnrg] Updates to the ICN Path Steering draft (draft-oran-icnrg-pathsteering)
X-BeenThere: icnrg@irtf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Information-Centric Networking research group discussion list <icnrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/icnrg>, <mailto:icnrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/icnrg/>
List-Post: <mailto:icnrg@irtf.org>
List-Help: <mailto:icnrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/icnrg>, <mailto:icnrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Oct 2022 15:05:22 -0000

Over the last month or two, we’ve received some comments on 
https://datatracker.ietf.org/doc/draft-oran-icnrg-pathsteering from 
Junxiao Shi and Davide Pesavento. The former caused us to re-work the 
encoding for NDN packets; the latter revolved around some questions 
about details and clarity of presentation. The latter were sent to the 
authors as opposed to the list; there was no objection to posting them 
along with our authors responses.

On the issue of encoding, our proposal to include the Path Steering TLV 
in the base NDN packet format ran into some really ugly complexities and 
tradeoffs around encoding an additional TLV which was hop-by-hop mutable 
and hence not covered by the signature in the packet. These issues arise 
because NDN puts mutable TLVs in an encapsulating link adaptation 
protocol (NDNLPv2) while CCNx has the ability to include hop-by-hop 
option TLVs in the base packet format. We therefore have re-specified 
the Path Steering LV encoding as being an additional TLV in NDNLPv2.

Below please see the interesting questions raised by Davide, our author 
responses, along with our proposed changes to the specification to 
improve the exposition.


1.  When multiple paths are available, subsequent interests can discover 
additional paths by omitting a path steering TLV and obtaining a new 
path label on the returning interest" (§2.1) I think this sentence can 
mislead the reader. There is no guarantee that a "partial" path label 
will trigger the discovery of additional paths, even if they exist.

**Response**: Yes, you are correct that the ability to obtain a new path 
is in no way guaranteed. Whether subsequent interests traverse a new 
path depends entirely on the routers’ forwarding strategies. For 
example if all the routers use “best route” and no routing changes 
occur in the interim, there will only be one path to be discovered.

In addition, we don’t think the specification introduces the concept 
of a “partial path label”. The specific paragraph cited (§2.1) is 
focused on path discovery, i.e. those with the DISCOVERY flag set. It 
may be that a prior interest carried a path label with the FALLBACK 
flag, however the consumer cannot ascertain if this path label was in 
fact for a non-working path.

We hope this clarification helps. *We did not make any changes to the 
specification for this comment*.

1a. I suppose a forwarder could implement this behavior as long as the 
second interest (the one with a partial path label) arrives while the 
first interest (with a full path label) is still pending, but that would 
also require disabling aggregation between interests with differing path 
labels (see also my next question). It does not seem feasible to do this 
in general though, it's too expensive and prone to attacks.

**Response**: Interests with the DISCOVERY flag set might be aggregated. 
It means that multiple paths cannot be discovered “in parallel” and 
instead be discovered in a "lock-step” fashion, i.e. aggregated 
Interests will all discover only one single path carried by one single 
Data packet, and so on, and so on. While path steering still operates 
correctly if DISCOVERY interests are aggregated, a better approach is 
probably to not aggregate Interests with DISCOVERY flag, and heavily 
rate limit them. This applies as well to comment #2 below.

*We have added a new section after §2.4 to cover interactions with 
Interest aggregation, which discusses the various cases, and suggests 
the option to invoke the RFC2119 dictums of “SHOULD NOT” aggregate, 
and SHOULD apply a rate limit.*

1b. Anyway, my point is that this behavior is not specified in the 
current draft. In other words, the path steering protocol enables an 
interest to follow a specified path P (if still valid), but does not 
provide a way to force an interest to be forwarded on paths other than 
P. This functionality is important to fulfill one of the use cases 
described in §1.1: "A consumer endpoint can mitigate content poisoning 
attacks by directing its Interests onto the network paths that bypass 
poisoned caches".

**Response**: Consumers will reject malicious Data packets and can send 
more Interests with an empty path label and DISCOVERY MODE flag set in 
order to try to find a path that bypasses the poisoned cache. This of 
course provides no guarantee that the poisoned cache is in fact 
bypassed, as there could in fact be no alternate paths that the 
forwarders will try or all feasible paths wind up converging on the same 
poisoned cache. We believe that adding the ability to say “any path 
other than the one in the provided path label” would represent 
substantial extra complexity, and would provide little or no benefit. 
Please let us know if there’s disagreement on this point.

We hope this clarification helps. *We did not make any changes to the 
specification for this comment*.

2. How should discovery interests be treated with respect to interest 
aggregation? For instance, assume that a discovery interest arrives at a 
router that already has a matching PIT entry, but the interest that 
created that PIT entry did not have the DISCOVERY flag set. How should 
the forwarder behave? Should aggregation be disabled in this case?

**Response**: We now cover this in the new section on Interest 
Aggregation.

3. Similar question for steered interests: should a forwarder take the 
path label TLV into account to determine whether an incoming interest 
should be aggregated? I assume so given the "MUST" in §3.1, but it may 
be clearer to spell this out explicitly.

**Response**: In STRICT mode, Interests with the same path label are 
aggregated. Data will of course match this label. In FALLBACK mode, 
since Interests carry a presumably correct path label, aggregation 
should work in the same way. First Data packet will satisfy all 
aggregated interests with FALLBACK mode set. We have tried to cover this 
case as well in the new section in interest aggregation.

4. The first paragraph of §5 seems to contradict §2.2. The latter says 
that a path label can specify a nexthop "among those identified as 
feasible by LNPM FIB lookup”. If that's indeed the case, the brute 
force attack outlined at the beginning of §5 is not possible, because 
the attacker is not allowed to use a face that doesn't appear as a 
nexthop in the FIB entry for the given prefix. Am I missing something 
here?

**Response**: The “feasibility” is ascertained during DISCOVERY; 
only next hop faces in the FIB entry matched by the Interest are 
considered. For Interests with a discovered path label, the label will 
therefore contain (in the absence of a subsequence routing change) a 
valid next hop. The risk comes with STRICT MODE interests. For example, 
a router #1 can be directly connected to router #2 (i.e. next hop 
interface). However, there is no FIB entry for name /abc/def with such 
next-hop. If conventional LNPM forwarding was used, router #2 would 
never receive an /abc/def Interest from router #1. Interests with STRICT 
mode set bypass LNPM lookup, that’s why it is theoretically possible 
to forward the interests over the paths that do not exist in routing 
plane. Hence, we propose some rather simple solutions in the 
specification.

5. I couldn't quite follow the NDN encoding details in §3.3. Why does 
PathLabelBitmap have a fixed 64-octet value? I thought this field was 
allocated by the producer with a length in bits = 12 * PathLabelHopCount 
+ 8.

**Response**: That’s the offset. The offset is the location (i.e. 
index or a slot in the path label) where next hop label is supposed to 
be written. Is this still unclear?

5a. This may be a philosophical difference between CCNx and NDN, but 
generally speaking NDN tries to avoid using fixed-length fields in the 
packet format if possible. I understand that this would incur a 
performance penalty, but have you considered a variable-length encoding 
for each Nexthop Label in the path label, instead of 12 bits for 
everyone?

**Response**: It isn’t so much a difference between NDN and CCNx 
(since CCNx also uses mostly variable length fields), but a general 
tradeoff where we weighed flexibility against packet expansion and came 
down on the side of limiting both packet expansion and processing 
overhead on the forwarding critical path. In the paper we showed that 
one could use MPLS-like stacks of labels, but did not carry this over 
into the path steering draft since we did not want to also wade into all 
the side issues involved in path switching of ICN. Since this is an 
experimental scheme, we are of course interested in learning from 
experimentation and can switch to more flexible encodings if that is 
borne out through experience.

The changes outlined here have been incorporated in the new version of 
the draft, which you can find at 
https://datatracker.ietf.org/doc/draft-oran-icnrg-pathsteering/. Please 
review and send more comments as appropriate.

Also, the authors believe that given the completion of CCNInfo, and the 
progression of ICN Ping and Traceroute towards publication, it is 
appropriate for this to be adopted as an active RG draft. We’d like to 
ask Dirk to issue an adoption call (Dave obviously can’t as he’s 
co-author).

Many thanks!