<?xml version="1.0"	encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC1034 SYSTEM	"http://xml.resource.org/public/rfc/bibxml/reference.RFC.1034.xml">
<!ENTITY RFC1035 SYSTEM	"http://xml.resource.org/public/rfc/bibxml/reference.RFC.1035.xml">


]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes"	?>
<?rfc subcompact="no" ?>

<rfc category="info"	docName="draft-yao-dbound-identify-dns-boundary-00" ipr="pre5378Trust200902">
  <!-- category	values:	std, bcp, info,	exp, and historic -->

  <front>
	<title abbrev="dbound-identify-variant">
A Method for Identifying the Administrative Boundaries of DNS Names
	</title>

   <author	fullname="Jiankang Yao" initials="J." surname="Yao" >
	  <organization>CNNIC</organization>
	  <address>
	  <postal>
		<street>Building 4, No.9 Beijing Auto Museum West Road, Fengtai District</street>
		<city>Beijing</city>
		<region>Beijing</region>
		<code>100070</code>
		<country>China</country>
	  </postal>
	  <phone>+86 10	59116505</phone>
	  <email>yaojk@cnnic.cn</email>
	  </address>
	</author>
	
 <author	fullname="Hongbin Luo" initials="H" surname="Luo">
	  <organization>Beihang University</organization>
	  <address>
	  <postal>
		
		<region>Beijing</region>
		<code>100190</code>
		<country>China</country>
	  </postal>
	 
	  <email>luohb@buaa.edu.cn</email>
	  </address>
	</author>
	

	
	

	
	

	<date month="September" year="2025" />

	<area>Internet</area>

	<workgroup>Domain Boundaries</workgroup>

	<keyword>dbound dns variant</keyword>

	<abstract>
	  <t>
Two or more DNS names belonging to the same registrants may share the same
DNS administrative boundaries. Currently, there are no good methods to identify such shared administrative boundaries in DNS.
This document adds the function of lookup of domain name administrative
boundary to domain name system, which describes	a new method for using dbound resource
record for determining domain name administrative boundaries. 
	  </t>
	</abstract>
  </front>

  <middle>
	<section title="Introduction">
	  <t>
	Two or more DNS <xref
      target="RFC1034"/>  <xref
      target="RFC1035"/> names may have the same
administrative boundaries. If they share the same DNS
administrative boundaries, we regard that they have a
relationship. Otherwise they have not a relationship.
This document describes	a method for using dbound resource
record for judging domain name administrative boundaries.  	

The Domain Name System (DNS) currently lacks a standardized method to identify administrative
 boundaries between domain names owned by the same entity. 
 While multiple domains may belong to the same registrant,
 DNS does not natively express these relationships.  </t>



	  
	  
	  	  <t>
The drafts <xref
      target="Boundaries-Problem"/> <xref
      target="Boundaries-Concepts"/> list many use cases where 
some applications may use domain name administrative boundaries.
With the growth of Internet, there should have more Internet
applications which will use domain name administrative boundaries
technology. </t>
 <t>
 As the ICANN new gTLD program has expanded, registrants frequently obtain multiple domain names serving a common purpose. 
 Consequently, there is a need to develop a mechanism for determining when two or more domain names share administrative boundaries.

This requirement is equally critical for second-level domains (SLDs) within the same top-level domain (TLD). 
Numerous organizations manage multiple SLDs (e.g., variant1.tld, variant2.tld, variant3.tld) that operate under 
unified administrative control, yet lack a DNS-native means to express this relationship.
 </t>




	  
	</section>

	<section title="Terminology">

	  <t>

The basic DNS terms used in this specification are defined in
the documents <xref target="RFC1034"/> and <xref target="RFC1035"/>.
The shared administrative boundaries of DNS names imply, at minimum, that such names are under the control of either the same registrant or cooperating registrants.

	  </t>


	</section>



	<section title="Framework">
	  <t>
This section presents a mechanism to lookup of the administrative boundary
between two domains.
   The mechanism defines a new resource record type (RRTYPE) called as Dbound to
   satisfy the requirements specified in the previous section.

 
  The RDATA for an Dbound RR consists of a 1 octet Flag field, a
   1 octet Reserved 1 field, a 1 octet Reserved 2 field, and a Anchor Name / Name Collection field.


	  </t>
	  <t>
   	<figure title=" The structure of RDATA of Dbound resource record">
<artwork><![CDATA[

                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Flag     |   Reserved 1  |   Reserved 2  |               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               /
/                  Anchor Name / Name Collection                /
/                                                               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
</figure>	
	  </t>
	  
	  
	  
	  
	  <t>
Flag:  <vspace blankLines="0" />      
   The Flag field identifies the usage of
Anchor Name / Name Collection field.<br/><br/>


  	  
		  If flag=0, the Anchor Name / Name Collection is the anchor name, and the anchor name will be the string of PSL. Through it, the DNS administrators can configure the relationship between the owner name and PSL. Those which point to the
		 PSL will share the same DNS administrative boundaries;<vspace blankLines="1" />&#10;&#13;<br/><br/>
		  If flag=1, the Anchor Name / Name Collection is the anchor name, and it means that dbound record is to try to build a connection between the owner name
		  and the anchor name which is a FQDN. Through it, the DNS administrators can configure the relationship between the owner name and the anchor name. Those which share the
		  same anchor name will share the same DNS administrative boundaries;<vspace blankLines="1" />&#10;&#13;<br/><br/>
		  If flag=2, the Anchor Name / Name Collection is the name collection, and the Name Collection will be a collection of names
		  which are supposed to share the same DNS boundaries under the same anchor name and will be separated by comma(,).
		  The owner name is some names' anchor name in other dbound RR.  Through it, the application can learn how many names share the same 
		  DNS boundaries under the owner name (some names' anchor name in other dbound RRs)<vspace blankLines="1" />&#10;&#13;<br/>
	  
	  	

    </t>
	 <t>

Reserved 1 field and Reserved 2 field:  <vspace blankLines="0" />    
    These two fields will be kept for the future use.
</t>



<t>
Anchor Name / Name Collection: <vspace blankLines="0" />
   There are two kinds of relationship mechanism, one is
   controlled by PSL; the other is specified by building the connection among names.<br/><br/>
   If Flag is 0, the Anchor Name / Name Collection field will have the value of PSL;<br/><br/>
    If Flag is 1, the Anchor Name / Name Collection field will have the value of the anchor name.
	The anchor name acts like a middleman. All names sharing the same administrative boundaries will point to the same anchor name;
	<br/><br/>
	If Flag is 2, the Anchor Name / Name Collection field will have the value of name collection with names separated by comma (,).
     </t>
	 
	</section>
	
	
		<section title="Application Algorithm for Dbound Query">
		
		<t>
		Given two domain names A and B  <vspace blankLines="0" /> <vspace blankLines="0" />  
  There are two cases where application can determin whether
  domain names A and B share the same administrative boundaries.
<br/><br/>

 
 Case 1: If A and B's flag value in the dbound record are 0, application should confirm 
 that the Anchor Name / Name Collection fields of both names have the value of PSL.<vspace blankLines="0" />
  
<br/><br/>
  Case 2: If A and B's flag value in the dbound record are 1, application should check whether the names point to the same
  anchor.<vspace blankLines="0" />  

</t>
		
		
	  <t>
 <vspace blankLines="1" />
Algorithm 1:<br/>
   1)When the application needs to know whether two names A and B
   share the same administrative boundary, it needs to do the following steps to
   confirm it. <br/><br/>

  Step 1, the application sends the query of A for dbound
  record to the DNS servers, and analyzes the
          response. If the application gets the dbound RR for A, it checks whether there is a dbound record with the flag value
of 0 or 1.	

          If the value of flag of A's dbound records is 0, go to step 2;
		  If the value of flag of A's dbound records is 1, go to step 3;
		  Otherwise, go to step 4;<br/><br/>
         	  
Step 2, the application sends the query of B for dbound record to the DNS servers, and analyzes the
          response. If the application gets the dbound RR, it checks this RR.
          If the value of flag of B's dbound records is 0, check whether the value of anchor name of A and B's dbound records are PSL.
          If yes, it means that A and B tend to enjoy the same administrative boundaries under the PSL. Then check the PSL to confirm whether A and B enjoy the same administrative boundaries. If yes, return the response and exit.    
          Otherwise
          go to step 4		  
	   <br/><br/>
   Step 3, the application sends the query of B for dbound record to the DNS servers, and analyzes the
          response. If the application gets the dbound RR, it checks this RR.
          If the value of flag of B's dbound records is 1, check whether the value of anchor name of A and B's dbound records are same.
          If yes, it means that A and B tend to enjoy the same administrative boundaries under the same anchor name. Then check the anchor name to confirm whether A and B enjoy the same administrative boundaries. That means If yes, the application should send the query of the anchor name for dbound record to the DNS servers, and analyzes the
          response. If the application gets the dbound RR, it checks this RR.
          If the value of flag of anchor's dbound records is 2, check whether the dbound record's value include A and B in its name collection. If yes, ten return the response and exit.  
          Otherwise
          go to step 4<br/><br/>


step 4,
 
 Exit and display some error information



	  </t>

	  
	  
	  
	  
	  
		<t>
		2)Given name A, check who shares the same administrative boundaries with A.  <vspace blankLines="0" /> <vspace blankLines="0" />  

  The application sends the query of A for dbound
  record to the DNS servers, and analyzes the
          response. If the application gets the dbound RR for A, it checks whether there is a dbound record with the flag value
of 2.
If yes, check the value of name collection of A's dbound record, find name list, check every name on the name list with A to confirm whether
they enjoy the same administrative boundaries via the method 1) which describes the case of two domain names A and B.

         

