IRIS: A Domain Registry (dreg) Type for the Internet Registry Information Service (IRIS)
Extracted elements (26)
The dreg1 registry type uses only the basic TLS server authentication method as described in IRIS-BEEP (RFC 3983), and uses the default IRIS-BEEP message pattern. No additional BEEP extension capabilities are required beyond the IRIS-BEEP baseline.
In a <contact> result, the country element SHOULD be a two-letter country code per ISO 3166. Phone and fax numbers beginning with '+' MUST be E.164 numbers; the E.164 format is RECOMMENDED.
In a <host> result, the content of <ipV4Address> MUST conform to a valid IPv4 host address per RFC 791, and <ipV6Address> MUST conform to a valid IPv6 host address per RFC 3513.
In <findDomainsByContact>, if <baseDomain> is present it MUST restrict results to domains underneath the specified domain. The <contactHandle> or a contactSearchGroup element must be used to constrain the search.
In <findRegistrarsByName>, if the <baseDomain> element is present it MUST restrict results to registrars capable of registering subdomains in the specified domain. If <namePart> is absent, the query MUST return all applicable registrars.
In the contactSearchGroup, the <inDomain> element MUST only contain a valid domain name (without an '@' symbol), and matching SHOULD take place only on the given domain without partial substring or parent-domain matches. Non-ASCII content in <inDomain> or the domain part of <exactMatch> MUST be normalized per RFC 3491.
Privacy-typed elements present without content MUST have one or more boolean attributes ('private' or 'denied'). These attributes SHOULD be used in accordance with the level of access granted to the data recipient.
The application service label associated with the dreg1 registry type MUST be 'DREG1', the abbreviated form of the URN urn:ietf:params:xml:ns:dreg1.
The bottom-up URI resolution method MUST be identified as 'bottom' in IRIS URIs. Resolution proceeds by trying direct resolution on the full domain name, then progressively removing leftmost labels, and finally falling back to DNS address records with the IRIS well-known port.
The dateTimePrivacyType element MUST specify its content using the 'Z' indicator for Coordinated Universal Time (UTC), as defined by the XML Schema 'dateTime' data type.
The <findDomainsByIDN> query's <exactMatch> element is designed to contain IDNs (not ACE labels) and MUST match only against equivalent IDNs according to the notion of equivalence defined in RFC 3490. This query returns the union of the desired domain and any associated variants.
The <serviceInstance> child of <registrationAuthority> contains an entity reference whose authority areas MUST be domains for which the registration authority has control.
The top-down URI resolution method MUST be identified as 'top' in IRIS URIs. Resolution starts from the root label ('.'), then prepends labels leftward until the full domain name is assembled, falling back to DNS address records if no server connection succeeds.
Within a <domain> result, the <nameServer> element MUST contain an entity reference to a referent of type <host>. Contact role elements (<registrant>, <billingContacts>, etc.) referents MUST each be a <contact> result.
Contact and domain result fields may contain sensitive personal data (postal address, phone, email). The privacy label type attributes ('private', 'denied', 'doNotRedistribute', 'specialAccess') provide a structured mechanism for servers to communicate data withholding policies to clients based on access level, including marking data that must never be published or that must not be redistributed.
Domain status values defined in the <status> block include: reservedDelegation, assignedAndActive, assignedAndInactive, assignedAndOnHold, revoked, transferPending, registryLock, and registrarLock. None of these may appear more than once within a single <status> element.
Privacy label types (dateTimePrivacyType, stringPrivacyType, normalizedStringPrivacyType, tokenPrivacyType, domainStatusType, contactTypeType) allow result fields to be marked with boolean attributes: 'private' (never publishable), 'denied' (policy-restricted), 'doNotRedistribute', and 'specialAccess'. Elements present without content MUST carry one or more of these attributes.
The <contact> result element carries: contactHandle, commonName, language, type (person/organization/role/other), organization, eMail, IDNeMail, sip, postalAddress (with address/city/region/postalCode/country sub-elements), phone, fax, datetime lifecycle fields, and translatedContact references. Many fields use privacy label types and are nillable.
The <domain> result element carries: domainName (RFC 1035 DNS name), optional idn (nameprep form), domainHandle, nameServer references (must be <host>), registrant and contact role references (must be <contact>), a <status> block with up to nine mutually exclusive status values, domainVariant, registrationReference, registry, registrar, and multiple datetime fields for lifecycle tracking.
The dreg1 registry type defines six query derivatives: <findRegistrarsByName>, <findDomainsByContact>, <findDomainsByName>, <findDomainsByIDN>, <findContacts>, and <findDomainsByHost>. Each extends the base IRIS queryType and targets different aspects of domain registry data.
The <host> result element carries: hostHandle (registry-unique identifier), hostName (FQDN conforming to RFC 1035), ipV4Address (conforming to RFC 791), ipV6Address (conforming to RFC 3513), hostContact references, and datetime fields for creation, last modification, and last verification.
The <iris:lookupEntity> query supports nine entity classes: host-name, host-handle, domain-name, idn, domain-handle, contact-handle, ipv4-address, ipv6-address, and registration-authority. All names in these entity classes are case insensitive.
The <languageNotSupported> error code MAY be returned when a client passes a language tag not supported by the server. When returned, the server MUST enumerate the unsupported languages from the query via one or more <unsupportedLanguage> child elements.
The <registrationAuthority> result represents an entity capable of registering domains. It contains a <serviceInstance> referencing its IRIS service identification, an <organizationName>, role type elements (<registry>, <registrar>, or <other>), and <domain> elements listing the domains for which it may register sub-domains.
This document registers the XML namespace URN 'urn:ietf:params:xml:ns:dreg1' with IANA, the S-NAPTR application service label 'DREG1', and the BEEP Profile URI 'http://iana.org/beep/iris1/dreg1'.
This document introduces no new security considerations beyond those specified in IRIS (RFC 3981). Implementers should refer to the IRIS core protocol for applicable security precautions including server authentication via TLS as described in IRIS-BEEP.