rfc-5731

Extensible Provisioning Protocol (EPP) Domain Name Mapping

S. Hollenbeck
date2009-08 streamIETF wgnon working group statusINTERNET STANDARD pages44 canonicalhttps://www.rfc-editor.org/rfc/rfc5731 doi10.17487/RFC5731 errataview
This document describes an Extensible Provisioning Protocol (EPP) mapping for the provisioning and management of Internet domain names stored in a shared central repository. Specified in XML, the mapping defines EPP command syntax and semantics as applied to domain names. This document obsoletes RFC 4931. [STANDARDS-TRACK]

obsoletes

also

Extracted elements (29)

design-rationale §2.7

The mapping separates discrete data elements by data type rather than aggregating them into opaque strings. This allows XML Schema processors to perform basic syntax validation, reducing ambiguity and the amount of parsing and syntax-checking work required of protocol processors.

dns

design-rationale §3.2.3

The <renew> command requires the client to supply <domain:curExpDate> (the current expiration date) as a concurrency guard: repeated <renew> commands are idempotent-safe because the server can detect and reject attempts to renew a domain whose expiration date has already been extended by a prior renewal.

dns

interoperability-note §1.1

A server announcing support for host objects in its EPP greeting MUST NOT allow domain attributes to describe name server hosts; a server that does not announce host object support MUST allow domain attributes. These two forms (hostObj references vs. hostAttr inline) are mutually exclusive within a single <domain:ns> element.

dns

interoperability-note §2.1

Domain name internationalization is handled via ACE labels per RFC 3490 (IDNA) at the time of publication, but the document notes these conformance requirements might change as IDN standards progress. Servers MAY restrict allowable domain names to particular TLDs or domains for which they are authoritative.

dns

normative-requirement §2.3 MUST NOT

A client MUST NOT alter status values set by the server. 'ok' status MUST NOT be combined with any other status. The five pending statuses MUST NOT be combined with each other. Each pending status MUST NOT be combined with its corresponding prohibit status (e.g., 'pendingDelete' MUST NOT be combined with 'clientDeleteProhibited' or 'serverDeleteProhibited').

dns

normative-requirement §3.2.2 SHOULD NOT

A domain object SHOULD NOT be deleted if subordinate host objects are associated with it. A server SHOULD notify clients of existing object relationships by returning a 2305 error response code when a <delete> is attempted and fails due to these relationships.

dns

normative-requirement §1.1 MUST

A server operator MUST use one name server specification form consistently: a server announcing support for host objects in an EPP greeting MUST NOT allow domain attributes to describe name server hosts; a server not announcing host object support MUST allow domain attributes.

dns

normative-requirement §3.2 MUST

Any attempt to transform an object by an unauthorized client MUST be rejected, and the server MUST return a 2201 response code to indicate the client lacks privileges to execute the requested command.

dns, security

normative-requirement §3.2.5 MUST

At least one <domain:add>, <domain:rem>, or <domain:chg> element MUST be provided in an <update> command if the command is not being extended by an extension.

dns

normative-requirement §2.4 MUST

Date and time attribute values MUST be represented in UTC using the Gregorian calendar. The extended date-time form using upper case 'T' and 'Z' characters MUST be used; time zone offset identifiers MUST NOT be used with EPP.

dns

normative-requirement §2.1 MUST

Domain and host name syntax MUST conform to RFC 0952 and RFC 1123. The trailing dot required for DNS zone storage is implicit and MUST NOT be provided when exchanging host and domain names via EPP.

dns

normative-requirement §1.1 MUST

EPP actions (such as transfers) that do not preserve the superordinate domain / subordinate host relationship MUST be explicitly disallowed. An internal host used across domains MUST be treated under rules governing subordinate hosts within the same repository.

dns

normative-requirement §3.2.3 MUST

The <renew> command MUST include a <domain:curExpDate> element containing the current expiration date. This value ensures that repeated <renew> commands do not result in multiple unanticipated successful renewals.

dns

normative-requirement §3.2.4 MUST

Transfer of a domain object MUST implicitly transfer all host objects subordinate to the domain object. For example, transferring 'example.com' when 'ns1.example.com' exists MUST transfer the host object as part of the domain transfer.