</t>



		<t>
		3)Given more names than two, check whether they shares the same administrative boundaries.  <vspace blankLines="0" /> <vspace blankLines="0" />  

  The application selects one of the names as A and check whether every other name share the same administrative boundaries with A
  via the the method 1) which describes the case of two domain names A and B.          

</t>
		
		

 <t>
For examples:

	  </t>
	  
	  	  <t>
EXAMPLE 1, if a.example and b.exmaple want to share the same DNS administrative boundaries, it can configure the following RRs:<vspace blankLines="0" /><br/><br/>
a.example dbound 1  c.example<vspace blankLines="0" /><br/>
b.example dbound 1  c.example<vspace blankLines="0" /><br/>
c.example dbound 2  a.example,b.example<vspace blankLines="0" /><br/><br/>

or the anchor name can also be one of the names who share the same DNS administrative boundaries:
<vspace blankLines="0" /><br/>
a.example dbound 1  b.exmaple<vspace blankLines="0" /><br/>
b.example dbound 1  b.example<vspace blankLines="0" /><br/>
b.example dbound 2  a.example,b.example<vspace blankLines="0" />
	  </t>

	  <t>
USAGE: if the application wants to check whether a.example and b.example share the same DNS boundaries, it find a.example and b.example share the same anchor under the flag's value of 1 under the RRs above, and verify that a.example and b.example share the same DNS boundaries.<vspace blankLines="0" /><br/><br/>
if the application wants to check which domain names share the same DNS boundaries with a.example, it find a.example and b.example are supposed to have the same DNS boundaries under the flag's value of 2, and verify that a.example and b.example share the same DNS boundaries through checking a.example and b.example sharing the same anchor under the flag's value of 1 .<vspace blankLines="0" />
	  </t>


	  <t>
