On 8 November 2009 we shall make a number of changes to simplify our representation of nameservers within the registry database. This page details the effect that the changes will have on the Nominet EPP.
Overview of changes
We are restructuring our nameserver model to remove all duplication of nameserver data. We will only be holding a single copy of each nameserver, removing the need for nameserver identifiers.
The main impact of the changes is that all nameserver identifier fields will be removed from EPP.
Schema changes
We will be releasing a new schema, nom-domain-2.0.xsd to reflect the changes to the nameserver model. All previous versions of the schema will be deprecated.
All versions of the nom-ns schema will be deprecated. It will be replaced by the standard host-1.0 schema as this provides all required functionality.
There will be three month cross over period during which the deprecated schemas will continue to be accepted. They will be withdrawn on ... February 2010. During this period, any domain create, domain modify, nameserver info and nameserver modify requests that include nameserver identifiers will be rejected.
<domain:create>/<domain:update>
The <domain:ns> optional sub-element of the <domain:create> element will be changed to reflect the new model. It will contain up to 10 <domain:host> sub-elements. Each <domain:host> sub-element will contain the following child elements:
- A <domain:hostName> element giving the name of the host object.
- Optional <domain:hostAddr> elements giving the ip addresses of the host object. This element should be provided only if the nameserver needs glue records. It should have an "ip" attribute of "v4" or "v6" indicating the ip version. A maximum of one ipv4 and one ipv6 address can be provided.
The nameserver object defined will be created if it does not already exist and the domain name linked to it. A example request fragment is :
<domain:name>epp-example.co.uk</domain:name>
...
<domain:ns>
<domain:host>
<domain:hostName>ns0.epp-example.com</domain:hostName>
</domain:host>
<domain:host>
<domain:hostName>ns0.epp-example.co.uk</domain:hostName>
<domain:hostAddr ip="v4">111.123.145.121</domain:hostAddr>
<domain:hostAddr ip="v6">abcd::1234</domain:hostAddr>
</domain:host>
</domain:ns>
Responses to successful create operations will be changed - the <domain:ns> child element will be removed from the <domain:creData> element. An empty <domain:ns/> element will cause all nameservers to be detached from the domain.
<domain:info>
Successful responses to <domain:info> requests will be changed to reflect the new nameserver model. The <domain:ns> sub-element of the <domain:infData> element will be as listed above.
Nameserver operations
The nom-ns schema will be removed. All direct nameserver operations will be done using the standard
host-1.0 schema.
The nameserver model will observe the following behaviour:
- The <host:check> operation will reflect whether a subsequent <host:create> operation will succeed.
- The <host:create> operation will only be successful if the nameserver object does not already exist in the registry.
- <host:create> and <host:modify> operations will ignore any specified glue records unless the super-ordinate domain is in our registry (co.uk, org.uk etc.) and is registered to the requesting tag.
- Internal hosts (co.uk, org.uk etc.) can only be created if the super-ordinate domain exists in our registry.
- A <host:modify> operation will only be successful if the super-ordinate domain is registered to the requesting tag or if the nameserver object is attached only to domains on that tag.
- The <host:query> operation is useful only to find the glue records for that nameserver and will be successful for all tags.
<poll> operation
The <domain:simpleInfData> element used in registrar change and registrant transfer notifications and handshake requests will be changed to include the <domain:ns> element described above.
The <domain:creData> element used in referral accepted notifications will be changed as described above.
Unaffected operations
- <domain:check>
- <domain:delete>
- <account:fork>
- <hello>
- <account:info>
- <contact:info>
- <login>
- <logout>
- <account:merge>
- <domain:renew>
- <domain:transfer>
- <account:transfer>
- <domain:lock>
- <domain:unlock>
- <domain:unrenew>