<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-intarea-proxy-config-14" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Proxy Configuration PvDs">Communicating Proxy Configurations in Provisioning Domains</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-intarea-proxy-config-14"/>
    <author initials="T." surname="Pauly" fullname="Tommy Pauly">
      <organization>Apple, Inc.</organization>
      <address>
        <email>tpauly@apple.com</email>
      </address>
    </author>
    <author initials="D." surname="Damjanovic" fullname="Dragana Damjanovic">
      <organization>Microsoft</organization>
      <address>
        <email>ddamjanovic@microsoft.com</email>
      </address>
    </author>
    <author initials="Y." surname="Rosomakho" fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="19"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 39?>

<t>This document defines a mechanism for accessing provisioning domain information
associated with a proxy, such as other proxy URIs that support different protocols
and information about which destinations are accessible using a proxy.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/tfpauly/privacy-proxy"/>.</t>
    </note>
  </front>
  <middle>
    <?line 45?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>HTTP proxies that use the CONNECT method defined in <xref section="9.3.6" sectionFormat="of" target="HTTP"/>
(often referred to as "forward" proxies) allow clients to open connections to
hosts via a proxy. These typically allow for TCP stream proxying, but can also support
UDP proxying <xref target="CONNECT-UDP"/> and IP packet proxying
<xref target="CONNECT-IP"/>. The locations of these proxies are not just defined as
hostnames and ports, but can use URI templates <xref target="URITEMPLATE"/>.</t>
      <t>In order to make use of multiple related proxies, clients need a way to understand
which proxies are associated with one another, and which protocols can be used
to communicate with the proxies.</t>
      <t>Clients can also benefit from learning about additional information associated with
the proxy to optimize their proxy usage, such knowing that a proxy is configured
to only allow access to a limited set of destinations.</t>
      <t>These improvements to client behavior can be achieved through the use of
Provisioning Domains. Provisioning Domains (PvDs) are defined in <xref target="PVD"/>
as consistent sets of network configuration information, which can include proxy
configuration details (<xref section="2" sectionFormat="of" target="PVD"/>). <xref section="4.3" sectionFormat="of" target="PVDDATA"/> defines a JSON
<xref target="JSON"/> format for describing Provisioning Domain Additional Information,
which is an extensible dictionary of properties of the Provisioning Domain.</t>
      <t>This document defines several mechanisms to use PvDs to help clients understand how
to use proxies:</t>
      <ol spacing="normal" type="1"><li>
          <t>A way to fetch PvD Additional Information associated with a known proxy URI (<xref target="proxy-pvd"/>)</t>
        </li>
        <li>
          <t>A way to list one or more proxy URIs in a PvD, allowing clients to
learn about other proxy options given a known proxy (<xref target="proxy-enumeration"/>).</t>
        </li>
        <li>
          <t>A way to define the set of destinations that are accessible through the
proxy (<xref target="destinations"/>).</t>
        </li>
      </ol>
      <t>Using this mechanism a client can learn that a legacy insecure HTTP proxy that
the client is configured with is also accessible using HTTPS. In this way,
clients can upgrade to a more secure connection to the proxy.</t>
      <section anchor="background">
        <name>Background</name>
        <t>Non-standard mechanisms for proxy configuration and discovery have been
used historically, some of which are described in the informational <xref target="RFC3040"/>:
Proxy Auto Configuration (PAC) files <xref section="6.2" sectionFormat="of" target="RFC3040"/> are JavaScript
scripts that take URLs as input and provide an output of a proxy configuration
to use. Web Proxy Auto-Discovery Protocol (WPAD) <xref section="6.4" sectionFormat="of" target="RFC3040"/> allows
networks to advertise proxies to use by advertising a PAC file. This solution
uses the DHCPv4 option 252, reserved for private use according to
<xref section="2.1" sectionFormat="of" target="IANA-DHCP"/>. These common (but non-standard) mechanisms
only support defining proxies by hostname and port, and do not support configuring
a full URI template <xref target="URITEMPLATE"/>.</t>
        <t>The mechanisms defined in this document are intended to offer a standard
alternative that works for URI-based proxies and avoids dependencies
on executing JavaScript scripts, which are prone to implementation inconsistencies
and security vulnerabilities.</t>
      </section>
      <section anchor="requirements-keywords">
        <name>Requirements Keywords</name>
        <t>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 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
        </t>
      </section>
      <section anchor="note-to-the-rfc-editor">
        <name>Note to the RFC Editor</name>
        <t>RFC EDITOR: Please remove this section before publication.</t>
        <t>Various identifier words are used in this draft using the <tt>code</tt> markdown
and are easily noted in the HTML rendering of this draft. The authors kindly
request that the RFC editor makes these instances noticeable via appropriate
markings in the <tt>TXT</tt> and <tt>PDF</tt> renderings of this draft.  The term include,
but may not be limited to the following:
<tt>proxies</tt> <tt>protocol</tt> <tt>proxy</tt> <tt>mandatory</tt> <tt>alpn</tt> <tt>identifier</tt></t>
      </section>
    </section>
    <section anchor="proxy-pvd">
      <name>Fetching PvD Additional Information for proxies</name>
      <t>This document defines a way to fetch PvD Additional Information associated with
a proxy. This PvD describes the properties of the network accessible through the proxy.</t>
      <t>Clients fetch PvD Additional Information associated with a proxy by issuing
an HTTP GET request for a PvD URI using the "application/pvd+json" media
type as defined in <xref section="4.1" sectionFormat="of" target="PVDDATA"/>. The fetch MUST use the "https" scheme.</t>
      <t><xref target="PVDDATA"/> defines the well-known PvD URI, that uses a path of "/.well-known/pvd" and is
served on the standard port for HTTP over TLS (HTTPS), port 443. When a client is provisioned
with the hostname of a proxy for
which it wants to look up PvD Additional Information, the client SHALL use the
well-known PvD URI using the host authority of the proxy. A client can also be directly
configured with a HTTPS URI on which to fetch the PvD Information, in which case the
fetch SHALL be made to that configured URI.</t>
      <t>A client MAY cache the information it obtained from PvD Additional Information, but it
