<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-quic-address-discovery-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="QUIC Address Discovery">QUIC Address Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-quic-address-discovery-00"/>
    <author fullname="Marten Seemann">
      <organization/>
      <address>
        <email>martenseemann@gmail.com</email>
      </address>
    </author>
    <author fullname="Christian Huitema">
      <organization>Private Octopus Inc.</organization>
      <address>
        <email>huitema@huitema.net</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <area>Transport</area>
    <workgroup>QUIC</workgroup>
    <keyword>QUIC</keyword>
    <keyword>STUN</keyword>
    <keyword>Address Discovery</keyword>
    <abstract>
      <?line 44?>

<t>Unless they have out-of-band knowledge, QUIC endpoints have no information about
their network situation. They neither know their external IP address and port,
nor do they know if they are directly connected to the internet or if they are
behind a NAT. This QUIC extension allows nodes to determine their public IP
address and port for any QUIC path.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://quicwg.github.io/address-discovery/draft-ietf-quic-address-discovery.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-quic-address-discovery/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        QUIC Working Group mailing list (<eref target="mailto:quic@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/quic/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/quicwg/address-discovery"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>STUN (<xref target="RFC8489"/>) allows nodes to discover their reflexive transport address
by asking a remote server to report the observed source address. While the QUIC
(<xref target="RFC9000"/>) packet header was designed to allow demultiplexing from STUN
packets, moving address discovery into the QUIC layer has a number of
advantages:</t>
      <ol spacing="normal" type="1"><li>
          <t>STUN traffic is unencrypted, and can be observed and modified by on-path
observers. By moving address discovery into QUIC's encrypted envelope it
becomes invisible to observers.</t>
        </li>
        <li>
          <t>When located behind a load balancer, QUIC packets may be routed based on the
QUIC connection ID. Depending on the architecture, not using STUN might
simplify the routing logic.</t>
        </li>
        <li>
          <t>If QUIC traffic doesn't need to be demultiplexed from STUN traffic,
implementations can enable QUIC bit greasing (<xref target="RFC9287"/>).</t>
        </li>
      </ol>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="negotiate-extension">
      <name>Negotiating Extension Use</name>
      <t>Endpoints advertise their support of the extension by sending the
address_discovery (0x9f81a176) transport parameter (<xref section="7.4" sectionFormat="of" target="RFC9000"/>)
with a variable-length integer value. The value determines the behavior with
respect to address discovery:</t>
      <ul spacing="normal">
        <li>
          <t>0: The node is willing to provide address observations to its peer, but is not
interested in receiving address observations itself.</t>
        </li>
        <li>
          <t>1: The node is interested in receiving address observations, but it is not
willing to provide address observations.</t>
        </li>
        <li>
          <t>2: The node is interested in receiving address observations, and it is willing
to provide address observations.</t>
        </li>
      </ul>
      <t>Implementations that understand this transport parameter <bcp14>MUST</bcp14> treat the receipt
of any other value than these as a connection error of type
TRANSPORT_PARAMETER_ERROR.</t>
      <t>When using 0-RTT, both endpoints <bcp14>MUST</bcp14> remember the value of this transport
parameter. This allows sending the frame defined by this extension in 0-RTT
packets. If 0-RTT data is accepted by the server, the server <bcp14>MUST NOT</bcp14> disable
this extension or change the value on the resumed connection.</t>
    </section>
    <section anchor="frames">
      <name>Frames</name>
      <t>This extension defines the OBSERVED_ADDRESS frame.</t>
      <section anchor="observedaddress">
        <name>OBSERVED_ADDRESS</name>
        <artwork><![CDATA[
OBSERVED_ADDRESS Frame {
    Type (i) = 0x9f81a6..0x9f81a7,
    Sequence Number (i),
    [ IPv4 (32) ],
    [ IPv6 (128) ],
    Port (16),
}
]]></artwork>
        <t>The OBSERVED_ADDRESS frame contains the following fields:</t>
        <dl>
          <dt>Sequence Number:</dt>
          <dd>
            <t>A variable-length integer specifying the sequence number assigned for
this OBSERVED_ADDRESS frame. The sequence
number <bcp14>MUST</bcp14> be monotonically increasing for OBSERVED_ADDRESS frames in the same connection.
Frames may be received out of order. A peer <bcp14>SHOULD</bcp14> ignore an incoming
OBSERVED_ADDRESS frame if it previously received another OBSERVED_ADDRESS frame
for the same path with a Sequence Number equal to or higher than the
sequence number of the incoming frame.</t>
          </dd>
          <dt>IPv4:</dt>
          <dd>
            <t>The IPv4 address. Only present if the least significant bit of the frame type
