<?xml version="1.0" encoding="utf-8"?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
<rfc version="3" ipr="trust200902" docName="draft-davids-forsalereg-04" submissionType="IETF" category="bcp" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" indexInclude="true" tocDepth="5">

<front>
<title abbrev="forsalereg">Registration of Underscored and Globally Scoped DNS Node Name: "_for-sale"</title><seriesInfo value="draft-davids-forsalereg-04" stream="IETF" status="bcp" name="Internet-Draft"></seriesInfo>
<author initials="M." surname="Davids" fullname="Marco Davids"><organization abbrev="SIDN Labs">SIDN Labs</organization><address><postal><street>Meander 501</street>
<city>Arnhem</city>
<code>6825 MD</code>
<country>Netherlands</country>
</postal><phone>+31 26 352 5500</phone>
<email>marco.davids@sidn.nl</email>
</address></author><date/>
<area>Internet</area>
<workgroup></workgroup>

<abstract>
<t>This document defines an operational convention for using the reserved DNS node name
&quot;_for-sale&quot; to indicate that the parent domain name is available for purchase.
This approach offers the advantage of easy deployment without affecting ongoing operations. As such, the method can be applied to a domain name that is still in full use.</t>
</abstract>

</front>

<middle>

<section anchor="introduction"><name>Introduction</name>
<t>Well-established services <xref target="RFC3912"></xref><xref target="RFC9083"></xref> exist to determine whether a domain name is registered. However, the fact that a domain name exists does not necessarily mean it
is unavailable; it may still be for sale.</t>
<t>Some registrars and other entities offer mediation services between domain name holders and interested parties; however, for domain names not for sale, such services may be unnecessary.</t>
<t>This specification defines a simple and universal method to ascertain whether a domain name, although registered, is available for purchase. It enables a domain name holder to add a reserved underscored node name <xref target="RFC8552"></xref> in the zone, indicating that the domain name is for sale.</t>
<t>The TXT RR type <xref target="RFC1035"></xref> that is created for that purpose <bcp14>MAY</bcp14> contain a pointer, such as a
Uniform Resource Identifier (URI) <xref target="RFC8820"></xref>, allowing interested parties to obtain information or contact the domain name holder for further negotiations.</t>
<t>With due caution, such information can also be incorporated into automated availability services. When a domain name is checked for availability, the service can indicate whether it is for sale and provide a pointer to the seller's information.</t>

<section anchor="terminology"><name>Terminology</name>
<t>The key words &quot;<bcp14>MUST</bcp14>&quot;, &quot;<bcp14>MUST NOT</bcp14>&quot;, &quot;<bcp14>REQUIRED</bcp14>&quot;, &quot;<bcp14>SHALL</bcp14>&quot;, &quot;<bcp14>SHALL NOT</bcp14>&quot;,
&quot;<bcp14>SHOULD</bcp14>&quot;, &quot;<bcp14>SHOULD NOT</bcp14>&quot;, &quot;<bcp14>RECOMMENDED</bcp14>&quot;, &quot;<bcp14>NOT RECOMMENDED</bcp14>&quot;, &quot;<bcp14>MAY</bcp14>&quot;, and
&quot;<bcp14>OPTIONAL</bcp14>&quot; in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref>
when, and only when, they appear in all capitals, as shown here.</t>
</section>
</section>

<section anchor="rationale"><name>Rationale</name>
<t>There are undoubtedly more ways to address this problem space. The reasons for the approach defined in this document are primarily accessibility and simplicity. The indicator can be easily turned on and off at will and moreover, it is immediately deployable and does not require significant changes in existing services. This allows for a smooth introduction of the concept.</t>
</section>

<section anchor="conventions"><name>Conventions</name>

<section anchor="content-limitations"><name>Content limitations</name>
<t>The TXT <xref target="RFC8553" sectionFormat="parens" section="2.1"></xref> record <bcp14>MUST</bcp14> contain any valid content, ranging from an empty string to meaningful text or URIs. However, it <bcp14>SHALL NOT</bcp14> contain any text that suggests that the domain is not for sale. If a domain name is not for sale, the &quot;_for-sale&quot; indicator
<bcp14>MUST NOT</bcp14> be used. Any existence of a &quot;_for-sale&quot; TXT
record, assuming it is not a wildcard,  <bcp14>MAY</bcp14> therefore be regarded as an indication that the domain name is for sale.</t>
<t>This specification does not dictate the exact use of any content in the &quot;_for-sale&quot; TXT record, or the lack of any such content. Parties - such as
registries and registrars - may use it in their tools, perhaps even by defining additional requirements that the content must meet. Alternatively, an individual can use it in combination with existing tools to make contact with the seller.</t>
<t>The content of the TXT record is &quot;as is&quot; and characters such as &quot;;&quot; between two URIs for example, have no defined meaning. It is up to the processor of the content to decide how to handle it. See
<xref target="guidelines"></xref> for additional guidelines.</t>
</section>