MUST discard cached information if:</t>
      <ul spacing="normal">
        <li>
          <t>The current time is beyond the "expires" value defined in <xref section="4.3" sectionFormat="of" target="PVDDATA"/></t>
        </li>
        <li>
          <t>A new Sequence Number for that PvD is received in a Router Advertisement (RA)</t>
        </li>
      </ul>
      <t>To avoid synchronized queries toward the server hosting the PvD Additional Information
when an object expires, clients MUST apply a randomized backoff as specified in <xref section="4.1" sectionFormat="of" target="PVDDATA"/>.</t>
      <t>For example, a client would issue the following request for the PvD associated
with "https://proxy.example.org/masque{?target_host,target_port}":</t>
      <artwork><![CDATA[
:method = GET
:scheme = https
:authority = proxy.example.org
:path = /.well-known/pvd
accept = application/pvd+json
]]></artwork>
      <t>A client would send the same request as above for the PvD
associated with an HTTP CONNECT proxy on "proxy.example.org:8080".
Note that the client will not make the GET request for the PvD to port 8080, but
to port 443.</t>
      <t>Note that all proxies that are co-located on the same host share the same PvD
Additional Information. Proxy deployments that need separate PvD configuration properties
MUST use different hosts.</t>
      <t>PvD Additional Information is required to contain the "identifier", "expires", and
"prefixes" keys. For proxy PvDs as defined in this document, the "identifier" MUST
match the hostname of the HTTP proxy. The "prefixes" array MUST be empty for cases when the PvD identifier is not provided by a Router Advertisement as defined in <xref target="PVDDATA"/>.</t>
      <section anchor="svcparamkey">
        <name>Discovery via HTTPS/SVCB Records</name>
        <t>To allow clients to determine whether PvD Additional Information is available for a particular
named host (which allows fetching proxy information, as well as any other information in the PvD),
this document defines a new SvcParamKey in HTTPS and SVCB DNS records defined in <xref target="SVCB-DNS"/>.</t>
        <t>Presence of this SvcParamKey, named <tt>pvd</tt>, indicates that the host supports PvD discovery via
the well-known PvD URI defined in <xref section="4.1" sectionFormat="of" target="PVDDATA"/>. The presence of this key in an HTTPS
or SVCB record signals that PvD Additional Information can be fetched using the "https"
scheme from the host on port 443 using the well-known path. The value of the <tt>pvd</tt> SvcParamKey
MUST be empty.</t>
        <t>A client receiving a DNS record like the following:</t>
        <artwork><![CDATA[
proxy.example.org. 3600 IN HTTPS 1 . alpn="h3,h2" pvd
]]></artwork>
        <t>can interpret the presence of the <tt>pvd</tt> key as an indication that it MAY perform a PvD fetch from
"https://proxy.example.org/.well-known/pvd" using HTTP GET method.</t>
        <t>This key is useful for detecting proxy configurations when looking up a DNS
record for a known proxy name, but is a generic hint that PvD Additional Information
is available. Future extensions to PvD Additional Information can also take advantage
of this discovery mechanism.</t>
        <t>This hint is advisory; clients MAY still attempt to fetch PvD Additional Information even if
<tt>pvd</tt> SvcParamKey is not present.</t>
        <t>The <tt>pvd</tt> SvcParamKey is registered with IANA as described in <xref target="svcparamkey-iana"/>.</t>
      </section>
    </section>
    <section anchor="proxy-enumeration">
      <name>Enumerating proxies within a PvD</name>
      <t>This document defines a new PvD Additional Information key, <tt>proxies</tt>, that
is an array of dictionaries, where each dictionary in the array defines
a single proxy that is available as part of the PvD (see <xref target="proxies-key-iana"/>).
Each proxy is defined by a proxy protocol and a proxy location (i.e., a hostname and port or a URI template
<xref target="URITEMPLATE"/>), along with other optional keys.</t>
      <t>When a PvD that contains the <tt>proxies</tt> key is fetched from a known proxy
using the method described in <xref target="proxy-pvd"/>, the proxies array describes
proxies that can be used in addition to the known proxy. The proxies may
potentially supporting other protocols.</t>
      <t>Such cases are useful for informing clients of related proxies as a discovery
method, with the assumption that the client already is aware of one proxy.
Many historical methods of configuring a proxy only allow configuring
a single hostname and port for the proxy. A client can attempt to fetch the
PvD information from the well-known URI to learn the list of complete
URIs that support non-default protocols, such as <xref target="CONNECT-UDP"/> and
<xref target="CONNECT-IP"/>.</t>
      <section anchor="proxy-dictionary-keys">
        <name>Proxy dictionary keys</name>
        <t>This document defines two required keys for the sub-dictionaries in the
<tt>proxies</tt> array: <tt>protocol</tt> and <tt>proxy</tt>. There are also optional keys, including
<tt>mandatory</tt>, <tt>alpn</tt>, and <tt>identifier</tt>. Other optional keys (keys defined in
future extensions or proprietary key defined in <xref target="proxy-proprietary-keys"/>) can be added to the
dictionary to further define or restrict the use of a proxy. The keys
are registered with IANA as described in <xref target="proxy-info-iana"/>, with the initial
content provided below.</t>
        <table anchor="proxy-information-keys-table">
          <name>Initial Proxy Information PvD Keys Registry Contents</name>
          <thead>
            <tr>
              <th align="left">JSON Key</th>
              <th align="left">Optional/ Required</th>
              <th align="left">Description</th>
              <th align="left">Type</th>
              <th align="left">Example</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">protocol</td>
              <td align="left">required</td>
              <td align="left">The protocol used to communicate with the proxy</td>
              <td align="left">String</td>
              <td align="left">"connect-udp"</td>
            </tr>
            <tr>
              <td align="left">proxy</td>
              <td align="left">required</td>
              <td align="left">String containing the URI template or host and port of the proxy, depending on the format defined by the protocol</td>
              <td align="left">String</td>
              <td align="left">"https://example.org:4443/masque/<br/>{?target_host,target_port}"</td>
            </tr>
            <tr>
              <td align="left">mandatory</td>
              <td align="left">optional</td>
              <td align="left">An array of optional keys that client must understand and process to use this proxy</td>
              <td align="left">Array of Strings</td>
              <td align="left">["example_key"]</td>
            </tr>
            <tr>
              <td align="left">alpn</td>
              <td align="left">optional</td>
              <td align="left">An array of Application-Layer Protocol Negotiation protocol identifiers</td>
              <td align="left">Array of Strings</td>
              <td align="left">["h3","h2"]</td>
            </tr>
            <tr>
              <td align="left">identifier</td>
              <td align="left">optional</td>
              <td align="left">A string used to refer to the proxy, which can be referenced by other dictionaries, such as entries in <tt>proxy-match</tt></td>
              <td align="left">String</td>
              <td align="left">"udp-proxy"</td>
            </tr>
          </tbody>
        </table>
        <t>The values for the <tt>protocol</tt> key are defined in the proxy protocol