is 0.</t>
          </dd>
          <dt>IPv6:</dt>
          <dd>
            <t>The IPv6 address. Only present if the least significant bit of the frame type
is 1.</t>
          </dd>
          <dt>Port:</dt>
          <dd>
            <t>The port number, in network byte order.</t>
          </dd>
        </dl>
        <t>This frame <bcp14>MUST</bcp14> only appear in the application data packet
number space. It is a "probing frame" as defined in <xref section="9.1" sectionFormat="of" target="RFC9000"/>.
OBSERVED_ADDRESS frames are ack-eliciting, and <bcp14>SHOULD</bcp14> be retransmitted if lost.
Retransmissions <bcp14>MUST</bcp14> happen on the same path as the original frame was sent on.</t>
        <t>An endpoint <bcp14>MUST NOT</bcp14> send an OBSERVED_ADDRESS frame to a node that did not
request the receipt of address observations as described in
<xref target="negotiate-extension"/>. A node that did not request the receipt of address
observations <bcp14>MUST</bcp14> close the connection with a PROTOCOL_VIOLATION error if it
receives an OBSERVED_ADDRESS frame.</t>
      </section>
    </section>
    <section anchor="address-discovery">
      <name>Address Discovery</name>
      <t>An endpoint that negotiated (see <xref target="negotiate-extension"/>) this extension and
offered to provide address observations to the peer <bcp14>MUST</bcp14> send an
OBSERVED_ADDRESS frame on every new path. This also applies to the path used for
the QUIC handshake. The OBSERVED_ADDRESS frame <bcp14>SHOULD</bcp14> be sent as early as
possible.</t>
      <t>For paths used after completion of the handshake, endpoints <bcp14>SHOULD</bcp14> bundle the
OBSERVED_ADDRESS frame with probing packets. This is possible, since the frame
is defined to be a probing frame (<xref section="8.2" sectionFormat="of" target="RFC9000"/>).</t>
      <t>Additionally, the sender <bcp14>SHOULD</bcp14> send an OBSERVED_ADDRESS frame when it detects a
change in the remote address on an existing path. This could be indicative of a
NAT rebinding. However, the sender <bcp14>MAY</bcp14> limit the rate at which OBSERVED_ADDRESS
frames are produced, to mitigate the spoofed packets attack described in
<xref target="responder-side-security"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="on-the-requester-side">
        <name>On the Requester Side</name>
        <t>In general, nodes cannot be trusted to report the correct address in
OBSERVED_ADDRESS frames. If possible, endpoints might decide to only request
address observations when connecting to trusted peers, or if that is not
possible, define some validation logic (e.g. by asking multiple untrusted peers
and observing if the responses are consistent). This logic is out of scope for
this document.</t>
      </section>
      <section anchor="responder-side-security">
        <name>On the Responder Side</name>
        <t>Depending on the routing setup, a node might not be able to observe the peer's
reflexive transport address, and attempts to do so might reveal details about
the internal network. In these cases, the node <bcp14>SHOULD NOT</bcp14> offer to provide
address observations.</t>
        <t>On-path attackers could capture packets sent from the requester to the
