<?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-06" submissionType="IETF" category="bcp" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" indexInclude="true" tocDepth="3">

<front>
<title abbrev="forsalereg">Registration of the "_for-sale" Underscored and Globally Scoped DNS Node Name</title><seriesInfo value="draft-davids-forsalereg-06" 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>Internet Engineering Task Force (IETF)</workgroup>

<abstract>
<t>This document defines an operational convention for using the reserved DNS leaf 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. For domain names that are not for sale, such services may be
of limited value, whereas they may be beneficial for domain names that are clearly being offered for sale.</t>
<t>This specification defines a lightweight 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
leaf 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> created for this purpose <bcp14>MUST</bcp14> follow the formal definition of
<xref target="recformat"></xref>. Its content <bcp14>MAY</bcp14> contain a pointer, such as a Uniform Resource Identifier (URI) <xref target="RFC8820"></xref>, or another string,
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 checking a domain name for availability, the service may 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="recformat"><name>General Record Format</name>
<t>The &quot;_for-sale&quot; TXT record <bcp14>MUST</bcp14> start with a version tag, possibly followed by a string.</t>
<t>The formal definition of the record format, using ABNF <xref target="RFC5234"></xref><xref target="RFC7405"></xref>, is as follows:</t>

<artwork><![CDATA[forsale-record  = forsale-version forsale-content
forsale-version = %s"v=FORSALE1;"
                  ; version tag, case sensitive, no spaces
forsale-content = 0*244OCTET
                  ; referred to as content or data
]]></artwork>
<t>Records without a version tag <bcp14>MUST NOT</bcp14> be interpreted or processed as a valid '_for-sale' indicator.
However, they may still offer some additional information for humans when considered alongside a valid record, for example:</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "I am for sale"
_for-sale.example.com. IN TXT "v=FORSALE1;fscode=NGYyYjEyZWY"
]]></artwork>
<t>If no TXT records at a leaf node contain a version tag, processors <bcp14>MUST</bcp14> consider the node name invalid and discard it.</t>
</section>

<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.
Any text that suggests that the domain is not for sale is invalid content. If a domain name is not for sale,
a &quot;_for-sale&quot; indicator is pointless and any existence of a valid &quot;_for-sale&quot; TXT record <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 - <bcp14>MAY</bcp14> use it in their tools, perhaps even by defining specific requirements that the content must meet.
Content can also be represented in a human-readable format for individuals to
interpret. See the <xref target="examples" format="title"></xref> section for clarification.</t>
<t>Since the content of TXT record has no defined meaning, it is up to the processor of the content to decide how to handle it.</t>
<t>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, but limiting it to one is <bcp14>RECOMMENDED</bcp14>.
It is also <bcp14>RECOMMENDED</bcp14> that the length of the RDATA <xref target="RFC9499"></xref> per TXT record does not exceed 255 octets.
If this is not the case, the processor <bcp14>SHOULD</bcp14>  determine which content to use.</t>
<t>For example, a registry might select content that includes a recognizable code, which can be used to direct visitors to a sales page
as part of its services, whereas an individual might simply extract a phone number (if present) and use it to contact a potential seller.</t>
</section>

<section anchor="rr-type-limitations"><name>RR Type limitations</name>
<t>Adding any resource record (RR) types under the &quot;_for-sale&quot; leaf other than TXT is <bcp14>NOT RECOMMENDED</bcp14>.
Such records <bcp14>MUST</bcp14> be ignored for the purposes 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 node name <bcp14>SHOULD NOT</bcp14> be a wildcard, but processors <bcp14>MAY</bcp14> still analyze it
if it is.</t>
</section>

<section anchor="cname-limitation"><name>CNAME limitation</name>
<t>The &quot;_for-sale&quot; leaf node name <bcp14>MAY</bcp14> be an alias, but if
that is the case, the CNAME record it is associated with it <bcp14>SHOULD</bcp14> also be
named &quot;_for-sale&quot;, for example:</t>