registry (<xref target="proxy-protocol-iana"/>), with the initial contents provided below.
For consistency, any new proxy types that use HTTP Upgrade Tokens (and use
the <tt>:protocol</tt> pseudo-header) MUST define the <tt>protocol</tt> value to match
the Upgrade Token / <tt>:protocol</tt> value. Extensions to proxy types that use
the same HTTP Upgrade Tokens ought to be covered by the same <tt>protocol</tt> value;
if there are properties specific to an extension, the extensions can either
define new optional keys or rely on negotiation within the protocol to discover
support.</t>
        <table anchor="proxy-protocol-value-table">
          <name>Initial PvD Proxy Protocol Registry Contents</name>
          <thead>
            <tr>
              <th align="left">Proxy Protocol</th>
              <th align="left">Proxy Location Format</th>
              <th align="left">Reference</th>
              <th align="left">Notes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">socks5</td>
              <td align="left">host:port</td>
              <td align="left">
                <xref target="SOCKSv5"/></td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">http-connect</td>
              <td align="left">host:port</td>
              <td align="left">
                <xref section="9.3.6" sectionFormat="of" target="HTTP"/></td>
              <td align="left">Standard CONNECT method, using unencrypted HTTP to the proxy</td>
            </tr>
            <tr>
              <td align="left">https-connect</td>
              <td align="left">host:port</td>
              <td align="left">
                <xref section="9.3.6" sectionFormat="of" target="HTTP"/></td>
              <td align="left">Standard CONNECT method, using TLS-protected HTTP to the proxy</td>
            </tr>
            <tr>
              <td align="left">connect-udp</td>
              <td align="left">URI template</td>
              <td align="left">
                <xref target="CONNECT-UDP"/></td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">connect-ip</td>
              <td align="left">URI template</td>
              <td align="left">
                <xref target="CONNECT-IP"/></td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">connect-tcp</td>
              <td align="left">URI template</td>
              <td align="left">
                <xref target="CONNECT-TCP"/></td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>The value of <tt>proxy</tt> depends on the Proxy Location Format defined by proxy protocol.
The types defined here either use a host as defined in <xref section="3.2.2" sectionFormat="of" target="URI"/> and port,
or a full URI template.</t>
        <t>The value of the <tt>mandatory</tt> key is an array of keys that the client must understand and process to be
able to use the proxy. A client that does not understand a key from the array or cannot fully process
the value of a key from the array MUST ignore the entire proxy dictionary.</t>
        <t>The <tt>mandatory</tt> array can contain keys that are either:</t>
        <ul spacing="normal">
          <li>
            <t>registered in an IANA registry, defined in <xref target="proxy-info-iana"/> and marked as optional,</t>
          </li>
          <li>
            <t>or proprietary, as defined in <xref target="proxy-proprietary-keys"/></t>
          </li>
        </ul>
        <t>The <tt>mandatory</tt> array MUST NOT include any entries that are not present in the sub-dictionary.</t>
        <t>If the <tt>alpn</tt> key is present, it provides a hint for the Application-Layer Protocol Negotiation
(ALPN) <xref target="ALPN"/> protocol identifiers associated with this server. For HTTP proxies,
this can indicate if the proxy supports HTTP/3, HTTP/2, etc.</t>
        <t>The value of the <tt>identifier</tt> key is a string that can be used to refer to a particular
proxy from other dictionaries, specifically those defined in <xref target="destinations"/>. The
string value is an arbitrary non-empty JSON string using UTF-8 encoding
as discussed in <xref section="8.1" sectionFormat="of" target="JSON"/>. Characters that need to be escaped in JSON strings
per <xref section="7" sectionFormat="of" target="JSON"/> are NOT RECOMMENDED as they can lead to difficulties in
string comparisons as discussed in <xref section="8.3" sectionFormat="of" target="JSON"/>. Identifier values MAY be duplicated
across different proxy dictionaries in the <tt>proxies</tt> array. References to a particular identifier
apply to the set of proxies sharing that identifier. Proxies without the <tt>identifier</tt> key are
expected to accept any traffic since their destinations cannot be contained in <tt>proxy-match</tt> array defined
in <xref target="destinations"/>. Proxies with <tt>identifier</tt> keys are expected to accept traffic based on
matching rules in the <tt>proxy-match</tt> array and MUST NOT be used if they are not included in
the <tt>proxy-match</tt> array.</t>
      </section>
      <section anchor="proxy-proprietary-keys">
        <name>Proprietary keys in proxy configurations</name>
        <t>Implementations MAY include proprietary or vendor-specific keys in the sub-dictionaries of the <tt>proxies</tt>
array to convey additional proxy configuration information not defined in this specification.</t>
        <t>A proprietary key MUST contain at least one underscore character ("_") as a delimiter in the string, with
characters both before and after the underscore. The right-most underscore serves
as a separator between a vendor-specific namespace and the key name; i.e., the string to the right of the
right-most underscore is the key name and the string to the left of the right-most underscore specifies the
vendor-specific namespace. For example, "example_tech_authmode" could be a proprietary key indicating an
authentication mode defined by a vendor named "Example Tech".</t>
        <t>When combined with <tt>mandatory</tt> array, this mechanism allows implementations to extend proxy metadata while
