summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9507.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc9507.txt')
-rw-r--r--doc/rfc/rfc9507.txt863
1 files changed, 863 insertions, 0 deletions
diff --git a/doc/rfc/rfc9507.txt b/doc/rfc/rfc9507.txt
new file mode 100644
index 0000000..19f7a32
--- /dev/null
+++ b/doc/rfc/rfc9507.txt
@@ -0,0 +1,863 @@
+
+
+
+
+Internet Research Task Force (IRTF) S. Mastorakis
+Request for Comments: 9507 University of Notre Dame
+Category: Experimental D. Oran
+ISSN: 2070-1721 Network Systems Research and Design
+ I. Moiseenko
+ Apple Inc.
+ J. Gibson
+ R. Droms
+ Unaffiliated
+ March 2024
+
+
+ Information-Centric Networking (ICN) Traceroute Protocol Specification
+
+Abstract
+
+ This document presents the design of an Information-Centric
+ Networking (ICN) Traceroute protocol. This includes the operation of
+ both the client and the forwarder.
+
+ This document is a product of the Information-Centric Networking
+ Research Group (ICNRG) of the IRTF.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for examination, experimental implementation, and
+ evaluation.
+
+ This document defines an Experimental Protocol for the Internet
+ community. This document is a product of the Internet Research Task
+ Force (IRTF). The IRTF publishes the results of Internet-related
+ research and development activities. These results might not be
+ suitable for deployment. This RFC represents the consensus of the
+ Information-Centric Networking Research Group of the Internet
+ Research Task Force (IRTF). Documents approved for publication by
+ the IRSG are not candidates for any level of Internet Standard; see
+ Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc9507.
+
+Copyright Notice
+
+ Copyright (c) 2024 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document.
+
+Table of Contents
+
+ 1. Introduction
+ 1.1. Requirements Language
+ 2. Background on IP-Based Traceroute Operation
+ 3. Traceroute Functionality Challenges and Opportunities in ICN
+ 4. ICN Traceroute CCNx Packet Formats
+ 4.1. ICN Traceroute Request CCNx Packet Format
+ 4.2. ICN Traceroute Reply CCNx Packet Format
+ 5. ICN Traceroute NDN Packet Formats
+ 5.1. ICN Traceroute Request NDN Packet Format
+ 5.2. ICN Traceroute Reply NDN Packet Format
+ 6. Forwarder Operation
+ 7. Protocol Operation for Locally Scoped Namespaces
+ 8. Security Considerations
+ 9. IANA Considerations
+ 10. References
+ 10.1. Normative References
+ 10.2. Informative References
+ Appendix A. Traceroute Client Application (Consumer) Operation
+ Authors' Addresses
+
+1. Introduction
+
+ In TCP/IP, routing and forwarding are based on IP addresses. To
+ ascertain the route to an IP address and to measure the transit
+ delays, the traceroute utility is commonly used. In Information-
+ Centric Networking (ICN), routing and forwarding are based on name
+ prefixes. To this end, the ability to ascertain the characteristics
+ of at least one of the available routes to a name prefix is a
+ fundamental requirement for instrumentation and network management.
+ These characteristics include, among others, route properties such as
+ which forwarders were transited and the delay incurred through
+ forwarding.
+
+ In order to carry out meaningful experimentation and deployment of
+ ICN protocols, new tools analogous to ping and traceroute used for
+ TCP/IP are needed to manage and debug the operation of ICN
+ architectures and protocols. This document describes the design of a
+ management and debugging protocol analogous to the traceroute
+ protocol of TCP/IP; this new management and debugging protocol will
+ aid the experimental deployment of ICN protocols. As the community
+ continues its experimentation with ICN architectures and protocols,
+ the design of ICN Traceroute might change accordingly. ICN
+ Traceroute is designed as a tool to troubleshoot ICN architectures
+ and protocols. As such, this document is classified as an
+ Experimental RFC.
+
+ This specification uses the terminology defined in [RFC8793].
+
+ This RFC represents the consensus of the Information-Centric
+ Networking Research Group (ICNRG) of the Internet Research Task Force
+ (IRTF).
+
+1.1. Requirements Language
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+2. Background on IP-Based Traceroute Operation
+
+ In IP-based networks, traceroute is based on the expiration of the
+ Time To Live (TTL) IP header field. Specifically, a traceroute
+ client sends consecutive packets (depending on the implementation and
+ the user-specified behavior, such packets can be either UDP
+ datagrams, ICMP Echo Request packets, or TCP SYN packets) with a TTL
+ value increased by 1, essentially performing an expanding ring
+ search. In this way, the first IP packet sent will expire at the
+ first router along the path, the second IP packet at the second
+ router along the path, etc., until the router (or host) with the
+ specified destination IP address is reached. Each router along the
+ path towards the destination responds by sending back an ICMP Time
+ Exceeded packet, unless explicitly prevented from doing so by a
+ security policy.
+
+ The IP-based traceroute utility operates on IP addresses and in
+ particular depends on the IP packets having source IP addresses that
+ are used as the destination address for replies. Given that ICN
+ forwards based on names rather than destination IP addresses, that
+ the names do not refer to unique endpoints (multi-destination), and
+ that the packets do not contain source addresses, a substantially
+ different approach is needed.
+
+3. Traceroute Functionality Challenges and Opportunities in ICN
+
+ In the Named Data Networking (NDN) and Content-Centric Networking
+ (CCNx) protocols, the communication paradigm is based exclusively on
+ named objects. An Interest message is forwarded across the network
+ based on its name. Eventually, it retrieves a Content Object from
+ either a producer application or some forwarder's Content Store (CS).
+
+ An ICN network differs from an IP network in at least four important
+ ways (four of which are as follows):
+
+ * IP identifies interfaces to an IP network with a fixed-length
+ address and delivers IP packets to one or more interfaces. ICN
+ identifies units of data in the network with a variable-length
+ name consisting of a hierarchical list of segments.
+
+ * An IP-based network depends on the IP packets having source IP
+ addresses that are used as the destination address for replies.
+ On the other hand, ICN Interests do not have source addresses, and
+ they are forwarded based on names, which do not refer to a unique
+ endpoint. Data packets follow the reverse path of the Interests
+ based on hop-by-hop state created during Interest forwarding.
+
+ * An IP network supports multi-path, single-destination, stateless
+ packet forwarding and delivery via unicast; a limited form of
+ multi-destination selected delivery with anycast; and group-based
+ multi-destination delivery via multicast. In contrast, ICN
+ supports multi-path and multi-destination stateful Interest
+ forwarding and multi-destination data delivery to units of named
+ data. This single forwarding semantic subsumes the functions of
+ unicast, anycast, and multicast. As a result, consecutive (or
+ retransmitted) ICN Interest messages may be forwarded through an
+ ICN network along different paths and may be forwarded to
+ different data sources (e.g., end-node applications, in-network
+ storage) holding a copy of the requested unit of data. The
+ ability to discover multiple available (or potentially all) paths
+ towards a name prefix is a desirable capability for an ICN
+ Traceroute protocol, since it can be beneficial for congestion
+ control purposes. Knowing the number of available paths for a
+ name can also be useful in cases where Interest forwarding based
+ on application semantics/preferences is desirable.
+
+ * In the case of multiple Interests with the same name arriving at a
+ forwarder, a number of Interests may be aggregated in a common
+ Pending Interest Table (PIT) entry. Depending on the lifetime of
+ a PIT entry, the round-trip time of an Interest-Data exchange
+ might vary significantly (e.g., it might be shorter than the full
+ round-trip time to reach the original content producer). To this
+ end, the round-trip time experienced by consumers might also vary
+ even under constant network load.
+
+ These differences introduce new challenges, new opportunities, and
+ new requirements regarding the design of ICN Traceroute. Following
+ this communication model, a traceroute client should be able to
+ express traceroute requests directed to a name prefix and receive
+ responses.
+
+ Our goals are as follows:
+
+ * Trace one or more paths towards an ICN forwarder (for
+ troubleshooting purposes).
+
+ * Trace one or more paths through which a named data object can be
+ reached in the sense that Interest packets can be forwarded
+ towards the application hosting the object.
+
+ * Test whether a specific named object is cached in some on-path CS,
+ and, if so, trace the path towards it and return the identity of
+ the corresponding forwarder.
+
+ * Perform transit delay network measurements.
+
+ To this end, a traceroute target name can represent:
+
+ * An administrative name that has been assigned to a forwarder.
+ Assigning a name to a forwarder implies the presence of a
+ management application running locally that handles Operations,
+ Administration, and Maintenance (OAM) operations.
+
+ * A name that includes an application's namespace as a prefix.
+
+ * A named object that might reside in some in-network storage.
+
+ In order to provide stable and reliable diagnostics, it is desirable
+ that the packet encoding of a traceroute request enable the
+ forwarders to distinguish this request from a normal Interest while
+ also diverging as little as possible from the forwarding behavior for
+ an Interest packet. In the same way, the encoding of a traceroute
+ reply should minimize any processing differences from those employed
+ for a data packet by the forwarders.
+
+ The term "traceroute session" is used for an iterative process during
+ which an endpoint client application generates a number of traceroute
+ requests to successively traverse more distant hops in the path until
+ it receives a final traceroute reply from a forwarder. It is
+ desirable that ICN Traceroute be able to discover a number of paths
+ towards the expressed prefix within the same session or subsequent
+ sessions. To discover all the hops in a path, we need a mechanism
+ (Interest Steering) to steer requests along different paths. Such a
+ capability was initially published in [PATHSTEERING] and has been
+ specified for CCNx and NDN in [RFC9531].
+
+ In the case of traceroute requests for the same prefix from different
+ sources, it is also important to have a mechanism to avoid
+ aggregating those requests in the PIT. To this end, we need some
+ encoding in the traceroute requests to make each request for a common
+ prefix unique, hence avoiding PIT aggregation and further enabling
+ the exact matching of a response with a particular traceroute packet.
+
+ The packet types and formats are presented in Section 4. Procedures
+ for determining and indicating that a destination has been reached
+ are included in Section 6.
+
+4. ICN Traceroute CCNx Packet Formats
+
+ In this section, we present the CCNx packet formats [RFC8609] of ICN
+ Traceroute where messages exist within outermost containments
+ (packets). Specifically, we propose two types of traceroute packets:
+ a traceroute request and a traceroute reply.
+
+4.1. ICN Traceroute Request CCNx Packet Format
+
+ The format of the traceroute request packet is presented below:
+
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +---------------+---------------+---------------+---------------+
+ | | | |
+ | Version | PT_TR_REQUEST | PacketLength |
+ | | | |
+ +---------------+---------------+---------------+---------------+
+ | | | | |
+ | HopLimit | Reserved | Flags | HeaderLength |
+ | | | | |
+ +---------------+---------------+---------------+---------------+
+ / /
+ / Path Label TLV /
+ / /
+ +---------------+---------------+---------------+---------------+
+ | |
+ | Traceroute Request Message TLVs |
+ | |
+ +---------------+---------------+---------------+---------------+
+
+ Figure 1: Traceroute Request CCNx Packet Format
+
+ The existing packet header fields have functionality similar to that
+ of the header fields of a CCNx Interest packet. The value of the
+ packet type field is PT_TR_REQUEST. See Section 9 for the value
+ assignment.
+
+ In contrast to the typical format of a CCNx packet header [RFC8609],
+ there is a new optional fixed header added to the packet header:
+
+ * A Path Steering hop-by-hop header TLV, which is constructed hop by
+ hop in the traceroute reply and included in the traceroute request
+ to steer consecutive requests expressed by a client towards a
+ common forwarding path or different forwarding paths. The Path
+ Label TLV is specified in [RFC9531].
+
+ The message of a traceroute request is presented below:
+
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +---------------+---------------+---------------+---------------+
+ | | |
+ | MessageType = 0x05 | MessageLength |
+ | | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | Name TLV |
+ | |
+ +---------------+---------------+---------------+---------------+
+
+ Figure 2: Traceroute Request Message Format
+
+ The traceroute request message is of type T_DISCOVERY. The Name TLV
+ has the structure described in [RFC8609]. The name consists of the
+ target (destination) prefix appended with a nonce typed name as its
+ last segment. The nonce can be encoded as a base64-encoded string
+ with the URL-safe alphabet as defined in Section 5 of [RFC4648], with
+ padding omitted. The format of this TLV is a 64-bit nonce. See
+ [RFC9508] for the value assignment. The purpose of the nonce is to
+ avoid Interest aggregation and allow client matching of replies with
+ requests. As described below, the nonce is ignored for CS checking.
+
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +---------------+---------------+---------------+---------------+
+ | | |
+ | Name_Nonce_Type | Name_Nonce_Length = 8 |
+ | | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | |
+ | |
+ | Name_Nonce_Value |
+ | |
+ | |
+ +---------------+---------------+---------------+---------------+
+
+ Figure 3: Name Nonce Typed Segment TLV
+
+4.2. ICN Traceroute Reply CCNx Packet Format
+
+ The format of a traceroute reply packet is presented below:
+
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +---------------+---------------+---------------+---------------+
+ | | | |
+ | Version | PT_TR_REPLY | PacketLength |
+ | | | |
+ +---------------+---------------+---------------+---------------+
+ | | | |
+ | Reserved | Flags | HeaderLength |
+ | | | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | Path Label TLV |
+ | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | Traceroute Reply Message TLVs |
+ | |
+ +---------------+---------------+---------------+---------------+
+
+ Figure 4: Traceroute Reply CCNx Packet Format
+
+ The header of a traceroute reply consists of the header fields of a
+ CCNx Content Object and a hop-by-hop Path Steering TLV. The value of
+ the packet type field is PT_TR_REPLY. See Section 9 for the value
+ assignment.
+
+ A traceroute reply message is of type T_OBJECT and contains a Name
+ TLV (name of the corresponding traceroute request), a PayloadType
+ TLV, and an ExpiryTime TLV with a value of 0 to indicate that replies
+ must not be returned from network caches.
+
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +---------------+---------------+---------------+---------------+
+ | | |
+ | MessageType = 0x06 | MessageLength |
+ | | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | Name TLV |
+ | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | PayloadType TLV |
+ | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | ExpiryTime TLV |
+ | |
+ +---------------+---------------+---------------+---------------+
+
+ Figure 5: Traceroute Reply Message Format
+
+ The PayloadType TLV is presented below. It is of type
+ T_PAYLOADTYPE_DATA, and the data schema consists of three TLVs:
+
+ 1) the name of the sender of this reply (with the same structure as
+ a CCNx Name TLV),
+
+ 2) the sender's signature of their own name (with the same structure
+ as a CCNx ValidationPayload TLV), and
+
+ 3) a TLV with return codes to indicate whether the request was
+ satisfied due to the existence of a local application, a CS hit,
+ a match with a forwarder's name, or the HopLimit value of the
+ corresponding request reaching 0.
+
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +---------------+---------------+---------------+---------------+
+ | | |
+ | T_PAYLOADTYPE_DATA | Length |
+ | | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | Sender's Name TLV |
+ | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | Sender's Signature TLV |
+ | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | PT_TR_REPLY Code TLV |
+ | |
+ +---------------+---------------+---------------+---------------+
+
+ Figure 6: Traceroute Reply PayloadType TLV Format
+
+ The goal of including the name of the sender in the reply is to
+ enable the user to reach this entity directly to ask for further
+ management/administrative information using generic Interest-Data
+ exchanges or by employing a more comprehensive management tool, such
+ as CCNinfo [RFC9344], after a successful verification of the sender's
+ name.
+
+ The structure of the PT_TR_REPLY Code TLV is presented below (16-bit
+ value). The four assigned values are as follows:
+
+ 1: Indicates that the target name matched the administrative name of
+ a forwarder (as served by its internal management application).
+
+ 2: Indicates that the target name matched a prefix served by an
+ application (other than the internal management application of a
+ forwarder).
+
+ 3: Indicates that the target name matched the name of an object in a
+ forwarder's CS.
+
+ 4: Indicates that the HopLimit reached 0.
+
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +---------------+---------------+---------------+---------------+
+ | | |
+ | PT_TR_REPLY_Code_Type | PT_TR_REPLY_Code_Length = 2 |
+ | | |
+ +---------------+---------------+---------------+---------------+
+ | |
+ | PT_TR_REPLY_Code_Value |
+ | |
+ +---------------+---------------+---------------+---------------+
+
+ Figure 7: PT_TR_REPLY Code TLV
+
+5. ICN Traceroute NDN Packet Formats
+
+ In this section, we present the ICN Traceroute Request and Reply
+ packet formats according to the NDN packet format specification
+ [NDNTLV].
+
+5.1. ICN Traceroute Request NDN Packet Format
+
+ A traceroute request is encoded as an NDN Interest packet. Its
+ format is as follows:
+
+ TracerouteRequest = INTEREST-TYPE TLV-LENGTH
+ Name
+ MustBeFresh
+ Nonce
+ HopLimit
+ ApplicationParameters?
+
+ Figure 8: Traceroute Request NDN Packet Format
+
+ The name of a request consists of the target name, a nonce value (it
+ can be the value of the Nonce field), and the suffix "traceroute" to
+ denote that this Interest is a traceroute request (added as a
+ KeywordNameComponent [NDNTLV]). When the "ApplicationParameters"
+ element is present, a ParametersSha256DigestComponent (Section 6) is
+ added as the last name segment.
+
+ A traceroute request MAY carry a Path Label TLV in the NDN Link
+ Adaptation Protocol [NDNLPv2] as specified in [RFC9531].
+
+ Since the NDN packet format does not provide a mechanism to prevent
+ the network from caching specific data packets, we instead use the
+ MustBeFresh TLV for requests (in combination with a FreshnessPeriod
+ TLV with a value of 1 for replies) to avoid fetching cached
+ traceroute replies with a freshness period that has expired
+ [REALTIME].
+
+5.2. ICN Traceroute Reply NDN Packet Format
+
+ A traceroute reply is encoded as an NDN Data packet. Its format is
+ as follows:
+
+ TracerouteReply = DATA-TLV TLV-LENGTH
+ Name
+ MetaInfo
+ Content
+ Signature
+
+ Figure 9: Traceroute Reply NDN Packet Format
+
+ A traceroute reply MAY carry a Path Label TLV in the NDN Link
+ Adaptation Protocol [NDNLPv2] as specified in [RFC9531], since it
+ might be modified in a hop-by-hop fashion by the forwarders along the
+ reverse path.
+
+ The name of a traceroute reply is the name of the corresponding
+ traceroute request while the format of the MetaInfo field is as
+ follows:
+
+ MetaInfo = META-INFO-TYPE TLV-LENGTH
+ ContentType
+ FreshnessPeriod
+
+ Figure 10: MetaInfo TLV
+
+ The value of the ContentType TLV is 0. The value of the
+ FreshnessPeriod TLV is 1, so that the replies are treated as stale
+ data (almost instantly) as they are received by a forwarder.
+
+ The content of a traceroute reply consists of the following two TLVs:
+ Sender's Name (an NDN Name TLV) and Traceroute Reply Code. There is
+ no need to have a separate TLV for the sender's signature in the
+ content of the reply, since every NDN Data packet carries the
+ signature of the data producer.
+
+ The Traceroute Reply Code TLV format is as follows (with the values
+ specified in Section 4.2):
+
+ PT_TR_REPLYCode = TRREPLYCODE-TLV-TYPE TLV-LENGTH 2*OCTET
+
+ Figure 11: Traceroute Reply Code TLV
+
+6. Forwarder Operation
+
+ When a forwarder receives a traceroute request, the HopLimit value is
+ checked and decremented, and the target name (i.e., the name of the
+ traceroute request without the last Nonce name segment as well as the
+ suffix "traceroute" and the ParametersSha256DigestComponent in the
+ case of a request with the NDN packet format) is extracted.
+
+ If the HopLimit has not expired (i.e., is greater than 0), the
+ forwarder will forward the request upstream based on CS lookup, PIT
+ creation, Longest Name Prefix Match (LNPM) lookup, and (if present)
+ the path steering value. If no valid next hop is found, an
+ InterestReturn indicating "No Route" in the case of CCNx or a network
+ NACK in the case of NDN is sent downstream.
+
+ If HopLimit equals 0, the forwarder generates a traceroute reply.
+ This reply includes the forwarder's administrative name and
+ signature, and a Path Label TLV. This TLV initially has a null
+ value, since the traceroute reply originator does not forward the
+ request and thus does not make a path choice. The reply will also
+ include the corresponding PT_TR_REPLY Code TLV.
+
+ A traceroute reply will be the final reply of a traceroute session if
+ any of the following conditions are met:
+
+ * If a forwarder has been given one or more administrative names,
+ the target name matches one of them.
+
+ * The target name exactly matches the name of a Content Object
+ residing in the forwarder's CS (unless the traceroute client
+ application has chosen not to receive replies due to CS hits as
+ specified in Appendix A).
+
+ * The target name matches (in an LNPM manner) a FIB entry with an
+ outgoing face referring to a local application.
+
+ The PT_TR_REPLY Code TLV value of the reply is set to indicate the
+ specific condition that was met. If none of those conditions were
+ met, the PT_TR_REPLY Code is set to 4 to indicate that the HopLimit
+ reached 0.
+
+ A received traceroute reply will be matched to an existing PIT entry
+ as usual. On the reverse path, the Path Steering TLV of a reply will
+ be updated by each forwarder to encode its choice of next hop(s).
+ When included in subsequent requests, this Path Steering TLV allows
+ the forwarders to steer the requests along the same path.
+
+7. Protocol Operation for Locally Scoped Namespaces
+
+ In this section, we elaborate on two alternative design approaches in
+ cases where the traceroute target prefix corresponds to a locally
+ scoped namespace not directly routable from the client's local
+ network.
+
+ The first approach leverages the NDN Link Object [SNAMP].
+ Specifically, the traceroute client attaches to the expressed request
+ a Link Object that contains a number of routable name prefixes, based
+ on which the request can be forwarded across the Internet until it
+ reaches a network region where the request name itself is routable.
+ A Link Object is created and signed by a data producer allowed to
+ publish data under a locally scoped namespace. The way that a client
+ retrieves a Link Object depends on various network design factors and
+ is out of scope for this document.
+
+ At the time of this writing, and based on the current deployment of
+ the Link Object by the NDN team [NDNLPv2], a forwarder at the border
+ of the region where an Interest name becomes routable has to remove
+ the Link Object from the incoming Interests. The Interest state
+ maintained along the entire forwarding path is based on the Interest
+ name regardless of whether it was forwarded based on this name or a
+ prefix in the Link Object.
+
+ The second approach is based on prepending a routable prefix to the
+ locally scoped name. The resulting prefix will be the name of the
+ traceroute requests expressed by the client. In this way, a request
+ will be forwarded based on the routable part of its name. When it
+ reaches the network region where the original locally scoped name is
+ routable, the border forwarder rewrites the request name and deletes
+ its routable part. A forwarder will perform this rewriting operation
+ on a request if the following two conditions are met:
+
+ 1) the routable part of the request name matches a routable name of
+ the network region adjacent to the forwarder (assuming that a
+ forwarder is aware of those names), and
+
+ 2) the remaining part of the request name is routable across the
+ network region of this forwarder.
+
+ The state along the path depends on whether the request is traversing
+ the portion of the network where the locally scoped name is routable.
+ In this case, the forwarding can be based entirely on the locally
+ scoped name. However, where a portion of the path lies outside the
+ region where the locally scoped name is routable, the border router
+ has to rewrite the name of a reply and prepend the routable prefix of
+ the corresponding request to ensure that the generated replies will
+ reach the client.
+
+8. Security Considerations
+
+ A reflection attack could occur in the case of a traceroute reply
+ with the CCNx packet format if a compromised forwarder includes in
+ the reply the name of a victim forwarder. This could redirect the
+ future administrative traffic towards the victim. To foil such
+ reflection attacks, the forwarder that generates a traceroute reply
+ MUST sign the name included in the payload. In this way, the client
+ is able to verify that the included name is legitimate and refers to
+ the forwarder that generated the reply. Alternatively, the forwarder
+ could include in the reply payload their routable prefix(es) encoded
+ as a signed NDN Link Object [SNAMP].
+
+ This approach does not protect against on-path attacks where a
+ compromised forwarder that receives a traceroute reply replaces the
+ forwarder's name and the signature in the message with its own name
+ and signature to make the client believe that the reply was generated
+ by the compromised forwarder. To foil such attack scenarios, a
+ forwarder can sign the reply message itself. In such cases, the
+ forwarder does not have to sign its own name in the reply message,
+ since the message signature protects the message as a whole and will
+ be invalidated in the case of an on-path attack. Additionally, a
+ forwarder could swap out the name of a traceroute request with a name
+ of its choosing. In this case, however, the response with the
+ spoofed name will not be received by a client, since the change of
+ name would invalidate the state in the PIT on the path back to the
+ client.
+
+ Signing each traceroute reply message can be expensive and can
+ potentially lead to computation attacks against forwarders. To
+ mitigate such attack scenarios, the processing of traceroute requests
+ and the generation of the replies SHOULD be handled by a separate
+ management application running locally on each forwarder. The
+ serving of traceroute replies is thereby separated from load on the
+ forwarder itself. The approaches used by ICN applications to manage
+ load may also apply to the forwarder's management application.
+
+ Interest flooding attack amplification is possible in the case of the
+ second approach for dealing with locally scoped namespaces as
+ described in Section 7. A border forwarder will have to maintain
+ extra state to prepend the correct routable prefix to the name of an
+ outgoing reply, since the forwarder might be attached to multiple
+ network regions (reachable under different prefixes) or a network
+ region attached to this forwarder might be reachable under multiple
+ routable prefixes.
+
+ We also note that traceroute requests have the same privacy
+ characteristics as regular Interests.
+
+9. IANA Considerations
+
+ IANA has assigned 0x07 to "PT_TR_REQUEST" and 0x08 to "PT_TR_REPLY"
+ in the "CCNx Packet Types" registry established by [RFC8609].
+
+10. References
+
+10.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+ [RFC8609] Mosko, M., Solis, I., and C. Wood, "Content-Centric
+ Networking (CCNx) Messages in TLV Format", RFC 8609,
+ DOI 10.17487/RFC8609, July 2019,
+ <https://www.rfc-editor.org/info/rfc8609>.
+
+ [RFC8793] Wissingh, B., Wood, C., Afanasyev, A., Zhang, L., Oran,
+ D., and C. Tschudin, "Information-Centric Networking
+ (ICN): Content-Centric Networking (CCNx) and Named Data
+ Networking (NDN) Terminology", RFC 8793,
+ DOI 10.17487/RFC8793, June 2020,
+ <https://www.rfc-editor.org/info/rfc8793>.
+
+10.2. Informative References
+
+ [NDNLPv2] NDN team, "NDNLPv2: Named Data Networking Link Adaptation
+ Protocol v2", February 2023, <https://redmine.named-
+ data.net/projects/nfd/wiki/NDNLPv2>.
+
+ [NDNTLV] NDN project team, "NDN Packet Format Specification",
+ February 2024,
+ <https://named-data.net/doc/NDN-packet-spec/current/>.
+
+ [PATHSTEERING]
+ Moiseenko, I. and D. Oran, "Path switching in content
+ centric and named data networks", ICN '17: Proceedings of
+ the 4th ACM Conference on Information-Centric Networking,
+ pp. 66-76, DOI 10.1145/3125719.3125721, September 2017,
+ <https://dl.acm.org/doi/10.1145/3125719.3125721>.
+
+ [REALTIME] Mastorakis, S., Gusev, P., Afanasyev, A., and L. Zhang,
+ "Real-Time Data Retrieval in Named Data Networking", 2018
+ 1st IEEE International Conference on Hot Information-
+ Centric Networking (HotICN), Shenzhen, China, pp. 61-66,
+ DOI 10.1109/HOTICN.2018.8605992, August 2018,
+ <https://ieeexplore.ieee.org/document/8605992>.
+
+ [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data
+ Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006,
+ <https://www.rfc-editor.org/info/rfc4648>.
+
+ [RFC9344] Asaeda, H., Ooka, A., and X. Shao, "CCNinfo: Discovering
+ Content and Network Information in Content-Centric
+ Networks", RFC 9344, DOI 10.17487/RFC9344, February 2023,
+ <https://www.rfc-editor.org/info/rfc9344>.
+
+ [RFC9508] Mastorakis, S., Oran, D., Gibson, J., Moiseenko, I., and
+ R. Droms, "Information-Centric Networking (ICN) Ping
+ Protocol Specification", RFC 9508, DOI 10.17487/RFC9508,
+ March 2024, <https://www.rfc-editor.org/info/rfc9508>.
+
+ [RFC9531] Moiseenko, I. and D. Oran, "Path Steering in Content-
+ Centric Networking (CCNx) and Named Data Networking
+ (NDN)", RFC 9531, DOI 10.17487/RFC9531, March 2024,
+ <https://www.rfc-editor.org/info/rfc9531>.
+
+ [SNAMP] Afanasyev, A., Yi, C., Wang, L., Zhang, B., and L. Zhang,
+ "SNAMP: Secure namespace mapping to scale NDN forwarding",
+ 2015 IEEE Conference on Computer Communications Workshops
+ (INFOCOM WKSHPS), Hong Kong, China, pp. 281-286,
+ DOI 10.1109/INFCOMW.2015.7179398, April 2015,
+ <https://ieeexplore.ieee.org/abstract/document/7179398>.
+
+Appendix A. Traceroute Client Application (Consumer) Operation
+
+ This section is an informative appendix regarding the proposed
+ traceroute client operation.
+
+ The client application is responsible for generating traceroute
+ requests for prefixes provided by users.
+
+ The overall process can be iterative: the first traceroute request of
+ each session will have a HopLimit of 1 to reach the first hop
+ forwarder, the second request will have a HopLimit of 2 to reach the
+ second hop forwarder, and so on.
+
+ When generating a series of requests for a specific name, the first
+ request will typically not include a Path Label TLV, since no TLV
+ value is known. After a traceroute reply containing a Path Label TLV
+ is received, each subsequent request might include the received path
+ steering value in the Path Label header TLV to drive the requests
+ towards a common path as part of checking network performance. To
+ discover more paths, a client can omit the Path Label TLV in future
+ requests. Moreover, for each new traceroute request, the client has
+ to generate a new nonce and record the time that the request was
+ expressed. The client also sets the lifetime of the traceroute
+ request, which carries the same semantics as the Interest Lifetime
+ [RFC8609] in an Interest.
+
+ Moreover, the client application might not wish to receive replies
+ due to CS hits. In CCNx, a mechanism to achieve that would be to use
+ a Content Object Hash Restriction TLV with a value of 0 in the
+ payload of a traceroute request message. In NDN, the exclude filter
+ selector can be used.
+
+ When it receives a traceroute reply, the client would typically match
+ the reply to a sent request and compute the round-trip time of the
+ request. It should parse the Path Label value and decode the reply's
+ payload to parse the sender's name and signature. The client should
+ verify that both the received message and the forwarder's name have
+ been signed by the key of the forwarder, whose name is included in
+ the payload of the reply (by fetching this forwarder's public key and
+ verifying the contained signature). In the case that the client
+ receives a PT_TR_REPLY Code TLV with a valid value, it can stop
+ sending requests with increasing HopLimit values and potentially
+ start a new traceroute session.
+
+ In the case that a traceroute reply is not received for a request
+ within a certain time interval (lifetime of the request), the client
+ should time out and send a new request with a new nonce value up to a
+ maximum number of requests to be sent specified by the user.
+
+Authors' Addresses
+
+ Spyridon Mastorakis
+ University of Notre Dame
+ South Bend, IN
+ United States of America
+ Email: smastor2@nd.edu
+
+
+ Dave Oran
+ Network Systems Research and Design
+ Cambridge, MA
+ United States of America
+ Email: daveoran@orandom.net
+
+
+ Ilya Moiseenko
+ Apple Inc.
+ Cupertino, CA
+ United States of America
+ Email: iliamo@mailbox.org
+
+
+ Jim Gibson
+ Unaffiliated
+ Belmont, MA
+ United States of America
+ Email: jcgibson61@gmail.com
+
+
+ Ralph Droms
+ Unaffiliated
+ Hopkinton, MA
+ United States of America
+ Email: rdroms.ietf@gmail.com