summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9602.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc9602.txt')
-rw-r--r--doc/rfc/rfc9602.txt362
1 files changed, 362 insertions, 0 deletions
diff --git a/doc/rfc/rfc9602.txt b/doc/rfc/rfc9602.txt
new file mode 100644
index 0000000..284b87c
--- /dev/null
+++ b/doc/rfc/rfc9602.txt
@@ -0,0 +1,362 @@
+
+
+
+
+Internet Engineering Task Force (IETF) S. Krishnan
+Request for Comments: 9602 Cisco
+Category: Informational October 2024
+ISSN: 2070-1721
+
+
+ Segment Routing over IPv6 (SRv6) Segment Identifiers in the IPv6
+ Addressing Architecture
+
+Abstract
+
+ Segment Routing over IPv6 (SRv6) uses IPv6 as the underlying data
+ plane. Thus, Segment Identifiers (SIDs) used by SRv6 can resemble
+ IPv6 addresses and behave like them while exhibiting slightly
+ different behaviors in some situations. This document explores the
+ characteristics of SRv6 SIDs and focuses on the relationship of SRv6
+ SIDs to the IPv6 Addressing Architecture. This document allocates
+ and makes a dedicated prefix available for SRv6 SIDs.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for informational purposes.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Not all documents
+ approved by the IESG are 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/rfc9602.
+
+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. Code Components extracted from this document must
+ include Revised BSD License text as described in Section 4.e of the
+ Trust Legal Provisions and are provided without warranty as described
+ in the Revised BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 2. Terminology
+ 3. SRv6 SIDs and the IPv6 Addressing Architecture
+ 4. Special Considerations for Compressed SIDs
+ 5. Allocation of a Prefix for SIDs
+ 6. IANA Considerations
+ 7. Security Considerations
+ 8. References
+ 8.1. Normative References
+ 8.2. Informative References
+ Acknowledgments
+ Author's Address
+
+1. Introduction
+
+ Segment Routing over IPv6 (SRv6) [RFC8754] uses IPv6 as the
+ underlying data plane. In SRv6, SR source nodes initiate packets
+ with a Segment Identifier (SID) in the Destination Address of the
+ IPv6 header, and SR segment endpoint nodes process a local segment
+ present in the Destination Address of an IPv6 header. Thus, SIDs in
+ SRv6 can, and do, appear in the Destination Address of IPv6 datagrams
+ by design. This document explores the characteristics of SRv6 SIDs
+ and focuses on the relationship of SRv6 SIDs to the IPv6 Addressing
+ Architecture [RFC4291]. This document allocates and makes a
+ dedicated prefix available for SRv6 SIDs.
+
+2. Terminology
+
+ The following terms are used as defined in [RFC8402].
+
+ * Segment Routing (SR)
+
+ * SR Domain
+
+ * Segment
+
+ * Segment Identifier (SID)
+
+ * SRv6
+
+ * SRv6 SID
+
+ The following terms are used as defined in [RFC8754].
+
+ * Segment Routing Header (SRH)
+
+ * SR Source Node
+
+ * Transit Node
+
+ * SR Segment Endpoint Node
+
+ 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.
+
+3. SRv6 SIDs and the IPv6 Addressing Architecture
+
+ [RFC8754] defines the Segment List of the SRH as a contiguous array
+ of 128-bit IPv6 addresses; further, it states that each of the
+ elements in this list are SIDs. But all of these elements are not
+ necessarily made equal. Some of these elements may represent a local
+ interface as described in Section 4.3 of [RFC8754] as "A FIB entry
+ that represents a local interface, not locally instantiated as an
+ SRv6 SID". It follows that not all the SIDs that appear in the SRH
+ are SRv6 SIDs as defined by [RFC8402].
+
+ As stated above, the non-SRv6-SID elements that appear in the SRH SID
+ list are simply IPv6 addresses assigned to local interfaces, and they
+ need to conform to [RFC4291]. So, the following discussions are
+ applicable solely to SRv6 SIDs that are not assigned to local
+ interfaces.
+
+ One of the key questions to address is how these SRv6 SIDs appearing
+ as IPv6 Destination Addresses are perceived and treated by "transit
+ nodes" (that are not required to be capable of processing a Segment
+ or the Segment Routing Header).
+
+ Section 3.1 of [RFC8986] describes the format of an SRv6 SID as being
+ composed of three parts, LOC:FUNCT:ARG, where a locator (LOC) is
+ encoded in the L most significant bits of the SID followed by F bits
+ of function (FUNCT) and A bits of arguments (ARG). If L+F+A < 128,
+ the ARG is followed by enough zero bits to fill the 128-bit SID.
+ Such an SRv6 SID is assigned to a node within a prefix defined as a
+ Locator of length L. When an SRv6 SID occurs in the IPv6 Destination
+ Address of an IPv6 header, only the longest matching prefix
+ corresponding to the Locator [BCP198] is used by the transit node to
+ forward the packet to the node identified by the Locator.
+
+ It is clear that this format for SRv6 SIDs is not compliant with the
+ requirements set forth in [RFC4291] for IPv6 addresses, but it is
+ also clear that SRv6 SIDs are not intended for assignment onto
+ interfaces on end hosts. They look and act like other mechanisms
+ that use IPv6 addresses with different formats, such as those
+ described in "IPv6 Addressing of IPv4/IPv6 Translators" [RFC6052] and
+ "An IPv6 Prefix for Overlay Routable Cryptographic Hash Identifiers
+ Version 2 (ORCHIDv2)" [RFC7343].
+
+ While looking at the transit nodes, it becomes apparent that these
+ addresses are used purely for forwarding and not for packet delivery
+ to end hosts. Hence, the relevant specification to apply here is
+ [BCP198], which requires implementations to support the use of
+ variable-length prefixes in forwarding while explicitly decoupling
+ IPv6 routing and forwarding from the IPv6 address/prefix semantics
+ described in [RFC4291]. Please note that [BCP198] does not override
+ the rules in [RFC4291]: it merely limits where their impact is
+ observed.
+
+ Furthermore, in the SRv6 specifications, all SIDs assigned within a
+ given Locator prefix are located inside the node identified by
+ Locator. Therefore, there does not appear to be a conflict with
+ Section 2.6.1 of [RFC4291] since subnet-router anycast addresses are
+ neither required nor useful within a node.
+
+4. Special Considerations for Compressed SIDs
+
+ [CSID] introduces an encoding for Compressed-SIDs (C-SIDs), and
+ describes how to use a single entry in the Segment List as a
+ container for multiple SIDs. A node taking part in this mechanism
+ accomplishes this by using the ARG part [RFC8986] of the Destination
+ Address of the IPv6 header to derive a new Destination Address. That
+ is, the Destination Address field of the packet changes at a segment
+ endpoint in a way similar to how the address changes as the result of
+ processing a segment in the SRH.
+
+ One key thing to note here is that the Locator Block at the beginning
+ of the address does not get modified by the operations needed for
+ supporting C-SIDs. As we have established that the SRv6 SIDs are
+ being treated simply as routing prefixes on transit nodes within the
+ SR Domain, this does not constitute a modification to the IPv6 data
+ plane on such transit nodes: any changes are restricted to SR-aware
+ nodes.
+
+5. Allocation of a Prefix for SIDs
+
+ All of the SRv6-related specifications discussed above are intended
+ to be applicable to a contained SR Domain or between collaborating SR
+ Domains. Nodes either inside or outside the SR Domains that are not
+ SR-aware will not perform any special behavior for SRv6 SIDs and will
+ treat them solely as IPv6 routing prefixes.
+
+ As an added factor of security, it is desirable to allocate some
+ address space that explicitly signals that the addresses within that
+ space cannot be expected to comply with [RFC4291]. As described in
+ Section 3, there is precedent for mechanisms that use IPv6 addresses
+ in a manner different from that specified in [RFC4291]. This would
+ be useful in identifying and potentially filtering packets at the
+ edges of the SR Domains to make it simpler for the SR Domain to fail
+ closed.
+
+ At the time of writing, global DNS [RFC9499] SHOULD NOT reference
+ addresses assigned from this block. Further specifications are
+ needed to describe the conventions and guidelines for the use of this
+ newly allocated address block. The SRv6 operational community, which
+ is the first intended user of this block, is requested to come up
+ with such conventions and guidelines in line with their requirements.
+
+6. IANA Considerations
+
+ IANA has assigned the following /16 address block for the purposes
+ described in Section 5 and recorded the allocation in the "IANA IPv6
+ Special-Purpose Address Registry" [SPECIAL] as follows:
+
+ Address Block:
+ 5f00::/16
+
+ Name:
+ Segment Routing (SRv6) SIDs
+
+ RFC:
+ RFC 9602
+
+ Allocation Date:
+ 2024-04
+
+ Termination Date:
+ N/A
+
+ Source:
+ True
+
+ Destination:
+ True
+
+ Forwardable:
+ True
+
+ Globally Reachable:
+ False
+
+ Reserved-by-Protocol:
+ False
+
+7. Security Considerations
+
+ The security considerations for the use of Segment Routing [RFC8402],
+ SRv6 [RFC8754], and SRv6 network programming [RFC8986] apply to the
+ use of these addresses. The use of IPv6 tunneling mechanisms
+ (including SRv6) also brings up additional concerns such as those
+ described in [RFC6169]. The usage of the prefix allocated by this
+ document improves security by making it simpler to filter traffic at
+ the edge of the SR Domains.
+
+ In case the deployments do not use this allocated prefix, additional
+ care needs to be exercised at network ingress and egress points so
+ that SRv6 packets do not leak out of SR Domains and do not
+ accidentally enter SR-unaware Domains. Similarly, as stated in
+ Section 5.1 of [RFC8754], the SR Domain needs to be configured to
+ filter out packets entering that use the selected prefix.
+
+8. References
+
+8.1. Normative References
+
+ [BCP198] Best Current Practice 198,
+ <https://www.rfc-editor.org/info/bcp198>.
+ At the time of writing, this BCP comprises the following:
+
+ Boucadair, M., Petrescu, A., and F. Baker, "IPv6 Prefix
+ Length Recommendation for Forwarding", BCP 198, RFC 7608,
+ DOI 10.17487/RFC7608, July 2015,
+ <https://www.rfc-editor.org/info/rfc7608>.
+
+ [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>.
+
+ [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
+ Architecture", RFC 4291, DOI 10.17487/RFC4291, February
+ 2006, <https://www.rfc-editor.org/info/rfc4291>.
+
+ [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>.
+
+ [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
+ Decraene, B., Litkowski, S., and R. Shakir, "Segment
+ Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
+ July 2018, <https://www.rfc-editor.org/info/rfc8402>.
+
+ [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J.,
+ Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
+ (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
+ <https://www.rfc-editor.org/info/rfc8754>.
+
+ [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer,
+ D., Matsushima, S., and Z. Li, "Segment Routing over IPv6
+ (SRv6) Network Programming", RFC 8986,
+ DOI 10.17487/RFC8986, February 2021,
+ <https://www.rfc-editor.org/info/rfc8986>.
+
+8.2. Informative References
+
+ [CSID] Cheng, W., Filsfils, C., Li, Z., Decraene, B., and F.
+ Clad, "Compressed SRv6 Segment List Encoding", Work in
+ Progress, Internet-Draft, draft-ietf-spring-srv6-srh-
+ compression-18, 22 July 2024,
+ <https://datatracker.ietf.org/doc/html/draft-ietf-spring-
+ srv6-srh-compression-18>.
+
+ [RFC6052] Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X.
+ Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052,
+ DOI 10.17487/RFC6052, October 2010,
+ <https://www.rfc-editor.org/info/rfc6052>.
+
+ [RFC6169] Krishnan, S., Thaler, D., and J. Hoagland, "Security
+ Concerns with IP Tunneling", RFC 6169,
+ DOI 10.17487/RFC6169, April 2011,
+ <https://www.rfc-editor.org/info/rfc6169>.
+
+ [RFC7343] Laganier, J. and F. Dupont, "An IPv6 Prefix for Overlay
+ Routable Cryptographic Hash Identifiers Version 2
+ (ORCHIDv2)", RFC 7343, DOI 10.17487/RFC7343, September
+ 2014, <https://www.rfc-editor.org/info/rfc7343>.
+
+ [RFC9499] Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219,
+ RFC 9499, DOI 10.17487/RFC9499, March 2024,
+ <https://www.rfc-editor.org/info/rfc9499>.
+
+ [SPECIAL] IANA, "IANA IPv6 Special-Purpose Address Registry",
+ <https://www.iana.org/assignments/iana-ipv6-special-
+ registry>.
+
+Acknowledgments
+
+ The author would like to extend a special note of thanks to Brian
+ Carpenter and Erik Kline for their precisely summarized thoughts on
+ this topic that provided the seed of this document. The author would
+ also like to thank Andrew Alston, Fred Baker, Ron Bonica, Nick
+ Buraglio, Bruno Decraene, Dhruv Dhody, Darren Dukes, Linda Dunbar,
+ Reese Enghardt, Adrian Farrel, Clarence Filsfils, Jim Guichard, Joel
+ Halpern, Ted Hardie, Bob Hinden, Murray Kucherawy, Cheng Li, Acee
+ Lindem, Jen Linkova, Gyan Mishra, Yingzhen Qu, Robert Raszuk, Alvaro
+ Retana, Michael Richardson, John Scudder, Petr Spacek, Mark Smith,
+ Dirk Steinberg, Ole Troan, Eduard Vasilenko, Éric Vyncke, Rob Wilton,
+ Jingrong Xie, Chongfeng Xie, and Juan Carlos Zuniga for their ideas
+ and comments to improve this document.
+
+Author's Address
+
+ Suresh Krishnan
+ Cisco
+ Email: suresh.krishnan@gmail.com