.UA - наш дiм. Зробимо його кращим!

DOMAIN:CREATE

Команда EPP <create> domain призначена для створення об'єкту Домен.

Команда містить наступні елементи:

  • <domain:name> - Команда містить наступні елементи.
  • <domain:period> - необов'язковий елемент, що визначає термін, на який реєструється домен (в роках). Якщо елемент не вказаний, реєстр встановлює термін, прийнятий як мінімальний для даного публічного домену.
  • <domain:ns> - необов'язковий елемент, що містить список серверів, на яких буде делегований домен. Сервера можуть бути вказані у вигляді посилань на вже створені об'єкти "Хост" (<domain:hostObj>) або у вигляді описів нових серверів (<domain:hostAttr>).
  • <domain:registrant> - обов'язковий елемент, що визначає регістранта домену. Це має бути посилання на об'єкт Контакт, вже існуючий (заздалегідь зареєстрований) в реєстрі.
  • <domain:contact> - один або декілька елементів, вказуючих на адміністративні, технічні контакти домена. Це мають бути посилання на об'єкти Контакт, вже існуючи (заздалегідь зареєстровані) в реєстрі.
  • <domain:authInfo> - authInfo (пароль до об'єкту). Значення ігнорується. При створенні домена пароль не встановлюється.

Для реєстрації домену з DS-записами використовується розширення secDNS.

Приклади

Приклади команди <create>

  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
      <create>
        <domain:create xmlns:domain="http://eunic.net.ua/epp/domain-1.1">
          <domain:name>example1.epp.ua</domain:name>
          <domain:period unit="y">2</domain:period>
          <domain:ns>
            <domain:hostObj>ns1.domain.epp.ua</domain:hostObj>
            <domain:hostObj>ns2.domain.epp.ua</domain:hostObj>
          </domain:ns>
          <domain:registrant>ex123</domain:registrant>
          <domain:contact type="admin">ex11</domain:contact>
          <domain:contact type="tech">ex11</domain:contact>
        </domain:create>
      </create>
      <clTRID>USER-1276171392</clTRID>
    </command>
  </epp>

Для завдання елементу <domain:ns> можна використовувати один з двох способів:

  • як посилання на вже існуючі в реєстрі об'єкти "Хост":
       <domain:ns>
          <domain:hostObj>ns1.example.epp.ua</domain:hostObj>
          <domain:hostObj>ns2.example.epp.ua</domain:hostObj>
       </domain:ns>
    
  • як опис для створення нових об'єктів "Хост". Цей спосіб використовується, як правило, при вказівці серверів в самому реєстрованому домені (glue-серверів):
       <domain:ns>
         <domain:hostAttr>
           <domain:hostName>ns1.example1.epp.ua</domain:hostName>
           <domain:hostAddr ip="v4">192.0.2.2</domain:hostAddr>
           <domain:hostAddr ip="v6">1080:0:0:0:8:800:200C:417A</domain:hostAddr>
         </domain:hostAttr>
         <domain:hostAttr>
           <domain:hostName>ns2.example.net</domain:hostName>
         </domain:hostAttr>
       </domain:ns>
    

Правила створення нових серверів в команді <create> domain підкоряється загальним правилам створення об'єктів "Хост"

При прийомі команди <create> domain відбуваються наступні перевірки:

  • Доменне ім'я відповідає [RFC1034].
    Якщо ні - помилка 2005 "Parameter value syntax error"
  • Інформації про домен немає в Реєстрі.
    Якщо ні - помилка 2302 "Object exists"
  • Публічний домен, в якому реєструється новий домен, обслуговується Реєстром.
    Якщо ні - помилка 2307 "Unimplemented object service"
  • Реєстратор має право на реєстрацію в даному публічному домені.
    Якщо ні - помилка 2307 "Unimplemented object service"
  • Задано обов'язкове поле <domain:registrant>.
    Якщо ні - помилка 2001 "Command syntax error"
  • Ідентифікатори контактів, задані в полях<domain:registrant> та <domain:contact>, зареєстровані в Реєстрі.
    Якщо ні - помилка 2303 "Object not exists"
  • Загальна кількість контактів в домені не перевищує максимального (16).
    Якщо ні - помилка 2001 "Command syntax error"
  • Кількість контактів одного типу не перевищує максимального (8).
    Якщо ні - помилка 2001 "Command syntax error"
  • Ідентифікатори контактів одного типа не дублюються.
    Якщо ні - помилка 2005 "Parameter value syntax error"
  • Хости, задані в полях <domain:hostObj>, зареєстровані в Реєстрі.
    Якщо ні - помилка 2303 "Object not exists"
  • Хости, задані в полях <domain:hostAttr>, зареєстровані в Реєстрі.
    Якщо ні - реєструються в Реєстрі.
    Якщо операція не проходить успішно - помилка 2005 "Parameter value syntax error"
  • Хости, задані в полях <domain:hostObj> та <domain:hostAttr>, не дублюються.
    Якщо ні - помилка 2005 "Parameter value syntax error"
  • Загальна кількість хостів (nameservers) в домені не перевіщує максимального (13).
    Якщо ні - помилка 2001 "Command syntax error"
  • Термін реєстрації домена заданий.
    Якщо немає - встановлюється мінімальний термін реєстрації для даного публічного домену
  • Заданий термін реєстрації домена не перевищує максимального.
    Якщо більше - помилка 2004 "Parameter value range error"
  • На балансі реєстратора досить коштів для здійснення операції.
    Якщо ні - помилка 2309 "Application rejected"
  • Заявка відповідає правилам публічного домена (якщо вони додатково встановлені).
    Якщо ні - помилка - 2309 "Application rejected"

top


Приклад відповіді сервера на команду <create>

Якщо команда <create> відпрацьована успішно, відповідь сервера містить елемент <resData> з піделементом <domain:creData>.

Елемент <domain:creData> містить піделементи:

  • <domain:name> - повністю певне ім'я створеного доменного об'єкту.
  • <domain:crDate> - дата та час створення доменного об'єкту (локальне).
  • <domain:exDate> - дата та час закінчення реєстрації домена (локальне).
 <?xml version="1.0" encoding="UTF-8"?>
 <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   <response>
     <result code="1000">
       <msg lang="en">Command completed successfully</msg>
     </result>
     <resData>
      <domain:creData xmlns:domain="http://eunic.net.ua/epp/domain-1.1">
        <domain:name>example1.epp.ua</domain:name>
        <domain:crDate>2010-06-10T15:03:12+03:00</domain:crDate>
        <domain:exDate>2012-06-10T15:03:12+03:00</domain:exDate>
      </domain:creData>
    </resData>
    <trID>
      <clTRID>USER-1276171392</clTRID>
      <svTRID>CO-20100610150312-508777-00002</svTRID>
    </trID>
   </response>
 </epp>

top


Приклад відповіді сервера з помилкою обробки команди

Приклад відповіді сервера на запит, в якому вказаний невідомий реєстру сервер <domain:hostObj>

<?xml version="1.0" encoding="UTF-8"?>   <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
     <response>
       <result code="2303">
         <msg lang="en">Object does not exist</msg>
         <extValue>
           <value><domain:hostObj 
             xmlns:domain="http://eunic.net.ua/epp/domain-1.1">
             ns2.example.epp.ua</domain:hostObj>
           </value>
           <reason lang="en">incorrect element domain:hostObj</reason>
         </extValue>
       </result>
       <trID>
         <clTRID>USER-1276172390</clTRID>
         <svTRID>CO-20100610151950-773873-00002</svTRID>
       </trID>
     </response>
   </epp>

top


 Обробка заявки, що вимагає додаткової автономної перевірки (приватні домени UA другого рівня)

Для реєстрації приватного домена другого рівня необхідно вказати обов'язкове поле license, що містить номер свідоцтва на знак для товарів і послуг. Вказати його можна в додатковому розширенні до команди <create> із EPP Extension uaepp:

<uaepp:create
  xmlns:uaepp="http://eunic.net.ua/epp/uaepp-1.1">
  <uaepp:license>12345</uaepp:license>
</uaepp:create>

Приклад команди EPP <create> для приватного домена другого рівня:

  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
      <create>
        <domain:create xmlns:domain="http://eunic.net.ua/epp/domain-1.1">
          <domain:name>example1.ua</domain:name>
          <domain:period unit="y">2</domain:period>
          <domain:ns>
            <domain:hostObj>ns1.domain.ua</domain:hostObj>
            <domain:hostObj>ns2.domain.ua</domain:hostObj>
          </domain:ns>
          <domain:registrant>ex123</domain:registrant>
          <domain:contact type="admin">ex11</domain:contact>
          <domain:contact type="tech">ex11</domain:contact>
        </domain:create>
      </create>
      <extension>
        <uaepp:create
          xmlns:uaepp="http://eunic.net.ua/epp/uaepp-1.1">
          <uaepp:license>12345</uaepp:license>
        </uaepp:create>
      </extension>
      <clTRID>USER-1393686180</clTRID>
    </command>
  </epp>

При надходженні заявки, що вимагає додаткової автономної перевірки і підтвердження, клієнтові надсилається відповідь, що заявка прийнята і поставлена в чергу на обробку. Запит знаходиться на розгляді, після закінчення якого клієнт буде повідомлений з допомогою <poll> повідомлень і по email.
Код відповіді на запит: 1001

1001    "Command completed successfully; action pending"
        "Команду виконано успішно, дію відкладено"
        "Команда выполнена успешно, действие отложено"

top


 Приклад відповіді сервера на команду <create>, вимагаючої додаткової перевірки та підтвердження

Якщо команда <create> прийнята і поставлена в чергу, відповідь сервера містить елемені <resData> з піделементом <domain:creData>, так само, як і при обробці команди без відкладання.

Елемент <domain:creData> містить піделементи:

  • <domain:name> - повністю певне ім'я доменного об'єкту.
  • <domain:crDate> - дата та час створення тимчасового доменного об'єкту (локальне).
  • <domain:exDate> - передбачувана дата та час закінчення реєстрації домена (локальне).
 <?xml version="1.0" encoding="UTF-8"?>
 <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   <response>
     <result code="1001">
       <msg lang="en">Command completed successfully; action pending</msg>
     </result>
     <resData>
      <domain:creData xmlns:domain="http://eunic.net.ua/epp/domain-1.1">
        <domain:name>example1.ua</domain:name>
        <domain:crDate>2014-03-01T15:03:12+03:00</domain:crDate>
        <domain:exDate>2015-03-01T15:03:12+03:00</domain:exDate>
      </domain:creData>
    </resData>
    <trID>
      <clTRID>USER-1393686180</clTRID>
      <svTRID>CO-20140301150312-588777-00002</svTRID>
    </trID>
   </response>
 </epp>

Новий доменний об'єкт створюється в Реєстрі із статусом "pendingcreate". Оператор Реєстру перевірить заявку та після її підтвердження клієнтові будуть відправлені <poll> і email-повідомлення про результати обробки.

<poll>-повідомлення, сформовані як результат обробки відкладеної заявки <create>, в елементи <resData> містять наступні елементи:

  • <domain:name> - повністю певне ім'я доменного об'єкту. Елемент містить атрибут "paResult", який може мати значення:
    • "1" - заявка підтверджена і виконана
    • "0" - заявка відхилена
  • <domain:paTRID> - містить ідентифікатори транзакцій клієнта (clTRID) і відповіді сервера (svTRID) по відкладеній заявці.
  • <domain:paDate> - дата та час обробки заявки (локальні).

top


 Пример <poll> повідомлення з інформацією про успішне завершення обробки заявки <create> domain

  <?xml version="1.0" encoding="UTF-8"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <response>
      <result code="1301">
        <msg lang="en">Command completed successfully; ack to dequeue</msg>
      </result>
      <msgQ count="5" id="12345">
        <qDate>2014-03-01T16:37:35+03:00</qDate>
        <msg>Pending action completed successfully</msg>
      </msgQ>
      <resData>
        <domain:panData 
          xmlns:domain="http://eunic.net.ua/epp/domain-1.1">
          <domain:name paResult="1">example1.ua</domain:name>
             <domain:paTRID>
               <clTRID>USER-1393686180</clTRID>
               <svTRID>CO-20140301150312-588777-00002</svTRID>
             </domain:paTRID>
          <domain:paDate>2014-03-01T16:00:00.0Z</domain:paDate>
        </domain:panData>
      </resData>
      <trID>
        <clTRID>USER2-1393688234</clTRID>
        <svTRID>CO-20140301163736-665862-00002</svTRID>
      </trID>
    </response>
  </epp>

Елемент <msg> містить повідомлення про успішне завершення операції:

Pending action completed successfully
Відкладену операцію завершено
Отложенная операция завершена

Атрибут paResult елементу domain:name має значення "1"

top


 Приклад <poll> повідомлення з інформацією про відмову в обробці заявки <create> domain

  <?xml version="1.0" encoding="UTF-8"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <response>
      <result code="1301">
        <msg lang="en">Command completed successfully; ack to dequeue</msg>
      </result>
      <msgQ count="5" id="12345">
        <qDate>2014-03-01T16:37:35+03:00</qDate>
        <msg>Pending action rejected. Information about TM is absent</msg>
      </msgQ>
      <resData>
        <domain:panData 
          xmlns:domain="http://eunic.net.ua/epp/domain-1.1">
          <domain:name paResult="0">example1.ua</domain:name>
             <domain:paTRID>
               <clTRID>USER-1393686180</clTRID>
               <svTRID>CO-20140301150312-588777-00002</svTRID>
             </domain:paTRID>
          <domain:paDate>2014-03-01T16:00:00.0Z</domain:paDate>
        </domain:panData>
      </resData>
      <trID>
        <clTRID>USER2-1393688234</clTRID>
        <svTRID>CO-20140301163736-665862-00002</svTRID>
      </trID>
    </response>
  </epp>

Атрибут paResult елементу domain:name має значення "0"

Елемент <msg> містить повідомлення про відмову в обробці операції:

Pending action rejected
Відкладена операція відхилена
Отложенная операция отклонена

Після підтвердження заявки <create> з домена знімається статус "pendingCreate".

В разі відхилення заявки <create> доменний об'єкт видаляється з Реєстру.

top


 Обробка дзеркальних доменів

При отриманні запиту на реєстрацію нового доменного імені в одному з дзеркальних доменів

kiev.ua/kyiv.ua
chernovtsy.ua/chernivtsi.ua
rovno.ua/rivne.ua
реєстраційна сістема перевіряє наявність відповідного дзеркального доменного імені. Якщо дзеркальне ім'я існує, то система перевіряє, чи збігаються дані про Реєстратора, а також основні дані в контакті Реєстранта (name, organization, email) в існуючому дзеркальному доменному імені та в доменному імені, на реєстрацію якого надійшла заявка. Якщо дані збігаються, то доменне ім'я реєструється.

Якщо дані про Реєстратора чи Реєстранта НЕ збігаються, заявка відхиляється з повідомденням:

  2309 Заявка відхилена
       Не збігаються дані про реєстратора в дзеркальному домені
або
  2309 Заявка відхилена
       Не збігаються дані про реєстранта дзеркального домену

top


 Створення домену з DS-записами (розширення secDNS)

Для створення домену з DS-записами використовується команда EPP <create> domain з розширенням secDNS.

Запит команди <create> domain, крім обов’язкових даних, що описані в документациї щодо команди, повинен містити розширення secDNS з блоками даних dsData для кожного нового DS-запису.

Відповідь сервера на команду не змінюється.

При прийомі команди <create> domain з DS-записами проводяться наступні додаткові перевірки:

  • Публічний домен, в якому реєструється новий домен, підтримує протокол DNSSEC.
    Якщо ні - помилка 2309 "Application rejected"
  • Реєстратор має право на роботу з протоколом DNSSEC.
    Якщо ні - помилка 2309 "Application rejected"
  • У заявці зазначений хоча б один NS.
    Якщо ні - помилка 2003 "Required parameter missing"
  • У полі <secDNS:alg> зазначений номер алгоритму, дозволений Регламентом.
    Якщо ні - помилка 2004 "Parameter value range error"
  • У полі <secDNS:digestType> зазначений тип дайджесту, дозволений Регламентом.
    Якщо ні - помилка 2004 "Parameter value range error"
  • У полі <secDNS:digest> зазначений дайджест, що містить шістнадцятеричний рядок довжиною, відповідною типу дайджеста.
    Якщо ні - помилка 2005 "Parameter value syntax error"
  • Якщо додатково передається публічний KSK-ключ, то перевіряються дані в блоці <secDNS:keyData>. <secDNS:flags> повинен дорівнювати 257
    Якщо ні - помилка 2306 "Parameter value policy error"
  • У блоці <secDNS:keyData> елемент <secDNS:protocol> повинен дорівнювати 3
    Якщо ні - помилка 2306 "Parameter value policy error"
  • KSK-ключ, зазначений у блоці <secDNS:keyData>, відповідає DS-запису
    Якщо ні - помилка 2306 "Parameter value policy error"
  • Загальна кількість DS-записів для домену не перевищує максимальної (6).
    Якщо ні - помилка 2001 "Command syntax error"

Приклад запиту <create> domain з розширенням secDNS для створення домену з одним DS-записом


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
      <create>
        <domain:create xmlns:domain="http://eunic.net.ua/epp/domain-1.1">
          <domain:name>example1.epp.ua</domain:name>
          <domain:period unit="y">2</domain:period>
          <domain:ns>
            <domain:hostObj>ns1.domain.epp.ua</domain:hostObj>
            <domain:hostObj>ns2.domain.epp.ua</domain:hostObj>
          </domain:ns>
          <domain:registrant>ex123</domain:registrant>
          <domain:contact type="admin">ex11</domain:contact>
          <domain:contact type="tech">ex11</domain:contact>
        </domain:create>
      </create>
      <extension>
        <secDNS:create xmlns:secDNS="http://eunic.net.ua/epp/secDNS-1.1">
          <secDNS:dsData>
            <secDNS:keyTag>29040</secDNS:keyTag>
            <secDNS:alg>13</secDNS:alg>
            <secDNS:digestType>2</secDNS:digestType>
            <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest>
          </secDNS:dsData>
        </secDNS:create>
      </extension>
      <clTRID>USER-1276171392</clTRID>
    </command>
  </epp>

Приклад запиту <create> domain з розширенням secDNS для створення домену з одним DS-записом та публічним ключем

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
      <create>
        <domain:create xmlns:domain="http://eunic.net.ua/epp/domain-1.1">
          <domain:name>example1.epp.ua</domain:name>
          <domain:period unit="y">2</domain:period>
          <domain:ns>
            <domain:hostObj>ns1.domain.epp.ua</domain:hostObj>
            <domain:hostObj>ns2.domain.epp.ua</domain:hostObj>
          </domain:ns>
          <domain:registrant>ex123</domain:registrant>
          <domain:contact type="admin">ex11</domain:contact>
          <domain:contact type="tech">ex11</domain:contact>
        </domain:create>
      </create>
      <extension>
        <secDNS:create xmlns:secDNS="http://eunic.net.ua/epp/secDNS-1.1">
          <secDNS:dsData>
            <secDNS:keyTag>29040</secDNS:keyTag>
            <secDNS:alg>13</secDNS:alg>
            <secDNS:digestType>2</secDNS:digestType>
            <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest>
            <secDNS:keyData>
              <secDNS:flags>257</secDNS:flags>
              <secDNS:protocol>3</secDNS:protocol>
              <secDNS:alg>13</secDNS:alg>
              <secDNS:pubKey>x0I6K8UuEs9nIG1/tbn64zS6LmjQ+Kzq+5ajegu6QkH8JRSLMvb04A==</secDNS:pubKey>
            </secDNS:keyData>
          </secDNS:dsData>
        </secDNS:create>
      </extension>
      <clTRID>USER-1276171392</clTRID>
    </command>
  </epp>

top


Коди відповідей сервера на команду <create>

1000    "Command completed successfully"
        "Команду виконано успішно"
        "Команда выполнена успешно"

1001    "Command completed successfully; action pending"
        "Команду виконано успішно, дію відкладено"
        "Команда выполнена успешно, действие отложено"

2001    "Command syntax error"
        "Синтаксична помилка команди"
        "Синтаксическая ошибка команды"

2003    "Required parameter missing"
        "Відсутній обов'язковий параметр"
        "Отсутствует обязательный параметр"
         Помилка видається, якщо не заданий обов'язковий параметр.

2004    "Parameter value range error"
        "Помилка в значенні параметра"
        "Ошибка в значении параметра"
         Помилка видається у випадку, якщо вказаний в заявці
         період реєстрації перевищує максимальний для даного
         публічного домена

2005    "Parameter value syntax error"
        "Синтаксична помилка параметра"
        "Синтаксическая ошибка параметра"

2201    "Authorization error"
        "Помилка авторізаії"
        "Ошибка авторизации"
         Помилка видається у разі, коли клієнт не є
         реєстратором в даному публічному домені.

2302    "Object exists"
        "Об'єкт вже існує"
        "Объект уже существует"
         Помилка видається при спробі створити вже існуючий
         об'єкт - домен або хост.

2303    "Object does not exist"
        "Об'єкт не існує"
        "Объект не существует"
        Помилка видається при спробі використовувати неіснуючий 
        об'єкт в якості регістранта, контакта або хоста.

2306    "Parameter value policy error"
        "Значення параметра не відповідає правилам"
        "Значение параметра не соответствует правилам"
        Помилка видається, коли KSK-ключ, зазначений у блоці 
        <secDNS:keyData>, не відповідає DS-запису

2307    "Unimplemented object service"
        "Даний об'єкт не обслуговується"
        "Данный объект не обслуживается"
        Помилка видається при спробі зареєструвати домен в 
        публічному домені, який не обслуговується реєстром

2309    "Application rejected"
        "Заявка відхилена"
        "Заявка отклонена"
        Помилка видається у випадку, якщо заявка не відповідає 
        правилам публічного домена 
        або при нестачі коштів для платної операції