responder, and resend them from a spoofed source address. If done repeatedly,
these spoofed packets could trigger the sending of a large number of OBSERVED_ADDRESS frames.
The recommendation to only include OBSERVED_ADDRESS frames in packets
sent on the same path over which the address was observed ensures
that the peer will not receive the OBSERVED_ADDRESS frames if the
addresses are not valid, but this does not reduce the number of
packets sent over the network.
The attack also has the effect of causing spurious
detection NAT rebinding, and is a variant of the replacement of addresses
of packets mentioned in <xref section="21.1.1.3" sectionFormat="of" target="RFC9000"/>.
QUIC implementations are expected to have sufficient
protection against spurious NAT rebinding to limit the incidental traffic
caused by such attacks. The same protection logic <bcp14>SHOULD</bcp14> be used to prevent sending of a large number of
spurious OBSERVED_ADDRESS frames.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO: fill out registration request for the transport parameter and frame types</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8489">
          <front>
            <title>Session Traversal Utilities for NAT (STUN)</title>
            <author fullname="M. Petit-Huguenin" initials="M." surname="Petit-Huguenin"/>
            <author fullname="G. Salgueiro" initials="G." surname="Salgueiro"/>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="R. Mahy" initials="R." surname="Mahy"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with NAT traversal. It can be used by an endpoint to determine the IP address and port allocated to it by a NAT. It can also be used to check connectivity between two endpoints and as a keep-alive protocol to maintain NAT bindings. STUN works with many existing NATs and does not require any special behavior from them.</t>
              <t>STUN is not a NAT traversal solution by itself. Rather, it is a tool to be used in the context of a NAT traversal solution.</t>
              <t>This document obsoletes RFC 5389.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8489"/>
          <seriesInfo name="DOI" value="10.17487/RFC8489"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="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>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="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>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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9287">
          <front>
            <title>Greasing the QUIC Bit</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes a method for negotiating the ability to send an arbitrary value for the second-most significant bit in QUIC packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9287"/>
          <seriesInfo name="DOI" value="10.17487/RFC9287"/>
        </reference>
        <reference anchor="I-D.pauly-quic-address-extension">
          <front>
            <title>QUIC Address Extension</title>
            <author fullname="Tommy Pauly" initials="T." surname="Pauly">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Eric Kinnear" initials="E." surname="Kinnear">
              <organization>Apple Inc.</organization>
            </author>
            <date day="11" month="March" year="2019"/>
            <abstract>
              <t>   This document defines an extension to the QUIC transport protocol
   that adds support for requesting and receiving the public network
   address of an endpoint from its peer.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-pauly-quic-address-extension-00"/>
        </reference>
      </references>
    </references>
    <?line 225?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Unbeknownst to the authors, the idea of moving address discovery into QUIC was
conveived of before in <xref target="I-D.pauly-quic-address-extension"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61Z4W4bNxL+z6fgKT/qFNbacoLEEdpLldi5GEgsn6y0KIoi
oHYpichquV1y5QhG+iz3LPdk982Qu1rJdtLDHVrEuxQ5HA5nvvlmtt/vC298
roey988PF6/lKMsq7Zw8My61a11tekLNZpVef2VCqrxe2GozlM5nQmQ2LdQK
ErNKzX3faD/v/1GbtK/C0n7WLO0fHwtXz1bGOWMLvymx6OJ8+kbKR1LlzmJP
U2S61Pin8L1D2dOZ8bYyKqeXi9Er/LEVnibTNz1R1KuZroYigz5DkdrC6cLV
bih9VWuBEzwRqtIKUqeVKlxpK98TN7b6tKhsXcYD9sQnvcFgNhSyL2mE/l5P
P1zS3zunF2td1NhNyl0hUobj9H6BfFMs5D/oZxpfKZNjnCzyE9kmsdWCxlWV
LjG+9L50w6MjmkZDZq2TZtoRDRzNKnvj9BEJOKKFC+OX9SyKvMGkfTPTpBw2
cb4jP0xOwuLE2LvLjr55f8nSr/KecF4V2UeV2wIH3mgn3EpV/uMftcWeQ1lY
UZqh/M3b9FA6GL3Sc4enzYoefhdC1X5pK7I3FJVyXud5cKDee8jRhbzWeqWK
osc/62jAFf/mwk8/LWg0Se2qd4+Y18vKOG9UId/WxmNBkASL4seryqxhHDlO
vS1rJy+KNNndaRkW/RT/JoWG3whR2GqlPO5nKIQp5p030e/3pZo5X6nUC/Gh
yMln/FJv5FKttbS179t5fwazyU+Fvcl1ttCH7GwSvl5aU3gXphZWtrJtAaFY
KyDJVBJqkPNKZ3zNvyZySlsUGneqK5Ysw1T92euqULm8uJLxFiVtTiFwSAeR
mQ368SIzDy+IFpmZSqc+30jEU4EnnUnPc6EXCdWeIrCzQsz0ElErlbwcTUkl
4+LJPtN98SnyHC6Ms2XakbRMQ9LKFDqqW9az3KRQVuwrK2EKvGyCxFL5ZRLN
vTJZlmshHuECfWWzOiWTCEGRKw9ub/82efP69Onpiy9fHt/dPzp03B5umevP
uEoAR8SJxmpihjM6DmiFeSt4uHS64rUWAzyXjGNnPJzB4esq1c36RP6yNDmf
M2BL1OzF8fExaVaq9BMsutQqg8gb5WAbZxZFsDrrjZFVnXtTko7QY17ZVcCn
sBihtbJr1jAar41XujLb7g1M2GCTJTZRMmCntHOYfK0KrxYIXSEGCYsmQ8zn
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
AA==

-->

</rfc>
