<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-intarea-proxy-config-07" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="Proxy Configuration PvDs">Communicating Proxy Configurations in Provisioning Domains</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-intarea-proxy-config-07"/>
    <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="2025" month="July" day="26"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 31?>

<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 37?>

<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>Client 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 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>Additionally, this document partly describes how these mechanisms might be used
to discover proxies associated with a network (<xref target="network-proxies"/>).</t>
      <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>Other non-standard mechanisms for proxy configuration and discovery have been
used historically, some of which are described in <xref target="RFC3040"/>.</t>
        <t>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.</t>
        <t>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
squats on DHCP option 252.</t>
        <t>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-specific
inconsistencies and can open up security vulnerabilities.</t>
      </section>
      <section anchor="requirements">
        <name>Requirements</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>
    <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>In order to fetch PvD Additional Information associated with a proxy, a client
issues an HTTP GET request for the well-known PvD URI (".well-known/pvd") <xref target="PVDDATA"/>
and the host authority of the proxy. This is applicable for both proxies that are identified
by a host and port only (such as SOCKS proxies and HTTP CONNECT proxies) and proxies
that are identified by a URI or URI template. The fetch MUST use the "https" scheme
and the default port for HTTP over TLS, 443.</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
assocated with an HTTP CONNECT proxy on "proxy.example.org:8080".
Note that the client will not make a request 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
SHOULD 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 SHOULD be empty by default.</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 given proxy,
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 proxy host supports PvD discovery via
the well-known PvD URI ".well-known/pvd" defined in <xref section="4.1" sectionFormat="of" target="PVDDATA"/>. The presence of this
key in an HTTPS or SVCB record signals that the proxy's PvD Additional Information can be fetched
using the "https" scheme from the proxy host on port 443 using the well-known path. The presentation and
wire-format values for <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 pvd 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>While this key is particularly useful for detecting proxy configurations when
looking up a DNS record for a known proxy name, this key generically provides
a hint that PvD Additional Information is available, and can be used for use
cases unrelated to proxies.
This marker 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 list describes
equivalent proxies (potentially supporting other protocols) that can be used
in addition to the known proxy.</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 FQDN hostname 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-definition-keys">
        <name>Proxy definition 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 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</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">No</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">No</td>
              <td align="left">String containing the URI template or hostname and port of the proxy, depending on the format defined by the protocol</td>
              <td align="left">String</td>
              <td align="left">"https://proxy.example.org:4443/masque{?target_host,target_port}"</td>
            </tr>
            <tr>
              <td align="left">mandatory</td>
              <td align="left">Yes</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">Yes</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">Yes</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) SHOULD define the <tt>protocol</tt> value to match
the Upgrade Token / <tt>:protocol</tt> value.</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">hostname:port</td>
              <td align="left">
                <xref target="SOCKSv5"/></td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">http-connect</td>
              <td align="left">hostname: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">hostname: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 hostname and port, or a full URI template.</t>
        <t>The value of the <tt>mandatory</tt> key is a list 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 list or cannot fully process
the value of a key from the list MUST ignore the entire proxy definition.</t>
        <t>The <tt>mandatory</tt> list 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> list 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 <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 JSON string. Identifier values MAY be duplicated
across different proxy dictionaries in the <tt>proxies</tt> array, which indicates
that all references from other dictionaries to a particular identifier value apply
to all matching proxies. 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"/>.</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 ("_"). This character serves as a
separator between a vendor-specific namespace and the key name. For example, "acme_authmode" could
be a proprietary key indicating an authentication mode defined by a vendor named "acme".</t>
        <t>When combined with <tt>mandatory</tt> list, 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": "2023-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. All destination rules MUST also contain at least one
other key use to describe the destination properties. Each key MUST correspond to 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).
A wildcard prefix (<tt>*.</tt>) 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 MUST be treated as if they 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.</t>
        <t>The <tt>subnets</tt> array includes IPv4 and IPv6 address literals, as well as IPv4 and IPv6 address subnets
written using CIDR notation. 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 includes an empty <tt>proxies</tt> list (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 the 1024 and 2048.
If <tt>ports</tt> key is not present, all ports are assumed to match. Comma-separated port list may
contain individual port numbers (such as "80") or inclusive ranges of ports. For example
"1024-2048" matches all ports from 1024 to 2048, including the 1024 and 2048.</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> list SHOULD be provided in order of priority, such that a client
can evaluate the list of 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 list of <tt>proxies</tt> client SHOULD NOT send matching traffic to any proxy defined
in this PvD. Multiple rules can match for the same destination, in which case all are considered
to be accessible through the matching proxies in case the sets of proxies are different.</t>
        <t>In order to match a destination rule in the <tt>proxy-match</tt> list, 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 one of the entries in the <tt>domains</tt> array and one of the entries in the
<tt>ports</tt> array.</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 list from <xref target="proxy-enumeration"/>, or instructs the client to not send the
matching traffic to any proxy. If a matching rule contains more then one <tt>identifier</tt> the client
should treat the list 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 list can only narrow the list 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 definitions (<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. This handling applies uniformly across all match rules, including fallback rules.</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": "2023-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.</t>
        <t>In the next example, two proxies are defined with a separate identifiers, and there are
three destination rules:</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2023-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": "2023-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": "2023-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.168.0.0/16", "2001:DB8::/32" ],
      "proxies": [ ]
    },
    {
      "proxies": [ "default_proxy", "secondary_proxy" ]
    }
  ]
}
]]></artwork>
        <t>In this case, the client would not send to the proxies any TCP traffic
that is not destined to hosts matching "*.intranet.example.org", 192.168.0.0/16 or 2001:DB8::/32.
Due to the order in "proxies" list in the last rule of "proxy-match", the client would prefer
"proxy.example.org:80" over "backup.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"/>. A network
defining its configuration via PvD information can include the <tt>proxies</tt>
key (<xref target="proxy-enumeration"/>) to inform clients of a list of proxies available
on the network.</t>
      <t>This association of proxies with the network's PvD can be used as a mechanism
to discover proxies, as an alternative to PAC files. However, client systems MUST
NOT automatically send traffic over proxies advertised in this way without
explicit configuration, policy, or user permission. For example, a client
can use this mechanism to choose between known proxies, such as if the client was
already proxying traffic and has multiple options to choose between.</t>
      <t>Further security and experience considerations are needed for these cases.</t>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <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 DNS zones or associated
proxies, can only be safely used when fetched over a secure TLS-protected connection,
and the client has validated that that the hostname of the proxy, the identifier of
the PvD, and the validated hostname identity on the certificate all match.</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>
    </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.</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> list.</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.</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 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-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:</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="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="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="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="30" month="June" year="2025"/>
            <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-09"/>
        </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="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="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="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>
  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