EXAMPLE 2, if a.example and b.exmaple want to share the same DNS administrative boundaries under PSL, it can configure the following RRs:<vspace blankLines="0" /><br/>
a.example dbound 0   http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/
   effective_tld_names.dat?raw=1<vspace blankLines="0" /><br/>
b.example dbound 0   http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/
   effective_tld_names.dat?raw=1<vspace blankLines="0" /><br/>


	  </t>
	  <t>
USAGE: if the application wants to check whether a.example and b.example share the same dns boundaries, it find a.example and b.example share the same anchor under the flag's value of 0, and verify that a.example and b.example share the same dns boundaries via the PSL link.<vspace blankLines="0" />

	  </t>
	  
	  <t>
ADVANTAGES: This new mechanism builds a relationship through the anchor name (middleman) to
avoid to construct too many pairwise relationship. It will help to reduce the RRs configuration and checking when there are many domain names which are supposed to share
the same DNS boundaries.
	  </t>	  
	  
	  
	  
	  
	  
	  
	  
	  
	  
	  





	</section>
	
	
	
			<section title="Wildcard issue">
	  <t>
The parent name may announce that all names under it to share the same administrative boundaries with itself,
 but it needs two-way assertion here. Parents can say all its children are 
 under its control and share the same boundaries. In the other hand,
the children should confirm that they share the same boundary with its parents too.<br/><br/>


For example: <vspace blankLines="0" /><br/>
example.com dbound 1 example.com<vspace blankLines="0" /><br/>
*.example.com dbound 1 example.com<vspace blankLines="0" /><br/>
example.com dbound 2 example.com, *.example.com <vspace blankLines="1" /><br/>

It means that example.com and its children share the same administrative boundaries.
</t>


<t>
In some cases, the children may lose its parent's control by configure some DNS records for themselves.

The debound record has similar same limitation with the wildcard.
Wildcards work for the non-configured sub-domain names only. Those names which can not queried through wildcard will
not work for dbound too. Those names should configure their own dbound record separately instead of wildcard dbound configuration.

<vspace blankLines="1" />
For example: <vspace blankLines="0" /><br/>
If there is an A record at 
a.b.example.com, the wildcard will not match a.b.example.com or b.example.com.

In this exmaple, quering c.example.com will work if c.example.com  is not configured in some ways.
 
If there is a A record for a.b.example.com, it indicates that the a.b.exmaple.com or b.exmaple.com might exist.
 so under this situation, a.b.exmaple.com or b.exmaple.com should configure their own dbound record 
since a.b.exmaple.com or b.exmaple.com may be out of control of the parents. 

</t>


	</section>
	
	
	
	


	<section title="IANA Considerations" anchor="Iana">
	  <t>
The IANA should allocate the new DNS type for DBOUND. <vspace blankLines="0" />

   </t>
   
   
     <figure>
    <preamble>The template is as follows:</preamble>
    <artwork type="inline"><![CDATA[
RRTYPE: DBOUND
Number: TBD
Contact: IETF Chair
Description: Identifying the Administrative Boundaries of DNS Names.
Reference: This document
]]></artwork>
  </figure>
  


	</section>

	<section title="Security Considerations" anchor="security">
	  <t>
The introduction of the DBOUND (Domain Boundary) Resource Record (RR) to identify administrative 
boundaries in the DNS raises several security considerations that should be addressed.
Registrars and DNS operators should ensure that DBOUND records are correctly provisioned to
 avoid misconfigurations that could break domain validation logic.
