Re: [dtn] DTN addressing, routing, and ownership

Brian Sipos <BSipos@rkf-eng.com> Thu, 09 July 2020 02:09 UTC

Return-Path: <BSipos@rkf-eng.com>
X-Original-To: dtn@ietfa.amsl.com
Delivered-To: dtn@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B89083A0C1C for <dtn@ietfa.amsl.com>; Wed, 8 Jul 2020 19:09:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=rkfeng.onmicrosoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tbqmILoRydeD for <dtn@ietfa.amsl.com>; Wed, 8 Jul 2020 19:09:32 -0700 (PDT)
Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2041.outbound.protection.outlook.com [40.107.92.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6BF473A0C1B for <dtn@ietf.org>; Wed, 8 Jul 2020 19:09:32 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BBzoUN//6//pOEiGWr+MAqGMwlDQ15ISFBbx0BCMyxQhj7IunJNDt39w0ohpQngyNrgvaHeWbhVU/f7Lo9QVtoAscTIgQALEUrL7MhM2a34LZc4pY0KTt/enZ2lv2WFmGpa8Gf1PGBgUBjq4BsmBXpNSXOQ7YifWyemkWFcO0Aa2SnopMTibwLORcaCtIOfGNI54FFOBzUxmnZYoIaTYTDIsxNIrcgwoJPGljoL8WBioDf5EZbWTf6bao4XNI1rQsMEULiqeTUKKxws1TuW+iXR/JBwPIh3izdWutpRzsK5Izi2lKor9hcY3Bd14csQOnSvmxCHRAHxNwXO6IjLEaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ktxblXQD1AgJbu9HtsUw9FVitMy3+8Go/7AVqGgqwS8=; b=YI07QoCSuVvuTeCdi+HrjIvhduvuG6JRlqC2+rwRPb+rIMPPPYilwnsewgaqdGgLtC0QIyLFUYZj9oRBWnngJ2xzdXMzXNt5eccHXtCclJ6zFG9othEnCBIrlNhOSdH8wCiTw2j6uu2UVyFeoY6oaOdpRxPCqEa6BJHnnhQH3wuvFvY/iL/3UDm+IynjnjU1dhDiqmKar+PCzEgrfJEXhcaC3KlDOw8adGNjDy34IvLbASuE9rVSVT6L0oBSpNcF42TCJYamprYcShL/uUcLknVWOsriAwW5HrJiqesoffPB63XoPKBwOCBjMLh/ANZ+UDIDTnxdWcggLIYsRWs9EQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=rkf-eng.com; dmarc=pass action=none header.from=rkf-eng.com; dkim=pass header.d=rkf-eng.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rkfeng.onmicrosoft.com; s=selector2-rkfeng-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ktxblXQD1AgJbu9HtsUw9FVitMy3+8Go/7AVqGgqwS8=; b=B0KTvMpyAdt7njs1oHNGMuFNYXKMoC06+z0jSiYZE02enqpb5eivOat+ne1eHOTkSJspNlr/jBrpqUdhAHCEGMIqHatJH2ble3EvB4I+a3m38/lTkA6j/IXIhohcpPhMZ0yInrrSktbldlbkm26i9E0KAd56jlfPzsd2UfMVOqo=
Received: from MN2PR13MB3567.namprd13.prod.outlook.com (2603:10b6:208:168::10) by MN2PR13MB3942.namprd13.prod.outlook.com (2603:10b6:208:269::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.9; Thu, 9 Jul 2020 02:09:28 +0000
Received: from MN2PR13MB3567.namprd13.prod.outlook.com ([fe80::2d35:414:84c4:d1c5]) by MN2PR13MB3567.namprd13.prod.outlook.com ([fe80::2d35:414:84c4:d1c5%5]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 02:09:28 +0000
From: Brian Sipos <BSipos@rkf-eng.com>
To: "Burleigh, Scott C (US 312B)" <scott.c.burleigh@jpl.nasa.gov>, Rick Taylor <rick@tropicalstormsoftware.com>, "dtn@ietf.org" <dtn@ietf.org>
Thread-Topic: DTN addressing, routing, and ownership
Thread-Index: AQHWTVTx85boqEKc/0KX1l4tcd8Z7ajwYw9ggACsSIuAADE/cIAARK9GgABMkECAAJD44IAAVUhXgAAMdtCAAMyxRIACstXggAg0BAI=
Date: Thu, 09 Jul 2020 02:09:28 +0000
Message-ID: <MN2PR13MB3567A58E070E00DCE177002C9F640@MN2PR13MB3567.namprd13.prod.outlook.com>
References: <MN2PR13MB356748622EBD29B0028737E19F910@MN2PR13MB3567.namprd13.prod.outlook.com>, <095534b510e44eeebe2d02865eafd10d@jpl.nasa.gov> <MN2PR13MB3567754EE9D8D3C7D19DBD259F6F0@MN2PR13MB3567.namprd13.prod.outlook.com>, <631c36b735934d7eb0df5873536b6ee4@jpl.nasa.gov> <MN2PR13MB35671B6724A93836F3F94F2C9F6F0@MN2PR13MB3567.namprd13.prod.outlook.com> <6990ef88820a400f8c3be2c33310c5f6@jpl.nasa.gov>, <38A5475DE83986499AEACD2CFAFC3F9801F585B226@tss-server1.home.tropicalstormsoftware.com> <MN2PR13MB356752E2F1BBB69FDDA274E79F6C0@MN2PR13MB3567.namprd13.prod.outlook.com>, <0e03648eb66849a68193d5a2e1ebcf3e@jpl.nasa.gov> <MN2PR13MB35670F9E35992C2008683B2B9F6D0@MN2PR13MB3567.namprd13.prod.outlook.com>, <d52af6dc5d4b4ec5a1fb9473598ea579@jpl.nasa.gov>
In-Reply-To: <d52af6dc5d4b4ec5a1fb9473598ea579@jpl.nasa.gov>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: jpl.nasa.gov; dkim=none (message not signed) header.d=none;jpl.nasa.gov; dmarc=none action=none header.from=rkf-eng.com;
x-originating-ip: [108.18.140.127]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f49fb209-a2a2-4a61-eecd-08d823ad1c4e
x-ms-traffictypediagnostic: MN2PR13MB3942:
x-microsoft-antispam-prvs: <MN2PR13MB3942482EC47E6D17C20A6A799F640@MN2PR13MB3942.namprd13.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: vSAjAhU5sC7hbeB3kVAJJVscHdWybY+x9anOU/8jGsVskQ2LRi+JBaDGM/oN2fx2uOZNgv3p1JykUbyswdr3ECl2zQ3WPP+YHKx48X4zVoRngYDXz96OAttN4mDI6VZ/4TQSSyBoaIC9ftopeRAXZk7aWvmidyxnkDOiSqsRp33Yn5kUu9eDKqrjUOv8eFnc/ym8RpyIuho0ZYQQFHZjhbMp4Tkdqm2ib8nETT5hE4JryiVHC3RWUQ8w22p+hqdQCuFPl0Ye7G0rSDPM8Vokqs0xQ+8bpGMA6t4v9etbBZCGPrskTlku3coNJcNk5eHqlu0LLllH4yfkG0uVqkZAaGZq5Hht6lSlaIn7CNL2S068bhsT1is4tZkbK23KbdT2OZt0iD1W5yqCdEnkBdv2Wg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR13MB3567.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(346002)(376002)(136003)(396003)(39830400003)(366004)(86362001)(30864003)(64756008)(5660300002)(166002)(508600001)(966005)(26005)(66556008)(19627235002)(7696005)(76116006)(83380400001)(66574015)(66446008)(66476007)(66946007)(316002)(186003)(110136005)(33656002)(52536014)(8676002)(9686003)(6506007)(71200400001)(53546011)(8936002)(19627405001)(55016002)(2906002)(579004); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: Z2e4PcPwfo7m9NQMdWNNCIloYF6Oogj9PTm3xiaRgiyhHsBw2MOFbY3KQAtrx1zTROPxiSCgzBZ7KlR5Wy9KrW3Q7TsIkG7r0QEGTaY7NJcgrLOsP05pCcquD/4pTdW3AoxGi/jv3E97mpaZXH6Wm9KJnzum4vMetDDez4njYN/+7g+q8SMkrhN/PfCuZPWbpTqT4y1mWg+RIpDdwArj9rKhHGflwKp5Cbusi5jNgdx2rVSuV595kQIk0P/udH3P+eAbdsmb8EFaTXdbOQc3NyDCrM5BbQVff1refO+f4P6RNWE9FbphTYNtIiFq6DhOlUHRGlovgehpkyTQGyLSb2wHQQIblVXwk01Q7T4fXQURD551DrGouowHQINcbT5i2yRGGFhYyqj1/KZ/B+GiviI+potsimOYVXpQHVjW7E+e7deSp589VUIxJ9qgk1f7FJamNASRe5JCtNL21hTJ6/CeSXPXSZgGCoFJ2VS69Bn3L5qwAEv9CdNjwUahNaV1
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_MN2PR13MB3567A58E070E00DCE177002C9F640MN2PR13MB3567namp_"
MIME-Version: 1.0
X-OriginatorOrg: rkf-eng.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MN2PR13MB3567.namprd13.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f49fb209-a2a2-4a61-eecd-08d823ad1c4e
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jul 2020 02:09:28.2625 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4ed8b15b-911f-42bc-8524-d89148858535
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MkufCCFFd2BXLhs8Phqwkt0Pf/Kd5AXjpyeTf78lco5rIR9K+2/9c35ZDWdjCrf7o+n8NxEUC7n8bw9KLCysEQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3942
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/0pFiv8jghXuosnTr4mzI69tGQ5A>
Subject: Re: [dtn] DTN addressing, routing, and ownership
X-BeenThere: dtn@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Delay Tolerant Networking \(DTN\) discussion list at the IETF." <dtn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dtn>, <mailto:dtn-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dtn/>
List-Post: <mailto:dtn@ietf.org>
List-Help: <mailto:dtn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dtn>, <mailto:dtn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Jul 2020 02:09:38 -0000

Scott,
Since DTN is quite asynchronous compared to other transports, it makes sense that most protocols would not follow a strict request--reply paradigm and, if necessary, have some notion of a protocol-level reply-to EID.

The point about the bundle source is more confusing to me now. I think part of my confusion is lack of realistic examples or historical use, so these are not merely theoretical questions. Is there a reason why BPbis changed from RFC5050 to have a requirement about source _node ID_ instead of more general endpoint ID?
And are the current implementations which allow a source general EID expected to continue to do so? In that case what's the benefit of BPbis requiring more specific behavior?
________________________________
From: Burleigh, Scott C (US 312B) <scott.c.burleigh@jpl.nasa.gov>
Sent: Friday, July 3, 2020 15:53
To: Brian Sipos <BSipos@rkf-eng.com>; Rick Taylor <rick@tropicalstormsoftware.com>; dtn@ietf.org <dtn@ietf.org>
Subject: RE: DTN addressing, routing, and ownership


Hi, Brian.  Good point about the admin record flag in the primary block, this does give the implementation an opportunity to intercept misdirected administrative records.



Your point about reply-to EIDs is also well taken.  It is true that the source of every bundle is a node, and bpbis draft differs from RDFC 5050 in requiring that the source EID of an outgoing bundle identify the source node (except for anonymous bundles).  Forming the destination EID is always the responsibility of the application (even in the case of administrative records, as the source of an administrative record is the administrative element of the application agent – an application).



But at least in the ipn scheme, it would actually be fine for the source EID to have a service number other than zero; the node ID of the source node could always be formed simply by replacing the source EID service number with zero.  That would be one way to solve your conundrum, and in fact the ION implementation of BPv7 operates in this way.



I guess another mechanism would be to assume (or require) that service numbers be symmetrical/bidirectional so that the destination EID service number could be used as the return EID service number.  But that seems unnecessarily restrictive and I suspect it would raise more issues that we haven’t thought of yet.



Scott



From: Brian Sipos <BSipos@rkf-eng.com>
Sent: Wednesday, July 1, 2020 7:50 PM
To: Burleigh, Scott C (US 312B) <scott.c.burleigh@jpl.nasa.gov>; Rick Taylor <rick@tropicalstormsoftware.com>; dtn@ietf.org
Subject: [EXTERNAL] Re: DTN addressing, routing, and ownership



Scott,

Regardless of the phrasing, I believe that requirements about the use of the Node ID to exchange admin. records would avoid confusion for agent implementers. Some informative text about the purpose of a Node ID and its relationship to the Source of generated bundles would also make crystal clear what I was confused about.

The one difference between your port/socket example and BP is that because BP gives an explicit admin. record flag this situation is detectable by the BP agent before the data ever makes it to the overlaying application(s).



I still do have one conundrum now that I believe I understand the Source ID parameter: Since outgoing bundles are marked with the Node ID of the source and not a service-specific EID from the source, there is no concept of a "return EID" for replying to a bundle with a bundle. Unlike UDP/IP, where the source port number provides a return path for a packet, or SMTP, where each message includes an RFC5322 From or Reply-To address. Without an explicit return EID, then a dictionary of well-known dtn-scheme service names (and ipn-scheme service numbers) is mandatory.



When I receive a bundle from Node ID "dtn://nodeB/bp" to my EID at "dtn://nodeA/xyz", which is for Future-Protocol-1, how do I know what EID implements Future-Protocol-1 on "nodeB"? Maybe it's "dtn://nodeB/efg". Unless the application payload data itself contains an explicit return EID, I will need to construct an EID from the Node ID. Is the expectation to have an application-data-specific reply-to EID? Or is EID construction from an application the expected mode?

________________________________

From: Burleigh, Scott C (US 312B) <scott.c.burleigh@jpl.nasa.gov<mailto:scott.c.burleigh@jpl.nasa.gov>>
Sent: Wednesday, July 1, 2020 10:03
To: Brian Sipos <BSipos@rkf-eng.com<mailto:BSipos@rkf-eng.com>>; Rick Taylor <rick@tropicalstormsoftware.com<mailto:rick@tropicalstormsoftware.com>>; dtn@ietf.org<mailto:dtn@ietf.org> <dtn@ietf.org<mailto:dtn@ietf.org>>
Subject: RE: DTN addressing, routing, and ownership



I think we’re thinking along the same lines, Brian.  The source EID of any bundle containing an administrative record should likewise be one of the source node’s node IDs (or ideally – I believe – the node’s [sole] node ID).



I think the Internet may once again serve as a model for answering your question.  When an email arrives at a socket bound to port 156, I expect SQL Server simply discards it as invalid SQL Server data, right?  It’s up to the sender to address the bundle correctly.



Scott



From: Brian Sipos <BSipos@rkf-eng.com<mailto:BSipos@rkf-eng.com>>
Sent: Wednesday, July 1, 2020 6:48 AM
To: Rick Taylor <rick@tropicalstormsoftware.com<mailto:rick@tropicalstormsoftware.com>>; Burleigh, Scott C (US 312B) <scott.c.burleigh@jpl.nasa.gov<mailto:scott.c.burleigh@jpl.nasa.gov>>; dtn@ietf.org<mailto:dtn@ietf.org>
Subject: [EXTERNAL] Re: DTN addressing, routing, and ownership



Rick and Scott,

I actually don't see any problem now in the normative text in either BPbis or the current CL uses of "Node ID".

What I didn't pick up on are the secondary concerns of "how do I choose a Node ID?" and "what traffic is destined for that Node ID?" in BPbis Section 4.1.5.2. "Node ID" or elsewhere.

I had just assumed that the Node ID was just chosen from one of the Endpoints serviced by the node. In fact the Node ID is actually be separated on purpose from normal service EIDs.



This does bring up another point which I don't see addressed in Section 5.1.. "Generation of Administrative Records" or elsewhere: What is supposed to be the Source node ID of administrative-record bundles. I had earlier assumed they would match the Destination EID of the bundle which generated the Status Report (i.e. the status would be "coming from" the service EID). But looking at it now I realize the Source node ID of all bundles is *always* the singleton Node ID of the BP agent generating the bundle (admin or not).



Maybe some text in 4.1.5.2 similar to:

The Node ID is (MUST BE?) the Endpoint ID used as the (primary block) Source for all bundles originating from the node.

The Node ID is (SHOULD BE?) the endpoint ID with which the BP agent normally receives administrative bundles from other nodes. A Node ID is (SHOULD BE?) the destination EID of all administrative-record bundles.

Also related to this: what does a BP agent do when an administrative-record bundle is received on a normal service EID? Is that a valid situation? Does it still get processed with some internal warning?



________________________________

From: Rick Taylor <rick@tropicalstormsoftware.com<mailto:rick@tropicalstormsoftware.com>>
Sent: Wednesday, July 1, 2020 04:17
To: Burleigh, Scott C (US 312B) <scott.c.burleigh=40jpl.nasa.gov@dmarc.ietf.org<mailto:scott.c.burleigh=40jpl.nasa.gov@dmarc.ietf.org>>; Brian Sipos <BSipos@rkf-eng.com<mailto:BSipos@rkf-eng.com>>; dtn@ietf.org<mailto:dtn@ietf.org> <dtn@ietf.org<mailto:dtn@ietf.org>>
Subject: RE: DTN addressing, routing, and ownership



Hi All,



Sorry for the top-post and my silence for the last months of COVID-19.



I have a concern that we have two node naming schemes (ipn + dtn) and neither is particularly well defined at the moment for historical reasons.  Looking forwards to a future interoperable DTN ‘Internet’, multiple schemes seems to require some kind of translation layer and I have had some long off-list conversations with Scott about such a topic – but we discussed ideas rather than concrete suggestions ready for drafts.



I wonder if a simple way forward for TCP-CL may be to keep the exact details of the “per-node administrative endpoint-id” as loose as possible in the CL specifications, i.e. requiring one exists, and defining how it shall be used for authentication, but leaving it to some other document (per-scheme perhaps) to define the actual details of the endpoint-id.



My open question is : would this be acceptable for a CL specification, or do the reviewers/authors require the “per-node administrative endpoint-id” defined, and is there sufficient text in BPbis to introduce the concept of a “per-node administrative endpoint-id”?



Cheers,



Rick



From: dtn [mailto:dtn-bounces@ietf.org] On Behalf Of Burleigh, Scott C (US 312B)
Sent: 01 July 2020 00:35
To: Brian Sipos; dtn@ietf.org<mailto:dtn@ietf.org>
Subject: Re: [dtn] DTN addressing, routing, and ownership



I completely agree, Brian, we need to do a better job of documenting this.  It would also be good to document the corresponding semantics for the “dtn” scheme; that may actually be written down somewhere, but I can’t lay my hands on it right now.



Scott



From: Brian Sipos <BSipos@rkf-eng.com<mailto:BSipos@rkf-eng.com>>
Sent: Tuesday, June 30, 2020 3:28 PM
To: Burleigh, Scott C (US 312B) <scott.c.burleigh@jpl.nasa.gov<mailto:scott.c.burleigh@jpl.nasa.gov>>; dtn@ietf.org<mailto:dtn@ietf.org>
Subject: [EXTERNAL] Re: DTN addressing, routing, and ownership



Scott,

Your responses are most helpful!



The piece I was missing is that there _is_ a concept of a per-node administrative endpoint. And that in the absence of any other services on a router-type node, that endpoint would be expected to be 'reachable'. And it makes sense that this is the endpoint to which administrative records would be reported-to.

The language of BPbis Node ID definition [11] now makes more sense in this concrete context. The raw text indicates _what_ a Node ID is but, at least on my reading of it, didn't really indicate or imply that the Node ID is the specific channel for the BP agent itself to exchange bundles.



The unfortunate thing is that neither RFC7116 [12] nor the referenced RFC6260 [13] actually says what IPN service number zero is supposed to actually do or when it should (or should not) be reachable on a node. Nor is RFC7116 referenced by any other documents [14]. I agree that the scope of BPbis, which just prescribes how to generate and process v7 bundles, doesn't need to cover service naming but I don't know if I would have picked up on this kind of detail without your feedback (or some kind of hands-on experience with existing BP tools).



[11] https://datatracker.ietf.org/doc/html/draft-ietf-dtn-bpbis-25#section-4.1.5...2<https://datatracker.ietf.org/doc/html/draft-ietf-dtn-bpbis-25#section-4.1.5.2>

[12] https://tools..ietf.org/html/rfc7116#section-3.2.2<https://tools.ietf.org/html/rfc7116#section-3.2.2>

[13] https://tools.ietf.org/html/rfc6260

[14] https://datatracker.ietf.org/doc/rfc7116/referencedby/



________________________________

From: Burleigh, Scott C (US 312B) <scott.c.burleigh@jpl.nasa.gov<mailto:scott.c.burleigh@jpl.nasa.gov>>
Sent: Tuesday, June 30, 2020 13:19
To: Brian Sipos <BSipos@rkf-eng.com<mailto:BSipos@rkf-eng.com>>; dtn@ietf.org<mailto:dtn@ietf.org> <dtn@ietf.org<mailto:dtn@ietf.org>>
Subject: RE: DTN addressing, routing, and ownership



Hi, Brian.  More responses in-line below.



Scott



From: Brian Sipos <BSipos@rkf-eng.com<mailto:BSipos@rkf-eng.com>>
Sent: Tuesday, June 30, 2020 5:30 AM
To: Burleigh, Scott C (US 312B) <scott.c.burleigh@jpl.nasa.gov<mailto:scott.c.burleigh@jpl.nasa.gov>>; dtn@ietf.org<mailto:dtn@ietf.org>
Subject: [EXTERNAL] Re: DTN addressing, routing, and ownership



Thank you for the response. I want to pose my questions in more concrete terms, so I'll use a few vignettes based on current or proposed DTN protocols. My intent is to figure out how these protocols are actually being used if  possible.



In all cases I run a BP agent with three endpoint IDs for three separate services: "dtn://nodeA/svc1", "dtn://nodeA/svc2", and "dtn://nodeA/svc3".

1.   I use a single TCP CL (v3 or v4 doesn't matter, the same node info is exchanged in either case). I start a CL session (in either direction, contact data is the same) and send my Node ID. The CL requires exactly one Node ID for my side of the session. Which of the EIDs do I use as my Node ID? Or is it some other URI?  These are difficult questions to answer in terms of the dtn URI scheme, as the detailed semantics of that scheme are not (and have never been, AFAIK) standardized anywhere.  In ipn-scheme terms, let’s say you have a node whose node number is 91 that is a member of (singleton) endpoints ipn:91.1, ipn:91.2, and ipn:91.3.  That node is also implicitly a member of endpoint ipn:91.0, the administrative endpoint for that node (per RFC 7116).  The most useful node ID to pass when starting this TCPCL session would be “ipn:91.0”.
For outgoing CL sessions I could use a different EID for different outgoing bundles, but for incoming connections I have to send my Node ID before knowing what bundles may be incoming. Do I just choose one randomly? And then route bundles to the other EIDs as necessary?  No, in this context the right node ID to send is “ipn:91.0”..

2.   I run a DTN IPND node and send out broadcast beacons to my local network. Each beacon holds a single "Canonical EID". Which of the EIDs do I use in the beacon?  Again, I would say the right EID to advertise in this case is “ipn”91.0”.  I will make a somewhat controversial assertion here and claim that BP endpoints are – in practice – functionally equivalent to sockets.  In UDP/IP the destination of a datagram is a socket, not a host; but we route to the host, which delivers the datagram’s content at the socket.  Similarly in DTN the destination of a bundle is an endpoint, not a node; but we route to the node, which delivers the bundle’s application data unit at the endpoint.  So for routing purposes the information that needs to be advertised in a beacon is the node ID, which in this case is the singleton EID “ipn:91.0”.
Do I need to send three beacons for three services? If so, I could run into situations where neighborhood topology is observed to be different for the three services even though they use the same network transports.  I would say no, just as in IP we don’t normally advertise all of the sockets that the host has got open.  Service numbers don’t normally bear on the topology.

3.   For my question of "ownership" it means the same thing as "owning" an email address: I'm able to receive email for an address and send mail for an address. If I can prove to some third-party to be able to do those two things then I can claim to own an address.  I think that’s not really what you mean, though.  There are Internet tools that I can use to generate packets of arbitrary content and to snoop packets including emails; my use of those tools doesn’t demonstrate my ownership of the address.  I think what you really mean is that when a person receives an email for which the sending address is BSipos@rkf-eng.com<mailto:BSipos@rkf-eng.com>, that person can safely (modulo cyber-security as always) conclude that the sender of the email is Brian Sipos rather than Angela Merkel, because Brian Sipos is the registered owner of that address.  So what matters is the authenticity of the registered association between that name and that address; the integrity of the registry is paramount.
So my question for DTN is: if I can prove to own a Node ID (by proving to receive and send nonce-type bundles), does the network design allow my claim to cover not just the one Node ID URI for that bundle but any URI for that same "node-name".  And I think the answer is the same: your “ownership” of a node ID is an entry in a registry, somewhere, that associates your name with that node ID in a manner that is provably authentic.  If that ownership is established, then I would say that you also “own” (in the same sense) every ipn-scheme endpoint whose node number is the same as that of the node ID that you own.
To put another way: Would a DTN router ever actually make a routing decision based on the service part of an EID? I'm not asking the theoretical question but the practical one.  I guess it might, under the same kinds of circumstances under which an IP router would make a routing decision based on the port number of a socket address.  I don’t know enough about IP to identify all those circumstances; firewalls, I guess.  In DTN we don’t yet have anything like that, as far as I know.
A similar existing situation: To prove that I own an IP address I can use a mechanism like [10], which uses HTTP or TLS on TCP port 80/443. My proof-of-ownership is on a specific TCP port but the thing which I am proving to own is the entire IP address.  Again I would say that “ownership” is a matter of registration.  Currently the only such registry I know of for DTN is the node number assignments managed by nation space agencies under the auspices of the CCSD Space Assigned Numbers Authority.  Other registries are certainly possible, and the procedures for establishing node number ownership might vary wildly among registries.

I understand the Node ID/Endpoint ID theory, but when it comes to figuring out in practice I'm running into this brick wall related to multi-service nodes (which seems like it should be a common enough situation).



[10] https://tools.ietf.org/html/rfc8738





________________________________

From: Burleigh, Scott C (US 312B) <scott.c.burleigh@jpl.nasa.gov<mailto:scott.c.burleigh@jpl.nasa..gov>>
Sent: Tuesday, June 30, 2020 01:03
To: Brian Sipos <BSipos@rkf-eng.com<mailto:BSipos@rkf-eng.com>>; dtn@ietf.org<mailto:dtn@ietf.org> <dtn@ietf.org<mailto:dtn@ietf.org>>
Subject: RE: DTN addressing, routing, and ownership



Brian, I will offer a few answers, in-line below, but I am sure others will jump in to correct anything I get wrong.



Scott



From: dtn <dtn-bounces@ietf.org<mailto:dtn-bounces@ietf.org>> On Behalf Of Brian Sipos
Sent: Sunday, June 28, 2020 8:05 AM
To: dtn@ietf.org<mailto:dtn@ietf.org>
Subject: [EXTERNAL] [dtn] DTN addressing, routing, and ownership



All,

I've been trying to figure out some details related to DTN addressing which are not covered in detail in the DTN architecture document [1]. My exposure to DTN has been from the protocol definition perspective and not from the historical-use perspective, so any undocumented current practices are probably unknown to me.



My questions are similar to the following:

1.      Are EIDs with identical dtn-scheme "node name" or ipn-scheme "node number" guaranteed to be routed to the same BP agent? How is this guaranteed? What document requires or disallows it?

--A BP agent is a component of a node.  The destination of a bundle is an endpoint, which is defined as a set of nodes but in practice is usually a set containing only a single node, a “singleton endpoint”.  RFC5050 defines the manner in which a bundle is forwarded to the sole occupant of a singleton destination endpoint.  Naturally, any program can be written to do anything one likes, so there are no guarantees.  But an alleged BP node that doesn’t do what RFC5050 (or, soon, BPbis) mandates is non-conformant.

2.      Are bundle routers allocated a well-known dtn-scheme "demux" text or ipn-scheme "service number"? i.e., is a bundle always routed through "dtn://NodeA/router" before it reaches endpoint "dtn://NodeA/svc1"?

--The dtn scheme actually isn’t very thoroughly defined.  There are some standard ipn-scheme service numbers defined by CCSDS, but there are no mandated routing policies associated with any of those numbers.

3.      Must each node run its own router service? Can a router on NodeA deliver bundles to an endpoint service on NodeB? Through what mechanism would this occur?

--“Delivery” of a bundle is defined in RFC5050; it is part of the defined behavior of the bundle protocol agent of a BP node.  The BPA presents to the appropriate application element (within the node’s application agent) the application data unit that is the payload of the bundle.  That application element could then pass the data on to whoever, but that’s outside of the bundle protocol.

4.      Can a single BP agent use convergence layers (CLs) which expose different Node IDs to neighbors? Can my BP agent use TCPCL sessions with local Node ID as "dtn://NodeA/svc1" and "dtn://NodeA/svc2"? Must it only expose the router service to CLs? Or does the CL itself constitute a service (e.g. as "dtn://NodeA/tcpcl")?

--Node IDs don’t have anything to do with convergence-layer adapters; the manner in which a node determines the ID of a neighboring node is completely unrelated to the convergence-layer protocols that will be used for communication between the nodes.

BPbis for Node ID schemes "dtn" [2] and "ipn" [3] has syntax explained but not full semantics. CBHE [4] gives some non-normative explanation of node number vs. service number semantics, but again doesn't dig into much detail about relationship requirements.



--I’d say that’s because the normative semantic issues are addressed by the protocol specifications rather than the scheme definitions.



The reason for all of these questions are two answer security topics such as:

1.      If I get a PKI certificate [5] for my node, do I need to authenticate (i.e. have a subjectAltName for) all possible Node IDs which could be used on my node? Or do I only need to authenticate for one "router" service, which is the only Node ID used by CLAs?

--I think this depends on exactly what the certificate is going to be used for, and I haven’t been following this thread closely enough to understand that.

2.      If I validate that I "own" a single Endpoint ID using a method such as [6], what else can be derived from that EID validation? Can I be said to own the entire dtn "node name" or ipn "node number"? Or can separate BP agents own EIDs with identical node-name/node-number?

--Since endpoints are identified by EIDs and an endpoint is a set of nodes, it’s certainly possible for multiple nodes to be registered in an endpoint identified by a single EID.  It’s not yet clear to me what “ownership” means in this context, though.

3.      When using BPsec [6] as a security acceptor, when I look up implicit keys associated with a security source Node ID must I relate keys to the full URI or can I relate keys to any URI with the same node-name/node-number? Will a security source always be a router service, or some other well-known service on a node?

--We don’t really have a concept of a “router service.”  Sharing a single key among multiple nodes (identified by different singleton endpoint IDs) is always going to be possible, I think, though not necessarily a good idea.

4.      When using a neighbor discovery (ND) protocol such as [8], which Node ID is supposed to be used as the "canonical EID" for each node? Just the router Node ID? Just the CL-based Node IDs? What about endpoint IDs directly delivered by the router on this node?

--Again, we really don’t have a concept of a router service or a router ID.  Nodes are just nodes.  Any node can be the source of a bundle, can be the destination of a bundle, or can forward a bundle that it receives but for which it is not the destination.  In implementation there is a notion of an endpoint that is the destination of all administrative bundles (bundles whose application data units are administrative records) directed toward a given node; the ID of that endpoint would nominally be the “canonical EID” for that node.

My own intuition makes me think that there is such a "router" service which is implicitly present on each node, which is used as the CL "Node ID" or ND "canonical EID", but that doesn't seem to actually be documented anywhere. It looks like there was a similar attempt to clarify DTN services in [9] but I don't see any movement on that after 2012.



Thanks in advance for clarification on any of these points.



[1] https://tools.ietf.org/html/rfc4838

[2] https://tools.ietf.org/html/draft-ietf-dtn-bpbis-24#section-10.7

[3] https://tools.ietf.org/html/draft-ietf-dtn-bpbis-24#section-10.8

[4] https://tools.ietf.org/html/rfc6260#section-2.1

[5] https://datatracker.ietf.org/doc/html/draft-ietf-dtn-tcpclv4-21

[6] https://datatracker.ietf.org/doc/html/draft-sipos-acme-dtnnodeid-01

[7] https://datatracker.ietf.org/doc/html/draft-ietf-dtn-bpsec-22

[8] https://datatracker.ietf.org/doc/html/draft-irtf-dtnrg-ipnd-03

[9] https://datatracker.ietf.org/doc/html/draft-blanchet-dtnrg-bp-application-framework-01