<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" docName="draft-ietf-6man-sids-06" number="9602" consensus="true" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" prepTime="2024-10-21T17:33:07" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-6man-sids-06" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9602" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="SRv6 SIDs">Segment Routing over IPv6 (SRv6) Segment Identifiers in the IPv6 Addressing Architecture</title>
    <seriesInfo name="RFC" value="9602" stream="IETF"/>
    <author fullname="Suresh Krishnan" initials="S." surname="Krishnan">
      <organization showOnFrontPage="true">Cisco</organization>
      <address>
        <email>suresh.krishnan@gmail.com</email>
      </address>
    </author>
    <date month="10" year="2024"/>
    <area>INT</area>
    <workgroup>6man</workgroup>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">   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.
      </t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for informational purposes.  
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            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. 
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9602" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2024 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-srv6-sids-and-the-ipv6-addr">SRv6 SIDs and the IPv6 Addressing Architecture</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-special-considerations-for-">Special Considerations for Compressed SIDs</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-allocation-of-a-prefix-for-">Allocation of a Prefix for SIDs</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-address">Author's Address</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
      Segment Routing over IPv6 (SRv6) <xref target="RFC8754" format="default" sectionFormat="of" derivedContent="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 <xref target="RFC4291" format="default" sectionFormat="of" derivedContent="RFC4291"/>. This document allocates and makes a dedicated prefix available for SRv6 SIDs.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1">The following terms are used as defined in <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>. 
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2-2">
        <li pn="section-2-2.1">
          <t indent="0" pn="section-2-2.1.1">Segment Routing (SR)</t>
        </li>
        <li pn="section-2-2.2">
          <t indent="0" pn="section-2-2.2.1">SR Domain</t>
        </li>
        <li pn="section-2-2.3">
          <t indent="0" pn="section-2-2.3.1">Segment</t>
        </li>
        <li pn="section-2-2.4">
          <t indent="0" pn="section-2-2.4.1">Segment Identifier (SID)</t>
        </li>
        <li pn="section-2-2.5">
          <t indent="0" pn="section-2-2.5.1">SRv6</t>
        </li>
        <li pn="section-2-2.6">
          <t indent="0" pn="section-2-2.6.1">SRv6 SID</t>
        </li>
      </ul>
      <t indent="0" pn="section-2-3">The following terms are used as defined in <xref target="RFC8754" format="default" sectionFormat="of" derivedContent="RFC8754"/>. 
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2-4">
        <li pn="section-2-4.1">
          <t indent="0" pn="section-2-4.1.1">Segment Routing Header (SRH)</t>
        </li>
        <li pn="section-2-4.2">
          <t indent="0" pn="section-2-4.2.1">SR Source Node</t>
        </li>
        <li pn="section-2-4.3">
          <t indent="0" pn="section-2-4.3.1">Transit Node</t>
        </li>
        <li pn="section-2-4.4">
          <t indent="0" pn="section-2-4.4.1">SR Segment Endpoint Node</t>
        </li>
      </ul>
      <t indent="0" pn="section-2-5">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>",
    "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be
    interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
      </t>
    </section>
    <section numbered="true" toc="include" anchor="section3" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-srv6-sids-and-the-ipv6-addr">SRv6 SIDs and the IPv6 Addressing Architecture</name>
      <t indent="0" pn="section-3-1">
      <xref target="RFC8754" format="default" sectionFormat="of" derivedContent="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 <xref target="RFC8754" sectionFormat="of" section="4.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8754#section-4.3" derivedContent="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 <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>. 
      </t>
      <t indent="0" pn="section-3-2">
   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 <xref target="RFC4291" format="default" sectionFormat="of" derivedContent="RFC4291"/>. So, the following discussions are applicable solely to SRv6 SIDs that are not assigned to local interfaces.
      </t>
      <t indent="0" pn="section-3-3">
      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). 
      </t>
      <t indent="0" pn="section-3-4">
      <xref target="RFC8986" sectionFormat="of" section="3.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8986#section-3.1" derivedContent="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 &lt; 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 <xref target="BCP198" format="default" sectionFormat="of" derivedContent="BCP198"/> is used by the transit node to forward the packet to the node identified by the Locator.   
      </t>
      <t indent="0" pn="section-3-5">
	It is clear that this format for SRv6 SIDs is not compliant with the requirements set forth in <xref target="RFC4291" format="default" sectionFormat="of" derivedContent="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 "<xref target="RFC6052" format="title" sectionFormat="of" derivedContent="IPv6 Addressing of IPv4/IPv6 Translators"/>" <xref target="RFC6052" format="default" sectionFormat="of" derivedContent="RFC6052"/> and "<xref target="RFC7343" format="title" sectionFormat="of" derivedContent="An IPv6 Prefix for Overlay Routable Cryptographic Hash Identifiers Version 2 (ORCHIDv2)"/>" <xref target="RFC7343" format="default" sectionFormat="of" derivedContent="RFC7343"/>. 
      </t>
      <t indent="0" pn="section-3-6">
        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 <xref target="BCP198" format="default" sectionFormat="of" derivedContent="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 <xref target="RFC4291" format="default" sectionFormat="of" derivedContent="RFC4291"/>. Please note that <xref target="BCP198" format="default" sectionFormat="of" derivedContent="BCP198"/> does not override the rules in <xref target="RFC4291" format="default" sectionFormat="of" derivedContent="RFC4291"/>: it merely limits where their impact is observed.
      </t>
      <t indent="0" pn="section-3-7">
      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 <xref target="RFC4291" sectionFormat="of" section="2.6.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4291#section-2.6.1" derivedContent="RFC4291"/> since subnet-router anycast addresses are neither required nor useful within a node.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-special-considerations-for-">Special Considerations for Compressed SIDs</name>
      <t indent="0" pn="section-4-1">

	
      <xref target="I-D.ietf-spring-srv6-srh-compression" format="default" sectionFormat="of" derivedContent="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 <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="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. 
      </t>
      <t indent="0" pn="section-4-2">
      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.
      </t>
    </section>
    <section numbered="true" toc="include" anchor="section5" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-allocation-of-a-prefix-for-">Allocation of a Prefix for SIDs</name>
      <t indent="0" pn="section-5-1">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.  
      </t>
      <t indent="0" pn="section-5-2">
      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 <xref target="RFC4291" format="default" sectionFormat="of" derivedContent="RFC4291"/>. As described in <xref target="section3" format="default" sectionFormat="of" derivedContent="Section 3"/>, there is precedent for mechanisms that use IPv6 addresses in a manner different from that specified in <xref target="RFC4291" format="default" sectionFormat="of" derivedContent="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.
      </t>
      <t indent="0" pn="section-5-3">
      At the time of writing, global DNS <xref target="RFC9499" format="default" sectionFormat="of" derivedContent="RFC9499"/> <bcp14>SHOULD NOT</bcp14> 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. 
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">IANA has assigned the following /16 address block for the purposes described in <xref target="section5" format="default" sectionFormat="of" derivedContent="Section 5"/> and recorded the allocation in the "IANA IPv6 Special-Purpose Address Registry" <xref target="SPECIAL" format="default" sectionFormat="of" derivedContent="SPECIAL"/> as follows:
      </t>
      <dl newline="true" indent="3" spacing="normal" pn="section-6-2">
        <dt pn="section-6-2.1">Address Block:</dt>
        <dd pn="section-6-2.2">5f00::/16</dd>
        <dt pn="section-6-2.3">Name:</dt>
        <dd pn="section-6-2.4">Segment Routing (SRv6) SIDs</dd>
        <dt pn="section-6-2.5">RFC:</dt>
        <dd pn="section-6-2.6">RFC 9602</dd>
        <dt pn="section-6-2.7">Allocation Date:</dt>
        <dd pn="section-6-2.8">2024-04</dd>
        <dt pn="section-6-2.9">Termination Date:</dt>
        <dd pn="section-6-2.10">N/A</dd>
        <dt pn="section-6-2.11">Source:</dt>
        <dd pn="section-6-2.12">True</dd>
        <dt pn="section-6-2.13">Destination:</dt>
        <dd pn="section-6-2.14">True</dd>
        <dt pn="section-6-2.15">Forwardable:</dt>
        <dd pn="section-6-2.16">True</dd>
        <dt pn="section-6-2.17">Globally Reachable:</dt>
        <dd pn="section-6-2.18">False</dd>
        <dt pn="section-6-2.19">Reserved-by-Protocol:</dt>
        <dd pn="section-6-2.20">False</dd>
      </dl>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-7-1">The security considerations for the use of Segment Routing <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>, SRv6 <xref target="RFC8754" format="default" sectionFormat="of" derivedContent="RFC8754"/>, and SRv6 network programming <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="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 <xref target="RFC6169" format="default" sectionFormat="of" derivedContent="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.
      </t>
      <t indent="0" pn="section-7-2">
      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 <xref target="RFC8754" sectionFormat="of" section="5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8754#section-5.1" derivedContent="RFC8754"/>, the SR Domain needs to be configured to filter out  packets entering that use the selected prefix.
      </t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-spring-srv6-srh-compression" to="CSID"/>
    <references pn="section-8">
      <name slugifiedName="name-references">References</name>
      <references pn="section-8.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <referencegroup anchor="BCP198" target="https://www.rfc-editor.org/info/bcp198" derivedAnchor="BCP198">
          <reference anchor="RFC7608" target="https://www.rfc-editor.org/info/rfc7608" quoteTitle="true">
            <front>
              <title>IPv6 Prefix Length Recommendation for Forwarding</title>
              <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
              <author fullname="A. Petrescu" initials="A." surname="Petrescu"/>
              <author fullname="F. Baker" initials="F." surname="Baker"/>
              <date month="July" year="2015"/>
              <abstract>
                <t indent="0">IPv6 prefix length, as in IPv4, is a parameter conveyed and used in IPv6 routing and forwarding processes in accordance with the Classless Inter-domain Routing (CIDR) architecture. The length of an IPv6 prefix may be any number from zero to 128, although subnets using stateless address autoconfiguration (SLAAC) for address allocation conventionally use a /64 prefix. Hardware and software implementations of routing and forwarding should therefore impose no rules on prefix length, but implement longest-match-first on prefixes of any valid length.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="198"/>
            <seriesInfo name="RFC" value="7608"/>
            <seriesInfo name="DOI" value="10.17487/RFC7608"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4291" target="https://www.rfc-editor.org/info/rfc4291" quoteTitle="true" derivedAnchor="RFC4291">
          <front>
            <title>IP Version 6 Addressing Architecture</title>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <date month="February" year="2006"/>
            <abstract>
              <t indent="0">This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol. The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t>
              <t indent="0">This document obsoletes RFC 3513, "IP Version 6 Addressing Architecture". [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4291"/>
          <seriesInfo name="DOI" value="10.17487/RFC4291"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" quoteTitle="true" derivedAnchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="July" year="2018"/>
            <abstract>
              <t indent="0">Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t indent="0">SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
              <t indent="0">SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="RFC8754" target="https://www.rfc-editor.org/info/rfc8754" quoteTitle="true" derivedAnchor="RFC8754">
          <front>
            <title>IPv6 Segment Routing Header (SRH)</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <date month="March" year="2020"/>
            <abstract>
              <t indent="0">Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8754"/>
          <seriesInfo name="DOI" value="10.17487/RFC8754"/>
        </reference>
        <reference anchor="RFC8986" target="https://www.rfc-editor.org/info/rfc8986" quoteTitle="true" derivedAnchor="RFC8986">
          <front>
            <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="P. Camarillo" initials="P." role="editor" surname="Camarillo"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="Z. Li" initials="Z." surname="Li"/>
            <date month="February" year="2021"/>
            <abstract>
              <t indent="0">The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header.</t>
              <t indent="0">Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
              <t indent="0">This document defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8986"/>
          <seriesInfo name="DOI" value="10.17487/RFC8986"/>
        </reference>
      </references>
      <references pn="section-8.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-spring-srv6-srh-compression" target="https://datatracker.ietf.org/doc/html/draft-ietf-spring-srv6-srh-compression-18" quoteTitle="true" derivedAnchor="CSID">
          <front>
            <title>Compressed SRv6 Segment List Encoding</title>
            <author initials="W." surname="Cheng" fullname="Weiqiang Cheng">
              <organization showOnFrontPage="true">China Mobile</organization>
            </author>
            <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
              <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
            </author>
            <author initials="Z." surname="Li" fullname="Zhenbin Li">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <author initials="B." surname="Decraene" fullname="Bruno Decraene">
              <organization showOnFrontPage="true">Orange</organization>
            </author>
            <author initials="F." surname="Clad" fullname="Francois Clad">
              <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
            </author>
            <date month="July" day="22" year="2024"/>
            <abstract>
              <t indent="0">   Segment Routing over IPv6 (SRv6) is the instantiation of Segment
   Routing (SR) on the IPv6 dataplane.  This document specifies new
   flavors for the SR segment endpoint behaviors defined in RFC 8986,
   which enable the compression of an SRv6 SID list.  Such compression
   significantly reduces the size of the SRv6 encapsulation needed to
   steer packets over long segment lists.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-srv6-srh-compression-18"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC6052" target="https://www.rfc-editor.org/info/rfc6052" quoteTitle="true" derivedAnchor="RFC6052">
          <front>
            <title>IPv6 Addressing of IPv4/IPv6 Translators</title>
            <author fullname="C. Bao" initials="C." surname="Bao"/>
            <author fullname="C. Huitema" initials="C." surname="Huitema"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="X. Li" initials="X." surname="Li"/>
            <date month="October" year="2010"/>
            <abstract>
              <t indent="0">This document discusses the algorithmic translation of an IPv6 address to a corresponding IPv4 address, and vice versa, using only statically configured information. It defines a well-known prefix for use in algorithmic translations, while allowing organizations to also use network-specific prefixes when appropriate. Algorithmic translation is used in IPv4/IPv6 translators, as well as other types of proxies and gateways (e.g., for DNS) used in IPv4/IPv6 scenarios. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6052"/>
          <seriesInfo name="DOI" value="10.17487/RFC6052"/>
        </reference>
        <reference anchor="RFC6169" target="https://www.rfc-editor.org/info/rfc6169" quoteTitle="true" derivedAnchor="RFC6169">
          <front>
            <title>Security Concerns with IP Tunneling</title>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="J. Hoagland" initials="J." surname="Hoagland"/>
            <date month="April" year="2011"/>
            <abstract>
              <t indent="0">A number of security concerns with IP tunnels are documented in this memo. The intended audience of this document includes network administrators and future protocol developers. The primary intent of this document is to raise the awareness level regarding the security issues with IP tunnels as deployed and propose strategies for the mitigation of those issues. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6169"/>
          <seriesInfo name="DOI" value="10.17487/RFC6169"/>
        </reference>
        <reference anchor="RFC7343" target="https://www.rfc-editor.org/info/rfc7343" quoteTitle="true" derivedAnchor="RFC7343">
          <front>
            <title>An IPv6 Prefix for Overlay Routable Cryptographic Hash Identifiers Version 2 (ORCHIDv2)</title>
            <author fullname="J. Laganier" initials="J." surname="Laganier"/>
            <author fullname="F. Dupont" initials="F." surname="Dupont"/>
            <date month="September" year="2014"/>
            <abstract>
              <t indent="0">This document specifies an updated Overlay Routable Cryptographic Hash Identifiers (ORCHID) format that obsoletes that in RFC 4843. These identifiers are intended to be used as endpoint identifiers at applications and Application Programming Interfaces (APIs) and not as identifiers for network location at the IP layer, i.e., locators. They are designed to appear as application-layer entities and at the existing IPv6 APIs, but they should not appear in actual IPv6 headers. To make them more like regular IPv6 addresses, they are expected to be routable at an overlay level. Consequently, while they are considered non-routable addresses from the IPv6-layer perspective, all existing IPv6 applications are expected to be able to use them in a manner compatible with current IPv6 addresses.</t>
              <t indent="0">The Overlay Routable Cryptographic Hash Identifiers originally defined in RFC 4843 lacked a mechanism for cryptographic algorithm agility. The updated ORCHID format specified in this document removes this limitation by encoding, in the identifier itself, an index to the suite of cryptographic algorithms in use.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7343"/>
          <seriesInfo name="DOI" value="10.17487/RFC7343"/>
        </reference>
        <reference anchor="RFC9499" target="https://www.rfc-editor.org/info/rfc9499" quoteTitle="true" derivedAnchor="RFC9499">
          <front>
            <title>DNS Terminology</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
            <date month="March" year="2024"/>
            <abstract>
              <t indent="0">The Domain Name System (DNS) is defined in literally dozens of different RFCs. The terminology used by implementers and developers of DNS protocols, and by operators of DNS systems, has changed in the decades since the DNS was first defined. This document gives current definitions for many of the terms used in the DNS in a single document.</t>
              <t indent="0">This document updates RFC 2308 by clarifying the definitions of "forwarder" and "QNAME". It obsoletes RFC 8499 by adding multiple terms and clarifications. Comprehensive lists of changed and new definitions can be found in Appendices A and B.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="219"/>
          <seriesInfo name="RFC" value="9499"/>
          <seriesInfo name="DOI" value="10.17487/RFC9499"/>
        </reference>
        <reference anchor="SPECIAL" target="https://www.iana.org/assignments/iana-ipv6-special-registry" quoteTitle="true" derivedAnchor="SPECIAL">
          <front>
            <title>IANA IPv6 Special-Purpose Address Registry</title>
            <author fullname="IANA"/>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">The author would like to extend a special note of thanks to <contact fullname="Brian Carpenter"/> and  <contact fullname="Erik Kline"/> for their precisely summarized thoughts 
      on this topic that provided the seed of this document. The author would also like to thank  <contact fullname="Andrew Alston"/>, <contact fullname="Fred Baker"/>, <contact fullname="Ron Bonica"/>, <contact fullname="Nick Buraglio"/>, <contact fullname="Bruno Decraene"/>, <contact fullname="Dhruv Dhody"/>, <contact fullname="Darren Dukes"/>, <contact fullname="Linda Dunbar"/>, <contact fullname="Reese Enghardt"/>, <contact fullname="Adrian Farrel"/>, <contact fullname="Clarence Filsfils"/>, <contact fullname="Jim Guichard"/>, <contact fullname="Joel Halpern"/>, <contact fullname="Ted Hardie"/>, <contact fullname="Bob Hinden"/>, <contact fullname="Murray Kucherawy"/>, <contact fullname="Cheng Li"/>, <contact fullname="Acee Lindem"/>, <contact fullname="Jen Linkova"/>, <contact fullname="Gyan Mishra"/>, <contact fullname="Yingzhen Qu"/>, <contact fullname="Robert Raszuk"/>, <contact fullname="Alvaro Retana"/>, <contact fullname="Michael Richardson"/>, <contact fullname="John Scudder"/>, <contact fullname="Petr Spacek"/>, <contact fullname="Mark Smith"/>, <contact fullname="Dirk Steinberg"/>, <contact fullname="Ole Troan"/>, <contact fullname="Eduard Vasilenko"/>, <contact fullname="Éric Vyncke"/>, <contact fullname="Rob Wilton"/>, <contact fullname="Jingrong Xie"/>, <contact fullname="Chongfeng Xie"/>, and  <contact fullname="Juan Carlos Zuniga"/> for their ideas and comments to improve this document. 
      </t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-address">Author's Address</name>
      <author fullname="Suresh Krishnan" initials="S." surname="Krishnan">
        <organization showOnFrontPage="true">Cisco</organization>
        <address>
          <email>suresh.krishnan@gmail.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