Since DBOUND records define administrative ownership boundaries, they must be protected by DNSSEC 
to ensure data origin authentication and integrity. 
Without DNSSEC, an attacker could forge or modify DBOUND records, 
leading to incorrect assumptions about domain ownership.
	  </t>
	</section>

	
	
	
	


	<section title="Acknowledgements" anchor="Acknowledgements">
	  <t>
       Thanks a lot for WG discussion in dbound WG. Especially thanks for Andrew Sullivan and John R Levine's kind comments and helpful debate.
	  </t>
	</section>
	

	<section title="Change History"	anchor="Change">
	  <t>
		RFC	Editor:	Please remove this section.
	  </t>
	  
	  
	             <section anchor="intial-draft" numbered="true" toc="default">
        <name>draft-yao-dbound-dns-solution</name>
         <ol spacing="compact" type="1">
          <li>A Resource Record for DNS Administrative Boundaries</li>
          <li>This draft was creaded during the old DBOUND WG</li>
        </ol>
     </section>
	  
	  <section title="draft-yao-dbound-identify-DNS-boundary: Version 00">
		<t>
		  <list	style="symbols">
			<t>
			This draft was orginally discussed in IETF dbound working group. 
			It is one potential solution for DBOUND problem. The dbound WG closed without publishing any RFC.
			 The WG suggested the drafts in this WG to pursue the publication through independent stream.
			Since the ICANN's new gTLD program is coming in 2026 and many proposed IDN TLDs are name variants, the topic about how to identify DNS Administrative Boundaries becomes very important. So the author decides to update the draft.
			</t>
			
		  </list>
		</t>
	  </section>
	  


		  
	</section>
	
	

	
  </middle>

  <back>
	<references	title="Normative References">
			
			&RFC1034;

			
	 
&RFC1035;


	

	</references>

	<references	title="Informative References">
			

	


      <reference anchor='publicsuffix.org'> <!--  <xref target="publicsuffix.org"/>  -->
        <front>
          <title>Public Suffix List</title>

          <author >
            <organization>
              Mozilla Foundation
              </organization>
          </author>
		     <date />
        </front>
        <seriesInfo name='also known as:' value='Effective TLD (eTLD) List' />
        <format type='TXT'  
          target='http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1' />
			<annotation>https://publicsuffix.org/</annotation>
      </reference>

	  
	    <reference anchor='Boundaries-Problem'> <!--  <xref target="publicsuffix.org"/>  -->
        <front>
	
	     <title>
       DBOUND: DNS Administrative Boundaries Problem Statement
    </title>

    <author initials="A." surname="Sullivan" fullname="Andrew Sullivan">
      <organization>Dyn, Inc.</organization>
   
    </author>

    <author initials="J." surname="Hodges" fullname="Jeff Hodges">
      <organization>PayPal</organization>
     
    </author>
   
          <author fullname="John Levine" initials="J." surname="Levine">
    <organization>Taughannock Networks</organization>

      </author>
	  
	  <date year='2015' month='July' />
	       </front>
        <seriesInfo name='draft:' value='dbound problem' />
        <format type='TXT'  
          target='https://tools.ietf.org/html/draft-sullivan-dbound-problem-statement-01' />
			<annotation>https://tools.ietf.org/html/draft-sullivan-dbound-problem-statement-01</annotation>
      </reference>  
	  
	  	    <reference anchor='Boundaries-Concepts'> <!--  <xref target="publicsuffix.org"/>  -->
        <front>
	
	     <title>
       Concepts for Domain Name Relationships
    </title>

    <author initials="C." surname="Deccio" fullname="Casey Deccio">
      <organization>Verisign</organization>
   
    </author>

   
          <author fullname="John Levine" initials="J." surname="Levine">
    <organization>Taughannock Networks</organization>

      </author>
	  
	  <date year='2015' month='July' />
	       </front>
        <seriesInfo name='draft:' value='dbound concepts' />
        <format type='TXT'  
          target='https://tools.ietf.org/html/draft-deccio-dbound-name-relationships-00' />
			<annotation>https://tools.ietf.org/html/draft-deccio-dbound-name-relationships-00</annotation>
      </reference>  
	  
	  
	</references>
	   
	
  </back>
</rfc>