maintaining interoperability and ensuring safe fallback behavior for clients that do not support a given
extension.</t>
      </section>
      <section anchor="example">
        <name>Example</name>
        <t>Given a known HTTP CONNECT proxy FQDN, "proxy.example.org", a client could
request PvD Additional Information with the following request:</t>
        <artwork><![CDATA[
:method = GET
:scheme = https
:authority = proxy.example.org
:path = /.well-known/pvd
accept = application/pvd+json
]]></artwork>
        <t>If the proxy has a PvD definition for this FQDN, it would return the following
response to indicate a PvD that has two related proxy URIs.</t>
        <artwork><![CDATA[
:status = 200
content-type = application/pvd+json
content-length = 322

{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80"
    },
    {
      "protocol": "connect-udp",
      "proxy": "https://proxy.example.org/masque{?target_host,target_port}"
    }
  ]
}
]]></artwork>
        <t>From this response, the client would learn the URI template of the proxy that supports UDP using <xref target="CONNECT-UDP"/>,
at "https://proxy.example.org/masque{?target_host,target_port}".</t>
      </section>
    </section>
    <section anchor="destinations">
      <name>Destination accessibility information for proxies</name>
      <t>Destination accessibility information is used when only a subset of destinations is reachable through
a proxy. Destination restrictions are often used in VPN tunnel configurations such as split
DNS in IKEv2 <xref target="IKEV2SPLIT"/>, and in other proxy configuration mechanisms like PAC files (see <xref target="background"/>).</t>
      <t>PvD Additional Information can be used to indicate that a set of proxies only allows access to
a limited set of destinations.</t>
      <t>To support determining which traffic is supported by different proxies, this document defines
a new PvD Additional Information key <tt>proxy-match</tt>. This key has a value that is an array of
dictionaries, where each subdictionary describes a rule for matching traffic to one or more
proxies, or excluding the traffic from all proxies described in the PvD. These subdictionaries are referred
to as "destination rules", since they define rules about which destinations can be accessed
for a particular proxy or set of proxies.</t>
      <section anchor="destination-rule-keys">
        <name>Destination Rule Keys</name>
        <t>This document defines four keys for destination rules. Any destination rule MUST contain
the <tt>proxies</tt> key. Values corresponding to the <tt>proxies</tt> key may be either an empty array,
which implies that no proxy defined in this PvD can process matching traffic, or an array of strings
with at least one proxy <tt>identifier</tt> string. A destination rule MAY contain one or more additional
keys that describe destination properties. If no destination property keys are present, the
rule matches all destinations, subject to proxy protocol and proxy applicability checks
described in <xref target="using-destination-rules"/>. Each destination property key's value MUST be an
array with at least one entry.</t>
        <t>Extensions or proprietary deployments can define new keys to describe destination properties.
Any destination rules that include keys not known to the client, or values that cannot be
parsed, MUST be ignored in their entirety.</t>
        <t>Destination rule keys are registered with IANA as defined in <xref target="proxy-destination-iana"/>,
with the initial content provided below.</t>
        <table anchor="destination-rule-keys-table">
          <name>Initial PvD Proxy Destination Rule Registry Contents</name>
          <thead>
            <tr>
              <th align="left">JSON Key</th>
              <th align="left">Optional</th>
              <th align="left">Description</th>
              <th align="left">Type</th>
              <th align="left">Example</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">proxies</td>
              <td align="left">No</td>
              <td align="left">An array of strings that match <tt>identifier</tt> values from the top-level <tt>proxies</tt> array</td>
              <td align="left">Array of Strings</td>
              <td align="left">["tcp-proxy", "udp-proxy"]</td>
            </tr>
            <tr>
              <td align="left">domains</td>
              <td align="left">Yes</td>
              <td align="left">An array of FQDNs and wildcard DNS domains</td>
              <td align="left">Array of Strings</td>
              <td align="left">["www.example.com", "*.internal.example.com"]</td>
            </tr>
            <tr>
              <td align="left">subnets</td>
              <td align="left">Yes</td>
              <td align="left">An array of IPv4 and IPv6 addresses and subnets</td>
              <td align="left">Array of Strings</td>
              <td align="left">["2001:db8::1", "192.0.2.0/24"]</td>
            </tr>
            <tr>
              <td align="left">ports</td>
              <td align="left">Yes</td>
              <td align="left">An array of TCP and UDP port ranges</td>
              <td align="left">Array of Strings</td>
              <td align="left">["80", "443", "1024-65535"]</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>domains</tt> array includes specific FQDNs and zones that are either accessible using specific proxy (for
rules with non-empty <tt>proxies</tt> array) or non-accessible through any proxies (for rules with empty <tt>proxies</tt> array).
Wildcards are allowed only as prefixes (<tt>*.</tt>). A wildcard prefix is used to indicate matching entire domains or subdomains instead of
specific hostnames. Note that this can be used to match multiple levels of subdomains. For example, "*.example.com"
matches "internal.example.com" as well as "www.public.example.com".
Entries that include the wildcard prefix also match an FQDN that only contains
the string after the prefix, with no subdomain. So, an entry "*.example.com"
in the <tt>domains</tt> array of a <tt>proxy-match</tt> rule would match the FQDN "example.com".
This is done to prevent commonly needing to include both "*.example.com" and "example.com"
in the <tt>domains</tt> array of a <tt>proxy-match</tt> rule.
Matches are performed against absolute domain names, independent of the client's configured DNS search suffixes.
Clients MUST NOT apply local DNS suffix search rules when interpreting <tt>domains</tt> entries. A
string MAY have a trailing dot ("."); it does not affect the matching logic.</t>
        <t>The <tt>subnets</tt> array includes IPv4 and IPv6 address literals, as well as IPv4 address subnets
