[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!
- [icnrg] Updates to the ICN Path Steering draft (d… David R. Oran