rfc9664.original.xml | rfc9664.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | ||||
<rfc category="std" submissionType="IETF" docName="draft-ietf-dnssd-update-lease | ||||
-08" ipr="trust200902" | ||||
xmlns:xi="http://www.w3.org/2001/XInclude" version="3" | ||||
scripts="Common,Latin" sortRefs="false" consensus="true" | ||||
symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en"> | ||||
<front> | ||||
<title abbrev='Dynamic DNS Update Leases'> | ||||
An EDNS(0) option to negotiate Leases on DNS Updates | ||||
</title> | ||||
<author initials='S' surname='Cheshire' fullname='Stuart Cheshire'> | <!DOCTYPE rfc [ | |||
<!ENTITY nbsp " "> | ||||
<!ENTITY zwsp "​"> | ||||
<!ENTITY nbhy "‑"> | ||||
<!ENTITY wj "⁠"> | ||||
]> | ||||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" submissionType="I | ||||
ETF" docName="draft-ietf-dnssd-update-lease-08" number="9664" updates="" obsolet | ||||
es="" ipr="trust200902" version="3" sortRefs="false" consensus="true" symRefs="t | ||||
rue" tocDepth="3" tocInclude="true" xml:lang="en"> | ||||
<front> | ||||
<title abbrev='Dynamic DNS Update Leases'>An EDNS(0) Option to Negotiate Lea | ||||
ses on DNS Updates</title> | ||||
<seriesInfo name="RFC" value="9664"/> | ||||
<author initials='S.' surname='Cheshire' fullname='Stuart Cheshire'> | ||||
<organization>Apple Inc.</organization> | <organization>Apple Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>One Apple Park Way</street> | <street>One Apple Park Way</street> | |||
<city>Cupertino</city> | <city>Cupertino</city> | |||
<region>California</region> | <region>CA</region> | |||
<code>95014</code> | <code>95014</code> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<phone>+1 408 974 3207</phone> | <phone>+1 408 974 3207</phone> | |||
<email>cheshire@apple.com</email> | <email>cheshire@apple.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="T" surname="Lemon" fullname="Ted Lemon"> | <author initials="T." surname="Lemon" fullname="Ted Lemon"> | |||
<organization>Apple Inc</organization> | <organization>Apple Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>P.O. Box 958</street> | <street>P.O. Box 958</street> | |||
<city>Brattleboro</city> | <city>Brattleboro</city> | |||
<region>Vermont</region> | <region>VT</region> | |||
<country>United States of America</country> | <country>United States of America</country> | |||
<code>05302</code> | <code>05302</code> | |||
</postal> | </postal> | |||
<email>mellon@fugue.com</email> | <email>mellon@fugue.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date>2023-07-07</date> | <date month="October" year="2024"/> | |||
<area>Internet</area> | <area>INT</area> | |||
<workgroup>Internet Engineering Task Force</workgroup> | <workgroup>dnssd</workgroup> | |||
<keyword>DNS Update</keyword> | <keyword>DNS Update</keyword> | |||
<abstract> | <abstract> | |||
<t>This document describes an EDNS(0) option that can be used by DNS Updat | <t>This document describes an Extension Mechanisms for DNS (EDNS(0)) optio | |||
e requestors and | n that can be used by DNS | |||
DNS servers to include a lease lifetime in a DNS Update or response, allow | Update requestors and DNS servers to include a lease lifetime in a DNS | |||
ing a server to garbage collect stale | Update or response, allowing a server to garbage collect stale resource | |||
resource records that have been added by DNS Updates</t> | records that have been added by DNS Updates.</t> | |||
</abstract> | </abstract> | |||
<note removeInRFC="true"> | ||||
<name>About This Document</name> | ||||
<t> | ||||
The latest revision of this draft can be found at <eref target="https:// | ||||
dnssd-wg.github.io/draft-ietf-dnssd-update-lease/draft-ietf-dnssd-update-lease.h | ||||
tml"/>. | ||||
Status information for this document may be found at <eref target="https | ||||
://datatracker.ietf.org/doc/draft-ietf-dnssd-update-lease/"/>. | ||||
</t> | ||||
<t> | ||||
Discussion of this document takes place on the | ||||
DNSSD Working Group mailing list (<eref target="mailto:dnssd@ietf.org"/> | ||||
), | ||||
which is archived at <eref target="https://mailarchive.ietf.org/arch/bro | ||||
wse/dnssd/"/>. | ||||
Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dnssd/" | ||||
/>. | ||||
</t> | ||||
<t>Source for this draft and an issue tracker can be found at | ||||
<eref target="https://github.com/dnssd-wg/draft-ietf-dnssd-update-lease" | ||||
/>.</t> | ||||
</note> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<section> | <section> | |||
<name>Introduction</name> | <name>Introduction</name> | |||
<t>Dynamic DNS Update <xref target="RFC2136"/> allows for a mapping from a persistent | <t>A Dynamic DNS Update <xref target="RFC2136"/> allows for a mapping from a persistent | |||
hostname to a dynamic IP address. This capability is particularly | hostname to a dynamic IP address. This capability is particularly | |||
beneficial to mobile hosts, whose IP address may frequently change | beneficial to mobile hosts, whose IP address may frequently change | |||
with location. However, the mobile nature of such hosts often means | with location. However, the mobile nature of such hosts often means | |||
that dynamically updated resource records are not properly | that dynamically updated resource records are not properly | |||
deleted. Consider, for instance, a mobile user who publishes address | deleted. For instance, consider a mobile user who publishes address | |||
records via dynamic update. If this user moves | records via dynamic update. If this user moves | |||
their laptop out of range of the Wi-Fi access point, | their laptop out of range of the Wi-Fi access point, | |||
the address record containing stale information | the address record containing stale information | |||
may remain on the server indefinitely. | may remain on the server indefinitely. | |||
An extension to Dynamic Update is | Thus, an extension to Dynamic Update is | |||
thus required to tell the server to automatically delete resource | required to tell the server to automatically delete resource | |||
records if they are not refreshed after a period of time.</t> | records if they are not refreshed after a period of time.</t> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>Conventions and Terminology Used in this Document</name> | <name>Conventions and Terminology Used in This Document</name> | |||
<t> | <t> | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOU | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
LD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as described | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
in BCP 14 <xref target="RFC2119"/> | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
<xref target="RFC8174"/> when, and only when, they appear in all capital | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
s, as shown here. | be interpreted as | |||
</t> | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | |||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
<section> | <section> | |||
<name>Abbreviations</name> | <name>Abbreviations</name> | |||
<dl> | <dl> | |||
<dt>DNS-SD</dt><dd>DNS-based service discovery <xref target="RFC6763"/> | <dt>DNS-SD:</dt><dd>DNS-based Service Discovery <xref target="RFC6763"/ | |||
</dd> | ></dd> | |||
<dt>EDNS(0)</dt><dd>Extension Mechanisms for DNS, version 0 <xref targe | <dt>EDNS(0):</dt><dd>Extension Mechanisms for DNS <xref target="RFC6891 | |||
t="RFC6891"/></dd> | "/></dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>Mechanisms</name> | <name>Mechanisms</name> | |||
<t>The EDNS(0) Update Lease option is included in a standard DNS Update me ssage <xref | <t>The EDNS(0) Update Lease option is included in a standard DNS Update me ssage <xref | |||
target="RFC2136"/> within an EDNS(0) OPT pseudo-RR <xref target="RFC6891"/ >.</t> | target="RFC2136"/> within an EDNS(0) OPT pseudo-RR <xref target="RFC6891"/ >.</t> | |||
</section> | </section> | |||
<section anchor="update"> | <section anchor="update"> | |||
<name>Update Message Format</name> | <name>Update Message Format</name> | |||
<!--[rfced] We had two related questions about these sentences: | ||||
a) We were unsure if some singular/plural changes should be made with | ||||
regard to "Leases". See suggested text below. | ||||
b) Should the use of "DNS" be made uniform? That is, "Dynamic DNS | ||||
Update Leases Requests and Responses" or "Dynamic Update Leases | ||||
Requests and Responses"? | ||||
Original 1: | ||||
Dynamic DNS Update Leases Requests and Responses are formatted as | ||||
standard DNS Dynamic Update messages [RFC2136]. This update MUST | ||||
include the EDNS(0) OPT RR, as described in [RFC6891]. | ||||
Perhaps ("Leases" becomes "Lease" and "This update" becomes "These | ||||
updates"): | ||||
Dynamic DNS Update Lease Requests and Responses are formatted as | ||||
standard DNS Dynamic Update messages [RFC2136]. These updates MUST | ||||
include the EDNS(0) OPT RR, as described in [RFC6891]. | ||||
or perhaps ("Leases" becomes "Lease" and "These updates" becomes "This | ||||
new format"): | ||||
Dynamic DNS Update Lease Requests and Responses are formatted as | ||||
standard DNS Dynamic Update messages [RFC2136]. This new format | ||||
MUST include the EDNS(0) OPT RR, as described in [RFC6891]. | ||||
Original 2: | ||||
Refresh messages are formatted like Dynamic Update Leases Requests | ||||
and Responses... | ||||
Perhaps ("Leases" becomes "Lease"): | ||||
Refresh messages are formatted like Dynamic Update Lease Requests | ||||
and Responses... | ||||
--> | ||||
<t> | <t> | |||
Dynamic DNS Update Leases Requests and Responses are formatted as standard DNS Dynamic | Dynamic DNS Update Leases Requests and Responses are formatted as standard DNS Dynamic | |||
Update messages <xref target="RFC2136"/>. This update MUST include the EDN | Update messages <xref target="RFC2136"/>. This update <bcp14>MUST</bcp14> | |||
S(0) OPT RR, as | include the EDNS(0) OPT RR, as | |||
described in <xref target="RFC6891"/>. This OPT RR MUST include an EDNS(0 | described in <xref target="RFC6891"/>. This OPT RR <bcp14>MUST</bcp14> in | |||
) Option as shown | clude an EDNS(0) Option as shown | |||
below.</t> | below.</t> | |||
<t>The Update Lease EDNS(0) option is formatted as follows:</t> | <t>The Update Lease EDNS(0) option is formatted as follows:</t> | |||
<figure align="center" anchor="lease_opt" suppress-title="true"><artwork align=" | <table anchor="lease_opt"> | |||
center"><![CDATA[ | <name></name> | |||
Field Name Field Type Description | <thead> | |||
OPTION-CODE u_int16_t UPDATE-LEASE (2) | <tr> | |||
OPTION-LENGTH u_int16_t 4 or 8 | <th>Field Name</th> | |||
LEASE u_int32_t desired lease (request) or | <th>Field Type</th> | |||
granted lease (response), in seconds | <th>Description</th> | |||
KEY-LEASE u_int32_t optional desired (or granted) | </tr> | |||
lease for KEY records, in seconds | </thead> | |||
]]></artwork></figure> | <tbody> | |||
<tr> | ||||
<td>OPTION-CODE</td> | ||||
<td>u_int16_t</td> | ||||
<td>UPDATE-LEASE (2)</td> | ||||
</tr> | ||||
<tr> | ||||
<td>OPTION-LENGTH</td> | ||||
<td>u_int16_t</td> | ||||
<td>4 or 8</td> | ||||
</tr> | ||||
<tr> | ||||
<td>LEASE</td> | ||||
<td>u_int32_t</td> | ||||
<td>desired lease (request) or granted lease (response), in seconds</td> | ||||
</tr> | ||||
<tr> | ||||
<td>KEY-LEASE</td> | ||||
<td>u_int32_t</td> | ||||
<td>optional desired (or granted) lease for KEY records, in seconds</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>Update Requests contain, in the LEASE field of the OPT RDATA, an | <t>Update Requests contain, in the LEASE field of the OPT RDATA, an | |||
unsigned 32-bit integer indicating the lease lifetime, in seconds, desired | unsigned 32-bit integer indicating the lease lifetime, in seconds, desired | |||
by the requestor, represented in network (big-endian) byte order. | by the requestor, represented in network (big-endian) byte order. | |||
In Update Responses, this field contains the actual | In Update Responses, this field contains the actual | |||
lease granted by the server. The lease granted by the | lease granted by the server. The lease granted by the | |||
server may be less than, greater than, or equal to the value | server may be less than, greater than, or equal to the value | |||
requested by the requestor.</t> | requested by the requestor.</t> | |||
<t>There are two variants of the EDNS(0) UPDATE-LEASE option, | <t>There are two variants of the EDNS(0) UPDATE-LEASE option: | |||
the basic (4-byte) variant and the extended (8-byte) variant.</t> | the basic (4-byte) variant and the extended (8-byte) variant.</t> | |||
<t>In the basic (4-byte) variant, the LEASE indicated in the | <t>In the basic (4-byte) variant, the LEASE indicated in the | |||
Update Lease option applies to all resource records in the Update section. </t> | Update Lease option applies to all resource records in the Update section. </t> | |||
<t>In the extended (8-byte) variant, the Update Lease communicates two lea se lifetimes. | <t>In the extended (8-byte) variant, the Update Lease communicates two lea se lifetimes. | |||
The LEASE indicated in the Update Lease option applies to all resource rec ords in the | The LEASE indicated in the Update Lease option applies to all resource rec ords in the | |||
Update section *except* for KEY records. The KEY-LEASE indicated in the U pdate Lease | Update section <em>except</em> for KEY records. The KEY-LEASE indicated i n the Update Lease | |||
option applies to KEY records in the Update section.</t> | option applies to KEY records in the Update section.</t> | |||
<t>The reason the KEY record can be given a special lease time is that thi | <t>The KEY record can be given a special lease time because this record is | |||
s record is used | used | |||
in the DNS-SD Service Registration Protocol <xref target="I-D.ietf-dnssd-s | in the DNS-SD Service Registration Protocol <xref target="RFC9665"/> to re | |||
rp"/> to reserve | serve | |||
a name (or names) when the service is not present.</t> | a name (or names) when the service is not present.</t> | |||
<t>In the case of a KEY record and some other record, obviously the KEY LE ASE applies to | <t>In the case of a KEY record and some other record, obviously the KEY LE ASE applies to | |||
the key, and the LEASE applies to the other record. If more than one recor d that is not | the key, and the LEASE applies to the other record. If more than one recor d that is not | |||
a KEY record is added by the update, the LEASE (not the KEY LEASE) is appl ied to all such | a KEY record is added by the update, the LEASE (not the KEY LEASE) is appl ied to all such | |||
records. Records that are removed are permanently removed.</t> | records. Records that are removed are permanently removed.</t> | |||
<section anchor="update-refresh"> | <section anchor="update-refresh"> | |||
<name>Types of DNS Update Request messages</name> | <name>Types of DNS Update Request Messages</name> | |||
<t>This document describes two types of updates: Registrations and Refres | <t>This document describes two types of updates: Registrations and | |||
hes. A | Refreshes. A Registration is a DNS Update Request that is intended to | |||
Registration is a DNS Update Request that is intended to add information | add information not already present on the DNS server. A Refresh is | |||
not already | intended simply to renew the lease on a previous Registration without | |||
present on the DNS server. A Refresh is intended simply to renew the leas | changing anything. Both messages are DNS Update messages, so the term | |||
e on a previous | "DNS Update message" is to specify behavior that is the same for both | |||
Registration without changing anything. Both messages are DNS Update mess | types of DNS Update messages.</t> | |||
ages, so the | ||||
term "DNS Update message" is to specify behavior that is the same for bot | ||||
h types of | ||||
DNS Update message.</t> | ||||
<t>In some cases it may be necessary to add new information without remov | <t>In some cases, it may be necessary to add new information without | |||
ing old information. | removing old information. For the purpose of this document, such | |||
For the purpose of this document, such messages are referred to as Regist | messages are Registrations, although in effect, they | |||
rations, although | may also refresh whatever information is unchanged from a previous | |||
in effect they may also refresh whatever information is unchanged from a | registration.</t> | |||
previous registration.</t> | ||||
</section> | </section> | |||
<section anchor="requestor"> | <section anchor="requestor"> | |||
<name>Requestor Behavior</name> | <name>Requestor Behavior</name> | |||
<t>DNS Update requestors MUST send an Update Lease option with any DNS Up | <t>DNS Update requestors <bcp14>MUST</bcp14> send an Update Lease | |||
date that is | option with any DNS Update that is not intended to be present | |||
not intended to be present indefinitely. The Update Lease option SHOULD s | indefinitely. The Update Lease option <bcp14>SHOULD</bcp14> specify a | |||
pecify a time | time interval that is no shorter than 1800 seconds (30 | |||
interval that is no shorter than 1800 seconds (30 minutes). Requestors MA | minutes). Requestors <bcp14>MAY</bcp14> specify a shorter lease if | |||
Y specify a | they anticipate that the records being updated will change in less than | |||
shorter lease if they anticipate that the records being updated will chan | 30 minutes. Requestors that expect the updated records to be | |||
ge sooner than | relatively static <bcp14>SHOULD</bcp14> request appropriately longer | |||
30 minutes. Requestors that expect the updated records to be relatively | leases.</t> | |||
static SHOULD | ||||
request appropriately longer leases.</t> | ||||
<t>If the DNS response received by the requestor does not include an Upda | <t>If the DNS response received by the requestor does not include an | |||
te Lease option, | Update Lease option, this is an indication that the DNS server does | |||
this is an indication that the DNS server does not support the Update Lea | not support the Update Lease option. In this case, the requestor | |||
se option. The | <bcp14>SHOULD</bcp14> continue sending Refresh messages (see below) as | |||
requestor SHOULD in this case continue sending Refresh messages (see belo | if the server had returned an identical update lease option in its | |||
w) as if the | response.</t> | |||
server had returned an identical update lease option in its response.</t> | ||||
<t>If the DNS response does include an Update Lease option, the requestor | <t>If the DNS response does include an Update Lease option, the | |||
MUST use the | requestor <bcp14>MUST</bcp14> use the interval or intervals returned in t | |||
interval(s) returned in this option when determining when to send Refresh | his | |||
messages. This | option when determining when to send Refresh messages. This is true | |||
is true both if the interval(s) returned by the server are shorter and if | both if the interval or intervals returned by the server are shorter and | |||
they are | if they | |||
longer.</t> | are longer.</t> | |||
<t>When sending a Registration, the requestor MUST delay the initial tran | <t>When sending a Registration, the requestor <bcp14>MUST</bcp14> | |||
smission by a | delay the initial transmission by a random amount of time across the | |||
random amount of time across the range of 0-3000 milliseconds, with a gra | range of 0-3000 milliseconds, with a granularity of no more than 10 | |||
nularity of no | milliseconds. This prevents synchronization of multiple devices of the | |||
more than 10 milliseconds. This prevents synchronization of multiple devi | same type at a site upon recovery from a power failure. This | |||
ces of the same | requirement applies only to the initial Registration on startup; since | |||
type at a site upon recovery from a power failure. This requirement appli | Refreshes include a random factor as well, any synchronization that | |||
es only to the | occurs after such an event should quickly randomize.</t> | |||
initial Registration on startup: since Refreshes include a random factor | ||||
as well, any | ||||
synchronization that occurs after such an event should quickly randomize. | ||||
</t> | ||||
<t>Note: the requirement for 10ms granularity is a scheduling requirement | <t>Note: the 10 ms granularity is a scheduling requirement intended to | |||
intended to | result in an even spread of requests so that every request doesn't come a | |||
result in an even spread of requests, so that every request doesn't come | n exact number | |||
an exact number | ||||
of seconds after startup. This requirement should not be construed as req uiring anything | of seconds after startup. This requirement should not be construed as req uiring anything | |||
of the link layer on which the packet is transmitted: the link layer may well impose its | of the link layer on which the packet is transmitted: the link layer may well impose its | |||
own constraints on the timing at which a message is sent, and this docume nt does not | own constraints on the timing at which a message is sent, and this docume nt does not | |||
claim to override such constraints.</t> | claim to override such constraints.</t> | |||
<t>Note: the reason for the 3000ms (three second) random interval as oppo sed to some | <t>Note: the use of a 3000 ms (3-second) random interval as opposed to so me | |||
other random interval is to allow for enough time to meaningfully spread the load when | other random interval is to allow for enough time to meaningfully spread the load when | |||
many devices renew at once, without delaying so long that the delay in di scovery of | many devices renew at once, without delaying so long that the delay in di scovery of | |||
devices becomes obvious to an end user. A 3-second random delay means tha | devices becomes obvious to an end user. A 3-second random delay means tha | |||
t if there are | t if there are, | |||
for example 100 devices, and the random number generator spread is even, | for example, 100 devices, and the random number generator spread is even, | |||
we would have | we would have | |||
one renewal every 30ms. In practice, on relatively constrained devices a | one renewal every 30 ms. In practice, on relatively constrained devices | |||
cting as SRP | acting as Service Registration Protocol (SRP) | |||
servers, we are seeing the processing time for an SRP registration taking on the order | servers, we are seeing the processing time for an SRP registration taking on the order | |||
of 7ms, so this seems reasonable.</t> | of 7 ms, so this seems reasonable.</t> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>Server Behavior</name> | <name>Server Behavior</name> | |||
<t>DNS Servers implementing the Update Lease option MUST include an Updat | ||||
e Lease option | <!--[rfced] Might the following update be less redundant than the | |||
in response to any successful DNS Update (RCODE=0) that includes an Updat | original? | |||
e Lease option. | ||||
Servers MAY return different lease interval(s) than specified by the requ | Original: | |||
estor, granting | DNS Servers implementing the Update Lease option MUST include an | |||
relatively longer or shorter leases to reduce network traffic due to Refr | Update Lease option in response to any successful DNS Update | |||
eshes, or | (RCODE=0) that includes an Update Lease option. | |||
reduce stale data, respectively.</t> | ||||
<t>Note that both the 4-byte and 8-byte variant are valid on both client | Perhaps: | |||
s and servers, but | DNS servers MUST include an Update Lease option in response to any | |||
clients and servers may exist that do not support the newer 8-byte varian | successful DNS Update (RCODE=0) that also includes one. | |||
t. Therefore, | --> | |||
clients and servers that do support this variant must account for the pos | ||||
sibility that | <t>DNS servers implementing the Update Lease option | |||
the server with which they are communicating does not.</t> | <bcp14>MUST</bcp14> include an Update Lease option in response to any | |||
<t>A client that receives a 4-byte variant from a server when it sent an | successful DNS Update (RCODE=0) that includes an Update Lease option. | |||
8-byte variant | Servers <bcp14>MAY</bcp14> return a different lease interval or intervals | |||
MUST treat the 4-byte variant as specifying both the lease time and the k | than | |||
ey lease time. | specified by the requestor, granting relatively longer or shorter | |||
A server that supports the 8-byte variant MUST treat the 4-byte variant a | leases to reduce network traffic due to Refreshes or to reduce stale | |||
s specifying | data, respectively.</t> | |||
both the lease time and the key lease time. When a server receives a 4-by | ||||
te variant, it | <t>Note that both the 4-byte and 8-byte variant are valid on | |||
MUST respond with a 4-byte variant. In this case the key and the other re | both clients and servers, but clients and servers may exist that do | |||
cords expire at | not support the newer 8-byte variant. Therefore, clients and servers | |||
the same time.</t> | that do support this variant must account for the possibility that the | |||
server with which they are communicating does not.</t> | ||||
<t>A client that receives a 4-byte variant from a server when it sent | ||||
an 8-byte variant <bcp14>MUST</bcp14> treat the 4-byte variant as | ||||
specifying both the lease time and the key lease time. A server that | ||||
supports the 8-byte variant <bcp14>MUST</bcp14> treat the 4-byte | ||||
variant as specifying both the lease time and the key lease time. When | ||||
a server receives a 4-byte variant, it <bcp14>MUST</bcp14> respond | ||||
with a 4-byte variant. In this case, the key and the other records | ||||
expire at the same time.</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="refresh"> | <section anchor="refresh"> | |||
<name>Refresh Messages</name> | <name>Refresh Messages</name> | |||
<t>A Refresh message is a DNS Update message that is sent to the server af ter an initial | <t>A Refresh message is a DNS Update message that is sent to the server af ter an initial | |||
DNS Update has been sent, in order to prevent the update's records from be ing garbage | DNS Update has been sent in order to prevent the update's records from bei ng garbage | |||
collected.</t> | collected.</t> | |||
<section> | <section> | |||
<name>Refresh Message Format</name> | <name>Refresh Message Format</name> | |||
<t>Refresh messages are formatted like Dynamic Update Leases Requests an | <t>Refresh messages are formatted like Dynamic Update Leases Requests | |||
d Responses (see | and Responses (see <xref target="update" format="default"/>). The Refres | |||
<xref target="update"/> "Update Message Format"). The Refresh message is | h message is constructed | |||
constructed with the assumption that the result of the previous Registra | with the assumption that the result of the previous Registration or | |||
tion or Refresh is | Refresh is still in effect. In the case that | |||
still in effect. The Refresh message will, in the case that the records | the records added in a previous update were for some reason garbage | |||
added in a | collected, the Refresh message will result in those records being added | |||
previous update were for some reason garbage collected, result in those | again.</t> | |||
records being | ||||
added again.</t> | ||||
<t>The Refresh message SHOULD NOT include any update prerequisites that w | <t>The Refresh message <bcp14>SHOULD NOT</bcp14> include any update | |||
ould fail if | prerequisites that would fail if the requestor's previous Registration | |||
the requestor's previous Registration or Refresh is still in effect. It a | or Refresh is still in effect. It also <bcp14>SHOULD NOT</bcp14> | |||
lso SHOULD NOT | include prerequisites that would fail if the records affected by the | |||
include prerequisites that would fail if the records affected by the prev | previous Registration or Refresh are no longer present; that is, the | |||
ious Registration or | Refresh should also work as a Registration. There may be cases where | |||
Refresh are no longer present--that is, the Refresh should also work as a | this is not possible; in which case, the response from the server can | |||
Registration. | be used to determine how to proceed when the Refresh fails.</t> | |||
There may be cases where this is not possible, in which case the response | ||||
from | ||||
the server can be used to determine how to proceed when the Refresh fails | ||||
.</t> | ||||
<t>An update message that changes the server state resulting from a previ ous Refresh or | <t>An update message that changes the server state resulting from a previ ous Refresh or | |||
Registration is a Registration, not a Refresh.</t> | Registration is a Registration, not a Refresh.</t> | |||
<t>The Update Lease option in a Refresh message contains the desired new lease for | <t>The Update Lease option in a Refresh message contains the desired new lease for | |||
Requests, and the actual granted lease for Responses. The LEASE interval indicated in the | Requests, and the actual granted lease for Responses. The LEASE interval indicated in the | |||
Update Lease option applies to all resource records in the Update section of the Refresh | Update Lease option applies to all resource records in the Update section of the Refresh | |||
request, except that if a KEY-LEASE interval is included as well, that in terval applies | request, except that if a KEY-LEASE interval is included as well, that in terval applies | |||
to any KEY records included in the Update section.</t> | to any KEY records included in the Update section.</t> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>Requestor Behavior</name> | <name>Requestor Behavior</name> | |||
<t>A requestor that intends that its records from a previous update, whet | <t>A requestor that intends for its records from a previous Registration | |||
her a Registration | or Refresh to remain active <bcp14>MUST</bcp14> | |||
or a Refresh, remain active, MUST send a Refresh message before the lease | send a Refresh message before the lease elapses; otherwise, the records | |||
elapses, or else the records | ||||
will be removed by the server.</t> | will be removed by the server.</t> | |||
<t>In order to prevent records expiring, requestors MUST refresh resource | <!--[rfced] May we update this text as follows to reduce redundancy? | |||
records before they | ||||
expire. At the time of registration, the client computes an interval that | ||||
is 80% of the lease | ||||
time plus a random offset between 0 and 5% of the lease time. The random | ||||
offset is to prevent | ||||
refreshes from being synchronized. When this interval has expired, the cl | ||||
ient MUST refresh the | ||||
message if the data in the initial Registration should continue to be adv | ||||
ertised.</t> | ||||
<t>For Refresh messages, the server is expected to return an Update Lease | Original: | |||
option, if | In order to prevent records expiring, requestors MUST refresh | |||
supported, just as with the initial Registration. As with the Registratio | resource records before they expire. | |||
n, the | ||||
requestor MUST use the interval(s) specified by the server when determini | ||||
ng when to send | ||||
the next Refresh message.</t> | ||||
<t>When sending Refresh messages, the requestor MUST include an Update Le | Perhaps: | |||
ase option, as | In order to prevent records expiring, requestors MUST refresh | |||
it did for the initial Registration. The Update Lease option MAY either s | them. | |||
pecify the same | --> | |||
intervals as in the initial Registration, or MAY use the values returned | ||||
by the server | <t>In order to prevent records expiring, requestors | |||
in the previous Update Response, whether it was a response to a Registrat | <bcp14>MUST</bcp14> refresh resource records before they expire. At | |||
ion a | the time of registration, the client computes an interval that is 80% | |||
Refresh. As with responses to Registrations, the requestor MUST use the i | of the lease time plus a random offset between 0% and 5% of the lease | |||
ntervals | time. The random offset is to prevent refreshes from being | |||
synchronized. When this interval has expired, the client | ||||
<bcp14>MUST</bcp14> refresh the message if the data in the initial | ||||
Registration should continue to be advertised.</t> | ||||
<t>For Refresh messages, the server is expected to return an Update | ||||
Lease option, if supported, just as with the initial Registration. As | ||||
with the Registration, the requestor <bcp14>MUST</bcp14> use the | ||||
intervals specified by the server when determining when to send the | ||||
next Refresh message.</t> | ||||
<t>When sending Refresh messages, the requestor <bcp14>MUST</bcp14> inclu | ||||
de an Update Lease option, as | ||||
it did for the initial Registration. | ||||
The Update Lease option <bcp14>MAY</bcp14> either specify the same | ||||
intervals as in the initial Registration or use the values returned by th | ||||
e server | ||||
in the previous Update Response, whether it was a response to a Registrat | ||||
ion or a | ||||
Refresh. As with responses to Registrations, the requestor <bcp14>MUST</b | ||||
cp14> use the interval or intervals | ||||
returned by the server in the response when determining when to send the next Refresh | returned by the server in the response when determining when to send the next Refresh | |||
message.</t> | message.</t> | |||
<section> | <section> | |||
<name>Coalescing Refresh Messages</name> | <name>Coalescing Refresh Messages</name> | |||
<t>If the requestor has performed multiple successful Registrations wi th a single server, | <t>If the requestor has performed multiple successful Registrations wi th a single server, | |||
the requestor MAY include Refreshes for all such Registrations to that server in a single | the requestor <bcp14>MAY</bcp14> include Refreshes for all such Regist rations to that server in a single | |||
message. This effectively places all records for a requestor on the sa me expiration | message. This effectively places all records for a requestor on the sa me expiration | |||
schedule, reducing network traffic due to Refreshes.</t> | schedule, reducing network traffic due to Refreshes.</t> | |||
<t>In doing so, the requestor includes in the Refresh message all exist ing updates to | <t>In doing so, the requestor includes in the Refresh message all exist ing updates to | |||
the server, including those not yet close to expiration, so long as at least one | the server, including those not yet close to expiration, so long as at least one | |||
resource record in the message has elapsed at least 75% of its original lease. If the | resource record in the message has elapsed at least 75% of its original lease. If the | |||
requestor uses UDP, the requestor MUST NOT coalesce Refresh messages if doing so would | requestor uses UDP, the requestor <bcp14>MUST NOT</bcp14> coalesce Refr esh messages if doing so would | |||
cause truncation of the message; in this case, the requestor should eit her send multiple | cause truncation of the message; in this case, the requestor should eit her send multiple | |||
messages or should use TCP to send the entire update at once.</t> | messages or use TCP to send the entire update at once.</t> | |||
<t>Requestors SHOULD NOT send a Refresh messages when all of the record s in the | <t>Requestors <bcp14>SHOULD NOT</bcp14> send Refresh messages when all of the records in the | |||
Refresh have more than 50% of their lease interval remaining before exp iry. However, | Refresh have more than 50% of their lease interval remaining before exp iry. However, | |||
there may be cases where the requestor needs to send an early Refresh, and it MAY do | there may be cases where the requestor needs to send an early Refresh, and it <bcp14>MAY</bcp14> do | |||
so. For example, a power-constrained (sleepy) device may need to send a n update when the radio | so. For example, a power-constrained (sleepy) device may need to send a n update when the radio | |||
is powered so as to avoid having to power it up later.</t> | is powered so as to avoid having to power it up later.</t> | |||
<t>Another case where this may be needed is if the lease interval regis tered with the | <t>Another case where this may be needed is if the lease interval regis tered with the | |||
server is no longer appropriate and the Requestor wishes to negotiate a different | server is no longer appropriate and the Requestor wishes to negotiate a different | |||
lease interval. However, in this case, if the server does not honor the requested | lease interval. However, in this case, if the server does not honor the requested | |||
interval in its response, the requestor MUST NOT retry this negotiation .</t> | interval in its response, the requestor <bcp14>MUST NOT</bcp14> retry t his negotiation.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>Server Behavior</name> | <name>Server Behavior</name> | |||
<t>Upon receiving a valid Refresh Request, the server MUST send an ackno wledgment. This | <t>Upon receiving a valid Refresh Request, the server <bcp14>MUST</bcp14 > send an acknowledgment. This | |||
acknowledgment is identical to the Update Response format described in < xref | acknowledgment is identical to the Update Response format described in < xref | |||
target="update"/> "Update Message Format", and contains the new lease of | target="update"/> and contains the new lease of the resource | |||
the resource | records being Refreshed. The server <bcp14>MUST NOT</bcp14> increment t | |||
records being Refreshed. The server MUST NOT increment the serial numbe | he serial number of a zone | |||
r of a zone | ||||
as the result of a Refresh.</t> | as the result of a Refresh.</t> | |||
<t>However, the server's state may not match what the client expects. In this case, a | <t>However, the server's state may not match what the client expects. In this case, a | |||
Refresh may actually appear to be a Registration, from the server's persp ective. If the | Refresh may actually appear to be a Registration, from the server's persp ective. If the | |||
Refresh changes the contents of the zone, the server MUST update the zone serial | Refresh changes the contents of the zone, the server <bcp14>MUST</bcp14> update the zone serial | |||
number.</t> | number.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>Retransmission Strategy</name> | <name>Retransmission Strategy</name> | |||
<t>The DNS protocol, including DNS updates, can operate over UDP or TCP. W hen using UDP, reliable | <t>The DNS protocol, including DNS updates, can operate over UDP or TCP. W hen using UDP, reliable | |||
transmission must be guaranteed by retransmitting if a DNS UDP message is not acknowledged in a | transmission must be guaranteed by retransmitting if a DNS UDP message is not acknowledged in a | |||
reasonable interval. <xref target="RFC1035" section="4.2.1" sectionFormat= "of"/> provides some | reasonable interval. <xref target="RFC1035" section="4.2.1" sectionFormat= "of"/> provides some | |||
guidance on this topic, as does <xref target="RFC1536" section="1" section Format="of"/>. | guidance on this topic, as does <xref target="RFC1536" section="1" section Format="of"/>. | |||
<xref target="RFC8085" section="3.1.3" sectionFormat="of"/> also provides useful guidance that | <xref target="RFC8085" section="3.1.3" sectionFormat="of"/> also provides useful guidance that | |||
is particularly relevant to DNS.</t> | is particularly relevant to DNS.</t> | |||
</section> | </section> | |||
<section> | <section> | |||
<name>Garbage Collection</name> | <name>Garbage Collection</name> | |||
<t>If the Update Lease of a resource record elapses without being refreshe d, the server | <t>If the Update Lease of a resource record elapses without being refreshe d, the server | |||
MUST NOT return the expired record in answers to queries. The server MAY d | <bcp14>MUST NOT</bcp14> return the expired record in answers to queries. T | |||
elete the record | he server <bcp14>MAY</bcp14> delete the record | |||
from its database. The lease interval(s) returned by the server to the req | from its database. The lease interval or intervals returned by the server | |||
uestor are used | to the requestor are used | |||
in determining when the lease on a resource record has expired.</t> | in determining when the lease on a resource record has expired.</t> | |||
<t>For all resource records other than a KEY record included in a DNS Upda te request, the | <t>For all resource records other than a KEY record included in a DNS Upda te request, the | |||
Update Lease is the LEASE value in the Update Lease option. For KEY record s, if the | Update Lease is the LEASE value in the Update Lease option. For KEY record s, if the | |||
optional KEY-LEASE value was included, this interval is used rather than t he interval | optional KEY-LEASE value was included, this interval is used rather than t he interval | |||
specified in LEASE. If KEY-LEASE was not specified, the interval specified in LEASE is | specified in the LEASE. If the KEY-LEASE was not specified, the interval s pecified in the LEASE is | |||
used. | used. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="Security Considerations"> | <section> | |||
<name>Security Considerations</name> | ||||
<t><xref target="RFC2136" section="8" sectionFormat="of"/> describes probl ems that can occur | <t><xref target="RFC2136" section="8" sectionFormat="of"/> describes probl ems that can occur | |||
around DNS updates. Servers implementing this specification should follow these recommendations.</t> | around DNS updates. Servers implementing this specification should follow these recommendations.</t> | |||
<t>Several additional issues can arise when relying on the Update Lease op tion. First, a | <t>Several additional issues can arise when relying on the Update Lease op tion. First, a | |||
too-long lease time is not much different than no lease time: the records associated with | too-long lease time is not much different than no lease time: the records associated with | |||
this lease time will effectively never be cleaned up. Servers implementing Update Lease | this lease time will effectively never be cleaned up. Servers implementing the Update Lease | |||
should have a default upper bound on the maximum acceptable value both for the LEASE and | should have a default upper bound on the maximum acceptable value both for the LEASE and | |||
KEY-LEASE values sent by the client. Servers MAY provide a way for the ope rator to change | KEY-LEASE values sent by the client. Servers <bcp14>MAY</bcp14> provide a way for the operator to change | |||
this upper limit. Default values for these limits of 24 hours and 7 days, respectively, | this upper limit. Default values for these limits of 24 hours and 7 days, respectively, | |||
are RECOMMENDED.</t> | are <bcp14>RECOMMENDED</bcp14>.</t> | |||
<t>The second issue is that a too-short lease can result in increased serv er load as | <t>The second issue is that a too-short lease can result in increased serv er load as | |||
requestors rapidly renew the lease. A delay in renewing could result in th e data being | requestors rapidly renew the lease. A delay in renewing could result in th e data being | |||
removed prematurely. Servers implementing Update Lease MUST have a defaul | removed prematurely. Servers implementing Update Lease <bcp14>MUST</bcp14 | |||
t minimum lease | > have a default minimum lease | |||
interval that avoids this issue. We RECOMMEND a minimum of 30 seconds for | interval that avoids this issue. | |||
both the LEASE | ||||
<!-- [rfced] We suggest the following update as BCP 14 uses | ||||
"RECOMMENDED" (with the -ed ending). Please let us know any | ||||
objections. | ||||
Current: | ||||
We RECOMMEND a minimum of 30 seconds for | ||||
both the LEASE and KEY-LEASE intervals. | ||||
Perhaps: | ||||
A minimum of 30 seconds for both the LEASE and KEY-LEASE | ||||
intervals is RECOMMENDED. | ||||
--> | ||||
We RECOMMEND a minimum of 30 seconds for both the LEASE | ||||
and KEY-LEASE intervals. However, in most cases, much longer lease times ( for example, an hour) | and KEY-LEASE intervals. However, in most cases, much longer lease times ( for example, an hour) | |||
are RECOMMENDED.</t> | are <bcp14>RECOMMENDED</bcp14>.</t> | |||
<t>There may be some cost associated with renewing leases. A malicious (or | <t>There may be some cost associated with renewing leases. A malicious | |||
buggy) client | (or buggy) client could renew at a high rate in order to overload the | |||
could renew at a high rate in order to overload the server more than it wo | server more than it would be overloaded by query traffic. This risk is | |||
uld be | present for a regular DNS update as well. The server <bcp14>MUST</bcp14> | |||
overloaded by query traffic. This risk is present for regular DNS update a | enforce a minimum interval between updates. After a Refresh or | |||
s well. The | Registration has been successfully processed and acknowledged, another | |||
server MUST enforce a minimum interval between updates. After a Refresh or | Update of either type from the client during that interval | |||
Registration | <bcp14>MUST</bcp14> be silently ignored by the server.</t> | |||
has been successfully processed and acknowledged, another Update of either | ||||
type from the | ||||
client during that interval MUST be silently ignored by the server.</t> | ||||
<t>Some authentication strategy should be used when accepting DNS updates. | <t>Some authentication strategy should be used when accepting DNS | |||
Shared secret | updates. A shared secret <xref target="RFC8945"/> or public key signing | |||
<xref target="RFC8945"/> or public key signing (e.g. SIG(0) <xref target=" | (e.g., SIG(0) <xref target="RFC2931"/>) should be required. Keys should | |||
RFC2931"/>) should be required. Keys should have limited | have limited authority: compromise of a key should not result in | |||
authority: compromise of a key should not result in compromise of the enti | compromise of the entire contents of one or more zones managed by the | |||
re contents of one | server. Key management strategy is out of scope for this document. An | |||
or more zones managed by the server. Key management strategy is out of sco | example of a key management strategy can be found in <xref | |||
pe for this document. | target="RFC9665"/>, which uses "First Come, First Served Naming" rather | |||
An example of a key management strategy can be found in <xref target="I-D. | than an explicit trust establishment process to confer update | |||
ietf-dnssd-srp"/>, | permission to a set of records.</t> | |||
which uses "first come, first-served naming" rather than an explicit trust | ||||
establishment process, | ||||
to confer update permission to a set of records.</t> | ||||
</section> | </section> | |||
<section> | <section> | |||
<name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
<t>The EDNS(0) OPTION CODE 2 has already been assigned for this DNS extens | <t>IANA has updated the "DNS EDNS0 Option Codes (OPT)" registry <xref targ | |||
ion. This | et="EDNS0Codes"/> as regards value 2 as follows:</t> | |||
document appears in the DNS EDNS0 Option Codes (OPT) registry <xref target | ||||
="EDNS0Codes"/> with the name 'UL' and the status 'On-hold,' and a | ||||
document reference to an older version of this document. When this documen | ||||
t has been | ||||
approved, the IANA is asked to update the registry as follows:</t> | ||||
<sourcecode> | ||||
OLD: | ||||
Value: 2 | ||||
Name: UL | ||||
Status: On-hold | ||||
Reference: http://files.dns-sd.org/draft-sekar-dns-ul.txt | ||||
NEW: | <dl newline="false" spacing="compact"> | |||
Value: 2 | <dt>Value:</dt> <dd>2</dd> | |||
Name: Update Lease | <dt>Name:</dt> <dd>Update Lease</dd> | |||
Status: Standard | <dt>Status:</dt> <dd>Standard</dd> | |||
Reference: [this document] | <dt>Reference:</dt> <dd>RFC 9664</dd> | |||
</sourcecode> | </dl> | |||
</section> | ||||
<section> | ||||
<name>Acknowledgments</name> | ||||
<t>Thanks to Marc Krochmal and Kiren Sekar for their work in 2006 on the p | ||||
recursor to this | ||||
document. Thanks also to Roger Pantos and Chris Sharp for their contribut | ||||
ions. Thanks to | ||||
Chris Box, Esko Dijk, Jonathan Hui, Peter van Dijk, Abtin Keshvarzian, Nat | ||||
han Dyck, Steve | ||||
Hanna, Gabriel Montenegro, Kangping Dong, and Tim Wicinski for their worki | ||||
ng group reviews of this document. | ||||
Thanks to David Dong, Olafur Gudmundsson, Brian Trammel, and Shivan Sahib | ||||
for their directorate | ||||
reviews and IANA reviews.</t> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<!-- This needLines directive is to keep the Authors' Addresses heading from bei | ||||
ng split from the list --> | ||||
<!-- <displayreference target="I-D.sctl-service-registration" to="RegProt"/> | ||||
--> | ||||
<!-- <displayreference target="I-D.ietf-dnssd-hybrid" to="I-D.ietf-dnssd-hyb | ||||
rid"/> appears to not work in xml2rfc 2.6.2 --> | ||||
<references title="Normative References"> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.1035.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.2136.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.6891.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8174.xml"/> | ||||
</references> | ||||
<references title="Informative References"> | <references> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | <name>References</name> | |||
.1536.xml"/> | <references> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | <name>Normative References</name> | |||
.2931.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.103 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | 5.xml"/> | |||
.6763.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.211 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | 9.xml"/> | |||
.8085.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.213 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | 6.xml"/> | |||
.8945.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.689 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I- | 1.xml"/> | |||
D.ietf-dnssd-srp.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.817 | |||
<reference anchor="EDNS0Codes" target="https://www.iana.org/assignments/dn | 4.xml"/> | |||
s-parameters/dns-parameters.xml"> | </references> | |||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.153 | ||||
6.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.293 | ||||
1.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.676 | ||||
3.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.808 | ||||
5.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.894 | ||||
5.xml"/> | ||||
<!-- [I-D.ietf-dnssd-srp] companion document RFC 9665--> | ||||
<reference anchor="RFC9665" target="https://www.rfc-editor.org/info/rfc966 | ||||
5"> | ||||
<front> | ||||
<title>Service Registration Protocol for DNS-Based Service Discovery</t | ||||
itle> | ||||
<author fullname="Ted Lemon" initials="T." surname="Lemon"> | ||||
<organization>Apple Inc.</organization> | ||||
</author> | ||||
<author fullname="Stuart Cheshire" initials="S." surname="Cheshire"> | ||||
<organization>Apple Inc.</organization> | ||||
</author> | ||||
<date month="October" year="2024"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9665"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9665"/> | ||||
</reference> | ||||
<reference anchor="EDNS0Codes" target="https://www.iana.org/assignments/dn | ||||
s-parameters"> | ||||
<front> | <front> | |||
<title>DNS EDNS0 Option Codes (OPT)</title> | <title>DNS EDNS0 Option Codes (OPT)</title> | |||
<author/> | <author> | |||
<date month="April" year="2023"/> | <organization>IANA</organization> | |||
</author> | ||||
</front> | </front> | |||
</reference> | </reference> | |||
</references> | ||||
</references> | </references> | |||
<section numbered="false"> | ||||
<name>Acknowledgments</name> | ||||
<t>Thanks to <contact fullname="Marc Krochmal"/> and <contact | ||||
fullname="Kiren Sekar"/> for their work in 2006 on the precursor to this | ||||
document. Thanks also to <contact fullname="Roger Pantos"/> and | ||||
<contact fullname="Chris Sharp"/> for their contributions. Thanks to | ||||
<contact fullname="Chris Box"/>, <contact fullname="Esko Dijk"/>, | ||||
<contact fullname="Jonathan Hui"/>, <contact fullname="Peter van | ||||
Dijk"/>, <contact fullname="Abtin Keshvarzian"/>, <contact | ||||
fullname="Nathan Dyck"/>, <contact fullname="Steve Hanna"/>, <contact | ||||
fullname="Gabriel Montenegro"/>, <contact fullname="Kangping Dong"/>, | ||||
and <contact fullname="Tim Wicinski"/> for their working group reviews | ||||
of this document. Thanks to <contact fullname="David Dong"/>, <contact | ||||
fullname="Olafur Gudmundsson"/>, <contact fullname="Brian Trammel"/>, | ||||
and <contact fullname="Shivan Sahib"/> for their directorate reviews and | ||||
IANA reviews.</t> | ||||
</section> | ||||
</back> | </back> | |||
<!--[rfced] We had the following questions related to terminology used | ||||
throughout the document: | ||||
We see the following similar terms. Please let us know if/how they | ||||
may be made uniform. | ||||
(4-byte) variant vs. 4-byte variant | ||||
(8-byte) variant vs. 8-byte variant | ||||
--> | ||||
<!-- [rfced] Please review whether any of the notes in this document | ||||
should be in the <aside> element. It is defined as "a container | ||||
for content that is semantically less important or tangential to | ||||
the content that surrounds it" | ||||
(https://authors.ietf.org/en/rfcxml-vocabulary#aside). | ||||
Specifically, we're referring to the instances of "Note:" in Section | ||||
4.2 and of "Note that" in Section 4.3. | ||||
--> | ||||
<!-- [rfced] Please review the "Inclusive Language" portion of the | ||||
online Style Guide | ||||
<https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
and let us know if any changes are needed. | ||||
Note that our script did not flag any words in particular, but this | ||||
should still be reviewed as a best practice. | ||||
--> | ||||
</rfc> | </rfc> | |||
End of changes. 67 change blocks. | ||||
349 lines changed or deleted | 449 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |