1. Введение
1.1. Общие положения
Предварительные условия и порядок проведения технических испытаний определяется Регистратурой домена верхнего уровня. Время проведения испытаний Регистратор согласовывает со службой технической поддержки Регистратуры, которая предоставляет Регистратору задание для испытаний. В случае неуспешного завершения испытаний, Регистратор согласовывает со службой технической поддержки время проведения повторных испытаний и, если это необходимо, получает новое тестовое задание.
1.2. Цель испытаний
Данный документ описывает основные операции, которые программное обеспечение Регистратора должно осуществлять так, чтобы их воспринял реестр домена верхнего уровня (Реестр). Каждый из нижеследующих разделов настоящего документа описывает действия, которые должен выполнить Регистратор для демонстрации корректности реализации Extensible Provisioning Protocol (EPP) v1.0 и взаимодействия с Реестром. Перед прохождением испытаний Регистратору необходимо детально ознакомиться со следующими RFC:
- Extensible Provisioning Protocol (EPP) RFC: 5730
- Extensible Provisioning Protocol Domain Name Mapping RFC: 5731
- Extensible Provisioning Protocol Host Mapping RFC: 5732
- Extensible Provisioning Protocol Contact Mapping RFC: 5733
- Extensible Provisioning Protocol Transport Over TCP RFC: 5734
- Domain Name System (DNS) Security Extensions Mapping for the Extensible Provisioning Protocol (EPP) RFC: 5910
- Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol RFC: 3915
В справочных целях для поиска дополнительной информации рекомендуется также использовать следующие стандарты:
- The Transport Layer Security (TLS) Protocol RFC: 5246
Представленные ниже тесты позволяют проверить корректность взаимодействия с Реестром на стандартных регистраторских операциях. Они не охватывают все возможные ошибки и нештатные ситуации. Программное обеспечение Регистратора отвечает за корректную обработку всех ошибочных ситуаций.
1.3. Критерии успешного прохождения испытаний
Для успешного прохождения испытаний необходимо, чтобы все команды полностью совпадали с тем, как они приведены в данном документе, а данные совпадали с полученными от службы технической поддержки Регистратуры перед началом испытаний. Данные в этом документе приведены только для примера.
Если во время прохождения испытаний код результата в ответе на команду Регистратора не будет точно таким, как показано в описании, необходимо прекратить выполнение испытаний и обратиться в службу технической поддержки Регистратуры.
1.4. Учётные записи и исходные данные
Для прохождения испытаний Регистратор получает две тестовые учётные записи – ClientX и ClientY. Регистратор должен представить в службу технической поддержки Регистратуры действующий адрес электронной почты для получения стандартных уведомлений. До начала испытаний служба технической поддержки Регистратуры сообщает Регистратору имена хостов и номера портов, которые будут открыты для взаимодействия с программным обеспечением Регистратора и адрес, с которого можно скачать сертификат, который необходим для установления соединения с тестовым Реестром. Кроме этого, Регистратор получает вводные данные (доменные имена, данные хостов и контактов), которые он должен использовать при выполнении тестовых заданий.
1.5. Завершение испытаний
Регистратор должен безукоризненно выполнить от начала до конца все задания (без опечаток и в установленном порядке). Отведённое время на прохождение испытаний от первой до последней операции составляет 4 часа. В случае успешного прохождения испытаний, Регистратор получает соответствующее уведомление. В случае неуспешного прохождения испытаний Регистратору предоставляются данные об операции, которая признана неуспешной, а именно:
- Время операции
- Тип операции
- Использованные данные
- Код окончания
- Ожидаемый Код окончания.
1.6. Политика по отношению к контактам и серверам доменных имён
В Реестре установлена следующая политика по отношению к контактам и серверам доменных имён:
При создании домена должен быть указан один контакт, именуемый регистрант, один административный и один технический контакты.
Домены могут создаваться как без указания серверов доменных имён, так и с одним или несколькими серверами. Ниже будет использоваться термин “хост” как синоним “сервер доменных имён”.
2. Взаимодействие по EPP
Регистратор взаимодействуют с Реестром, используя Extensible Provisioning Protocol (EPP) поверх TCP (Transport Control Protocol). Команды EPP формулируются с использованием Extensible Markup Language (XML). Программное обеспечение Регистратора должно использовать XML для отправки команд в Реестр и использовать синтаксический анализатор XML для интерпретации ответов Реестра. Сам EPP функционирует только через аутентификацию Регистратора из соображений безопасности. Дополнительная безопасность достигается путём использования Transport Layer Security (TLS), для шифрования сессии. Регистраторы должны взаимодействовать с сервером EPP с помощью коммерческой или свободной реализации TLS, например, OpenSSL. Дополнительная информация, касательно реализации EPP поверх TCP доступна в “Extensible Provisioning Protocol Transport Over TCP RFC 5734.” Дополнительную информацию, касательно TLS, можно найти в RFC 5246.
2.1. Управление сессией
2.1.1. Старт сессии
На попытку установить связь с Реестром, сервер должен ответить приглашением. Регистратору необходимо дождаться приглашения и только после этого выполнять аутентификацию и прочие команды.
2.1.2. Аутентификация
После получения приглашения, Регистратор должен аутентифицировать себя, отправив в тестовый Реестр команду Login со следующей информацией:
Client ID: ClientX
Password: foo-BAR2
Ответ должен содержать “result code: 1000”.
2.2. Операции с объектами – создание, модификация и информационные.
Названия операций даются по-английски во избежание путаницы в терминологии.
2.2.1. Check Contact TEST-C1 (Contact Available)
Отправьте команду Check с параметром:
Contact ID: TEST-C1
Ожидаемый результат –
result code: 1000
contact:id avail: True
2.2.2. Create Contact TEST-C1
Отправьте команду Create со следующими параметрами:
Contact ID: TEST-C1
Contact Voice: +7.4957654321
Contact Email: petrov@example.qq
Contact Auth Info: password
Contact Int Name: Petrov Petr Petrovitch
Contact Int Address street: 1, Primernaya st.
Contact Int Address City: Moscow
Contact Int Address Postal Code: 123456
Contact Int Address Country: ru
Contact Loc Name: Петров Петр Петрович
Contact Loc Address street: ул. Примерная, д. 1
Contact Loc Address City: Москва
Contact Loc Address Postal Code: 123456
Contact Loc Address Country: ru
Contact Ext Contact Type: person
Contact Ext Birthday: 1980-11-10
Contact Ext Passport: 01 23 123456, выдан ОВД энского р-на
Ответ должен содержать “result code: 1000”.
2.2.3. Check Contact TEST-C1 (Contact Not Available)
Отправьте команду Check с параметром:
Contact ID: TEST-C1
Ожидаемый результат –
result code: 1000
contact:id avail: False
2.2.4. Query Contact TEST-C1
Отправьте команду Info с параметром:
Contact ID: TEST-C1
Ответ должен содержать “result code: 1000”.
2.2.5. Check Contact TEST-C2 (Contact Available)
Отправьте команду Check с параметром:
Contact ID: TEST-C2
Ожидаемый результат –
result code: 1000
contact:id avail: True
2.2.6. Create Contact TEST-C2
Отправьте команду Create со следующими параметрами:
Contact ID: TEST-C2
Contact Voice: +7.4991234567
Contact Fax: +7.4991234567
Contact Email: info@example.qq
Contact Auth Info: password
Contact Int Name: Petrov Petr Petrovitch
Contact Int Org: “Domainer” Ltd.
Contact Int Address street: 98, Primernaya st.
Contact Int Address City: Moscow
Contact Int Address Postal Code: 123456
Contact Int Address Country: ru
Contact Loc Name: Петров Петр Петрович
Contact Loc Org: ЗАО “Домейнер”
Contact Loc Address street: ул. Примерная, д. 98
Contact Loc Address City: Москва
Contact Loc Address Postal Code: 123456
Contact Loc Address Country: ru
Contact Ext Contact Type: org
Contact Ext TIN: 1234567890
Contact Ext Int Org: “Domainer” Ltd.
Contact Ext Int Address street: 98, Primernaya st.
Contact Ext Int Address City: Moscow
Contact Ext Int Address Postal Code: 123456
Contact Ext Int Address Country: ru
Contact Ext Loc Org: ЗАО “Домейнер”
Contact Ext Loc Address street: ул. Примерная, д. 98
Contact Ext Loc Address City: Москва
Contact Ext Loc Address Postal Code: 123456
Contact Ext Loc Address Country: ru
Ответ должен содержать “result code: 1000”.
2.2.7. Update Contact (Change Element)
Отправьте команду Update со следующими параметрами:
Contact ID: TEST-C1
Change Contact Voice: +7.4951234567
Ответ должен содержать “result code: 1000”.
2.2.8. Update Contact (Add Element)
Отправьте команду Update со следующими параметрами:
Contact ID: TEST-C2
Add Contact Status: clientDeleteProhibited
Ответ должен содержать “result code: 1000”.
2.2.9. Update Contact (Remove Element)
Отправьте команду Update со следующими параметрами:
Contact ID: TEST-C2
Remove Contact Status: clientDeleteProhibited
Ответ должен содержать “result code: 1000”.
2.2.10. Check Contact TEST-C3
Отправьте команду Check с параметром:
Contact ID: TEST-C3
Ожидаемый результат –
result code: 1000
contact:id avail: True
2.2.11. Create Contact TEST-C3
Отправьте команду Create со следующими параметрами:
Contact ID: TEST-C3
Contact Voice: +7.4957654321
Contact Email: petrova@example.qq
Contact Auth Info: password
Contact Int Name: Petrova Petra Petrovna
Contact Int Address street: 1, Primernaya st.
Contact Int Address City: Moscow
Contact Int Address Postal Code: 123456
Contact Int Address Country: ru
Contact Loc Name: Петрова Петра Петровна
Contact Loc Address street: ул. Примерная, д. 1
Contact Loc Address City: Москва
Contact Loc Address Postal Code: 123456
Contact Loc Address Country: ru
Contact Ext Contact Type: person
Contact Ext Birthday: 1980-11-10
Contact Ext Passport: 01 23 123457, выдан ОВД энского р-на
Ответ должен содержать “result code: 1000”.
2.2.12. Check Contact TEST-C4
Отправьте команду Check с параметром:
Contact ID: TEST-C4
Ожидаемый результат –
result code: 1000
contact:id avail: True
2.2.13. Create Contact TEST-C4
Отправьте команду Create со следующими параметрами:
Contact ID: TEST-C4
Contact Voice: +7.4951654321
Contact Email: ivanov@example.qq
Contact Auth Info: password
Contact Int Name: Ivanov Petr Petrovitch
Contact Int Address street: 10, Primernaya st.
Contact Int Address City: Moscow
Contact Int Address Postal Code: 123456
Contact Int Address Country: ru
Contact Loc Name: Иванов Петр Петрович
Contact Loc Address street: ул. Примерная, д. 10
Contact Loc Address City: Москва
Contact Loc Address Postal Code: 123456
Contact Loc Address Country: ru
Contact Ext Contact Type: person
Contact Ext Birthday: 1980-11-10
Contact Ext Passport: 01 23 223456, выдан ОВД энского р-на
Ответ должен содержать “result code: 1000”.
2.2.14. Check Contact TEST-C5
Отправьте команду Check с параметром:
Contact ID: TEST-C5
Ожидаемый результат –
result code: 1000
contact:id avail: True
2.2.15. Create Contact TEST-C5
Отправьте команду Create со следующими параметрами:
Contact ID: TEST-C5
Contact Voice: +7.4952654321
Contact Email: sidorov@example.qq
Contact Auth Info: password
Contact Int Name: Sidorov Petr Petrovitch
Contact Int Address street: 111, Primernaya st.
Contact Int Address City: Moscow
Contact Int Address Postal Code: 123456
Contact Int Address Country: ru
Contact Loc Name: Сидоров Петр Петрович
Contact Loc Address street: ул. Примерная, д. 111
Contact Loc Address City: Москва
Contact Loc Address Postal Code: 123456
Contact Loc Address Country: ru
Contact Ext Contact Type: person
Contact Ext Birthday: 1980-11-10
Contact Ext Passport: 01 23 523456, выдан ОВД энского р-на
Ответ должен содержать “result code: 1000”.
2.2.16. Check Name Server (Foreign Registry – Available)
Отправьте команду Check с параметром:
Host Name: ns1.example.com
Ожидаемый результат –
result code: 1000
host:name avail: True
2.2.17. Create Name Server (Foreign Registry)
Отправьте команду Create со следующими параметрами:
Host Name: ns1.example.com
Ответ должен содержать “result code: 1000”.
2.2.18. Check Name Server (Foreign Registry – Available)
Отправьте команду Check с параметром:
Host Name: ns2.example.com
Ожидаемый результат –
result code: 1000
host:name avail: True
2.2.19. Create Name Server (Foreign Registry)
Отправьте команду Create со следующими параметрами:
Host Name: ns2.example.com
Ответ должен содержать “result code: 1000”.
2.2.20. Check Domain (Domain Available for Registration)
Отправьте команду Check с параметром:
Domain Name: пример.дети
Ожидаемый результат –
result code: 1000
domain:name avail: True
2.2.21. Create Domain (пример.дети)
Отправьте команду Create со следующими параметрами:
Domain Name: пример.дети
Domain Registrant Contact ID: TEST-C1
Domain Admin Contact ID: TEST-C1
Domain Tech Contact ID: TEST-C3
Domain Registration Period (Year): 1
Domain Server: ns1.example.com
Domain Server: ns2.example.com
Domain Auth Info: password
Ответ должен содержать “result code: 1000”.
2.2.22. Check Domain (Domain Not Available for Registration)
Отправьте команду Check с параметром:
Domain Name: пример.дети
Ожидаемый результат –
result code: 1000
domain:name avail: False
2.2.23. Query Domain
Отправьте команду Info с параметром:
Domain Name: пример.дети
Ответ должен содержать “result code: 1000”.
2.2.24. Check Name Server (Available)
Отправьте команду Check с параметром:
Host Name: днс1.пример.дети
Ожидаемый результат –
result code: 1000
host:name avail: True
2.2.25. Create Name Server
Отправьте команду Create со следующими параметрами:
Host Name: днс1.пример.дети
Ответ должен содержать “result code: 1000”.
2.2.26. Check Name Server (Unavailable)
Отправьте команду Check с параметром:
Host Name: днс1.пример.дети
Ожидаемый результат –
result code: 1000
host:name avail: False
2.2.27. Query Name Server
Отправьте команду Info с параметром:
Host Name: днс1.пример.дети
Ответ должен содержать “result code: 1000”.
2.2.28. Check Name Server (Available)
Отправьте команду Check с параметром:
Host Name: днс2.пример.дети
Ожидаемый результат –
result code: 1000
host:name avail: True
2.2.29. Create Name Server
Отправьте команду Create со следующим параметром:
Host Name: днс2.пример.дети
IP Address: 192.168.0.25
IPv6 Address: 2001:db8::25
Ответ должен содержать “result code: 1000”.
2.2.30. Update Name Server (Add IP Address)
Отправьте команду Update со следующими параметрами:
Host Name: днс2.пример.дети
Add IP Address: 192.168.0.26
Ответ должен содержать “result code: 1000”.
2.2.31. Update Name Server (Remove IP Address)
Отправьте команду Update со следующими параметрами:
Host Name: днс2.пример.дети
Remove IP Address: 192.168.0.25
Ответ должен содержать “result code: 1000”.
2.2.32. Check Domain (Domain Available for Registration)
Отправьте команду Check с параметром:
Domain Name: домен.дети
Ожидаемый результат –
result code: 1000
domain:name avail: True
2.2.33. Create Domain (домен.дети)
Отправьте команду Create со следующими параметрами:
Domain Name: домен.дети
Domain Registrant Contact ID: TEST-C2
Domain Admin Contact ID: TEST-C4
Domain Tech Contact ID: TEST-C5
Domain Registration Period (Year): 1
Domain Auth Info: password
dsData Interface (RFC 5910):
pubKey: AwEAAbBe1LcvvcCbuV0/cI7gNRdKMkqFgYFzk84e3Kx8Qj2CIrjuFqJTev2aPWa62BAXkBg6teVus4LftmjXab8WY4U=
keyTag: 46707
keyAlgorithm: RSASHA1
digestType: SHA256
digest: E8E6FA107705CB9BCD30FAFA23D447C14AC62DF26AC958B0DCB5BA4D8F63A13F
keyflags: 256
protocol: 3
Ответ должен содержать “result code: 1000”.
2.2.34. Query Domain
Отправьте команду Info с параметром:
Domain Name: домен.дети
Ответ должен содержать “result code: 1000”.
2.2.35. Renew Domain
Обратите внимание на дату окончания регистрации в результате выполнения предыдущей команды, должно быть указано, например:
Domain Expiration Date: 2011-06-21T22:00:00.0Z
Отправьте команду Renew со следующими параметрами:
Domain Name: домен.дети
Current Expiration Date: 2011-06-21
Domain Years Period: 1
Проверьте, что дата окончания регистрации в ответе корректна и ответ содержит “result code: 1000”.
2.2.36. Update Domain – Change Name Servers
Отправьте команду Update со следующими параметрами:
Domain Name: домен.дети
Add Domain Server: ns1.example.com
Add Domain Server: ns2.example.com
Ответ должен содержать “result code: 1000”.
2.2.37. Update Domain – Change Contact
Отправьте команду Update со следующими параметрами:
Domain Name: домен.дети
Change Domain Registrant Contact ID: TEST-C1
Ответ должен содержать “result code: 1000”.
2.2.38. Update Domain – Change Authorization Information
Отправьте команду Update со следующими параметрами:
Domain Name: домен.дети
Change Domain Auth Info: 12345678
Ответ должен содержать “result code: 1000”.
2.2.39. Update Domain – Change Domain Status
Отправьте команду Update со следующими параметрами:
Domain Name: домен.дети
Change Domain Status: clientHold
Ответ должен содержать “result code: 1000”.
2.3. Операции передачи доменов
2.3.1. Domain Transfer Request
Отправьте две команды Transfer Request от имени регистратора ClientY со следующими параметрами:
Domain Name: домен.дети
Domain Auth Info: 12345678
Ответ должен содержать “result code: 1001”.
и
Domain Name: пример.дети
Domain Auth Info: password
Ответ должен содержать “result code: 1001”.
2.3.2. Approve Domain Transfer
Следующие команды выполняются от имени регистратора ClientX.
Сначала надо проверить, что домен находится в процессе передачи. Для этого отправьте команду Transfer Query со следующими параметрами:
Domain Name: домен.дети
Domain Auth Info: 12345678
Ожидаемый результат –
result code: 1000
Transfer Status: pending
Теперь отправьте команду Transfer Approve со следующими параметрами:
Domain Name: домен.дети
Domain Auth Info: 12345678
Ответ должен содержать “result code: 1000”.
2.3.3. Reject Domain Transfer
Следующие команды выполняются от имени регистратора ClientX.
Сначала надо проверить, что домен находится в процессе передачи. Для этого отправьте команду Transfer Query со следующими параметрами:
Domain Name: пример.дети
Domain Auth Info: password
Ожидаемый результат –
result code: 1000
Transfer Status: pending
Теперь отправьте команду Transfer Reject со следующими параметрами:
Domain Name: пример.дети
Domain Auth Info: password
Ответ должен содержать “result code: 1000”.
2.4. Операции удаления объектов
2.4.1. Delete Contact (TEST-C1)
Отправьте команду Delete с параметром:
Contact ID: TEST-C1
Ответ должен содержать “result code: 2305”.
2.4.2. Delete Contact (TEST-C2)
Отправьте команду Delete с параметром:
Contact ID: TEST-C2
Ответ должен содержать “result code: 1000”.
2.4.3. Delete Name Server (днс1.пример.дети)
Отправьте команду Delete с параметром:
Host Name: днс1.пример.дети
Ответ должен содержать “result code: 1000”.
2.4.4. Delete Name Server (днс2.пример.дети)
Отправьте команду Delete с параметром:
Host Name: днс2.пример.дети
Ответ должен содержать “result code: 1000”.
2.4.5. Delete Name Server (ns1.example.com)
Отправьте команду Delete с параметром:
Host Name: ns1.example.com
Ответ должен содержать “result code: 2305”.
2.4.6. Delete Name Server (ns2.example.com)
Отправьте команду Delete с параметром:
Host Name: ns2.example.com
Ответ должен содержать “result code: 2305”.
2.4.7. Delete Domain (пример.дети)
Отправьте команду Delete с параметром:
Domain Name: пример.дети
Ответ должен содержать “result code: 1000”.
2.4.8. Delete Domain (домен.дети)
Отправьте команду Delete с параметром:
Domain Name: домен.дети
Ответ должен содержать “result code: 1000”.
2.4.9. Restore Domain (домен.дети)
Отправьте команду Restore с параметром:
Domain Name: домен.дети
Ответ должен содержать “result code: 1000”.
2.4.10. Restore Report Domain (домен.дети)
Отправьте команду Restore Report с параметром:
Domain Name: домен.дети
Ответ должен содержать “result code: 1000”.