<artwork><![CDATA[_for-sale.example.com. IN CNAME _for-sale.example.org.
]]></artwork>
<t>However, processors <bcp14>MAY</bcp14> follow the CNAME pointers in other cases as well.</t>
</section>

<section anchor="placement-of-leaf-node-name"><name>Placement of leaf 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, with the exception of the .arpa infrastructure top-level domain.</t>
<t>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><xref target="placements"></xref> provides further clarification.</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>

<tr>
<td>_for-sale.51.198.in-addr.arpa</td>
<td>infrastructure TLD</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 "v=FORSALE1;https://buy.example.com/"
]]></artwork>
<t>An interested party notices this signal and can visit the URI mentioned for further information. The TXT record
may 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 "v=FORSALE1;mailto:owner@example.com"
]]></artwork>
<t>Or a telephone URI:</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "v=FORSALE1;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, with some additional unstructured information, aimed at
being human-readable:</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "v=FORSALE1;$500, info[at]example.com"
]]></artwork>
<t>A proprietary format, defined by a registry or registrar to automatically redirect visitors to a web page,
but without a clearly defined meaning to third parties:</t>

<artwork><![CDATA[_for-sale.example.com. IN TXT "v=FORSALE1;fscode=aHR0cHM...wbGUuY29t"
]]></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 "v=FORSALE1;<script>alert('')</script>"
]]></artwork>
</section>
</section>

<section anchor="guidelines"><name>Operational Guidelines</name>
<t>DNS wildcards interact poorly with underscored names. Therefore, the use of wildcards
is <bcp14>NOT RECOMMENDED</bcp14> when deploying this mechanism. However, wildcards may still be encountered
in practice, especially with operators who are not implementing this mechanism.
This is why the version tag is a <bcp14>REQUIRED</bcp14> element: it helps distinguish
valid &quot;_for-sale&quot; records from unrelated TXT records. Nonetheless, any assumptions about the
content of &quot;_for-sale&quot; TXT records <bcp14>SHOULD</bcp14> be made with caution.</t>
<t>It is also <bcp14>RECOMMENDED</bcp14> that the content string be limited to visible ASCII characters,
excluding the double quote (&quot;) and backslash (\).</t>
<t>In ABNF syntax, this would be:</t>

<artwork><![CDATA[forsale-content     = 0*244recommended-char
recommended-char    = %x20-21 / %x23-5B / %x5D-7E
]]></artwork>
</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
leaf node name defined in this specification should be added as follows:</t>
<table><name>Entry for the &quot;Underscored and Globally Scoped DNS Node Names&quot; registry
</name>
<thead>
<tr>
<th>RR Type</th>
<th>_NODE NAME</th>
<th>Reference</th>
</tr>
</thead>

<tbody>
<tr>
<td>TXT</td>
<td>_for-sale</td>
<td>TBD</td>
</tr>
</tbody>
</table><t>This specification does not require the creation of an IANA registry for record fields.</t>
<t>&lt;NOTE TO RFC EDITOR: Adjust the text in this section before publication.&gt;</t>
</section>

<section anchor="privacy"><name>Privacy Considerations</name>
<t>The use of the &quot;_for-sale&quot; leaf 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>An even more serious scenario occurs when 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 lure individuals into visiting certain sites or making contact by other
means, without there being any intention to actually sell the particular domain name. Therefore, this method is best suited for use 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>&lt;NOTE TO RFC EDITOR: Please remove this section before publication.&gt;</t>
</section>

<section anchor="acknowledgements"><name>Acknowledgements</name>
<t>The author would like to thank Thijs van den Hout, Caspar Schutijser, Melvin
Elderman, Paul Bakker and Ben van Hartingsveldt 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.5234.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7405.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.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"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9499.xml"/>
</references>
</references>

</back>

</rfc>
