| rfc9803.original | rfc9803.txt | |||
|---|---|---|---|---|
| Registration Protocols Extensions (regext) G. Brown | Internet Engineering Task Force (IETF) G. Brown | |||
| Internet-Draft ICANN | Request for Comments: 9803 ICANN | |||
| Intended status: Standards Track 7 January 2025 | Category: Standards Track June 2025 | |||
| Expires: 11 July 2025 | ISSN: 2070-1721 | |||
| Extensible Provisioning Protocol (EPP) mapping for DNS Time-To-Live | Extensible Provisioning Protocol (EPP) Mapping for DNS Time-to-Live | |||
| (TTL) values | (TTL) Values | |||
| draft-ietf-regext-epp-ttl-18 | ||||
| Abstract | Abstract | |||
| This document describes an extension to the Extensible Provisioning | This document describes an extension to the Extensible Provisioning | |||
| Protocol (EPP) that allows EPP clients to manage the Time-To-Live | Protocol (EPP) that allows EPP clients to manage the Time-to-Live | |||
| (TTL) value for domain name delegation records. | (TTL) value for domain name delegation records. | |||
| About this draft | ||||
| This note is to be removed before publishing as an RFC. | ||||
| The source for this draft, and an issue tracker, may can be found at | ||||
| https://github.com/gbxyz/epp-ttl-extension. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 11 July 2025. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9803. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | ||||
| Please review these documents carefully, as they describe your rights | carefully, as they describe your rights and restrictions with respect | |||
| and restrictions with respect to this document. Code Components | to this document. Code Components extracted from this document must | |||
| extracted from this document must include Revised BSD License text as | include Revised BSD License text as described in Section 4.e of the | |||
| described in Section 4.e of the Trust Legal Provisions and are | Trust Legal Provisions and are provided without warranty as described | |||
| provided without warranty as described in the Revised BSD License. | in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 1.1. Conventions used in this document . . . . . . . . . . . . 4 | 1.1. Conventions Used in This Document | |||
| 1.2. Extension elements . . . . . . . . . . . . . . . . . . . 5 | 1.2. Extension Elements | |||
| 1.2.1. The <ttl:ttl> element . . . . . . . . . . . . . . . . 5 | 1.2.1. The <ttl:ttl> Element | |||
| 1.2.1.1. Element content . . . . . . . . . . . . . . . . . 5 | 1.2.1.1. Element Content | |||
| 1.2.1.2. Supported DNS record types . . . . . . . . . . . 6 | 1.2.1.2. Supported DNS Record Types | |||
| 1.2.1.3. The <ttl:info> element . . . . . . . . . . . . . 7 | 1.2.1.3. The <ttl:info> Element | |||
| 1.2.2. Examples . . . . . . . . . . . . . . . . . . . . . . 7 | 1.2.2. Examples | |||
| 1.2.2.1. Explicit TTL value (<create> or <update> | 1.2.2.1. Explicit TTL Value (<create> or <update> Command) | |||
| command) . . . . . . . . . . . . . . . . . . . . . 7 | 1.2.2.2. Explicit TTL Value (<info> Policy Mode) | |||
| 1.2.2.2. Explicit TTL value (<info> policy mode) . . . . . 7 | 1.2.2.3. Empty Value Indicating Default TTL (<create> or | |||
| 1.2.2.3. Empty value indicating default TTL (<create> or | <update> Command, <info> Default Mode) | |||
| <update> command, <info> default mode) . . . . . . 7 | 1.2.2.4. Custom Record Type (<create> or <update> Command, | |||
| 1.2.2.4. Custom record type (<create> or <update> command, | <info> Default Mode) | |||
| <info> default mode) . . . . . . . . . . . . . . . 7 | 2. EPP Command Mapping | |||
| 2. EPP command mapping . . . . . . . . . . . . . . . . . . . . . 8 | 2.1. EPP Query Commands | |||
| 2.1. EPP query commands . . . . . . . . . . . . . . . . . . . 8 | 2.1.1. EPP <info> Command | |||
| 2.1.1. EPP <info> command . . . . . . . . . . . . . . . . . 8 | 2.1.1.1. Default Mode | |||
| 2.1.1.1. Default Mode . . . . . . . . . . . . . . . . . . 8 | 2.1.1.2. Policy Mode | |||
| 2.1.1.2. Policy Mode . . . . . . . . . . . . . . . . . . . 11 | 2.2. EPP Transform Commands | |||
| 2.2. EPP transform commands . . . . . . . . . . . . . . . . . 14 | 2.2.1. EPP <create> Command | |||
| 2.2.1. EPP <create> command . . . . . . . . . . . . . . . . 14 | 2.2.2. EPP <update> Command | |||
| 2.2.2. EPP <update> command . . . . . . . . . . . . . . . . 16 | 3. Server Processing of TTL Values | |||
| 3. Server processing of TTL values . . . . . . . . . . . . . . . 18 | 3.1. Permitted Record Types | |||
| 3.1. Permitted record types . . . . . . . . . . . . . . . . . 18 | 3.2. Use of TTL Values in Delegation Records | |||
| 3.2. Use of TTL values in delegation records . . . . . . . . . 18 | 4. Out-of-Band Changes to TTL Values | |||
| 4. Out-of-band changes to TTL values . . . . . . . . . . . . . . 18 | 5. Operational Considerations | |||
| 5. Operational considerations . . . . . . . . . . . . . . . . . 18 | 5.1. Operational Impact of TTL Values | |||
| 5.1. Operational impact of TTL values . . . . . . . . . . . . 19 | 5.2. When TTL Values Should Be Changed | |||
| 5.2. When TTL values should be changed . . . . . . . . . . . . 19 | 5.3. Changes to Server Policy | |||
| 5.3. Changes to server policy . . . . . . . . . . . . . . . . 19 | 6. Security Considerations | |||
| 6. Security considerations . . . . . . . . . . . . . . . . . . . 19 | 6.1. Fast Flux DNS | |||
| 6.1. Fast-flux DNS . . . . . . . . . . . . . . . . . . . . . . 20 | 6.2. Compromised User Accounts | |||
| 6.2. Compromised user accounts . . . . . . . . . . . . . . . . 20 | 7. IANA Considerations | |||
| 7. IANA considerations . . . . . . . . . . . . . . . . . . . . . 20 | 7.1. XML Namespace | |||
| 7.1. XML namespace . . . . . . . . . . . . . . . . . . . . . . 20 | 7.2. EPP Extension Registry | |||
| 7.2. EPP extension registry . . . . . . . . . . . . . . . . . 21 | 8. Formal Syntax | |||
| 8. Formal syntax . . . . . . . . . . . . . . . . . . . . . . . . 21 | 9. References | |||
| 9. Implementation status . . . . . . . . . . . . . . . . . . . . 24 | 9.1. Normative References | |||
| 9.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 25 | 9.2. Informative References | |||
| 9.2. Pepper EPP Client . . . . . . . . . . . . . . . . . . . . 25 | Acknowledgments | |||
| 10. Change log . . . . . . . . . . . . . . . . . . . . . . . . . 25 | Author's Address | |||
| 10.1. Changes from 17 to 18 . . . . . . . . . . . . . . . . . 25 | ||||
| 10.2. Changes from 16 to 17 . . . . . . . . . . . . . . . . . 26 | ||||
| 10.3. Changes from 15 to 16 . . . . . . . . . . . . . . . . . 26 | ||||
| 10.4. Changes from 14 to 15 . . . . . . . . . . . . . . . . . 26 | ||||
| 10.5. Changes from 13 to 14 . . . . . . . . . . . . . . . . . 26 | ||||
| 10.6. Changes from 12 to 13 . . . . . . . . . . . . . . . . . 26 | ||||
| 10.7. Changes from 11 to 12 . . . . . . . . . . . . . . . . . 27 | ||||
| 10.8. Changes from 10 to 11 . . . . . . . . . . . . . . . . . 27 | ||||
| 10.9. Changes from 09 to 10 . . . . . . . . . . . . . . . . . 27 | ||||
| 10.10. Changes from 08 to 09 . . . . . . . . . . . . . . . . . 27 | ||||
| 10.11. Changes from 07 to 08 . . . . . . . . . . . . . . . . . 27 | ||||
| 10.12. Changes from 06 to 07 . . . . . . . . . . . . . . . . . 27 | ||||
| 10.13. Changes from 05 to 06 . . . . . . . . . . . . . . . . . 27 | ||||
| 10.14. Changes from 04 to 05 . . . . . . . . . . . . . . . . . 27 | ||||
| 10.15. Changes from 04 to 05 . . . . . . . . . . . . . . . . . 27 | ||||
| 10.16. Changes from 03 to 04 . . . . . . . . . . . . . . . . . 28 | ||||
| 10.17. Changes from 02 to 03 . . . . . . . . . . . . . . . . . 28 | ||||
| 10.18. Changes from 01 to 02 . . . . . . . . . . . . . . . . . 28 | ||||
| 10.19. Changes from 00 to 01 . . . . . . . . . . . . . . . . . 28 | ||||
| 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 29 | ||||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 29 | ||||
| 12.1. Normative references . . . . . . . . . . . . . . . . . . 29 | ||||
| 12.2. Informative references . . . . . . . . . . . . . . . . . 30 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 31 | ||||
| 1. Introduction | 1. Introduction | |||
| The principal output of any domain name registry system is a DNS zone | The principal output of any domain name registry system is a DNS zone | |||
| file, which contains the delegation record(s) for names registered | file, which contains the delegation record(s) for names registered | |||
| within a zone (such as a top-level domain). These records typically | within a zone (such as a top-level domain). These records typically | |||
| include one or more NS records, but may also include DS records for | include one or more NS records, but may also include DS records for | |||
| domains secured with DNSSEC ([RFC9364]), and DNAME records for IDN | domains secured with DNSSEC [RFC9364], and DNAME records for | |||
| variants ([RFC6927]). A and/or AAAA records may also be published | Internationalized Domain Name (IDN) variants [RFC6927]. A and/or | |||
| for nameservers where required by DNS resolvers to avoid an infinite | AAAA records may also be published for nameservers where they are | |||
| loop. | required by DNS resolvers to avoid an infinite loop. | |||
| Typically, the Time-To-Live value (TTL, see Section 5 of [RFC9499]) | Typically, the Time-to-Live (TTL) value (see Section 5 of [RFC9499]) | |||
| of these records is determined by the registry operator. However, in | of these records is determined by the registry operator. However, in | |||
| some circumstances it may be desirable to allow the sponsoring client | some circumstances it may be desirable to allow the sponsoring client | |||
| of a domain name to change the TTL values used for that domain's | of a domain name to change the TTL values used for that domain's | |||
| delegation: for example, to reduce the amount of time required to | delegation: for example, to reduce the amount of time required to | |||
| complete a change of DNS servers, DNSSEC deployment or key rollover, | complete a change of DNS servers, DNSSEC deployment or key rollover, | |||
| or to allow for fast rollback of such changes. | or to allow for fast rollback of such changes. | |||
| This document describes an EPP extension to the domain name and host | This document describes an EPP extension to the domain name and host | |||
| object mappings (described in [RFC5731] and [RFC5732], respectively) | object mappings (described in [RFC5731] and [RFC5732], respectively) | |||
| which allows the sponsor of a domain name or host object to change | that allows the sponsor of a domain name or host object to change the | |||
| the TTL values of the resource record(s) associated with that object. | TTL values of the resource record(s) associated with that object. It | |||
| It also describes how EPP servers should handle TTLs specified by EPP | also describes how EPP servers should handle TTLs specified by EPP | |||
| clients and how both parties co-ordinate to manage TTL values in | clients and how both parties coordinate to manage TTL values in | |||
| response to changes in operational or security requirements. | response to changes in operational or security requirements. | |||
| 1.1. Conventions used in this document | 1.1. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| In examples, "C:" represents lines sent by a protocol client and "S:" | In this document's examples, "C:" represents lines sent by a protocol | |||
| represents lines returned by a protocol server. Indentation and | client and "S:" represents lines returned by a protocol server. | |||
| white space in examples are provided only to illustrate element | Indentation and white space in these examples are provided only to | |||
| relationships and are not required features of this protocol. | illustrate element relationships and are not required features of | |||
| this protocol. | ||||
| A protocol client that is authorized to manage an existing object is | A protocol client that is authorized to manage an existing object is | |||
| described as a "sponsoring" client throughout this document. | described as a "sponsoring" client throughout this document. | |||
| XML is case sensitive. Unless stated otherwise, XML specifications | XML is case sensitive. Unless stated otherwise, the XML | |||
| and examples provided in this document MUST be interpreted in the | specifications and examples provided in this document MUST be | |||
| character case presented in order to develop a conforming | interpreted in the character case presented in order to develop a | |||
| implementation. | conforming implementation. | |||
| EPP uses XML namespaces to provide an extensible object management | EPP uses XML namespaces to provide an extensible object management | |||
| framework and to identify schemas required for XML instance parsing | framework and to identify schemas required for XML instance parsing | |||
| and validation. These namespaces and schema definitions are used to | and validation. These namespaces and schema definitions are used to | |||
| identify both the base protocol schema and the schemas for managed | identify both the base protocol schema and the schemas for managed | |||
| objects. | objects. | |||
| The XML namespace prefixes used in examples (such as the string ttl | The XML namespace prefixes used in these examples (such as the string | |||
| in ttl:create) are solely for illustrative purposes. A conforming | ttl in ttl:create) are solely for illustrative purposes. A | |||
| implementation MUST NOT require the use of these or any other | conforming implementation MUST NOT require the use of these or any | |||
| specific namespace prefixes. | other specific namespace prefixes. | |||
| In accordance with Section 3.2.2.1 of XML Schema Part 2: Datatypes | In accordance with Section 3.2.2.1 of XML Schema Part 2: Datatypes | |||
| [XSD-DATATYPES], the allowable lexical representations for the | [XSD-DATATYPES], the allowable lexical representations for the | |||
| xs:boolean datatype are the strings "0" and "false" for the concept | xs:boolean datatype are the strings "0" and "false" for the concept | |||
| 'false' and the strings "1" and "true" for the concept 'true'. | 'false' and the strings "1" and "true" for the concept 'true'. | |||
| Implementations MUST support both styles of lexical representation. | Implementations MUST support both styles of lexical representation. | |||
| 1.2. Extension elements | 1.2. Extension Elements | |||
| This extension adds additional elements to the EPP domain and host | This extension adds additional elements to the EPP domain and host | |||
| mappings. | mappings. | |||
| 1.2.1. The <ttl:ttl> element | 1.2.1. The <ttl:ttl> Element | |||
| The <ttl:ttl> element is used to define TTL values for the DNS | The <ttl:ttl> element is used to define TTL values for the DNS | |||
| resource records associated with domain and host objects. | resource records associated with domain and host objects. | |||
| <ttl:ttl> elements have the optional following attributes, depending | <ttl:ttl> elements have the optional following attributes, depending | |||
| on whether they appear in an EPP command or response: | on whether they appear in an EPP command or response: | |||
| 1. "for", which is REQUIRED in both commands and responses, and | "for" | |||
| which specifies the DNS record type to which the TTL value | REQUIRED in both commands and responses, and specifies the DNS | |||
| pertains. This attribute MUST have one of the following values: | record type to which the TTL value pertains. This attribute MUST | |||
| "NS", "DS", "DNAME", "A", "AAAA" or "custom"; | have one of the following values: "NS", "DS", "DNAME", "A", "AAAA" | |||
| or "custom". | ||||
| 2. If the value of the "for" attribute is "custom", then the | "custom" | |||
| <ttl:ttl> element MUST also have a "custom" attribute containing | If the value of the "for" attribute is "custom", then the | |||
| a DNS record type conforming with the regular expression in | <ttl:ttl> element MUST also have a "custom" attribute containing a | |||
| Section 3.1 of [RFC6895]. Additionally, the record type MUST be | DNS record type conforming with the regular expression in | |||
| registered with IANA in [IANA-RRTYPES]. | Section 3.1 of [RFC6895]. Additionally, the record type MUST be | |||
| registered with IANA in [IANA-RRTYPES]. | ||||
| 3. "min", which MUST NOT be present in EPP commands but MAY be | "min" | |||
| present in EPP responses (see Section 2.1.1), and which is used | MUST NOT be present in EPP commands but MAY be present in EPP | |||
| by the server to indicate the lowest value that may be set; | responses (see Section 2.1.1). It is used by the server to | |||
| indicate the lowest value that may be set. | ||||
| 4. "default", which MUST NOT be present in EPP commands but MAY be | "default" | |||
| present in EPP responses (see Section 2.1.1), and which is used | MUST NOT be present in EPP commands but MAY be present in EPP | |||
| by the server to indicate the default value; | responses (see Section 2.1.1). It is used by the server to | |||
| indicate the default value. | ||||
| 5. "max", which MUST NOT be present in EPP commands but MAY be | "max" | |||
| present in EPP responses (see Section 2.1.1), and which is used | MUST NOT be present in EPP commands but MAY be present in EPP | |||
| by the server to indicate the highest value that may be set; | responses (see Section 2.1.1). It is used by the server to | |||
| indicate the highest value that may be set. | ||||
| When present, the value of the "min" attribute MUST be lower than the | When present, the value of the "min" attribute MUST be lower than the | |||
| value of the "max" attribute. The "default" attribute MUST be | value of the "max" attribute. The "default" attribute MUST be | |||
| between the "min" and "max" values, inclusively. | between the "min" and "max" values, inclusively. | |||
| 1.2.1.1. Element content | 1.2.1.1. Element Content | |||
| The XML schema found in Section 8 of this document restricts the | The XML schema found in Section 8 of this document restricts the | |||
| content of <ttl:ttl> elements to be either: | content of <ttl:ttl> elements to be either: | |||
| 1. a non-negative integer, indicating the value of the TTL in | 1. a non-negative integer, indicating the value of the TTL in | |||
| seconds, or | seconds, or | |||
| 2. empty, in which case the server's default TTL for the given | 2. empty, in which case the server's default TTL for the given | |||
| record type is to be applied. | record type is to be applied. | |||
| 1.2.1.2. Supported DNS record types | 1.2.1.2. Supported DNS Record Types | |||
| To facilitate forward compatibility with future changes to the DNS | To facilitate forward compatibility with future changes to the DNS | |||
| protocol, this document does not enumerate or restrict the DNS record | protocol, this document does not enumerate or restrict the DNS record | |||
| types that can be included in the "custom" attribute of the <ttl:ttl> | types that can be included in the "custom" attribute of the <ttl:ttl> | |||
| element. | element. | |||
| The regular expression which is used to validate the values of the | The regular expression that is used to validate the values of the | |||
| "custom" attribute is based on the expression found in Section 3.1 of | "custom" attribute is based on the expression found in Section 3.1 of | |||
| [RFC6895], and is intended to match both existing and future RRTYPE | [RFC6895], and it is intended to match both existing and future | |||
| mnemonics. This eliminates the need to update this document in the | RRTYPE mnemonics. This eliminates the need to update this document | |||
| event that new DNS records that exist above a zone cut (Section 7 of | in the event that new DNS records that exist above a zone cut | |||
| [RFC9499]) are specified. | (Section 7 of [RFC9499]) are specified. | |||
| Nevertheless, EPP servers which implement this extension MUST | Nevertheless, EPP servers that implement this extension MUST restrict | |||
| restrict the DNS record types that are accepted in <create> and | the DNS record types that are accepted in <create> and <update> | |||
| <update> commands, and included in <info> responses, allowing only | commands, and included in <info> responses, allowing only those types | |||
| those types that are (a) registered in [IANA-RRTYPES] and (b) | that are (a) registered in [IANA-RRTYPES] and (b) appropriate for use | |||
| appropriate for use above a zone cut. | above a zone cut. | |||
| A server that receives a <create> or <update> command that attempts | A server that receives a <create> or <update> command that attempts | |||
| to set TTL values for inapplicable DNS record types MUST respond with | to set TTL values for inapplicable DNS record types MUST respond with | |||
| a 2306 "Parameter value policy" error. | a 2306 "Parameter value policy" error. | |||
| As an illustrative example, a server MAY allow clients to specify TTL | As an illustrative example, a server MAY allow clients to specify TTL | |||
| values for the following record types for domain objects: | values for the following record types for domain objects: | |||
| 1. NS; | 1. NS; | |||
| 2. DS (if the server also implements [RFC5910]); | 2. DS (if the server also implements [RFC5910]); | |||
| 3. DNAME (if the server implements IDN variants using DNAME | 3. DNAME (if the server implements IDN variants using DNAME | |||
| records). | records). | |||
| 1.2.1.2.1. Glue records | 1.2.1.2.1. Glue Records | |||
| Glue records are described in Section 7 of [RFC9499]. | Glue records are described in Section 7 of [RFC9499]. | |||
| Servers which implement host objects ([RFC5732]) MAY allow clients to | Servers that implement host objects [RFC5732] MAY allow clients to | |||
| specify TTL values for A and AAAA records for host objects. | specify TTL values for A and AAAA records for host objects. | |||
| A server supporting host objects which receives a command that | A server supporting host objects that receives a command that | |||
| attempts to set TTL values for A and AAAA records on a domain object | attempts to set TTL values for A and AAAA records on a domain object | |||
| MUST respond with a 2306 "Parameter value policy" error. | MUST respond with a 2306 "Parameter value policy" error. | |||
| EPP servers which use the "host attribute" model (described in | EPP servers that use the host attribute model (described in | |||
| Section 1.1 of [RFC5731]) MAY allow clients to specify TTL values for | Section 1.1 of [RFC5731]) MAY allow clients to specify TTL values for | |||
| A and AAAA records for domain objects. | A and AAAA records for domain objects. | |||
| 1.2.1.3. The <ttl:info> element | 1.2.1.3. The <ttl:info> Element | |||
| The <ttl:info> element is used by clients to request that the server | The <ttl:info> element is used by clients to request that the server | |||
| include additional information in <info> responses for domain and | include additional information in <info> responses for domain and | |||
| host objects. | host objects. | |||
| It has a single OPTIONAL policy attribute, which takes a boolean | It has a single OPTIONAL "policy" attribute, which takes a boolean | |||
| value with a default value of false. | value with a default value of "false". | |||
| The semantics of this element are described in Section 2.1.1. | The semantics of this element are described in Section 2.1.1. | |||
| 1.2.1.3.1. Example | Below is an example of a <ttl:info> element with an explicit "policy" | |||
| attribute: | ||||
| <ttl:info policy="true"/> | <ttl:info policy="true"/> | |||
| 1.2.2. Examples | 1.2.2. Examples | |||
| 1.2.2.1. Explicit TTL value (<create> or <update> command) | 1.2.2.1. Explicit TTL Value (<create> or <update> Command) | |||
| <ttl:ttl for="NS">3600</ttl:ttl> | <ttl:ttl for="NS">3600</ttl:ttl> | |||
| 1.2.2.2. Explicit TTL value (<info> policy mode) | 1.2.2.2. Explicit TTL Value (<info> Policy Mode) | |||
| <ttl:ttl | <ttl:ttl | |||
| for="NS" | for="NS" | |||
| min="60" | min="60" | |||
| default="86400" | default="86400" | |||
| max="172800">3600</ttl:ttl> | max="172800">3600</ttl:ttl> | |||
| 1.2.2.3. Empty value indicating default TTL (<create> or <update> | 1.2.2.3. Empty Value Indicating Default TTL (<create> or <update> | |||
| command, <info> default mode) | Command, <info> Default Mode) | |||
| <ttl:ttl for="NS"/> | <ttl:ttl for="NS"/> | |||
| 1.2.2.4. Custom record type (<create> or <update> command, <info> | 1.2.2.4. Custom Record Type (<create> or <update> Command, <info> | |||
| default mode) | Default Mode) | |||
| <ttl:ttl | <ttl:ttl | |||
| for="custom" | for="custom" | |||
| custom="NEWRRTYPE">3600</ttl:ttl> | custom="NEWRRTYPE">3600</ttl:ttl> | |||
| 2. EPP command mapping | 2. EPP Command Mapping | |||
| 2.1. EPP query commands | 2.1. EPP Query Commands | |||
| 2.1.1. EPP <info> command | 2.1.1. EPP <info> Command | |||
| This extension defines an additional element for EPP <info> commands | This extension defines an additional element for EPP <info> commands | |||
| and responses for domain and host objects. | and responses for domain and host objects. | |||
| The EPP <info> command is extended to support two different modes: | The EPP <info> command is extended to support two different modes: | |||
| 1. The Default Mode (Section 2.1.1.1), which requests the inclusion | 1. The Default Mode (Section 2.1.1.1), which requests the inclusion | |||
| of all non-default TTL values in the response; and | of all non-default TTL values in the response; and | |||
| 2. The Policy Mode (Section 2.1.1.2), which requests the inclusion | 2. The Policy Mode (Section 2.1.1.2), which requests the inclusion | |||
| of TTL information for all supported DNS record types in the | of TTL information for all supported DNS record types in the | |||
| response, along with the minimum, default and maximum values for | response, along with the minimum, default, and maximum values for | |||
| those records. | those records. | |||
| 2.1.1.1. Default Mode | 2.1.1.1. Default Mode | |||
| If a server receives an <info> command for a domain or host object | If a server receives an <info> command for a domain or host object | |||
| which includes a <ttl:info> element with a "policy" attribute that is | that includes a <ttl:info> element with a "policy" attribute that is | |||
| "0" or "false", then the EPP response MUST contain <ttl:ttl> records | "0" or "false", then the EPP response MUST contain <ttl:ttl> records | |||
| for all DNS record types that have non-default TTL values. These | for all DNS record types that have non-default TTL values. These | |||
| elements MUST NOT have the "min", "default" and "max" attributes. | elements MUST NOT have the "min", "default", and "max" attributes. | |||
| Example domain <info> command with a <ttl:info> element with a policy | Below is an example domain <info> command with a <ttl:info> element | |||
| attribute that is false: | with a "policy" attribute that is "false": | |||
| C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <info> | C: <info> | |||
| C: <domain:info | C: <domain:info | |||
| C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | |||
| C: <domain:name>example.com</domain:name> | C: <domain:name>example.com</domain:name> | |||
| C: </domain:info> | C: </domain:info> | |||
| C: </info> | C: </info> | |||
| C: <extension> | C: <extension> | |||
| C: <ttl:info | C: <ttl:info | |||
| C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | |||
| C: policy="false"/> | C: policy="false"/> | |||
| C: </extension> | C: </extension> | |||
| C: </command> | C: </command> | |||
| C: </epp> | C: </epp> | |||
| Example domain <info> response to a command with a <ttl:info> element | ||||
| with a policy attribute that is false: | Below is an example domain <info> response to a command with a | |||
| <ttl:info> element with a "policy" attribute that is "false": | ||||
| S: <?xml version="1.0" encoding="utf-8" standalone="no"?> | S: <?xml version="1.0" encoding="utf-8" standalone="no"?> | |||
| S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="1000"> | S: <result code="1000"> | |||
| S: <msg>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
| S: </result> | S: </result> | |||
| S: <resData> | S: <resData> | |||
| S: <domain:infData | S: <domain:infData | |||
| S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | |||
| skipping to change at page 10, line 4 ¶ | skipping to change at line 397 ¶ | |||
| S: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest> | S: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest> | |||
| S: </secDNS:dsData> | S: </secDNS:dsData> | |||
| S: </secDNS:infData> | S: </secDNS:infData> | |||
| S: </extension> | S: </extension> | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S: </epp> | S: </epp> | |||
| Example host <info> command with a <ttl:info> element with a policy | ||||
| attribute that is false: | Below is an example host <info> command with a <ttl:info> element | |||
| with a "policy" attribute that is "false": | ||||
| C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <info> | C: <info> | |||
| C: <host:info | C: <host:info | |||
| C: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | C: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | |||
| C: <host:name>ns1.example.com</host:name> | C: <host:name>ns1.example.com</host:name> | |||
| C: </host:info> | C: </host:info> | |||
| C: </info> | C: </info> | |||
| C: <extension> | C: <extension> | |||
| C: <ttl:info | C: <ttl:info | |||
| C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | |||
| C: policy="false"/> | C: policy="false"/> | |||
| C: </extension> | C: </extension> | |||
| C: </command> | C: </command> | |||
| C: </epp> | C: </epp> | |||
| Example host <info> response to a command with a <ttl:info> element | Below is an example host <info> response to a command with a | |||
| with a policy attribute that is false: | <ttl:info> element with a "policy" attribute that is "false": | |||
| S: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | S: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="1000"> | S: <result code="1000"> | |||
| S: <msg>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
| S: </result> | S: </result> | |||
| S: <resData> | S: <resData> | |||
| S: <host:infData | S: <host:infData | |||
| S: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | S: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | |||
| skipping to change at page 11, line 41 ¶ | skipping to change at line 457 ¶ | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S: </epp> | S: </epp> | |||
| 2.1.1.2. Policy Mode | 2.1.1.2. Policy Mode | |||
| If a server receives an <info> command for a domain or host object | If a server receives an <info> command for a domain or host object | |||
| which includes a <ttl:info> element with a "policy" attribute is "1" | that includes a <ttl:info> element with a "policy" attribute that is | |||
| or "true", then the EPP response MUST contain <ttl:ttl> records for | "1" or "true", then the EPP response MUST contain <ttl:ttl> records | |||
| all supported DNS record types, irrespective of whether those record | for all supported DNS record types, irrespective of whether those | |||
| types are actually in use by the object in question. These elements | record types are actually in use by the object in question. These | |||
| MUST have the "min", "default" and "max" attributes. | elements MUST have the "min", "default", and "max" attributes. | |||
| Example domain <info> command requesting the server policies: | Below is an example domain <info> command requesting the server | |||
| policies: | ||||
| C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <info> | C: <info> | |||
| C: <domain:info | C: <domain:info | |||
| C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | |||
| C: <domain:name>example.com</domain:name> | C: <domain:name>example.com</domain:name> | |||
| C: </domain:info> | C: </domain:info> | |||
| C: </info> | C: </info> | |||
| C: <extension> | C: <extension> | |||
| C: <ttl:info | C: <ttl:info | |||
| C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | |||
| C: policy="true"/> | C: policy="true"/> | |||
| C: </extension> | C: </extension> | |||
| C: </command> | C: </command> | |||
| C: </epp> | C: </epp> | |||
| Example domain <info> response providing the server policies: | Below is an example domain <info> response providing the server | |||
| policies: | ||||
| S: <?xml version="1.0" encoding="utf-8" standalone="no"?> | S: <?xml version="1.0" encoding="utf-8" standalone="no"?> | |||
| S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="1000"> | S: <result code="1000"> | |||
| S: <msg>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
| S: </result> | S: </result> | |||
| S: <resData> | S: <resData> | |||
| S: <domain:infData | S: <domain:infData | |||
| S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | |||
| skipping to change at page 13, line 26 ¶ | skipping to change at line 537 ¶ | |||
| S: </secDNS:dsData> | S: </secDNS:dsData> | |||
| S: </secDNS:infData> | S: </secDNS:infData> | |||
| S: </extension> | S: </extension> | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S: </epp> | S: </epp> | |||
| Example host <info> command requesting the server policies: | Below is an example host <info> command requesting the server | |||
| policies: | ||||
| C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <info> | C: <info> | |||
| C: <host:info | C: <host:info | |||
| C: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | C: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | |||
| C: <host:name>ns1.example.com</host:name> | C: <host:name>ns1.example.com</host:name> | |||
| C: </host:info> | C: </host:info> | |||
| C: </info> | C: </info> | |||
| C: <extension> | C: <extension> | |||
| C: <ttl:info | C: <ttl:info | |||
| C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | |||
| C: policy="true"/> | C: policy="true"/> | |||
| C: </extension> | C: </extension> | |||
| C: </command> | C: </command> | |||
| C: </epp> | C: </epp> | |||
| Example host <info> response providing the server policies: | Below is an example host <info> response providing the server | |||
| policies: | ||||
| S: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | S: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="1000"> | S: <result code="1000"> | |||
| S: <msg>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
| S: </result> | S: </result> | |||
| S: <resData> | S: <resData> | |||
| S: <host:infData | S: <host:infData | |||
| S: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | S: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | |||
| skipping to change at page 14, line 44 ¶ | skipping to change at line 599 ¶ | |||
| S: max="172800">86400</ttl:ttl> | S: max="172800">86400</ttl:ttl> | |||
| S: </ttl:infData> | S: </ttl:infData> | |||
| S: </extension> | S: </extension> | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S: </epp> | S: </epp> | |||
| 2.2. EPP transform commands | 2.2. EPP Transform Commands | |||
| 2.2.1. EPP <create> command | 2.2.1. EPP <create> Command | |||
| This extension defines an additional element for EPP <create> | This extension defines an additional element for EPP <create> | |||
| commands for domain and host objects. | commands for domain and host objects. | |||
| The <command> element of the <create> command MAY contain an | The <command> element of the <create> command MAY contain an | |||
| <extension> element which MAY contain a <ttl:create> element. This | <extension> element that MAY contain a <ttl:create> element. This | |||
| element MUST contain one or more <ttl:ttl> records as described in | element MUST contain one or more <ttl:ttl> records as described in | |||
| Section 1.2. | Section 1.2. | |||
| Example domain <create> command: | If an EPP server receives a <create> command containing a TTL value | |||
| that is outside the server's permitted range, it MUST reject the | ||||
| command with a 2004 "Parameter value range error" response. | ||||
| Below is an example domain <create> command: | ||||
| C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <create> | C: <create> | |||
| C: <domain:create | C: <domain:create | |||
| C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | |||
| C: <domain:name>example.com</domain:name> | C: <domain:name>example.com</domain:name> | |||
| C: <domain:period unit="y">1</domain:period> | C: <domain:period unit="y">1</domain:period> | |||
| C: <domain:ns> | C: <domain:ns> | |||
| skipping to change at page 15, line 49 ¶ | skipping to change at line 654 ¶ | |||
| C: <secDNS:alg>13</secDNS:alg> | C: <secDNS:alg>13</secDNS:alg> | |||
| C: <secDNS:digestType>2</secDNS:digestType> | C: <secDNS:digestType>2</secDNS:digestType> | |||
| C: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest> | C: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest> | |||
| C: </secDNS:dsData> | C: </secDNS:dsData> | |||
| C: </secDNS:create> | C: </secDNS:create> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C: </epp> | C: </epp> | |||
| Example host <create> command: | Below is an example host <create> command: | |||
| C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <create> | C: <create> | |||
| C: <host:create | C: <host:create | |||
| C: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | C: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | |||
| C: <host:name>ns1.example.com</host:name> | C: <host:name>ns1.example.com</host:name> | |||
| C: <host:addr ip="v4">192.0.2.2</host:addr> | C: <host:addr ip="v4">192.0.2.2</host:addr> | |||
| C: <host:addr ip="v6">2001:db8::8:800:200c:417a</host:addr> | C: <host:addr ip="v6">2001:db8::8:800:200c:417a</host:addr> | |||
| skipping to change at page 16, line 27 ¶ | skipping to change at line 678 ¶ | |||
| C: <ttl:create | C: <ttl:create | |||
| C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0"> | C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0"> | |||
| C: <ttl:ttl for="A"/> | C: <ttl:ttl for="A"/> | |||
| C: <ttl:ttl for="AAAA">86400</ttl:ttl> | C: <ttl:ttl for="AAAA">86400</ttl:ttl> | |||
| C: </ttl:create> | C: </ttl:create> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C: </epp> | C: </epp> | |||
| If an EPP server receives a <create> command containing a TTL value | 2.2.2. EPP <update> Command | |||
| that is outside the server's permitted range, it MUST reject the | ||||
| command with a 2004 "Parameter value range error" response. | ||||
| 2.2.2. EPP <update> command | ||||
| This extension defines an additional element for EPP <update> | This extension defines an additional element for EPP <update> | |||
| commands for domain and host objects. | commands for domain and host objects. | |||
| The <command> element of the <update> command MAY contain an | The <command> element of the <update> command MAY contain an | |||
| <extension> element which MAY contain a <ttl:update> element. This | <extension> element that MAY contain a <ttl:update> element. This | |||
| element MUST contain one or more <ttl:ttl> records as described in | element MUST contain one or more <ttl:ttl> records as described in | |||
| Section 1.2. | Section 1.2. | |||
| Example domain <update> command: | If an EPP server receives an <update> command containing a TTL value | |||
| that is outside the server's permitted range, it MUST reject the | ||||
| command with a 2004 "Parameter value range error" response. | ||||
| Below is an example domain <update> command: | ||||
| C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <update> | C: <update> | |||
| C: <domain:update | C: <domain:update | |||
| C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> | |||
| C: <domain:name>example.com</domain:name> | C: <domain:name>example.com</domain:name> | |||
| C: </domain:update> | C: </domain:update> | |||
| C: </update> | C: </update> | |||
| skipping to change at page 17, line 27 ¶ | skipping to change at line 716 ¶ | |||
| C: <ttl:ttl for="NS"/> | C: <ttl:ttl for="NS"/> | |||
| C: <ttl:ttl for="custom" | C: <ttl:ttl for="custom" | |||
| C: custom="DELEG"/> | C: custom="DELEG"/> | |||
| C: <ttl:ttl for="DS">86400</ttl:ttl> | C: <ttl:ttl for="DS">86400</ttl:ttl> | |||
| C: </ttl:update> | C: </ttl:update> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C: </epp> | C: </epp> | |||
| Example host <update> command: | Below is an example host <update> command: | |||
| C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | C: <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <update> | C: <update> | |||
| C: <host:update | C: <host:update | |||
| C: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | C: xmlns:host="urn:ietf:params:xml:ns:host-1.0"> | |||
| C: <host:name>ns1.example.com</host:name> | C: <host:name>ns1.example.com</host:name> | |||
| C: </host:update> | C: </host:update> | |||
| C: </update> | C: </update> | |||
| skipping to change at page 17, line 49 ¶ | skipping to change at line 738 ¶ | |||
| C: <ttl:update | C: <ttl:update | |||
| C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0"> | C: xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0"> | |||
| C: <ttl:ttl for="A">86400</ttl:ttl> | C: <ttl:ttl for="A">86400</ttl:ttl> | |||
| C: <ttl:ttl for="AAAA">3600</ttl:ttl> | C: <ttl:ttl for="AAAA">3600</ttl:ttl> | |||
| C: </ttl:update> | C: </ttl:update> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C: </epp> | C: </epp> | |||
| If an EPP server receives an <update> command containing a TTL value | 3. Server Processing of TTL Values | |||
| that is outside the server's permitted range, it MUST reject the | ||||
| command with a 2004 "Parameter value range error" response. | ||||
| 3. Server processing of TTL values | ||||
| 3.1. Permitted record types | 3.1. Permitted Record Types | |||
| EPP servers MAY restrict the supported DNS record types. For | EPP servers MAY restrict the supported DNS record types. For | |||
| example, a server MAY allow clients to specify TTL values for DS | example, a server MAY allow clients to specify TTL values for DS | |||
| records only. | records only. | |||
| A server which receives a <create> or <update> command which includes | A server that receives a <create> or <update> command that includes a | |||
| a restricted record type MUST respond with a 2306 "Parameter value | restricted record type MUST respond with a 2306 "Parameter value | |||
| policy" error. | policy" error. | |||
| Clients can discover the DNS record types for which an EPP server | Clients can discover the DNS record types for which an EPP server | |||
| permits TTL values to be changed by performing a "Policy Mode" <info> | permits TTL values to be changed by performing a Policy Mode <info> | |||
| command, as outlined in Section 2.1.1.2. | command, as outlined in Section 2.1.1.2. | |||
| 3.2. Use of TTL values in delegation records | 3.2. Use of TTL Values in Delegation Records | |||
| EPP servers which implement this extension SHOULD use the values | EPP servers that implement this extension SHOULD use the values | |||
| provided by EPP clients for the TTL values of records published in | provided by EPP clients for the TTL values of records published in | |||
| the DNS for domain and (if supported) host objects. Server operators | the DNS for domain and (if supported) host objects. Server operators | |||
| MAY disregard these values in order to address security and stability | MAY disregard these values in order to address security and stability | |||
| issues, as described in Section 5 and Section 6. | issues, as described in Section 5 and Section 6. | |||
| EPP servers that use the "host attribute" model SHOULD use any NS, A | EPP servers that use the host attribute model SHOULD use any NS, A, | |||
| and/or AAAA TTL values specified for the domain object when | and/or AAAA TTL values specified for the domain object when | |||
| publishing NS, A and/or AAAA records derived from host attributes. | publishing NS, A, and/or AAAA records derived from host attributes. | |||
| 4. Out-of-band changes to TTL values | 4. Out-of-Band Changes to TTL Values | |||
| EPP server operators MAY, in order to address operational or security | In order to address operational or security issues, EPP server | |||
| issues, make changes to TTL values out-of-band (that is, not in | operators MAY make changes to TTL values out-of-band (that is, not in | |||
| response to an <update> command received from the sponsoring client). | response to an <update> command received from the sponsoring client). | |||
| Server operators MAY also implement automatic reset of TTL values, so | Server operators MAY also implement automatic reset of TTL values, so | |||
| that they revert to the default value a certain amount of time after | that they revert to the default value a certain amount of time after | |||
| an update has been made. | an update has been made. | |||
| If a TTL value is changed out-of-band, EPP server operators MAY | If a TTL value is changed out-of-band, EPP server operators MAY | |||
| notify the sponsoring client using the EPP Change Poll extension | notify the sponsoring client using the EPP Change Poll Extension | |||
| ([RFC8590]), which provides a generalised method for EPP servers to | [RFC8590], which provides a generalized method for EPP servers to | |||
| notify clients of changes to objects under their sponsorship. | notify clients of changes to objects under their sponsorship. | |||
| 5. Operational considerations | 5. Operational Considerations | |||
| 5.1. Operational impact of TTL values | ||||
| 5.1. Operational Impact of TTL Values | ||||
| Registry operators must consider the balance between registrants' | Registry operators must consider the balance between registrants' | |||
| desire for changes to domains to be visible in the DNS quickly, and | desire for changes to domains to be visible in the DNS quickly, and | |||
| the increased DNS query traffic that short TTLs can bring. | the increased DNS query traffic that short TTLs can bring. | |||
| Registry operators SHOULD implement limits on the maximum and minimum | Registry operators SHOULD implement limits on the maximum and minimum | |||
| accepted TTL values that are narrower than the values permitted in | accepted TTL values that are narrower than the values permitted in | |||
| the XML schema in the Formal syntax (which were chosen to allow any | the XML schema in Section 8 (which were chosen to allow any TTL | |||
| TTL permitted in DNS records), in order to prevent scenarios where an | permitted in DNS records). This is in order to prevent scenarios | |||
| excessively high or low TTL causes operational issues on either side | where an excessively high or low TTL causes operational issues on | |||
| of the zone cut. | either side of the zone cut. | |||
| Section 4 describes how server operators MAY unilaterally change TTL | Section 4 describes how server operators MAY unilaterally change TTL | |||
| values in order to address operational or security issues, or only | values in order to address operational or security issues, or only | |||
| permit changes for limited time periods (after which TTLs revert to | permit changes for limited time periods (after which TTLs revert to | |||
| the default). | the default). | |||
| 5.2. When TTL values should be changed | 5.2. When TTL Values Should Be Changed | |||
| A common operational mistake is changing of DNS record TTLs during or | A common operational mistake is changing the DNS record TTLs during | |||
| after the planned change to the records themselves. This arises due | or after the planned change to the records themselves. This arises | |||
| to a misunderstanding about how TTLs work. | due to a misunderstanding about how TTLs work. | |||
| It is RECOMMENDED that guidance be provided to users so they are | It is RECOMMENDED that guidance be provided to users so they are | |||
| aware that changes to a TTL are only effective in shortening | aware that changes to a TTL are only effective in shortening | |||
| transition periods if implemented a period of time — at least equal | transition periods if implemented a period of time (at least equal to | |||
| to the current TTL — _before_ the planned change. The latency | the current TTL) _before_ the planned change. The latency between | |||
| between receipt of the <update> command and the actual publication of | receipt of the <update> command and the actual publication of the | |||
| the changes in the DNS should also be taken into consideration in | changes in the DNS should also be taken into consideration in this | |||
| this calculation. | calculation. | |||
| 5.3. Changes to server policy | 5.3. Changes to Server Policy | |||
| Registry operators may change their policies relating to TTL values | Registry operators may change their policies relating to TTL values | |||
| from time to time. Previously configured TTL values may consequently | from time to time. Previously configured TTL values may consequently | |||
| fall outside a newly-applied policy. This document places no | fall outside a newly applied policy. This document places no | |||
| obligation on EPP server operators in respect of these values, and | obligation on EPP server operators in respect of these values, and | |||
| server operators may, as part of a policy change, change the TTL | server operators may, as part of a policy change, change the TTL | |||
| values specified by clients for domain and host objects. Section 4 | values specified by clients for domain and host objects. Section 4 | |||
| describes how such out-of-band changes should be carried out. | describes how such out-of-band changes should be carried out. | |||
| 6. Security considerations | 6. Security Considerations | |||
| 6.1. Fast-flux DNS | ||||
| 6.1. Fast Flux DNS | ||||
| Some malicious actors use a technique called "fast flux DNS" | Some malicious actors use a technique called "fast flux DNS" | |||
| ([SAC-025]) to rapidly change the DNS configuration for a zone in | [SAC-025] to rapidly change the DNS configuration for a zone in order | |||
| order to evade takedown and law enforcement activity. Server | to evade takedown and law enforcement activity. Server operators | |||
| operators should take this into consideration when setting the lower | should take this into consideration when setting the lower limit on | |||
| limit on TTL values, since a short TTL on delegations may enhance the | TTL values, since a short TTL on delegations may enhance the | |||
| effectiveness of fast flux techniques on evasion. | effectiveness of fast flux techniques on evasion. | |||
| Client implementations which provide an interface for customers to | Client implementations that provide an interface for customers to | |||
| configure TTL values for domain names should consider implementing | configure TTL values for domain names should consider implementing | |||
| controls to deter and mitigate abusive behaviour, such as those | controls to deter and mitigate abusive behavior, such as those | |||
| outlined in the "Current and Possible Mitigation Alternatives" | outlined in the "Current and Possible Mitigation Alternatives" | |||
| section of [SAC-025]. | section of [SAC-025]. | |||
| 6.2. Compromised user accounts | 6.2. Compromised User Accounts | |||
| An attacker who obtains access to a customer account at a domain | An attacker who obtains access to a customer account at a domain | |||
| registrar which supports this extension could make unauthorised | registrar that supports this extension could make unauthorized | |||
| changes to the NS and/or glue records for a domain, and then increase | changes to the NS and/or glue records for a domain, and then increase | |||
| the associated TTLs so that the changes persist in caches for a long | the associated TTLs so that the changes persist in caches for a long | |||
| time after the attack has been detected. | time after the attack has been detected. | |||
| Client implementations which provide an interface for customers to | Client implementations that provide an interface for customers to | |||
| configure TTL values for domain names should consider implementing | configure TTL values for domain names should consider implementing | |||
| upper limits in order to reduce the impact of account compromise, in | upper limits in order to reduce the impact of account compromise, in | |||
| addition to best practices relating to credential management, multi- | addition to best practices relating to credential management, multi- | |||
| factor authentication, risk-based access control, and so on. | factor authentication, risk-based access control, and so on. | |||
| 7. IANA considerations | 7. IANA Considerations | |||
| 7.1. XML namespace | 7.1. XML Namespace | |||
| This document uses URNs to describe XML namespaces and XML schemas | This document uses URNs to describe XML namespaces and XML schemas | |||
| conforming to a registry mechanism described in [RFC3688]. The | conforming to a registry mechanism described in [RFC3688]. The | |||
| following URI assignment is requested of IANA: | following URI assignments have been made by IANA: | |||
| Registration for the TTL namespace: | Registration for the TTL namespace: | |||
| *URI:* urn:ietf:params:xml:ns:epp:ttl-1.0 | URI: urn:ietf:params:xml:ns:epp:ttl-1.0 | |||
| Registrant Contact: IESG | ||||
| *Registrant Contact:* IESG | XML: None. Namespace URIs do not represent an XML specification. | |||
| *XML:* None. Namespace URIs do not represent an XML specification | ||||
| Registration for the TTL XML schema: | Registration for the TTL XML schema: | |||
| *URI:* urn:ietf:params:xml:schema:epp:ttl-1.0 | URI: urn:ietf:params:xml:schema:epp:ttl-1.0 | |||
| *Registrant Contact:* IESG | Registrant Contact: IESG | |||
| XML: See Section 8 of this document. | ||||
| *XML:* See the "Formal syntax" section of this document | ||||
| 7.2. EPP extension registry | 7.2. EPP Extension Registry | |||
| The EPP extension described in this document is to be registered by | The EPP extension described in this document has been registered by | |||
| IANA in the Extensions for the "Extensible Provisioning Protocol | IANA in the "Extensions for the Extensible Provisioning Protocol | |||
| (EPP)" registry described in [RFC7451]. The details of the | (EPP)" registry described in [RFC7451]. The details of the | |||
| registration are as follows: | registration are as follows: | |||
| *Name of Extension:* Extensible Provisioning Protocol (EPP) | Name of Extension: Extensible Provisioning Protocol (EPP) Mapping | |||
| Mapping for DNS Time-To-Live (TTL) values | for DNS Time-to-Live (TTL) Values | |||
| Document Status: Standards Track | ||||
| *Document Status:* Standards Track | Reference: RFC 9803 | |||
| Registrant: IESG | ||||
| *Reference:* URL of this document | TLDs: Any | |||
| IPR Disclosure: None | ||||
| *Registrant Name and Email Address:* IESG | Status: Active | |||
| Notes: None | ||||
| *TLDs:* Any | ||||
| *IPR Disclosure:* None | ||||
| *Status:* Active | ||||
| *Notes:* None | ||||
| 8. Formal syntax | 8. Formal Syntax | |||
| The formal syntax presented here is a complete schema representation | The formal syntax presented here is a complete schema representation | |||
| of the extension suitable for automated validation of EPP XML | of the extension suitable for automated validation of EPP XML | |||
| instances. | instances. | |||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <schema | <schema | |||
| xmlns="http://www.w3.org/2001/XMLSchema" | xmlns="http://www.w3.org/2001/XMLSchema" | |||
| targetNamespace="urn:ietf:params:xml:ns:epp:ttl-1.0" | targetNamespace="urn:ietf:params:xml:ns:epp:ttl-1.0" | |||
| xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | xmlns:ttl="urn:ietf:params:xml:ns:epp:ttl-1.0" | |||
| elementFormDefault="qualified"> | elementFormDefault="qualified"> | |||
| <annotation> | <annotation> | |||
| <documentation> | <documentation> | |||
| Extensible Provisioning Protocol v1.0 extension | Extensible Provisioning Protocol v1.0 extension | |||
| schema for Time-To-Live (TTL) values for domain | schema for Time-to-Live (TTL) Values for domain | |||
| and host objects. | and host objects. | |||
| </documentation> | </documentation> | |||
| </annotation> | </annotation> | |||
| <element name="info"> | <element name="info"> | |||
| <complexType> | <complexType> | |||
| <attribute name="policy" type="boolean" default="false"/> | <attribute name="policy" type="boolean" default="false"/> | |||
| </complexType> | </complexType> | |||
| </element> | </element> | |||
| <!-- | <!-- | |||
| <ttl> elements can appear in <create> and | <ttl> elements can appear in <create> and | |||
| <update> commands, and <info> responses | <update> commands, and <info> responses | |||
| --> | --> | |||
| skipping to change at page 24, line 46 ¶ | skipping to change at line 1051 ¶ | |||
| </simpleType> | </simpleType> | |||
| <!-- custom resource record type --> | <!-- custom resource record type --> | |||
| <simpleType name="customRRType"> | <simpleType name="customRRType"> | |||
| <restriction base="token"> | <restriction base="token"> | |||
| <pattern value="A|[A-Z][A-Z0-9\-]*[A-Z0-9]"/> | <pattern value="A|[A-Z][A-Z0-9\-]*[A-Z0-9]"/> | |||
| </restriction> | </restriction> | |||
| </simpleType> | </simpleType> | |||
| </schema> | </schema> | |||
| 9. Implementation status | 9. References | |||
| This section is to be removed before publishing as an RFC. | ||||
| 9.1. Verisign EPP SDK | ||||
| *Organization:* Verisign Inc. | ||||
| *Name:* Verisign EPP SDK | ||||
| *Description:* The Verisign EPP SDK includes both a full client | ||||
| implementation and a full server stub implementation of this | ||||
| specification. | ||||
| *Level of maturity:* Development | ||||
| *Coverage:* All aspects of the protocol are implemented. | ||||
| *Licensing:* GNU Lesser General Public License | ||||
| *Contact:* jgould@verisign.com | ||||
| *URL:* https://www.verisign.com/en_US/channel-resources/domain- | ||||
| registry-products/epp-sdks | ||||
| 9.2. Pepper EPP Client | ||||
| *Name:* Pepper EPP Client | ||||
| *Description:* The Pepper EPP client fully implements this | ||||
| specification. The underlying Net::EPP:: Perl module also implements | ||||
| this specification. | ||||
| *Level of maturity:* Development | ||||
| *Coverage:* All aspects of the protocol will be implemented. | ||||
| *Licensing:* Perl Artistic License | ||||
| *Contact:* The author of this document. | ||||
| *URL:* https://github.com/gbxyz/pepper | ||||
| 10. Change log | ||||
| This section is to be removed before publishing as an RFC. | ||||
| 10.1. Changes from 17 to 18 | ||||
| 1. Add a space after the C: and S: line prefixes in examples. | ||||
| 2. Fixed the prefixing of lines in the example in Section 2.1.1.2 | ||||
| (thanks Tim Bray). | ||||
| 3. Fixed broken end tags in examples in Section 1.2.2 and the | ||||
| capitalisation of IPv6 addresses (thanks Erik Kline). | ||||
| 4. Added normative reference to [IANA-RRTYPES]. | ||||
| 5. Replaced references to "command/response frames" with "EPP | ||||
| commands/responses". | ||||
| 6. Minor wording change in paragraph 2 of Section 1.2.1. | ||||
| 7. Clarified wording in Section 1.2.1.2. | ||||
| 8. Wordsmithing of Section 3 due to feedback from the IESG. | ||||
| 10.2. Changes from 16 to 17 | ||||
| 1. Further updates as suggested during IESG review. | ||||
| 10.3. Changes from 15 to 16 | ||||
| 1. Updates as suggested during IESG review. | ||||
| 10.4. Changes from 14 to 15 | ||||
| 1. Updates as suggested during AD review. | ||||
| 2. In the last paragraph of Section 3.2, make both lists of RR types | ||||
| be the same. | ||||
| 3. Update error codes to be consistent: 2004 (range error) when the | ||||
| TTL value is outside the permitted range, and 2306 (policy error) | ||||
| for an invalid record type. | ||||
| 4. Correct section in reference to RFC 6895 (thanks Jasdip Singh). | ||||
| 5. Minor typographic fixes (thanks Jasdip Singh). | ||||
| 10.5. Changes from 13 to 14 | ||||
| 1. Resolve remaining nit before IESG submission. | ||||
| 10.6. Changes from 12 to 13 | ||||
| 1. Updates as per the document shepherd's suggestions. | ||||
| 10.7. Changes from 11 to 12 | ||||
| 1. Updates as per the document shepherd's email to the list of | ||||
| 2024-06-10. | ||||
| 10.8. Changes from 10 to 11 | ||||
| 1. Fix double word in Section 3.2. | ||||
| 10.9. Changes from 09 to 10 | ||||
| Changes resulting from the Dnsdir review: | ||||
| 1. Fixed example IPv6 addresses to use the preferred prefix | ||||
| 2001:DB8::. | ||||
| 2. Added paragraph to Section 3.1 describing how clients can use the | ||||
| Policy Mode <info> command (Section 2.1.1.2) to discover the DNS | ||||
| record types supported by the server. | ||||
| 10.10. Changes from 08 to 09 | ||||
| 1. Some wording changes suggested by James Gould and Tim Wicinski. | ||||
| 10.11. Changes from 07 to 08 | ||||
| 1. Some wording changes suggested by Rick Wilhelm. | ||||
| 10.12. Changes from 06 to 07 | ||||
| 1. Minor wording changes and nits reported by JG. | ||||
| 10.13. Changes from 05 to 06 | ||||
| 1. Changed how <info> commands work so that a <ttl:info> element is | ||||
| required in order for <ttl:ttl> elements to be included in the | ||||
| response. Thanks to JG for this feedback. | ||||
| 10.14. Changes from 04 to 05 | ||||
| 1. removed the erroneous required="true" attribute from the min, | ||||
| default and max attributes of the responseTTLType type (thanks | ||||
| JG). | ||||
| 2. fixed the reference to RFC 6895 (thanks HS). | ||||
| 10.15. Changes from 04 to 05 | ||||
| 1. Add the Verisign EPP SDK to Section 9. | ||||
| 2. Add the <ttl:info> element and document how it affects server | ||||
| <info> responses. | ||||
| 3. Updated examples to exercise more of the schema. | ||||
| 4. Minor schema issue fixed. | ||||
| 10.16. Changes from 03 to 04 | ||||
| 1. Changed the for attribute to be an enumeration and added the | ||||
| custom attribute. | ||||
| 2. Added the min, default and max attributes. | ||||
| 3. Apply feedback from Jim Gould. | ||||
| 10.17. Changes from 02 to 03 | ||||
| 1. Rolled back the "straw man" syntax from 02. ttl:ttl now has a for | ||||
| attribute which can be any DNS record type. Section 1.2.1.2 | ||||
| describes how the set of supported record types may be limited. | ||||
| 2. Removed the global/explicit models and just use the explicit | ||||
| model. | ||||
| 3. Removed the cascading effect where a TTL set on a domain affects | ||||
| subordinate hosts. | ||||
| 10.18. Changes from 01 to 02 | ||||
| 1. Renamed the ttl:seconds XSD type to ttl:container, and the | ||||
| ttl:nonNegativeInteger type to ttl:ttlType, to permit multiple | ||||
| TTL values. | ||||
| 2. Converted XML instances from artwork to source code. | ||||
| 10.19. Changes from 00 to 01 | ||||
| 1. Incorporate feedback from Jim Gould. | ||||
| 2. Add wording to describe how TTL values are jointly managed by | ||||
| both clients and servers. | ||||
| 3. Fix minimum/maximum TTL value and schema namespace (thanks | ||||
| Patrick Mevzek). | ||||
| 4. Moved text on how the server should handle impermissible TTL | ||||
| values from the top of Section 4 to Sections 3.2.1 and 3.2.2 | ||||
| (thanks Rick Wilhelm). | ||||
| 5. Namespace changed from urn:ietf:params:xml:ns:ttl-1.0 to | ||||
| urn:ietf:params:xml:ns:epp:ttl-1.0. | ||||
| 6. Added discussion on EPP servers which use the host attribute | ||||
| model in Section 3.2 (thanks Hugo Salgado). | ||||
| 7. Added a Change Log (Section 10). | ||||
| 11. Acknowledgements | ||||
| The author wishes to thank the following people for their advice and | ||||
| feedback during the development of this document: | ||||
| 1. James Gould | ||||
| 2. Hugo Salgado | ||||
| 3. Patrick Mevzek | ||||
| 4. Rick Wilhelm | ||||
| 5. Marc Groeneweg | ||||
| 6. Ties de Kock | ||||
| 7. Tim Wicinski | ||||
| 8. Jasdip Singh | ||||
| 12. References | ||||
| 12.1. Normative references | 9.1. Normative References | |||
| [IANA-RRTYPES] | [IANA-RRTYPES] | |||
| IANA, "Resource Record (RR) TYPEs", | IANA, "Resource Record (RR) TYPEs", | |||
| <https://www.iana.org/assignments/dns-parameters/dns- | <https://www.iana.org/assignments/dns-parameters>. | |||
| parameters.xhtml#dns-parameters-4>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| skipping to change at page 30, line 33 ¶ | skipping to change at line 1092 ¶ | |||
| [RFC6895] Eastlake 3rd, D., "Domain Name System (DNS) IANA | [RFC6895] Eastlake 3rd, D., "Domain Name System (DNS) IANA | |||
| Considerations", BCP 42, RFC 6895, DOI 10.17487/RFC6895, | Considerations", BCP 42, RFC 6895, DOI 10.17487/RFC6895, | |||
| April 2013, <https://www.rfc-editor.org/info/rfc6895>. | April 2013, <https://www.rfc-editor.org/info/rfc6895>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [XSD-DATATYPES] | [XSD-DATATYPES] | |||
| World Wide Web Consortium (W3C), "XML Schema Part 2: | Biron, P., Ed. and A. Malhotra, Ed., "XML Schema Part 2: | |||
| Datatypes Second Edition", October 2004, | Datatypes Second Edition", W3C Recommendation, October | |||
| 2004, | ||||
| <https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/>. | ||||
| Latest version available at | ||||
| <https://www.w3.org/TR/xmlschema-2/>. | <https://www.w3.org/TR/xmlschema-2/>. | |||
| 12.2. Informative references | 9.2. Informative References | |||
| [RFC6927] Levine, J. and P. Hoffman, "Variants in Second-Level Names | [RFC6927] Levine, J. and P. Hoffman, "Variants in Second-Level Names | |||
| Registered in Top-Level Domains", RFC 6927, | Registered in Top-Level Domains", RFC 6927, | |||
| DOI 10.17487/RFC6927, May 2013, | DOI 10.17487/RFC6927, May 2013, | |||
| <https://www.rfc-editor.org/info/rfc6927>. | <https://www.rfc-editor.org/info/rfc6927>. | |||
| [RFC7451] Hollenbeck, S., "Extension Registry for the Extensible | [RFC7451] Hollenbeck, S., "Extension Registry for the Extensible | |||
| Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, | Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, | |||
| February 2015, <https://www.rfc-editor.org/info/rfc7451>. | February 2015, <https://www.rfc-editor.org/info/rfc7451>. | |||
| skipping to change at page 31, line 14 ¶ | skipping to change at line 1124 ¶ | |||
| [RFC9364] Hoffman, P., "DNS Security Extensions (DNSSEC)", BCP 237, | [RFC9364] Hoffman, P., "DNS Security Extensions (DNSSEC)", BCP 237, | |||
| RFC 9364, DOI 10.17487/RFC9364, February 2023, | RFC 9364, DOI 10.17487/RFC9364, February 2023, | |||
| <https://www.rfc-editor.org/info/rfc9364>. | <https://www.rfc-editor.org/info/rfc9364>. | |||
| [RFC9499] Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219, | [RFC9499] Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219, | |||
| RFC 9499, DOI 10.17487/RFC9499, March 2024, | RFC 9499, DOI 10.17487/RFC9499, March 2024, | |||
| <https://www.rfc-editor.org/info/rfc9499>. | <https://www.rfc-editor.org/info/rfc9499>. | |||
| [SAC-025] ICANN Security and Stability Advisory Committee (SSAC), | [SAC-025] ICANN Security and Stability Advisory Committee (SSAC), | |||
| "SSAC Advisory on Fast Flux Hosting and DNS", SAC 25, | "SSAC Advisory on Fast Flux Hosting and DNS", SAC 025, | |||
| January 2008, | January 2008, | |||
| <https://www.icann.org/en/system/files/files/sac- | <https://www.icann.org/en/system/files/files/sac- | |||
| 025-en.pdf>. | 025-en.pdf>. | |||
| Acknowledgments | ||||
| The author wishes to thank the following people for their advice and | ||||
| feedback during the development of this document: | ||||
| * James Gould | ||||
| * Hugo Salgado | ||||
| * Patrick Mevzek | ||||
| * Rick Wilhelm | ||||
| * Marc Groeneweg | ||||
| * Ties de Kock | ||||
| * Tim Wicinski | ||||
| * Jasdip Singh | ||||
| Author's Address | Author's Address | |||
| Gavin Brown | Gavin Brown | |||
| ICANN | ICANN | |||
| 12025 Waterfront Drive, Suite 300 | 12025 Waterfront Drive, Suite 300 | |||
| Los Angeles, CA 90292 | Los Angeles, CA 90292 | |||
| United States of America | United States of America | |||
| Email: gavin.brown@icann.org | Email: gavin.brown@icann.org | |||
| URI: https://www.icann.org/ | URI: https://www.icann.org/ | |||
| End of changes. 107 change blocks. | ||||
| 521 lines changed or deleted | 288 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||