<section anchor="rrset-limitations"><name>RRset limitations</name>
<t>This specification does not define any restrictions on the number of TXT records in the RRset, although it is recommended to limit it to one. It is also recommended that the length of the RDATA <xref target="RFC8499"></xref> does not exceed 255 bytes. If the RRset contains multiple records or the total size exceeds 255 bytes, it is up to the processor to determine which data to use. For example, a
registry might pick a mandatory URI from the RRset to display on a website as part of its service, while an individual might just pick a phone number (if present) and dial it to make contact with a potential seller.</t>
</section>

<section anchor="rr-type-limitations"><name>RR Type limitations</name>
<t>Adding any other RR types under the &quot;_for-sale&quot; leaf but TXT is not
recommended and they <bcp14>MUST</bcp14> be ignored for the purpose of this document.</t>
</section>

<section anchor="ttl-limitation"><name>TTL limitation</name>
<t>A TTL longer than 86400 is <bcp14>NOT RECOMMENDED</bcp14>. Long TTLs increase the risk of outdated information persisting, potentially misleading buyers into believing the domain is still available for purchase.</t>
</section>

<section anchor="wildcard-limitation"><name>Wildcard limitation</name>
<t>The &quot;_for-sale&quot; leaf <bcp14>SHOULD NOT</bcp14> be a wildcard.</t>
</section>

<section anchor="cname-limitation"><name>CNAME limitation</name>
<t>The &quot;_for-sale&quot; leaf <bcp14>MAY</bcp14> be a CNAME pointing to a TXT RR type.</t>
</section>

<section anchor="placement-of-node-name"><name>Placement of node name</name>
<t>The &quot;_for-sale&quot; leaf node name <bcp14>MAY</bcp14> be placed on the top level domain, or any domain directly below. It <bcp14>MAY</bcp14> also be placed at a lower level, but only when that level is mentioned in the Public Suffix List <xref target="PSL"></xref>.</t>
<t>Any other placement of the record <bcp14>MUST NOT</bcp14> be regarded as a signal that the domain above it is for sale.</t>
<t>See <xref target="placements"></xref> for further explanation.</t>
<table anchor="placements"><name>Allowed placements of TXT record </name>
<thead>
<tr>
<th>Name</th>
<th>Situation</th>
<th>Verdict</th>
</tr>
</thead>

<tbody>
<tr>
<td>_for-sale.example</td>
<td>root zone</td>
<td>For sale</td>
</tr>

<tr>
<td>_for-sale.aaa.example</td>
<td>Second level</td>
<td>For sale</td>
</tr>

<tr>
<td>_for-sale.acme.bbb.example</td>
<td>bbb.example in PSL</td>
<td>For sale</td>
</tr>

<tr>
<td>_for-sale.www.ccc.example</td>
<td>Other</td>
<td>Invalid</td>
</tr>
</tbody>
</table></section>
</section>

<section anchor="examples"><name>Examples</name>

<section anchor="example-1-a-uri"><name>Example 1: A URI</name>
<t>The holder of 'example.com' wishes to signal that the domain is for sale and adds this record to the 'example.com' zone:</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "https://broker.example.net/offer?id=3"
]]></artwork>
<t>An interested party notices this signal and can visit the URI mentioned for further information. The TXT record can also be processed by automated tools, but see the <xref target="security" format="title"></xref> section for possible risks.</t>
<t>As an alternative, a mailto: URI could also be used:</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "mailto:owner@example.com"
]]></artwork>
<t>Or a telephone URI:</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "tel:+1-201-555-0123"
]]></artwork>
<t>There can be a use case for these URIs, especially since WHOIS (or RDAP) often has privacy restrictions.
But see the <xref target="privacy" format="title"></xref> section for possible downsides.</t>
</section>

<section anchor="example-2-various-other-approaches"><name>Example 2: Various other approaches</name>
<t>Free format text, to make the availability more explicit:</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "I'm for sale: info [at] example.com"
]]></artwork>
<t>Proprietary format, used by a registry or registrar to automatically redirect visitors to a web page,
but which has no well-defined meaning to third parties:</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "fscode=aHR0cHM...V4YW1wbGUuY29t"
]]></artwork>
<t>The content in the following example could be malicious, but it is not in violation of this specification (see <xref target="security"></xref>):</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "<script>alert('H4x0r')</script>"
]]></artwork>
</section>
</section>