represented using CIDR notation <xref target="CIDR"/> and IPv6 address prefixes <xref section="2.3" sectionFormat="of" target="IPv6-ADDR"/>.
Subnet-based destination information can apply to cases where
applications are communicating directly with an IP address (without having resolved a DNS name)
as well as cases where an application resolved a DNS name to a set of IP addresses. Note that
if destination rules include an empty <tt>proxies</tt> array (indicating that no proxy is applicable for
this subnet), an application can only reliably follow this destination rule if it resolves DNS
names prior to proxying.</t>
        <t>The <tt>ports</tt> array includes specific ports (used for matching TCP and/or UDP ports), as well as
ranges of ports written with a low port value and a high port value, with a <tt>-</tt> in between.
For example, "1024-2048" matches all ports from 1024 to 2048, including port 1024 and 2048.
If <tt>ports</tt> key is not present, all ports are assumed to match. The array may
contain individual port numbers (such as "80") or inclusive ranges of ports.</t>
      </section>
      <section anchor="using-destination-rules">
        <name>Using Destination Rules</name>
        <t>The destination rules can be used to determine which traffic can be sent through proxies, and
which specific set of proxies to use for any particular connection. By evaluating the rules in
order, a consistent behavior for usage can be achieved.</t>
        <t>Rules in the <tt>proxy-match</tt> array are provided in order of priority, such that a client
can evaluate the rules from the first in the array to the last in the array, and attempt
using the matching proxy or proxies from the earliest matching rule first. If earliest matching
rule has empty array of <tt>proxies</tt>, a client MUST NOT send matching traffic to any proxy defined
in this PvD.</t>
        <t>In order to match a destination rule in the <tt>proxy-match</tt> array, all properties MUST apply. For
example, if a destination rule includes a <tt>domains</tt> array and a <tt>ports</tt> array, traffic that matches
the rule needs to match at least one of the entries in the <tt>domains</tt> array and one of the entries in the
<tt>ports</tt> array. In addition, a destination rule is considered a match only if at least one of the
associated proxy identifiers is supported by the client(client understand all mandatory keys in the
protocol description) and supports the protocol required by the connection attempt (for
example, <tt>connect-udp</tt> for UDP traffic). If no listed proxy identifier is applicable,
the rule MUST be treated as not matching, and the client continues evaluation of subsequent rules.</t>
        <t>A matched rule will then either point to one or more proxy <tt>identifier</tt> values, which correspond
to proxies defined in the array from <xref target="proxy-enumeration"/>, or instructs the client to not send the
matching traffic to any proxy. If a matching rule contains more than one <tt>identifier</tt>, the client
MUST treat the array as an ordered list, where the first <tt>identifier</tt> is the most preferred.
Multiple proxy dictionaries can contain the same <tt>identifier</tt> value. In this case, the client
can choose any of the proxies; however, the client ought to prefer using the same proxy for the consecutive requests
to the same proxy <tt>identifier</tt> to increase connection reuse.</t>
        <t>Entries listed in a <tt>proxy-match</tt> object MUST NOT expand the set of destinations that a client is
willing to send to a particular proxy. The array can only narrow the set of destinations
that the client is willing to send through the proxy. For example, if the client
has a local policy to only send requests for "*.example.com" to a proxy
"proxy.example.com", and <tt>domains</tt> array of a <tt>match</tt> object contains "internal.example.com" and
"other.company.com", the client would end up only proxying "internal.example.com"
through the proxy.</t>
      </section>
      <section anchor="proprietary-keys-in-destination-rules">
        <name>Proprietary Keys in Destination Rules</name>
        <t>Implementations MAY include proprietary or vendor-specific keys in destination rules to define custom matching logic
not specified in this document.</t>
        <t>Similar to proprietary keys in proxy dictionaries (<xref target="proxy-proprietary-keys"/>), a proprietary key in destination
rule MUST contain at least one underscore character ("_"), which separates a vendor-specific namespace from the key name.
For example, "acme_processid" could be a key used to apply rules only to traffic of a specific process identifier as
defined by a vendor named "acme".</t>
        <t>Clients that encounter a proprietary key they do not recognize MUST ignore the entire destination rule in which the
key appears. This ensures that unknown or unsupported matching logic does not inadvertently influence proxy selection
or bypass security controls.</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>In the following example, two proxies are defined with a common identifier ("default_proxy"), with
a single destination rule for "*.internal.example.org".</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80",
      "identifier": "default_proxy"
    },
    {
      "protocol": "http-connect",
      "proxy": "proxy2.example.org:80",
      "identifier": "default_proxy"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "*.internal.example.org" ],
      "proxies": [ "default_proxy" ]
    }
  ]
}
]]></artwork>
        <t>The client could then choose to use either proxy associated with the "default_proxy" identifier
for accessing TCP hosts that fall within the "*.internal.example.org" zone. This would include the
hostnames "internal.example.org", "foo.internal.example.org", "www.bar.internal.example.org" and
all other hosts within "internal.example.org". The client will use the same proxy for the following
requests to hosts falling into the "*.internal.example.org" zone to increase connection reuse and make
use of the connection resumption. The client will not use the proxies defined in this configuration
to hosts outside of the "*.internal.example.org" zone.</t>
        <t>In the next example, two proxies are defined with a distinct identifier, and there are
three destination rules:</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80",
      "identifier": "default_proxy"
    },
    {
      "protocol": "http-connect",
      "proxy": "special-proxy.example.org:80",
      "identifier": "special_proxy"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "*.special.example.org" ],
      "ports": [ "80", "443", "49152-65535" ],
      "proxies": [ "special_proxy" ]
    },
    {
      "domains": [ "no-proxy.internal.example.org" ],
      "proxies": [ ]
    },
    {
      "domains": [ "*.internal.example.org" ],
      "proxies": [ "default_proxy" ]
    }
  ]
}
]]></artwork>
        <t>In this case, the client would use "special-proxy.example.org:80"
for any TCP traffic that matches "*.special.example.org" destined to ports 80, 443 or any port between
49152 and 65535. The client would not use any of the defined proxies for access to
"no-proxy.internal.example.org". And finally, the client would use
"proxy.example.org:80" to access any other TCP traffic that matches
"*.internal.example.org".</t>
        <t>In the following example, three proxies are sharing a common identifier ("default-proxy"), but use