dns

normative-requirement §2.3 MUST

When a pending transform action is completed, the corresponding pendingCreate/pendingDelete/pendingRenew/pendingTransfer/pendingUpdate status value MUST be removed, and all clients involved MUST be notified via a service message that the action has been completed.

dns

normative-requirement §3.3 MUST

When offline review of a transform command is performed, the server MUST return response code 1001, MUST manage the object status to reflect the pending action, and MUST notify the client when offline processing is complete.

dns

normative-requirement §3.1.2 MUST

When the <info> querying client is the sponsoring client or provides valid authorization information, all available information MUST be returned. The <domain:authInfo> element MUST only be returned to the current sponsoring client or a client supplying valid authorization information.

dns, security

protocol-element §2.3

Domain object status values include client- and server-prefixed prohibition statuses (clientDeleteProhibited, clientHold, clientRenewProhibited, clientTransferProhibited, clientUpdateProhibited and server counterparts), lifecycle statuses (ok, inactive), and pending operation statuses (pendingCreate, pendingDelete, pendingRenew, pendingTransfer, pendingUpdate).

registry

protocol-element §1.1

Name servers are specified within a <domain:ns> element containing either one or more <domain:hostObj> elements (referencing known host objects by fully qualified name) or one or more <domain:hostAttr> elements (containing <domain:hostName> and optional <domain:hostAddr> with ip attribute 'v4' or 'v6', defaulting to 'v4').

dns

protocol-element §3.1.1

The <check> command accepts one or more <domain:name> elements and returns a <domain:chkData> element containing <domain:cd> entries, each with a <domain:name avail='1|0'> and an optional <domain:reason> explaining why a name cannot be provisioned.

dns

protocol-element §3.1.2

The EPP domain object is identified by a fully qualified name and carries attributes including ROID, status values, registrant, contacts, name servers (ns), subordinate hosts, sponsoring client ID, creation/update/expiration/transfer dates, and authorization information. These are returned via the <domain:infData> element in <info> responses.

registry, dns

protocol-element §3.3

The pending action notification <domain:panData> element is returned via the poll service message mechanism and contains: <domain:name paResult='boolean'> (approved/denied indicator), <domain:paTRID> (original transaction identifiers), and <domain:paDate> (when review was completed).

dns

protocol-element §3.1.3

The <transfer> query response and transform response both use the <domain:trnData> element containing: domain name, trStatus (transfer state), reID (requesting client), reDate (request date), acID (acting client), acDate (action date), and optional exDate (new expiration if changed by transfer).

dns

registry §6

This document registers two URIs with IANA under the IETF XML Registry (RFC 3688): the domain namespace 'urn:ietf:params:xml:ns:domain-1.0' and the domain XML schema 'urn:ietf:params:xml:schema:domain-1.0'.

registry, dns

security-consideration §7 MUST

Authorization information is REQUIRED to create a domain object and is used in query and transfer operations as an additional means of determining client authorization. Both client and server MUST ensure that authorization information is stored and exchanged with high-grade encryption to provide privacy services; failure to protect it can result in unauthorized transfers and unauthorized information disclosure.

security, crypto, dns

state-machine §2.3

A domain object starts in 'inactive' status when created with no associated name server hosts. Transitions occur as operations are applied: 'ok' is set when no prohibitions or pending operations exist; 'pendingXxx' is set when a transform command is received but awaiting completion; pending statuses are removed upon completion and 'ok' is restored or other applicable statuses applied.

dns

wire-format §4

Contact types in the domain mapping are restricted to 'admin', 'billing', or 'tech' via the contactAttrType enumeration. The <domain:info> 'hosts' attribute accepts 'all' (default), 'del', 'sub', or 'none' to filter returned host information.

dns

wire-format §6

The domain mapping uses XML namespace 'urn:ietf:params:xml:ns:domain-1.0' and schema URI 'urn:ietf:params:xml:schema:domain-1.0'. All EPP domain command and response elements are qualified under this namespace.

dns, registry

wire-format §2.5

The <domain:period> element specifies registration duration as an integer (1–99) with a required 'unit' attribute: 'y' for years or 'm' for months. Used in <create>, <renew>, and <transfer> commands.

dns