<section anchor="guidelines"><name>Operational Guidelines</name>
<t>DNS wildcards interact poorly with underscored names, which is why the use of wildcards
is NOT RECOMMENDED when deploying this mechanism. But they may still be
encountered in practice, especially by operators who are not deploying this
mechanism. Therefore, any assumptions about the content of &quot;_for-sale&quot;
TXT records should be made with caution.</t>
<t>For instance, some operators configure wildcards to return a fixed &quot;v=spf1 -all&quot;
TXT record for all subdomains. In such cases, the presence of a &quot;_for-sale&quot; TXT record
containing this content does not indicate that the domain is actually for sale.</t>
<t>To minimize confusion, it is RECOMMENDED to include content that is recognizable either
by humans or automated systems, such as the &quot;fscode=&quot; string or the descriptive text
shown in the <xref target="examples" format="title"></xref> section.</t>
<t>As an alternative. the situation can be circumvented by adding a &quot;_for-sale&quot; leaf node with a
different RR type, anything other than TXT. Although being an exception to the
recommendations, it will prevent confusing wildcard responses to TXT queries.</t>
<t>For example:</t>

<artwork><![CDATA[_for-sale.example.com. IN HINFO "NOT A TXT" "NOT FOR SALE"
]]></artwork>
<t>In general it is best to avoid the above wildcard situation completely.</t>
</section>

<section anchor="iana-considerations"><name>IANA Considerations</name>
<t>IANA has established the &quot;Underscored and Globally Scoped DNS Node Names&quot; registry <xref target="RFC8552"></xref><xref target="IANA"></xref>. The underscored node name defined in this specification should be added as follows:</t>
<figure><name>Entry for the &quot;Underscored and Globally Scoped DNS Node Names&quot; registry
</name>
<sourcecode type="ascii-art"><![CDATA[             +-----------+--------------+-------------+
             | RR Type   | _NODE NAME   | Reference   |
             +-----------+--------------+-------------+
             | TXT       | _for-sale    | TBD         |
             +-----------+--------------+-------------+
]]></sourcecode>
</figure>
</section>

<section anchor="privacy"><name>Privacy Considerations</name>
<t>The use of the &quot;_for-sale&quot; node name publicly indicates the intent to sell a domain name.
Domain owners should be aware that this information is accessible to anyone querying the
DNS and may have privacy implications.</t>
<t>There is a risk of data scraping, such as email addresses and phone numbers.</t>
</section>

<section anchor="security"><name>Security Considerations</name>
<t>One use of the TXT record type defined in this document is to parse the content it contains and to automatically publish certain information from it on a website or elsewhere. However, there is a risk if the domain name holder  publishes a malicious URI or one that points to improper content. This may result in reputational damage for the party parsing the record.</t>
<t>Even worse is a scenario in which the content of the TXT record is not validated and sanitized sufficiently, opening doors to - for example - XSS attacks among other things.</t>
<t>Therefore, it is <bcp14>RECOMMENDED</bcp14> that any parsing and publishing is conducted with the utmost care.</t>
<t>There is also a risk that this method will be abused as a marketing tool, or to otherwise lure individuals into visiting certain sites or attempting other forms of contact, without there being any intention to actually sell the particular domain name. Therefore, it is recommended that this method is primarily used by professionals.</t>
</section>

<section anchor="implementation-status"><name>Implementation Status</name>
<t>The concept described in this document is in use with the .nl ccTLD
registry. See for example:</t>

<artwork><![CDATA[https://www.sidn.nl/en/whois?q=example.nl
]]></artwork>
<t>[<em>note to editor: please remove this section before publication</em>]</t>
</section>

<section anchor="acknowledgements"><name>Acknowledgements</name>
<t>The author would like to thank Thijs van den Hout, Caspar Schutijser, Melvin Elderman and Paul Bakker for their valuable feedback.</t>
</section>

</middle>

<back>
<references><name>References</name>
<references><name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8552.xml"/>
</references>
<references><name>Informative References</name>
<reference anchor="IANA" target="https://www.iana.org/assignments/dns-parameters/dns-parameters.xml#underscored-globally-scoped-dns-node-names">
  <front>
    <title>Underscored and Globally Scoped DNS Node Names</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>
<reference anchor="PSL" target="https://publicsuffix.org/">
  <front>
    <title>Public Suffix List</title>
    <author>
      <organization>Mozilla Foundation</organization>
    </author>
  </front>
</reference>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3912.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8499.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8553.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8820.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9083.xml"/>
</references>
</references>

</back>

</rfc>
