25 Extensible Provisioning Protocol (EPP)
Prototypical answer:
gTLD | Full Legal Name | E-mail suffix | Detail | .FRL | Metaregistrar B.V. | metaregistrar.com | View |
The EPP services of the FRP registry is compliant with all major EPP RFCʹs: RFC5730, RFC5731, RFC5732, RFC5733 and RFC5734.
The EPP service of the FRL registry complies to RFC5730 to RFC5734 and RFC5910 for the DS keys of the DNSSEC protocol. The EPP service is written entirely in Java, and uses JAXB (Java Architecture for XML Binding) components to verify incoming XML EPP requests against the XSD’s. The JAXB components use the standard epp, eppcom, domain, host and contact namespaces, as well as the additional namespaces from the FRL registry to verify the incoming XML. Any incoming command that does not conform to the EPP specification will be rejected by the JAXB components. The EPP service does not contain modifications of the domain, host and contact objects, but makes use of the EPP extension protocol described in RFC5730 for any request that does not fit in standard EPP.
Internal structure of the EPP service
The EPP service is programmed into different thread pools that handle the following tasks:
1. EppServerConnection pool, handling incoming EPP connections
2. EppParser pool, Thread pool for validating and parsing the EPP request
3. EppMessageInterpreter pool, Thread pool for interpreting and handling EPP commands
4. ScheduledTasks pool, handles the tasks that require scheduling
Every pool can be replicated more then once within a single server for optimal performance and session handling. Pools can also be allocated to other virtual servers to distribute load between servers.
Database structure
The database structure for the registry service is derived directly from the EPP data objects as described in RFC5730 - RFC5734. This means that wherever the EPP dictates that more then one object can be created, the database structure has separate tables and foreign keys to match.
Databases are addressed in Java using the Hibernate database modelling tool. This tool supports the foreign key structures in the databases, and enables us to select a different database platform without major changes to the software.
Access to the EPP service
The FRL registry offers three different EPP services:
- The test service
- The staging service
- The live service
Any ICANN accredited registrar can receive access to the test EPP service. This way the registrar can test their systems for EPP compliance with the FRL registry.
When a registrar wants to use the live services, a registrar-registry agreement must be signed, that will outline the duties of the registry and of the registrar.
When the RRA is signed, the registrar will get access to the staging and live services of the registry.
When the registrar wants to use the live services for actual registrations, the registrar will have to add funds to the account of the registry. These funds can be in USD or in EUR. The balance of the registrar will be shown in the registration system. If the balance is positive, the registrar can register domain names or request transfers.
Domain transfers
Registrar to registrar transfers will be authcode based. Any registrar with a valid authcode will be able to start the transfer of a domain name to its own administration. The RRA will dictate that the registrar will inform the domain name registrant of the transfer and enable the registrant to stop it when the transfer is unwanted.
Changes of registrant will be the responsibility of the registrar. The registrars that request registrant changes will be fully responsible for any errors in the processing of these requests. Only in specific cases will the registry interfere with registrant changes.
Access to the service
ICANN-accredited registrars that have a signed RRA and access to the registry system will be able to create accounts that can access the EPP service. Specific accounts can be made with specific rights. The registrar can choose to make read-only accounts, or accounts that have no access to the account balance and invoicing, or accounts that can register but not transfer.
Any access to the service is logged with IP data. Daily reporting will show all registrar activity to the registry management. Active throttling mechanisms will prevent registrar abuse or misuse of the system.
Data logging and reporting
The EPP service has extensive logging of all commands that registrars will issue. Every command is logged with command type (info, create, update, delete) and object type (domain, contact, host). All commands are logged with session times and total duration of the session.
Daily reporting will show the management actual status of the EPP service and the session activity on the service.
Monthly reporting to ICANN will show domains registered, transfers done and all other parameters requested by ICANN.
Extra functionality
Two extra functions were added to the EPP service, to provide for requests that are not in standard EPP. For this we published our own schemas on the website of Metaregistrar.com.
The extensions are made consistent with RFC3735 for extending EPP.
The first function is an extension to the Poll protocol. The standard poll has limited support for certain objects, and we needed more.
The second function is an extension to remove a domain name from quarantine. This is not covered in standard epp (the standard EPP RFC does not recognize the status ‘quarantine’). Since quarantine is supported, and there is a need to automatically recover domain names in quarantine, the EPP specification was extended with a undelete command.
A third function that is not standard EPP, but did not require any additional XSD information is the use of authcodes to register reserved domain names. Any domain name that is on the reserved list can be registered by using a specific authcode. The authcode is valid to that domain name only. Any party with a succesful claim to a reserved domain name is entitled to receive the authcode and is able to register the domain name with any ICANN-accredited registrar.
Resourcing for the EPP services
The resource indentifiers used in this document are detailed in the text of question 46
To setup the EPP services, the following resources will be used
R.1 Systems engineer Design and prepare infrastructure 1 day
R.6. Project manager Determine changes or additions and delegate to programmers. 1 day
R.7. Programmer Change the software as needed. Perform system-acceptance tests. 1 day
R.8. Software tester Test changes against the functional design. Perform user-acceptance tests 1 day
To maintain the EPP services, the following resources will be used:
R.2 Operations Engineer Maintain hardware and infrastructure 1 day⁄year
R.5 Support employee Answer questions about the EPP service 20 days⁄year
R.6. Project manager Determine changes or additions and delegate to programmers 1 day⁄year
R.7. Programmer Change the software as needed. Perform system-acceptance tests. 8 days⁄year
R.8. Software tester Test changes against the functional design. 1 day⁄year
R.9 Release manager Release new software 1 day⁄year
T.5 Change board: approve changes to the functionality
Financials:
The EPP services were written for the mother company H2 Beheer BV. This is the company that leases the software to the FRL registry. With H2 Beheer BV an agreement is made that the software will be free for use until the Most Likely scenario of 100.000 domain names has been reached. At that time a fee for software usage will be determined.
XSD structures of the EPP extensions used by the FRL registry
All XSD files can be found at http:⁄⁄metaregistrar.com⁄epp-protocol-extensions⁄
ext-1.0.xsd, a base extension to enable extending the EPP system
This extension enables us to use the undelete command to retrieve domain names from quarantine. The quarantine function is further described in the answers to
〈schema targetNamespace=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄ext-1.0ʺ xmlns:ext=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄ext-1.0ʺ xmlns:epp=ʺurn:ietf:params:xml:ns:epp-1.0ʺ xmlns:eppcom=ʺurn:ietf:params:xml:ns:eppcom-1.0ʺ xmlns:domain=ʺurn:ietf:params:xml:ns:domain-1.0ʺ xmlns=ʺhttp:⁄⁄www.w3.org⁄2001⁄XMLSchemaʺ elementFormDefault=ʺqualifiedʺ〉
〈!-- Import common element types. --〉
〈import namespace=ʺurn:ietf:params:xml:ns:epp-1.0ʺ ⁄〉
〈import namespace=ʺurn:ietf:params:xml:ns:eppcom-1.0ʺ ⁄〉
〈import namespace=ʺurn:ietf:params:xml:ns:domain-1.0ʺ ⁄〉
〈annotation〉
〈documentation〉Metaregistrar EPP extensions〈⁄documentation〉
〈⁄annotation〉
〈element name=ʺextʺ type=ʺext:extTypeʺ ⁄〉
〈complexType name=ʺextTypeʺ〉
〈sequence〉
〈choice〉
〈element name=ʺcommandʺ type=ʺext:commandTypeʺ ⁄〉
〈⁄choice〉
〈⁄sequence〉
〈⁄complexType〉
〈complexType name=ʺcommandTypeʺ〉
〈sequence〉
〈choice〉
〈element name=ʺundeleteʺ type=ʺext:undeleteTypeʺ ⁄〉
〈⁄choice〉
〈element name=ʺclTRIDʺ type=ʺepp:trIDStringTypeʺ minOccurs=ʺ0ʺ ⁄〉
〈⁄sequence〉
〈⁄complexType〉
〈complexType name=ʺundeleteTypeʺ〉
〈sequence〉
〈any namespace=ʺurn:ietf:params:xml:ns:domain-1.0ʺ maxOccurs=ʺ1ʺ minOccurs=ʺ1ʺ ⁄〉
〈⁄sequence〉
〈⁄complexType〉
〈⁄schema〉
command-ext-1.0.xsd, a base extension to extend the domain, contact and host commands
This command extension supports extending domain, contact or host command structures.
〈schema targetNamespace=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄command-ext-1.0ʺ xmlns:command-ext=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄command-ext-1.0ʺ xmlns:epp=ʺurn:ietf:params:xml:ns:epp-1.0ʺ xmlns:eppcom=ʺurn:ietf:param:xml:ns:eppcom-1.0ʺ xmlns=ʺhttp:⁄⁄www.w3.org⁄2001⁄XMLSchemaʺ elementFormDefault=ʺqualifiedʺ
〈!-- Import common element types. --〉
〈import namespace=ʺurn:ietf:params:xml:ns:epp-1.0ʺ ⁄〉
〈import namespace=ʺurn:ietf:params:xml:ns:eppcom-1.0ʺ ⁄〉
〈annotation〉
〈documentation〉 Metaregistrar EPP Command extensions 〈⁄documentation〉
〈⁄annotation〉
〈element name=ʺcommand-extʺ type=ʺcommand-ext:commandExtTypeʺ ⁄〉
〈complexType name=ʺcommandExtTypeʺ〉
〈choice〉
〈any namespace=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄comman-ext-domain-1.0ʺ ⁄〉
〈any namespace=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄comman-ext-contact-1.0ʺ ⁄〉
〈any namespace=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄comman-ext-host-1.0ʺ ⁄〉
〈⁄choice〉
〈⁄complexType〉
〈⁄schema〉
command-ext-domain-1.0.xsd, extends the domain command
This extension supports the opt-out option to limit whois visibility
〈schema targetNamespace=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄command-ext-domain-1.0ʺ xmlns:command-ext-domain=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄command-ext-domain-1.0ʺ xmlns:epp=ʺurn:ietf:params:xml:ns:epp-1.0ʺ xmlns:eppcom=ʺurn:ietf:params:xml:ns:eppcom-1.0ʺ xmlns=ʺhttp:⁄⁄www.w3.org⁄2001⁄XMLSchemaʺ elementFormDefault=ʺqualifiedʺ〉
〈!-- Import common element types. --〉
〈import namespace=ʺurn:ietf:params:xml:ns:epp-1.0ʺ ⁄〉
〈import namespace=ʺurn:ietf:params:xml:ns:eppcom-1.0ʺ ⁄〉
〈annotation〉
〈documentation〉 Metaregistrar EPP Command domain extensions 〈⁄documentation〉
〈⁄annotation〉
〈element name=ʺdomainʺ〉
〈complexType〉
〈sequence〉 〈element name=ʺoptOutʺ type=ʺbooleanʺ ⁄〉 〈⁄sequence〉
〈⁄complexType〉
〈⁄element〉
〈⁄schema〉
command-ext-contact-1.0.xsd, extends the contact commands
Empty at this point, for future use only if we want to extend contact commands
〈schema targetNamespace=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄command-ext-contact-1.0ʺ xmlns:command-ext-contact=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄command-ext-contact-1.0ʺ xmlns:epp=ʺurn:ietf:params:xml:ns:epp-1.0ʺ xmlns:eppcom=ʺurn:ietf:params:xml:ns:eppcom-1.0ʺ xmlns=ʺhttp:⁄⁄www.w3.org⁄2001⁄XMLSchemaʺ elementFormDefault=ʺqualifiedʺ〉
〈!-- Import common element types. --〉
〈import namespace=ʺurn:ietf:params:xml:ns:epp-1.0ʺ ⁄〉
〈import namespace=ʺurn:ietf:params:xml:ns:eppcom-1.0ʺ ⁄〉
〈annotation〉
〈documentation〉
Metaregistrar EPP Command contact extensions
〈⁄documentation〉
〈⁄annotation〉
〈element name=ʺcontactʺ〉
〈complexType〉
〈sequence〉
〈⁄sequence〉
〈⁄complexType〉
〈⁄element〉
〈⁄schema〉
command-ext-host-1.0.xsd, extends the host commands
This Empty at this point, for future use only, if we want to extend host commands
〈schema targetNamespace=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄command-ext-host-1.0ʺ xmlns:command-ext-host=ʺhttp:⁄⁄www.metaregistrar.com⁄epp⁄command-ext-host-1.0ʺ xmlns:epp=ʺurn:ietf:params:xml:ns:epp-1.0ʺ xmlns:eppcom=ʺurn:ietf:params:xml:ns:eppcom-1.0ʺ xmlns=ʺhttp:⁄⁄www.w3.org⁄2001⁄XMLSchemaʺ elementFormDefault=ʺqualifiedʺ〉
〈!-- Import common element types. --〉
〈import namespace=ʺurn:ietf:params:xml:ns:epp-1.0ʺ ⁄〉
〈import namespace=ʺurn:ietf:params:xml:ns:eppcom-1.0ʺ ⁄〉
〈annotation〉
〈documentation〉 Metaregistrar EPP Command host extensions 〈⁄documentation〉
〈⁄annotation〉
〈element name=ʺhostʺ〉
〈complexType〉
〈sequence〉
〈⁄sequence〉
〈⁄complexType〉
〈⁄element〉
〈⁄schema〉
Similar gTLD applications: (0)
gTLD | Full Legal Name | E-mail suffix | z | Detail |