separate protocols constraining the traffic that they can process.</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80",
      "identifier": "default_proxy"
    },
    {
      "protocol": "connect-udp",
      "proxy": "https://proxy.example.org/masque/udp/{target_host},{target_port}",
      "identifier": "default_proxy"
    },
    {
      "protocol": "connect-ip",
      "proxy": "https://proxy.example.org/masque/ip{?target,ipproto}",
      "identifier": "default_proxy"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "*.internal.example.org" ],
      "proxies": [ "default_proxy" ]
    }
  ]
}
]]></artwork>
        <t>The client would use proxies in the following way:</t>
        <ul spacing="normal">
          <li>
            <t>Traffic not destined to hosts within the "*.internal.example.org" zone is not sent
to any proxy defined in this configuration</t>
          </li>
          <li>
            <t>TCP traffic destined to hosts within the "*.internal.example.org" zone is sent
either to the proxy with "http-connect" protocol or to the proxy with "connect-ip" protocol</t>
          </li>
          <li>
            <t>UDP traffic destined to hosts within the "*.internal.example.org" zone is sent
either to the proxy with "connect-udp" protocol or to the proxy with "connect-ip" protocol</t>
          </li>
          <li>
            <t>Traffic other than TCP and UDP destined to hosts within the "*.internal.example.org" zone is sent
to the proxy with "connect-ip" protocol</t>
          </li>
        </ul>
        <t>The following example provides a configuration of proxies to be used by default with a
set with exceptions to bypass:</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80",
      "identifier": "default_proxy"
    },
    {
      "protocol": "http-connect",
      "proxy": "backup.example.org:80",
      "identifier": "secondary_proxy"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "*.intranet.example.org" ],
      "proxies": [ ]
    },
    {
      "subnets": [ "192.0.2.0/24", "2001:db8::/32" ],
      "proxies": [ ]
    },
    {
      "proxies": [ "default_proxy", "secondary_proxy" ]
    }
  ]
}
]]></artwork>
        <t>In this case, the client will not forward TCP traffic that is destined to hosts matching
"*.intranet.example.org", 192.0.2.0/24 or 2001:db8::/32, through the proxies.
Due to the order in "proxies" array in the last rule of "proxy-match", the client would prefer
"proxy.example.org:80" over "backup.example.org:80"</t>
        <t>The following example provides a configuration of proxies that enable setting one proxy
for "example.org" and a different proxy for all of its subdomains, i.e. "*.example.org":</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy1.example.org:80",
      "identifier": "proxy1"
    },
    {
      "protocol": "http-connect",
      "proxy": "proxy2.example.org:80",
      "identifier": "proxy2"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "example.org" ],
      "proxies": [ "proxy1" ]
    },
    {
      "domains": [ "*.example.org" ],
      "proxies": [ "proxy2" ]
    }
  ]
}
]]></artwork>
        <t>In this case, the client will forward TCP traffic that is destined to host "example.org"
to "proxy1.example.org:80" and all traffic to the subdomains of "example.org", i.e.
"*.example.org" will be forwarded to "proxy2.example.org:80".</t>
      </section>
    </section>
    <section anchor="network-proxies">
      <name>Discovering proxies from network PvDs</name>
      <t><xref target="PVDDATA"/> defines how PvD Additional Information is discovered based
on network advertisements using Router Advertisements <xref target="RFC4861"/>. This means
that a network defining its configuration via PvD information can include
the <tt>proxies</tt> key (<xref target="proxy-enumeration"/>). However, clients MUST NOT automatically
use these proxy configurations, unless the device has been explicitly provisioned
to trust this configuration from the network for specific proxy hosts; for example,
a corporate-managed device could use this mechanism on an authenticated corporate
network to learn which of an allowed set of proxy URIs are available at this
particular location.</t>
      <t>Future specifications can define ways to dynamically trust proxy configurations delivered
by a network, but such mechanisms are out of scope for this document.</t>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t>This document extends the PvD Additional Information defined in <xref target="PVDDATA"/>; as such,
all security considerations from <xref target="PVDDATA"/> apply here.</t>
      <t>The mechanisms in this document allow clients using a proxy to "upgrade" a configuration
for a cleartext HTTP/1.1 or SOCKS proxy into a configuration that uses TLS to communication to the proxy.
This upgrade can add protection to the proxied traffic so it is less observable by
entities along the network path; however it does not prevent the proxy itself from
observing the traffic being proxied.</t>
      <t>Configuration advertised via PvD Additional Information, such as DNS zones or associated
proxies, can only be safely used when fetched over a secure TLS-protected connection,
and the client has validated that the hostname of the proxy, the identifier of
the PvD, and the validated hostname identity on the certificate all match.</t>
      <t>The lists of proxies and destination rules provided by the PvD Additional Information might
exceed the memory constraints or processing capabilities of clients, particularly for constrained
devices. A client that is not able to process all of the content of either the proxies list
or destination rules due to resource limitations MUST ignore the proxy configuration entirely.
Clients MUST implement limits for the maximum number of proxy configurations and destination rules
that they are able to process; the specific limits will vary based on device capabilities.</t>
      <t>When using information in destination rules (<xref target="destinations"/>), clients MUST only allow
the PvD configuration to narrow the scope of traffic that they will send through a proxy.
Clients that are configured by policy to only send a particular set of traffic through
a particular proxy can learn about rules that will cause them to send more narrowly-scoped
traffic, but MUST NOT send traffic that would go beyond what is allowed by local policy.</t>
      <t>As described in <xref target="network-proxies"/>, proxy configuration discovered based on RAs from a network
