| rfc9471.original.xml | rfc9471.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc [ | ||||
| <!ENTITY nbsp " "> | ||||
| <!ENTITY zwsp "​"> | ||||
| <!ENTITY nbhy "‑"> | ||||
| <!ENTITY wj "⁠"> | ||||
| ]> | ||||
| <!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Process or - mmark.miek.nl" --> | <!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Process or - mmark.miek.nl" --> | |||
| <rfc version="3" ipr="trust200902" docName="draft-ietf-dnsop-glue-is-not-optiona | ||||
| l-09" submissionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3 | <rfc version="3" ipr="trust200902" docName="draft-ietf-dnsop-glue-is-not-optiona | |||
| .org/2001/XInclude" updates="1034" indexInclude="false" consensus="true"> | l-09" number="9471" submissionType="IETF" category="std" consensus="true" xml:la | |||
| ng="en" xmlns:xi="http://www.w3.org/2001/XInclude" | ||||
| tocInclude="true" symRefs="true" sortRefs="true" updates="1034" obsoletes=""> | ||||
| <front> | <front> | |||
| <title>DNS Glue Requirements in Referral Responses</title><seriesInfo value="dra | <title abbrev="DNS Glue Requirements">DNS Glue Requirements in Referral Respon | |||
| ft-ietf-dnsop-glue-is-not-optional-09" stream="IETF" status="standard" name="Int | ses</title> | |||
| ernet-Draft"></seriesInfo> | ||||
| <author initials="M." surname="Andrews" fullname="M. Andrews"><organization>ISC< | <seriesInfo name="RFC" value="9471"/> | |||
| /organization><address><postal><street></street> | <author initials="M." surname="Andrews" fullname="M. Andrews"> | |||
| </postal><email>marka@isc.org</email> | <organization>ISC</organization> | |||
| </address></author><author initials="S." surname="Huque" fullname="Shumon Huque" | <address><postal><street></street> | |||
| ><organization>Salesforce</organization><address><postal><street></street> | </postal> | |||
| </postal><email>shuque@gmail.com</email> | <email>marka@isc.org</email> | |||
| </address></author><author initials="P." surname="Wouters" fullname="Paul Wouter | </address> | |||
| s"><organization>Aiven</organization><address><postal><street></street> | </author> | |||
| </postal><email>paul.wouters@aiven.io</email> | <author initials="S." surname="Huque" fullname="Shumon Huque"> | |||
| </address></author><author initials="D." surname="Wessels" fullname="Duane Wesse | <organization>Salesforce</organization> | |||
| ls"><organization>Verisign</organization><address><postal><street></street> | <address><postal><street></street> | |||
| </postal><email>dwessels@verisign.com</email> | </postal> | |||
| </address></author><date/> | <email>shuque@gmail.com</email> | |||
| <area>Operations</area> | </address> | |||
| <workgroup>DNSOP</workgroup> | </author><author initials="P." surname="Wouters" fullname="Paul Wouters"> | |||
| <organization>Aiven</organization> | ||||
| <address><postal><street></street> | ||||
| </postal> | ||||
| <email>paul.wouters@aiven.io</email> | ||||
| </address> | ||||
| </author><author initials="D." surname="Wessels" fullname="Duane Wessels"> | ||||
| <organization>Verisign</organization> | ||||
| <address><postal><street></street> | ||||
| </postal> | ||||
| <email>dwessels@verisign.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <date year="2023" month="September" /> | ||||
| <area>ops</area> | ||||
| <workgroup>dnsop</workgroup> | ||||
| <keyword>Glue Record</keyword> | ||||
| <keyword>In-Domain Name Server</keyword> | ||||
| <keyword>Sibling Domain Name Server</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>The DNS uses glue records to allow iterative clients to find the | <t>The DNS uses glue records to allow iterative clients to find the | |||
| addresses of name servers that are contained within a delegated zone. | addresses of name servers that are contained within a delegated zone. | |||
| Authoritative Servers are expected to return all available glue records for i n-domain name servers | Authoritative servers are expected to return all available glue records for i n-domain name servers | |||
| in a referral response. If message size constraints prevent the inclusion of all | in a referral response. If message size constraints prevent the inclusion of all | |||
| glue records for in-domain name servers, the server must set the TC flag to | glue records for in-domain name servers, the server must set the TC (Truncate | |||
| inform the client that the response is incomplete, and that the client | d) flag to | |||
| inform the client that the response is incomplete and that the client | ||||
| should use another transport to retrieve the full response. | should use another transport to retrieve the full response. | |||
| This document updates RFC 1034 to clarify correct server behavior.</t> | This document updates RFC 1034 to clarify correct server behavior.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="introduction"><name>Introduction</name> | <section anchor="introduction"><name>Introduction</name> | |||
| <t>The Domain Name System (DNS) <xref target="RFC1034"></xref>, <xref target="RF C1035"></xref> uses glue records | <t>The Domain Name System (DNS) <xref target="RFC1034"></xref> <xref target="RFC 1035"></xref> uses glue records | |||
| to allow iterative clients to find the addresses of name servers that are | to allow iterative clients to find the addresses of name servers that are | |||
| contained within a delegated zone. Glue records are added to the parent | contained within a delegated zone. Glue records are added to the parent | |||
| zone as part of the delegation process and returned in referral responses, | zone as part of the delegation process and returned in referral responses; | |||
| otherwise a resolver following the referral has no way of finding these | otherwise, a resolver following the referral has no way of finding these | |||
| addresses. Authoritative servers are expected to return all available | addresses. Authoritative servers are expected to return all available | |||
| glue records for in-domain name servers in a referral response. If message si ze constraints prevent the | glue records for in-domain name servers in a referral response. If message si ze constraints prevent the | |||
| inclusion of all glue records for in-domain name servers over the chosen tran | inclusion of all glue records for in-domain name servers over the chosen tran | |||
| sport, the server MUST set the | sport, the server <bcp14>MUST</bcp14> set the | |||
| TC (Truncated) flag to inform the client that the response is incomplete, | TC (Truncated) flag to inform the client that the response is incomplete | |||
| and that the client SHOULD use another transport to retrieve the full respons | and that the client <bcp14>SHOULD</bcp14> use another transport to retrieve t | |||
| e. This | he full response. This | |||
| document clarifies that expectation.</t> | document clarifies that expectation.</t> | |||
| <t>DNS responses sometimes contain optional data in the additional | <t>DNS responses sometimes contain optional data in the additional | |||
| section. In-domain glue records, however, are not optional. Several other | section. In-domain glue records, however, are not optional. Several other | |||
| protocol extensions, when used, are also not optional. This | protocol extensions, when used, are also not optional. This | |||
| includes TSIG <xref target="RFC8945"></xref>, OPT <xref target="RFC6891"></xr ef>, and SIG(0) <xref target="RFC2931"></xref>.</t> | includes TSIG <xref target="RFC8945"></xref>, OPT <xref target="RFC6891"></xr ef>, and SIG(0) <xref target="RFC2931"></xref>.</t> | |||
| <t>At the time of this writing, addresses (A or AAAA records) for | <t>At the time of this writing, addresses (A or AAAA records) for | |||
| a delegation's authoritative name servers are the only type of | a delegation's authoritative name servers are the only type of | |||
| glue defined for the DNS.</t> | glue defined for the DNS.</t> | |||
| <t>Note that this document only clarifies requirements of name server | <t>Note that this document only clarifies requirements for name server | |||
| software implementations. It does not introduce or change any requirements o | software implementations. It does not introduce or change any requirements r | |||
| n | egarding data placed in DNS zones or registries. | |||
| data placed in DNS zones or registries. | In other words, this document only makes requirements regarding "availab | |||
| In other words, this document only makes requirements on "available | le | |||
| glue records" (i.e., those given in a zone), but does not make | glue records" (i.e., those given in a zone) but does not make | |||
| requirements regarding their presence in a zone. | requirements regarding their presence in a zone. | |||
| If some glue records are absent from a given zone, an authoritative | If some glue records are absent from a given zone, an authoritative | |||
| name server may be unable to return a useful referral response for | name server may be unable to return a useful referral response for | |||
| the corresponding domain. The IETF may want to consider a separate | the corresponding domain. The IETF may want to consider a separate | |||
| update to the requirements for including glue in zone data, beyond | update to the requirements for including glue in zone data, beyond | |||
| those given in <xref target="RFC1034"></xref> and <xref target="RFC1035"></xr ef>.</t> | those given in <xref target="RFC1034"></xref> and <xref target="RFC1035"></xr ef>.</t> | |||
| <t>This document assumes a reasonable level of familiarity with DNS | <t>This document assumes a reasonable level of familiarity with DNS | |||
| operations and protocol terms. Much of the terminology is explained | operations and protocol terms. Much of the terminology is explained | |||
| in further detail in "DNS Terminology" <xref target="RFC8499"></xre f>.</t> | in further detail in "<xref target="RFC8499" format="title"/>" <xref target=" RFC8499" format="default"/>.</t> | |||
| <section anchor="reserved-words"><name>Reserved Words</name> | <section anchor="requirements-language"><name>Requirements Language</name> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", & | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| quot;SHALL", "SHALL NOT", | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NO | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
| T RECOMMENDED", "MAY", | "<bcp14>SHOULD NOT</bcp14>", | |||
| and "OPTIONAL" in this document are to be interpreted as described | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
| and only when, they | are to be interpreted as described in BCP 14 | |||
| appear in all capitals, as shown here.</t> | <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | |||
| when, they appear in all capitals, as shown here.</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="types-of-glue-in-referral-responses"><name>Types of Glue in Ref erral Responses</name> | <section anchor="types-of-glue-in-referral-responses"><name>Types of Glue in Ref erral Responses</name> | |||
| <t>This section describes different types of glue that may be found in | <t>This section describes different types of glue that may be found in | |||
| DNS referral responses. Note that the type of glue depends on | DNS referral responses. Note that the type of glue depends on | |||
| the QNAME. A particular name server (and its corresponding glue record) can be in-domain for one response | the QNAME. A particular name server (and its corresponding glue record) can be in-domain for one response | |||
| and in a sibling domain for another.</t> | and in a sibling domain for another.</t> | |||
| <section anchor="indomainglue"><name>Glue for In-Domain Name Servers</name> | <section anchor="indomainglue"><name>Glue for In-Domain Name Servers</name> | |||
| skipping to change at line 112 ¶ | skipping to change at line 149 ¶ | |||
| foo.test. 86400 IN NS ns2.foo.test. | foo.test. 86400 IN NS ns2.foo.test. | |||
| ;; ADDITIONAL SECTION: | ;; ADDITIONAL SECTION: | |||
| ns1.foo.test. 86400 IN A 192.0.2.1 | ns1.foo.test. 86400 IN A 192.0.2.1 | |||
| ns2.foo.test. 86400 IN AAAA 2001:db8::2:2 | ns2.foo.test. 86400 IN AAAA 2001:db8::2:2 | |||
| </artwork> | </artwork> | |||
| </section> | </section> | |||
| <section anchor="siblingglue"><name>Glue for Sibling Domain Name Servers</name> | <section anchor="siblingglue"><name>Glue for Sibling Domain Name Servers</name> | |||
| <t>Sibling domain name servers are NS records that are not contained in the dele gated | <t>Sibling domain name servers are NS records that are not contained in the dele gated | |||
| zone itself, but in another zone delegated from the same parent. In many | zone itself but rather are contained in another zone delegated from the same | |||
| cases, glue for sibling domain name servers are not strictly required for res | parent. In many | |||
| olution, since the resolver | cases, glue for sibling domain name servers is not strictly required for reso | |||
| lution, since the resolver | ||||
| can make follow-on queries to the sibling zone to resolve the name server | can make follow-on queries to the sibling zone to resolve the name server | |||
| addresses (after following the referral to the sibling zone). However, | addresses (after following the referral to the sibling zone). However, | |||
| most name server implementations today provide them as an optimization | most name server implementations today provide them as an optimization | |||
| to obviate the need for extra traffic from iterative resolvers.</t> | to obviate the need for extra traffic from iterative resolvers.</t> | |||
| <t>Here the delegating zone "test" contains two delegations for the | <t>Here, the delegating zone "test" contains two delegations for the | |||
| child zones "bar.test" and "foo.test":</t> | child zones "bar.test" and "foo.test":</t> | |||
| <artwork> bar.test. 86400 IN NS ns1.bar.test. | <artwork> bar.test. 86400 IN NS ns1.bar.test. | |||
| bar.test. 86400 IN NS ns2.bar.test. | bar.test. 86400 IN NS ns2.bar.test. | |||
| ns1.bar.test. 86400 IN A 192.0.2.1 | ns1.bar.test. 86400 IN A 192.0.2.1 | |||
| ns2.bar.test. 86400 IN AAAA 2001:db8::2:2 | ns2.bar.test. 86400 IN AAAA 2001:db8::2:2 | |||
| foo.test. 86400 IN NS ns1.bar.test. | foo.test. 86400 IN NS ns1.bar.test. | |||
| foo.test. 86400 IN NS ns2.bar.test. | foo.test. 86400 IN NS ns2.bar.test. | |||
| </artwork> | </artwork> | |||
| skipping to change at line 151 ¶ | skipping to change at line 188 ¶ | |||
| ns2.bar.test. 86400 IN AAAA 2001:db8::2:2 | ns2.bar.test. 86400 IN AAAA 2001:db8::2:2 | |||
| </artwork> | </artwork> | |||
| </section> | </section> | |||
| <section anchor="siblingcyclicglue"><name>Glue for Cyclic Sibling Domain Name Se rvers</name> | <section anchor="siblingcyclicglue"><name>Glue for Cyclic Sibling Domain Name Se rvers</name> | |||
| <t>The use of sibling domain name servers can introduce cyclic dependencies. Th is | <t>The use of sibling domain name servers can introduce cyclic dependencies. Th is | |||
| happens when one domain specifies name servers from a sibling domain, | happens when one domain specifies name servers from a sibling domain, | |||
| and vice versa. This type of cyclic dependency can only be | and vice versa. This type of cyclic dependency can only be | |||
| broken when the delegating name server includes glue for the sibling | broken when the delegating name server includes glue for the sibling | |||
| domain in a referral response.</t> | domain in a referral response.</t> | |||
| <t>Here the delegating zone "test" contains two delegations for the | <t>Here, the delegating zone "test" contains two delegations for the | |||
| child zones "bar.test" and "foo.test", and each use name | child zones "bar.test" and "foo.test", and each uses name | |||
| servers under | servers under | |||
| the other:</t> | the other:</t> | |||
| <artwork> bar.test. 86400 IN NS ns1.foo.test. | <artwork> bar.test. 86400 IN NS ns1.foo.test. | |||
| bar.test. 86400 IN NS ns2.foo.test. | bar.test. 86400 IN NS ns2.foo.test. | |||
| ns1.bar.test. 86400 IN A 192.0.2.1 | ns1.bar.test. 86400 IN A 192.0.2.1 | |||
| ns2.bar.test. 86400 IN AAAA 2001:db8::2:2 | ns2.bar.test. 86400 IN AAAA 2001:db8::2:2 | |||
| foo.test. 86400 IN NS ns1.bar.test. | foo.test. 86400 IN NS ns1.bar.test. | |||
| foo.test. 86400 IN NS ns2.bar.test. | foo.test. 86400 IN NS ns2.bar.test. | |||
| ns1.foo.test. 86400 IN A 192.0.2.3 | ns1.foo.test. 86400 IN A 192.0.2.3 | |||
| skipping to change at line 179 ¶ | skipping to change at line 216 ¶ | |||
| ;www.bar.test. IN A | ;www.bar.test. IN A | |||
| ;; AUTHORITY SECTION: | ;; AUTHORITY SECTION: | |||
| bar.test. 86400 IN NS ns1.foo.test. | bar.test. 86400 IN NS ns1.foo.test. | |||
| bar.test. 86400 IN NS ns2.foo.test. | bar.test. 86400 IN NS ns2.foo.test. | |||
| ;; ADDITIONAL SECTION: | ;; ADDITIONAL SECTION: | |||
| ns1.foo.test. 86400 IN A 192.0.2.3 | ns1.foo.test. 86400 IN A 192.0.2.3 | |||
| ns2.foo.test. 86400 IN AAAA 2001:db8::2:4 | ns2.foo.test. 86400 IN AAAA 2001:db8::2:4 | |||
| </artwork> | </artwork> | |||
| <t>In late 2021 the authors analyzed zone file data available from ICANN's | <t>In late 2021, the authors analyzed zone file data available from ICANN's | |||
| Centralized Zone Data Service <xref target="CZDS"></xref> and found 222 out o f approximately | Centralized Zone Data Service <xref target="CZDS"></xref> and found 222 out o f approximately | |||
| 209,000,000 total delegations that had only sibling domain NS RRs in a cyclic | 209,000,000 total delegations that had only sibling domain NS Resource Record s (RRs) in a cyclic | |||
| dependency as above.</t> | dependency as above.</t> | |||
| </section> | </section> | |||
| <section anchor="missing-glue"><name>Missing Glue</name> | <section anchor="missing-glue"><name>Missing Glue</name> | |||
| <t>An example of missing glue is included here, even though it can not be consid ered | <t>An example of missing glue is included here, even though it cannot be conside red | |||
| as a type of glue. While not common, real examples of responses | as a type of glue. While not common, real examples of responses | |||
| that lack required glue, and with TC=0, have been shown to occur and | that lack required glue, and with TC=0, have been shown to occur and | |||
| cause resolution failures.</t> | cause resolution failures.</t> | |||
| <t>The example below, from the dig command <xref target="DIG"></xref>, is based on a response observed in June 2020. The names have | <t>The example below, from the dig command <xref target="DIG"></xref>, is based on a response observed in June 2020. The names have | |||
| been altered to fall under documentation domains. It shows a case where none of | been altered to fall under documentation domains. It shows a case where none of | |||
| the glue records present in the zone fit into the available space of the UDP response, and | the glue records present in the zone fit into the available space of the UDP response, and | |||
| the TC flag was not set. While this example shows a referral with DNSSEC rec ords | the TC flag was not set. While this example shows a referral with DNSSEC rec ords | |||
| <xref target="RFC4033"></xref>, <xref target="RFC4034"></xref>, <xref target= "RFC4035"></xref>, this behavior has | <xref target="RFC4033"></xref> <xref target="RFC4034"></xref> <xref target="R FC4035"></xref>, this behavior has | |||
| been seen with plain DNS responses as well. Some records have | been seen with plain DNS responses as well. Some records have | |||
| been truncated for display purposes. Note that at the time of this | been truncated for display purposes. Note that at the time of this | |||
| writing, the servers originally responsible for this example have been update d and now correctly | writing, the servers originally responsible for this example have been update d and now correctly | |||
| set the TC flag.</t> | set the TC flag.</t> | |||
| <artwork> % dig +norec +dnssec +bufsize=512 +ignore @ns.example.net \ | <artwork> % dig +norec +dnssec +bufsize=512 +ignore @ns.example.net \ | |||
| rh202ns2.355.foo.example | rh202ns2.355.foo.example | |||
| ; <<>> DiG 9.15.4 <<>> +norec +dnssec +bufsize +ignor e \ | ; <<>> DiG 9.15.4 <<>> +norec +dnssec +bufsize +ignor e \ | |||
| @ns.example.net rh202ns2.355.foo.example | @ns.example.net rh202ns2.355.foo.example | |||
| skipping to change at line 235 ¶ | skipping to change at line 272 ¶ | |||
| foo.example. 3600 IN RRSIG DS 8 2 3600 ... | foo.example. 3600 IN RRSIG DS 8 2 3600 ... | |||
| </artwork> | </artwork> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="requirements"><name>Requirements</name> | <section anchor="requirements"><name>Requirements</name> | |||
| <t>This section describes updated requirements for including glue in DNS referra l responses.</t> | <t>This section describes updated requirements for including glue in DNS referra l responses.</t> | |||
| <section anchor="glue-for-in-domain-name-servers"><name>Glue for In-Domain Name Servers</name> | <section anchor="glue-for-in-domain-name-servers"><name>Glue for In-Domain Name Servers</name> | |||
| <t>This document clarifies that when a name server generates a referral | <t>This document clarifies that when a name server generates a referral | |||
| response, it MUST include all available glue records for in-domain name serve | response, it <bcp14>MUST</bcp14> include all available glue records for in-do | |||
| rs in the | main name servers in the | |||
| additional section, or MUST set TC=1 if constrained by message size.</t> | additional section or <bcp14>MUST</bcp14> set TC=1 if constrained by message | |||
| <t>At the time of writing, most iterative clients send initial queries | size.</t> | |||
| <t>At the time of this writing, most iterative clients send initial queries | ||||
| over UDP and retry over TCP upon receiving a response with the TC | over UDP and retry over TCP upon receiving a response with the TC | |||
| flag set. UDP responses are generally limited to between 1232 and 4096 | flag set. UDP responses are generally limited to between 1232 and 4096 | |||
| bytes, due to values commonly used for the EDNS0 UDP Message Size field | bytes, due to values commonly used for the EDNS0 UDP Message Size field | |||
| <xref target="RFC6891"></xref>, <xref target="FLAGDAY2020"></xref>. TCP resp onses are limited to 65,535 bytes.</t> | <xref target="RFC6891"></xref> <xref target="FLAGDAY2020"></xref>. TCP respo nses are limited to 65,535 bytes.</t> | |||
| </section> | </section> | |||
| <section anchor="glue-for-sibling-domain-name-servers"><name>Glue for Sibling Do main Name Servers</name> | <section anchor="glue-for-sibling-domain-name-servers"><name>Glue for Sibling Do main Name Servers</name> | |||
| <t>This document clarifies that when a name server generates a referral | <t>This document clarifies that when a name server generates a referral | |||
| response, it SHOULD include all available glue records in the | response, it <bcp14>SHOULD</bcp14> include all available glue records in the | |||
| additional section. If, after adding glue for all in-domain name servers, th e glue for all sibling domain name servers does not fit due to message size cons traints, | additional section. If, after adding glue for all in-domain name servers, th e glue for all sibling domain name servers does not fit due to message size cons traints, | |||
| the name server MAY set TC=1 but is not obligated to do so.</t> | the name server <bcp14>MAY</bcp14> set TC=1 but is not obligated to do so.</t | |||
| <t>Note that users may experience resolution failures for domains with cyclicall | > | |||
| y-dependent sibling name servers | <t>Note that users may experience resolution failures for domains with cyclicall | |||
| y dependent sibling name servers | ||||
| when the delegating name server chooses to omit the corresponding glue in a r eferral response. As described in | when the delegating name server chooses to omit the corresponding glue in a r eferral response. As described in | |||
| <xref target="siblingcyclicglue"></xref>, such domains are rare.</t> | <xref target="siblingcyclicglue"></xref>, such domains are rare.</t> | |||
| </section> | </section> | |||
| <section anchor="updates-to-rfc-1034"><name>Updates to RFC 1034</name> | <section anchor="update-to-rfc-1034"><name>Update to RFC 1034</name> | |||
| <t>Replace</t> | ||||
| <t>"Copy the NS RRs for the subzone into the authority section of the | <t>OLD:</t> | |||
| <blockquote><t>Copy the NS RRs for the subzone into the authority section of the | ||||
| reply. Put whatever addresses are available into the additional | reply. Put whatever addresses are available into the additional | |||
| section, using glue RRs if the addresses are not available from | section, using glue RRs if the addresses are not available from | |||
| authoritative data or the cache. Go to step 4."</t> | authoritative data or the cache. Go to step 4.</t></blockquote> | |||
| <t>with</t> | <t>NEW:</t> | |||
| <t>"Copy the NS RRs for the subzone into the authority section of the | <blockquote><t>Copy the NS RRs for the subzone into the authority section of the | |||
| reply. Put whatever NS addresses are available into the additional | reply. Put whatever NS addresses are available into the additional | |||
| section, using glue RRs if the addresses are not available from | section, using glue RRs if the addresses are not available from | |||
| authoritative data or the cache. If all glue RRs for in-domain name servers do not fit, set TC=1 in | authoritative data or the cache. If all glue RRs for in-domain name servers do not fit, set TC=1 in | |||
| the header. Go to step 4."</t> | the header. Go to step 4.</t></blockquote> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="security-considerations"><name>Security Considerations</name> | <section anchor="security-considerations"><name>Security Considerations</name> | |||
| <t>This document clarifies correct DNS server behavior and does not introduce | <t>This document clarifies correct DNS server behavior and does not introduce | |||
| any changes or new security considerations.</t> | any changes or new security considerations.</t> | |||
| </section> | </section> | |||
| <section anchor="operational-considerations"><name>Operational Considerations</n ame> | <section anchor="operational-considerations"><name>Operational Considerations</n ame> | |||
| <t>At the time of this writing, the behavior of most DNS server | <t>At the time of this writing, the behavior of most DNS server | |||
| implementations is to set the TC flag only if none of the available | implementations is to set the TC flag only if none of the available | |||
| glue records fit in a response over UDP transport. The updated | glue records fit in a response over UDP transport. The updated | |||
| requirements in this document might lead to an increase in the fraction | requirements in this document might lead to an increase in the fraction | |||
| of UDP responses with the TC flag set, and consequently an increase | of UDP responses with the TC flag set and, consequently, an increase | |||
| in the number of queries received over TCP transport.</t> | in the number of queries received over TCP transport.</t> | |||
| </section> | </section> | |||
| <section anchor="iana-considerations"><name>IANA Considerations</name> | <section anchor="iana-considerations"><name>IANA Considerations</name> | |||
| <t>There are no actions for IANA.</t> | <t>This document has no IANA actions.</t> | |||
| </section> | ||||
| <section anchor="acknowledgements"><name>Acknowledgements</name> | ||||
| <t>The authors wish to thank | ||||
| Joe Abley, | ||||
| David Blacka, | ||||
| Brian Dickson, | ||||
| Kazunori Fujiwara, | ||||
| Paul Hoffman, | ||||
| Geoff Huston, | ||||
| Jared Mauch, | ||||
| George Michaelson, | ||||
| Yasuhiro Orange Morishita, | ||||
| Benno Overeinder, | ||||
| John R Levine, | ||||
| Hugo Salgado, | ||||
| Shinta Sato, | ||||
| Puneet Sood, | ||||
| Petr Spacek, | ||||
| Ralf Weber, | ||||
| Tim Wicinski, | ||||
| Suzanne Woolf, | ||||
| and other members of the DNSOP working group | ||||
| for their input.</t> | ||||
| </section> | ||||
| <section anchor="changes"><name>Changes</name> | ||||
| <t>RFC Editor: Please remove this section before publication.</t> | ||||
| <t>This section lists substantial changes to the document as it is being worked | ||||
| on.</t> | ||||
| <t>From -01 to -02:</t> | ||||
| <ul> | ||||
| <li>Clarified that "servers" means "authoritative servers".< | ||||
| /li> | ||||
| <li>Clarified that "available glue" means "all available glue&quo | ||||
| t;.</li> | ||||
| <li>Updated examples and placed before RFC 1034 update.</li> | ||||
| </ul> | ||||
| <t>From -02 to -03:</t> | ||||
| <ul> | ||||
| <li>Clarified scope to focus only on name server responses, and not zone/registr | ||||
| y data.</li> | ||||
| <li>Reorganized with section 2 as Types of Glue and section 3 as Requirements.</ | ||||
| li> | ||||
| <li>Removed any discussion of promoted / orphan glue.</li> | ||||
| <li>Use appropriate documentation addresses and domain names.</li> | ||||
| <li>Added Sibling Cyclic Glue example.</li> | ||||
| </ul> | ||||
| <t>From -03 to -04:</t> | ||||
| <ul> | ||||
| <li>Use "referral glue" on the assumption that other types of glue may | ||||
| be defined in the future.</li> | ||||
| <li>Added Operational Considerations section.</li> | ||||
| <li>Note many current implementations set TC=1 only when no glue RRs fit. New r | ||||
| equirements may lead to more truncation and TCP.</li> | ||||
| <li>Sibling glue can be optional. Only require TC=1 when all in-domain glue RRs | ||||
| don't fit.</li> | ||||
| <li>Avoid talking about requirements for UDP/TCP specifically, and talk more gen | ||||
| erically about message size constraints regardless of transport.</li> | ||||
| </ul> | ||||
| <t>From -04 to -05:</t> | ||||
| <ul> | ||||
| <li>Reverting the -04 change to use the phrase "referral glue".</li> | ||||
| <li>Rephrase "in-domain glue" as "glue for in-domain name servers | ||||
| ".</li> | ||||
| <li>Rephrase "sibling glue" as "glue for sibling domain name serv | ||||
| ers".</li> | ||||
| <li>Expand paragraph noting this document does not make requirements about prese | ||||
| nce of glue in zones.</li> | ||||
| </ul> | ||||
| <t>From -05 to -06:</t> | ||||
| <ul> | ||||
| <li>More instances of rephrasing "in-domain glue" as "glue for in | ||||
| -domain name servers" (and for sibling glue).</li> | ||||
| </ul> | ||||
| <t>From -06 to -07:</t> | ||||
| <ul> | ||||
| <li>Change "NOT REQUIRED to set TC=1" to "MAY set TC=1 but is not | ||||
| obligated to do so."</li> | ||||
| </ul> | ||||
| <t>From -07 to -08:</t> | ||||
| <ul> | ||||
| <li>Update TSIG reference to RFC8945.</li> | ||||
| </ul> | ||||
| <t>From -08 to -09:</t> | ||||
| <ul> | ||||
| <li>Lowercase RFC2119 keywords in abstract</li> | ||||
| <li>Add informative reference to DNS terminology RFC</li> | ||||
| <li>Add informative reference to dig</li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references> | ||||
| <name>References</name> | ||||
| <references><name>Normative References</name> | <references><name>Normative References</name> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1034. | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1034.xml" | |||
| xml"/> | /> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1035. | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml" | |||
| xml"/> | /> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml" | |||
| xml"/> | /> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml" | |||
| xml"/> | /> | |||
| </references> | </references> | |||
| <references><name>Informative References</name> | <references><name>Informative References</name> | |||
| <reference anchor="CZDS" target="https://czds.icann.org/"> | <reference anchor="CZDS" target="https://czds.icann.org/"> | |||
| <front> | <front> | |||
| <title>Centralized Zone Data Service</title> | <title>Centralized Zone Data Service</title> | |||
| <author> | <author> | |||
| <organization>ICANN</organization> | <organization>ICANN</organization> | |||
| </author> | </author> | |||
| <date year="2022" month="January"></date> | <date/> | |||
| </front> | </front> | |||
| <refcontent></refcontent> | ||||
| </reference> | </reference> | |||
| <reference anchor="DIG" target="https://en.wikipedia.org/wiki/Dig_(command)"> | <reference anchor="DIG" target="https://en.wikipedia.org/wiki/Dig_(command)"> | |||
| <front> | <front> | |||
| <title>dig (command)</title> | <title>dig (command)</title> | |||
| <author> | <author> | |||
| <organization>Wikipedia</organization> | <organization>Wikipedia</organization> | |||
| </author> | </author> | |||
| <date year="2023" month="June"></date> | <date year="2023" month="September"></date> | |||
| </front> | </front> | |||
| <refcontent></refcontent> | ||||
| </reference> | </reference> | |||
| <reference anchor="FLAGDAY2020" target="https://dnsflagday.net/2020/"> | <reference anchor="FLAGDAY2020" target="https://dnsflagday.net/2020/"> | |||
| <front> | <front> | |||
| <title>DNS Flag Day 2020</title> | <title>DNS Flag Day 2020</title> | |||
| <author> | <author> | |||
| <organization>Various DNS software and service providers</organization> | <organization>Various DNS software and service providers</organization> | |||
| </author> | </author> | |||
| <date year="2020" month="Oct"></date> | <date year="2020" month="October"></date> | |||
| </front> | </front> | |||
| <refcontent></refcontent> | ||||
| </reference> | </reference> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2931. | ||||
| xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2931.xml" | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4033. | /> | |||
| xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml" | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4034. | /> | |||
| xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml" | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4035. | /> | |||
| xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4035.xml" | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6891. | /> | |||
| xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6891.xml" | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8499. | /> | |||
| xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8499.xml" | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8945. | /> | |||
| xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8945.xml" | |||
| /> | ||||
| </references> | ||||
| </references> | </references> | |||
| <section anchor="acknowledgements" numbered="false"> | ||||
| <name>Acknowledgements</name> | ||||
| <t>The authors wish to thank | ||||
| <contact fullname="Joe Abley"/>, | ||||
| <contact fullname="David Blacka"/>, | ||||
| <contact fullname="Brian Dickson"/>, | ||||
| <contact fullname="Kazunori Fujiwara"/>, | ||||
| <contact fullname="Paul Hoffman"/>, | ||||
| <contact fullname="Geoff Huston"/>, | ||||
| <contact fullname="John R. Levine"/>, | ||||
| <contact fullname="Jared Mauch"/>, | ||||
| <contact fullname="George Michaelson"/>, | ||||
| <contact fullname="Yasuhiro Orange Morishita"/>, | ||||
| <contact fullname="Benno Overeinder"/>, | ||||
| <contact fullname="Hugo Salgado"/>, | ||||
| <contact fullname="Shinta Sato"/>, | ||||
| <contact fullname="Puneet Sood"/>, | ||||
| <contact fullname="Petr Spacek"/>, | ||||
| <contact fullname="Ralf Weber"/>, | ||||
| <contact fullname="Tim Wicinski"/>, | ||||
| <contact fullname="Suzanne Woolf"/>, | ||||
| and other members of the DNSOP Working Group | ||||
| for their input.</t> | ||||
| </section> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 42 change blocks. | ||||
| 206 lines changed or deleted | 170 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||