MUST NOT be automatically used by clients to start using proxies when they would otherwise
not proxy traffic.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="proxies-key-iana">
        <name>New PvD Additional Information key</name>
        <t>This document registers two new keys in the "Additional Information PvD Keys" registry <xref target="IANA_PVD"/>.</t>
        <section anchor="proxies-key">
          <name><tt>proxies</tt> Key</name>
          <t>JSON Key: proxies</t>
          <t>Description: Array of proxy dictionaries associated with this PvD</t>
          <t>Type: Array of dictionaries</t>
          <t>Example:</t>
          <artwork><![CDATA[
[
 {
  "protocol": "connect-udp",
  "proxy": "https://proxy.example.org/masque{?target_host,target_port}"
 }
]
]]></artwork>
        </section>
        <section anchor="proxy-match-key">
          <name><tt>proxy-match</tt> Key</name>
          <t>JSON Key: proxy-match</t>
          <t>Description: Array of proxy match rules, as dictionaries, associated with
entries in the <tt>proxies</tt> array.</t>
          <t>Type: Array of dictionaries</t>
          <t>Example:</t>
          <artwork><![CDATA[
[
 {
  "domains": [ "*.internal.example.org" ],
  "proxies": [ "default_proxy" ]
 }
]
]]></artwork>
        </section>
      </section>
      <section anchor="proxy-info-iana">
        <name>New PvD Proxy Information Registry</name>
        <t>IANA is requested to create a new registry "Proxy Information PvD Keys", within the "Provisioning Domains (PvDs)" registry page.
This new registry reserves JSON keys for use in sub-dictionaries under the <tt>proxies</tt> key.
The initial contents of this registry are given in <xref target="proxy-information-keys-table"/>.</t>
        <t>New assignments in the "Proxy Information PvD Keys" registry will be administered by IANA through Expert Review <xref target="RFC8126"/>.
Experts are requested to ensure that defined keys do not overlap in names or semantics, do not contain an underscore character ("_")
in the names (since underscores are reserved for vendor-specific keys), and have clear format definitions.
The reference and notes fields may be empty.</t>
      </section>
      <section anchor="proxy-protocol-iana">
        <name>New PvD Proxy Protocol Registry</name>
        <t>IANA is requested to create a new registry "Proxy Protocol PvD Values", within the "Provisioning Domains (PvDs)" registry page.
This new registry reserves JSON values for the <tt>protocol</tt> key in <tt>proxies</tt> sub-dictionaries.
The initial contents of this registry are given in <xref target="proxy-protocol-value-table"/>.</t>
        <t>New assignments in the "Proxy Protocol PvD Values" registry will be administered by IANA through Expert Review <xref target="RFC8126"/>.
Experts are requested to ensure that defined keys do not overlap in names. The reference and notes fields may be empty.</t>
      </section>
      <section anchor="proxy-destination-iana">
        <name>New PvD Proxy Destination Rule Registry</name>
        <t>IANA is requested to create a new registry "Proxy Destination Rule PvD Keys", within the "Provisioning Domains (PvDs)" registry page.
This new registry reserves JSON keys for use in sub-dictionaries under the <tt>proxy-match</tt> key.
The initial contents of this registry are given in <xref target="destination-rule-keys-table"/>.</t>
        <t>New assignments in the "Proxy Destination Rule PvD Keys" registry will be administered by IANA through Expert Review <xref target="RFC8126"/>.
Experts are requested to ensure that defined keys do not overlap in names or semantics, and do not contain an underscore character ("_")
in the names (since underscores are reserved for vendor-specific keys).</t>
      </section>
      <section anchor="svcparamkey-iana">
        <name>New DNS SVCB Service Parameter Key (SvcParamKey)</name>
        <t>IANA is requested to add a new entry to the "DNS SVCB Service Parameter Keys (SvcParamKeys)" registry
<xref target="IANA_SVCB"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Number: TBD</t>
          </li>
          <li>
            <t>Name: pvd</t>
          </li>
          <li>
            <t>Meaning: PvD configuration is available at the well-known path</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: this document, <xref target="svcparamkey"/></t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="HTTP">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="URITEMPLATE">
          <front>
            <title>URI Template</title>
            <author fullname="J. Gregorio" initials="J." surname="Gregorio"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="M. Hadley" initials="M." surname="Hadley"/>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="D. Orchard" initials="D." surname="Orchard"/>
            <date month="March" year="2012"/>
            <abstract>
              <t>A URI Template is a compact sequence of characters for describing a range of Uniform Resource Identifiers through variable expansion. This specification defines the URI Template syntax and the process for expanding a URI Template into a URI reference, along with guidelines for the use of URI Templates on the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6570"/>
          <seriesInfo name="DOI" value="10.17487/RFC6570"/>
        </reference>
        <reference anchor="PVDDATA">
          <front>
            <title>Discovering Provisioning Domain Names and Data</title>
            <author fullname="P. Pfister" initials="P." surname="Pfister"/>
            <author fullname="É. Vyncke" surname="É. Vyncke"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="W. Shao" initials="W." surname="Shao"/>
            <date month="July" year="2020"/>
            <abstract>
              <t>Provisioning Domains (PvDs) are defined as consistent sets of network configuration information. PvDs allows hosts to manage connections to multiple networks and interfaces simultaneously, such as when a home router provides connectivity through both a broadband and cellular network provider.</t>
              <t>This document defines a mechanism for explicitly identifying PvDs through a Router Advertisement (RA) option. This RA option announces a PvD identifier, which hosts can compare to differentiate between PvDs. The option can directly carry some information about a PvD and can optionally point to PvD Additional Information that can be retrieved using HTTP over TLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8801"/>
          <seriesInfo name="DOI" value="10.17487/RFC8801"/>
        </reference>
        <reference anchor="JSON">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </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>
        <reference anchor="SVCB-DNS">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="URI">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="ALPN">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl"/>
            <author fullname="A. Popov" initials="A." surname="Popov"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="CIDR">
          <front>
            <title>Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan</title>
            <author fullname="V. Fuller" initials="V." surname="Fuller"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <date month="August" year="2006"/>
            <abstract>
              <t>This memo discusses the strategy for address assignment of the existing 32-bit IPv4 address space with a view toward conserving the address space and limiting the growth rate of global routing state. This document obsoletes the original Classless Inter-domain Routing (CIDR) spec in RFC 1519, with changes made both to clarify the concepts it introduced and, after more than twelve years, to update the Internet community on the results of deploying the technology described. 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="122"/>
          <seriesInfo name="RFC" value="4632"/>
          <seriesInfo name="DOI" value="10.17487/RFC4632"/>
        </reference>
        <reference anchor="IPv6-ADDR">
          <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>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>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="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IANA_PVD" target="https://www.iana.org/assignments/pvds/pvds.xhtml#additional-information-pvd-keys">
          <front>
            <title>Additional Information PvD Keys Registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA_SVCB" target="https://www.iana.org/assignments/dns-svcb/dns-svcb.xhtml#dns-svcparamkeys">
          <front>
            <title>SvcParamKeys Registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CONNECT-UDP">
          <front>
            <title>Proxying UDP in HTTP</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP. More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9298"/>
          <seriesInfo name="DOI" value="10.17487/RFC9298"/>
        </reference>
        <reference anchor="CONNECT-IP">
          <front>
            <title>Proxying IP in HTTP</title>
            <author fullname="T. Pauly" initials="T." role="editor" surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="A. Chernyakhovsky" initials="A." surname="Chernyakhovsky"/>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="October" year="2023"/>
            <abstract>
              <t>This document describes how to proxy IP packets in HTTP. This protocol is similar to UDP proxying in HTTP but allows transmitting arbitrary IP packets. More specifically, this document defines a protocol that allows an HTTP client to create an IP tunnel through an HTTP server that acts as an IP proxy. This document updates RFC 9298.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9484"/>
          <seriesInfo name="DOI" value="10.17487/RFC9484"/>
        </reference>
        <reference anchor="PVD">
          <front>
            <title>Multiple Provisioning Domain Architecture</title>
            <author fullname="D. Anipko" initials="D." role="editor" surname="Anipko"/>
            <date month="June" year="2015"/>
            <abstract>
              <t>This document is a product of the work of the Multiple Interfaces Architecture Design team. It outlines a solution framework for some of the issues experienced by nodes that can be attached to multiple networks simultaneously. The framework defines the concept of a Provisioning Domain (PvD), which is a consistent set of network configuration information. PvD-aware nodes learn PvD-specific information from the networks they are attached to and/or other sources. PvDs are used to enable separation and configuration consistency in the presence of multiple concurrent connections.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7556"/>
          <seriesInfo name="DOI" value="10.17487/RFC7556"/>
        </reference>
        <reference anchor="RFC3040">
          <front>
            <title>Internet Web Replication and Caching Taxonomy</title>
            <author fullname="I. Cooper" initials="I." surname="Cooper"/>
            <author fullname="I. Melve" initials="I." surname="Melve"/>
            <author fullname="G. Tomlinson" initials="G." surname="Tomlinson"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>This memo specifies standard terminology and the taxonomy of web replication and caching infrastructure as deployed today. It introduces standard concepts, and protocols used today within this application domain. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3040"/>
          <seriesInfo name="DOI" value="10.17487/RFC3040"/>
        </reference>
        <reference anchor="IANA-DHCP">
          <front>
            <title>Procedures and IANA Guidelines for Definition of New DHCP Options and Message Types</title>
            <author fullname="R. Droms" initials="R." surname="Droms"/>
            <date month="September" year="2000"/>
            <abstract>
              <t>This document describes the procedure for defining new DHCP options and message types. 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="43"/>
          <seriesInfo name="RFC" value="2939"/>
          <seriesInfo name="DOI" value="10.17487/RFC2939"/>
        </reference>
        <reference anchor="SOCKSv5">
          <front>
            <title>SOCKS Protocol Version 5</title>
            <author fullname="M. Leech" initials="M." surname="Leech"/>
            <author fullname="M. Ganis" initials="M." surname="Ganis"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <author fullname="R. Kuris" initials="R." surname="Kuris"/>
            <author fullname="D. Koblas" initials="D." surname="Koblas"/>
            <author fullname="L. Jones" initials="L." surname="Jones"/>
            <date month="March" year="1996"/>
            <abstract>
              <t>This memo describes a protocol that is an evolution of the previous version of the protocol, version 4 [1]. This new protocol stems from active discussions and prototype implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1928"/>
          <seriesInfo name="DOI" value="10.17487/RFC1928"/>
        </reference>
        <reference anchor="CONNECT-TCP">
          <front>
            <title>Template-Driven HTTP CONNECT Proxying for TCP</title>
            <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <date day="20" month="March" year="2026"/>
            <abstract>
              <t>   TCP proxying using HTTP CONNECT has long been part of the core HTTP
   specification.  However, this proxying functionality has several
   important deficiencies in modern HTTP environments.  This
   specification defines an alternative HTTP proxy service configuration
   for TCP connections.  This configuration is described by a URI
   Template, similar to the CONNECT-UDP and CONNECT-IP protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-connect-tcp-11"/>
        </reference>
        <reference anchor="IKEV2SPLIT">
          <front>
            <title>Split DNS Configuration for the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="P. Wouters" initials="P." surname="Wouters"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This document defines two Configuration Payload Attribute Types (INTERNAL_DNS_DOMAIN and INTERNAL_DNSSEC_TA) for the Internet Key Exchange Protocol version 2 (IKEv2). These payloads add support for private (internal-only) DNS domains. These domains are intended to be resolved using non-public DNS servers that are only reachable through the IPsec connection. DNS resolution for other domains remains unchanged. These Configuration Payloads only apply to split- tunnel configurations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8598"/>
          <seriesInfo name="DOI" value="10.17487/RFC8598"/>
        </reference>
        <reference anchor="RFC4861">
          <front>
            <title>Neighbor Discovery for IP version 6 (IPv6)</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="H. Soliman" initials="H." surname="Soliman"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4861"/>
          <seriesInfo name="DOI" value="10.17487/RFC4861"/>
        </reference>
      </references>
    </references>
    <?line 818?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Phil Lisiecki, David Schinazi, Dale Worley, Tomas Dragoun, Keith Holleman, James Taft, Tommy Jensen, and Ryan Globus for their detailed reviews, feedback, and suggestions during the development of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
yobqUuwgUy4XrjFIFAH+fzrZIgXFlQAA

-->

</rfc>
