Внимание! Панель “DNS-master” входит в пакет услуг “Primary-Standart” от nic.ru. Перед началом работы убедитесь, что она доступна в вашем личном кабинете.
Привязка основного домена.
Чтобы привязать основной домен вам потребуется добавить 3 записи вида:
- www CNAME testlpgenerator.ru.
- @ A 84.38.188.100
- @ A 94.26.226.179
Как это сделать:
1. Зайдите в панель управления доменами nic.ru
2. В разделе “Услуги» справа выберите пункт “DNS-хостинг”:
Обратите внимание, если в следующем окне вы видите надпись «Услуги не найдены», значит DNS хостинг, необходимый для редактирования зоны DNS не приобретен.
Перейдите в раздел «Заказ новый услуги»:
И выберите подходящий тариф. Оптимальный — 600 рублей в год:
3. Если DNS хостинг приобретен, то вы увидите следующее окно. Кликните по кнопке «Управление DNS зонами» возле нужного домена:
4. В разделе «Список доменов» выберите нужный домен:
5. Нажмите кнопку “Добавить новую запись” в панели редактирования зоны:
6. Заполните поля следующим образом:
Name: @
Type: A
IP address: 84.38.188.100
Нажмите кнопку «Добавить» справа от записи:
Аналогично добавьте еще одну запись типа А со значением:
@ А 94.26.226.179
7. Далее добавьте еще одну запись, заполнив поля следующим образом:
Alias: www
Type: CNAME
Canonical name: testlpgenerator.ru. (точка на конце нужна!)
И нажмите кнопку «Добавить»:
8. После того как записи добавлены нажмите справа сверху кнопку «Выгрузить зону»:
9. Если при добавлении записей возникнет сообщение о неделегированном домене, нажмите «Делегировать домен»:
Делегировать домен можно также из раздела домены:
Готово!
На обновление DNS может потребоваться 24-48 часов. Если по прошествию этого времени на домене/поддомене, который вы привязали, не отобразиться страница 404 в фирменном оформлении LPgenerator, пишите нам support@lpgenerator.ru.
К письму просим приложить скриншот текущего состояния DNS — это значительно ускорит процесс решения вашей проблемы.
Привязка поддомена
Если у вас на основном домене размещен сайт, или его размещение планируется, целесообразнее создать поддомен и привязать его.
Для привязки поддомена в панели nic.ru требуется добавить 2 записи типа CNAME:
- www.promo CNAME testlpgenerator.ru.
- promo CNAME testlpgenerator.ru.
Как это сделать:
Привязка поддомена отличается только теми записями, которые будете добавлять, поэтому до 4 пункта действия остаются теми же, что и при привязке основного домена.
5. Нажмите «Добавить запись» и заполните поля так:
Alias: promo (promo — это пример, вы можете придумать любое название поддомена, только не смешивайте в названии латиницу и кириллицу)
Type: CNAME
Canonical name: testlpgenerator.ru. (точка на конце нужна!)
Далее нажмите кнопку «Добавить»:
6. Добавьте еще одну запись и заполните поля:
Alias: www.promo (promo — это пример, вы можете придумать любое название поддомена, только не смешивайте в названии латиницу и кириллицу)
Type: CNAME
Canonical name: testlpgenerator.ru. (точка на конце нужна!)
Нажмите кнопку «Добавить»:
7) Нажмите справа сверху кнопку «Выгрузить зону»:
Готово!
На обновление DNS может потребоваться 24-48 часов. Если по прошествию этого времени на домене/поддомене, который вы привязали, не отобразиться страница 404 в фирменном оформлении LPgenerator, пишите нам support@lpgenerator.ru.
К письму просим приложить скриншот текущего состояния DNS — это значительно ускорит процесс решения вашей проблемы.
02-10-2012
Ресурсные записи DNS (Domain Name System или Система Доменных Имён) определяют, куда направить запрос и какую страничку в сети нужно открыть. По сути, они преобразовывают удобные для восприятия человека названия сайтов в уникальные адреса интернет-страничек.
Например, вы видите логичную буквенную запись, которую легко запомнить и ввести в адресную строку. Но на самом деле в ней зашифрован сложный набор символов со множеством параметров.
Всю систему можно представить в виде телефонного справочника. Только вместо номера используется IP-адрес, а вместо имени абонента — домен. Можно внести и дополнительную информацию об объекте, как электронная почта или дополнительный номер для человека.
Однако «телефонных номеров» нет в «телефонном справочнике Интернета», пока их туда не запишут. Соответственно, сайт открываться не будет, а на электронную почту не придут письма. Чтобы начать работу, ресурсные записи необходимо добавить в систему. Обмен данными возможен, только если они хранятся на DNS-серверах.
Ресурсные записи бывают нескольких видов с разными параметрами. Давайте рассмотрим типы записей dns и их назначение.
Что такое А запись домена
А записи DNS связывают домен с IP-адресом. Благодаря ему система понимает, с какого сервера нужно открыть сайт. Если такая запись отсутствует, страничка банально не откроется.
Снова проведём аналогию с телефонами. Так, по первым цифрам определяется код страны или города, и вы понимаете, куда звоните или откуда звонят вам.
Примеры A-записи для хоста info.domaintest.ru в файле зоны domaintest.ru:
Новая DNS запись | |||
Name | Type | IP address | TTL |
Info | A | 194.85.61.44 | 1h |
Запись AAAA DNS работает аналогично, только IP адрес указывается по протоколу IPv6. Для него используется 128-битная система записи. Записи отображены в виде 16-битных блоков, между которыми расположены двоеточии. Например, он может быть таким – 2dfc:0:0:0:0217:cbff:fe8c:0.
Что такое CNAME запись
Полное название звучит «Canonical name». С помощью этого вида записей привязывают поддомены, обычно они используются для блогов интернет-магазинов и других «дочерних» страниц общего крупного портала.
Перед вами пример, как добавить CNAME. Дополнительное имя указывается перед главным доменом.
Имя | Тип | TTL | Значение |
first.example.com. | CNAME | 600 | host.example.com. |
second.example.com. | CNAME | 600 | host.example.com. |
host.example.com. | А | 600 | 192.0.2.100 |
Что такое MX запись домена
Эта запись для корректного функционирования электронной почты. MX записи домена направляет письмо на нужный сервер.
Примеры MX-записей для домена domaintest.ru:
Новая DNS запись | ||||
Name | Type | Priority | Mail Relay | TTL |
domaintest.ru | MX | 10 | 194.85.61.44 | 1h |
Желательно указывать сразу два почтовых сервера. Если один из них не будет работать, письмо придёт на другой. Если правильно выполнить добавление mx записи и настройку, письма будут приходить быстрее, а большая часть спама отфильтруется.
Числа в значении отображают приоритет mx записи. Основным будет тот, где число меньше. Можно поставить одинаковые цифры, тогда сервер будет выбран случайным образом.
Что такое запись типа TXT
TXT записи в конфигурации DNS – это текстовая информация о домене. Это могут быть данные о регистрации домена, сведения о SSL-сертификате и другие параметры.
Добавить txt записи в dns можно в любом количестве. Однако важно следить, чтобы они между собой не конфликтовали, то есть не может присутствовать противоречивая информация.
Примеры TXT-записи:
Новая DNS запись | |||
Name | Type | Text | TTL |
Info.domaintest.ru | TXT | ”INFO NIC” “RU-CENTER information server” | 1h |
Что такое запись SPF
Эта запись необходима для обеспечения информационной безопасности. Она ссылается на серверы, которые могут отправлять письма от конкретного домена.
Обычно в значении указаны подробные сведения.
Новая DNS запись | |||
Name | Type | Значение | TTL |
Info.domaintest.ru | TXT | v=spf1 redirect=nicmail.ru | 1h |
В данном примере прописано несколько параметров. Это версия записи, значения другого домена, разрешённые для приёма почты IP-адреса, серверы и т.д.
Параметр ~all отправляет письмо на повторную проверку, если оно отправлено с сервера не из согласованного списка. Чтобы обеспечить максимальную защиту от спама вместо него используют -all. В этом случае письмо не приходит в основную папку, а сразу отправляется в спам без проверки.
Что такое запись NS
Эта записи поддерживает иерархию поддоменов ниже третьего уровня. Актуальны они в основном для больших порталов, так как связывают доменное имя с DNS-сервером.
Новая DNS запись | |||
Name | Type | Name Server | TTL |
domaintest.ru | NS | ns3-12.nic.ru | 1h |
Когда у системы запрашивается доменный адрес, сначала определяется NS-запись. В ней присутствует хостинг сервер доменных имен, куда перенаправляется запрос. В работе домена их роль незначительна.
Что такое PTR запись
Эта запись обеспечивает отправку почты и помогает обходить спам-фильтры.
Она представляет собой противоположность A записи, то есть указывает на доменное имя для указанного адреса.
Выглядит PTR запись для почтового сервера так.
Новая DNS запись | |||
Name | Type | Host Name | TTL |
42 | PTR | mx.domaintest.ru | 1h |
Чаще всего этот параметр прописывается автоматически. Но если хотите, чтобы ваши письма обязательно приходили адресату, нужно знать, как прописать ptr запись самостоятельно в личном кабинете.
Например, важно указать домен или поддомен, соответствующий имени хоста сервера. Затем для него нужно прописать А-запись с нужным IP адресом. В конце нужно обязательно поставить точку.
Что такое запись SOA
Эта запись очень важна, так как является начальной записью зоны – частью пространства DNS-имен, управляемая одним или несколькими серверами. Она формируется автоматически и удалить её невозможно.
А выглядит запись так.
Primary DNS: | ns3-12.nic.ru |
E-mail: | dns@nic.ru |
Serial: | 2014012102 |
Minimum TTL: | 600 |
Refresh: | 1440 |
Retry: | 36000 |
Expire: | 2592000 |
SOA хранит в себе внушительный объём информации.
- TTL – это время кэширования данных другими DNS-серверами.
- Hostname – контактные данные ответственного за администрирование файлов лица.
- Serial number – серийный номер. Он постоянно меняется после любого обновления зоны.
- Refresh – время ожидания ответа вторичного DNS на запрос.
- Retry – установленное время для обновления сведений о ресурсных записях зоны.
- Expire – ограничение по времени, в рамках которого вторичный DNS заканчивает синхронизацию зоны с первичным. Если синхронизация пройти не успеет, зона на вторичном DNS-сервере больше не будет обслуживать запросы об этой зоне.
- Minimum TTL – столько хранится кэш для негативного ответа на запрос.
Во всех случаях время указывается в секундах.
Что такое srv запись для домена
Она ведёт на A- или AAAA-запись и указывает на имя хоста и порт сервера, где функционирует конкретная служба.
Новая DNS запись | ||||||
_Service._Proto.Name | Type | Priority | Weight | Port | Target | TTL |
_foobar._tcp | CRV | 0 | 1 | 9 | photo.domain… | 1h |
Запись включает в себя несколько элементов.
- Priority — приоритет хоста. У главного значение должно быть ниже.
- Weight — вес для хостов, если у них равный приоритет. Хост будет выбран, если его значение выше.
- Port — используемый порт.
- Target — полностью определённое имя домена.
Прописывать все перечисленные записи очень важно, поскольку Система Доменных Имён работает не в виртуальном пространстве, а на физических носителях – компьютерах, серверах. Они обеспечивают нам связь с остальным миром, корректно указывая путь.
Внимание! Панель “DNS-master” входит в пакет услуг “Primary-Standart” от nic.ru. Перед началом работы убедитесь, что она доступна в вашем личном кабинете.
Привязка основного домена
Для привязки основного домена в панели nic.ru требуется добавить 2 записи разного типа:
- www CNAME testlpgenerator.ru.
- @ A 79.125.10.157
Как это сделать.
1. Заходим панель управления доменами nic.ru.
2. В разделе “Услуги” выбираем “DNS-хостинг”:
3. Выбираем из списка домен, зону которого собираемся редактировать, нажимаем “Управление DNS-зонами”:
В «Списке доменов» выбираем нужный домен:
4. Нажмите кнопку “Добавить новую запись” в панели редактирования зоны:
5. Выберите тип записи “CNAME”. В поле “Alias” впишите www, в поле “Canonical name” — testlpgenerator.ru.:
Обратите внимание! В конце канонического имени нужна точка (после testlpgenerator.ru.)!
6. Сохраните изменения, нажав кнопку «Добавить».
Проделываем все вышеописанные действия до пункта 4.
7. Выберите тип записи “A”. В поле “Name” добавьте @ (или имя домена, который вы собираетесь привязать), а в поле “IP address” последовательность цифр — 79.125.10.157:
8. Сохраните изменения, нажав кнопку «Добавить».
Внимание! Данный вид привязки не является рекомендуемым, так как при изменении IP наших серверов, страницы, размещенные на домене привязанном таким способом, будут недоступны! Но если вы выбрали все-таки ее, следите за нашими рассылками или новостными лентами в социальных сетях, чтобы подготовиться, если изменение IP произойдет.
В случае с nic.ru недоступность страниц при смене IP можно избежать, если настроить переадресацию с основного домена (редирект 301), привязанного с помощью записи A, на поддомен www. О том как это сделать, вы найдете рекомендацию в форуме.
Привязка поддомена
Если у вас на основном домене размещен сайт, или его размещение планируется, целесообразнее создать поддомен и привязать его.
Для привязки поддомена в панели nic.ru требуется добавить 2 записи типа CNAME:
- www.promo CNAME testlpgenerator.ru.
- promo CNAME testlpgenerator.ru.
Как это сделать, вам продемонстрирует нижеследующее иллюстрированное руководство.
Название поддомена “promo” в руководстве взято в качестве примера. Вы же можете присвоить ему любое название, которое на ваш взгляд наиболее приемлемо.
До 4 пункта действия остаются теми же, что и при привязке основного домена.
5. Выберите тип записи “CNAME”. В поле “Alias” впишите www.promo, в поле “Canonical name” — testlpgenerator.ru.:
Сохраните ее.
6. Добавьте еще одну запись типа “CNAME”. В поле “Alias” впишите promo, в поле “Canonical name” — testlpgenerator.ru.:
Сохраните запись.
Обратите внимание! В конце канонического имени нужна точка (после testlpgenerator.ru.)!
На обновление DNS может потребоваться 24-48 часов. Если по прошествию этого времени на домене/поддомене, который вы привязали, не отобразиться страница 404 в фирменном оформлении LPgenerator, пишите нам support@lpgenerator.ru.
К письму просим приложить скриншот текущего состояния DNS — это значительно ускорит процесс решения вашей проблемы.
С уважением,
служба технической поддержки LPgenerator
Внимание! Панель “DNS-master” входит в пакет услуг “Primary-Standart” от nic.ru. Перед началом работы убедитесь, что она доступна в вашем личном кабинете.
Привязка основного домена.
Чтобы привязать основной домен вам потребуется добавить 3 записи вида:
-
www CNAME testlpgenerator.ru.
-
@ A 84.38.188.100
-
@ A 77.244.212.51
Как это сделать:
1. Зайдите в панель управления доменами nic.ru
2. В разделе “Услуги» справа выберите пункт “DNS-хостинг”:
Обратите внимание, если в следующем окне вы видите надпись «Услуги не найдены», значит DNS хостинг, необходимый для редактирования зоны DNS не приобретен.
Перейдите в раздел «Заказ новый услуги»:
И выберите подходящий тариф. Оптимальный — 600 рублей в год:
3. Если DNS хостинг приобретен, то вы увидите следующее окно. Кликните по кнопке «Управление DNS зонами» возле нужного домена:
4. В разделе «Список доменов» выберите нужный домен:
5. Нажмите кнопку “Добавить новую запись” в панели редактирования зоны:
6. Заполните поля следующим образом:
-
Name: @
-
Type: A
-
IP address: 84.38.188.100
Нажмите кнопку «Добавить» справа от записи:
Аналогично добавьте еще одну запись типа А со значением:
@ А 77.244.212.51
7. Далее добавьте еще одну запись, заполнив поля следующим образом:
-
Alias: www
-
Type: CNAME
-
Canonical name: testlpgenerator.ru. (точка на конце нужна!)
И нажмите кнопку «Добавить»:
8. После того как записи добавлены нажмите справа сверху кнопку «Выгрузить зону»:
9. Если при добавлении записей возникнет сообщение о неделегированном домене, нажмите «Делегировать домен»:
Делегировать домен можно также из раздела домены:
Готово!
На обновление DNS может потребоваться 24-48 часов. Если по прошествию этого времени на домене/поддомене, который вы привязали, не отобразиться страница 404 в фирменном оформлении LPgenerator, пишите нам support@lpgenerator.ru.
К письму просим приложить скриншот текущего состояния DNS — это значительно ускорит процесс решения вашей проблемы.
Привязка поддомена
Если у вас на основном домене размещен сайт, или его размещение планируется, целесообразнее создать поддомен и привязать его.
Для привязки поддомена в панели nic.ru требуется добавить 2 записи типа CNAME:
-
www.promo CNAME testlpgenerator.ru.
-
promo CNAME testlpgenerator.ru.
Как это сделать:
Привязка поддомена отличается только теми записями, которые будете добавлять, поэтому до 4 пункта действия остаются теми же, что и при привязке основного домена.
5. Нажмите «Добавить запись» и заполните поля так:
-
Alias: promo (promo — это пример, вы можете придумать любое название поддомена, только не смешивайте в названии латиницу и кириллицу)
-
Type: CNAME
-
Canonical name: testlpgenerator.ru. (точка на конце нужна!)
Далее нажмите кнопку «Добавить»:
6. Добавьте еще одну запись и заполните поля:
-
Alias: www.promo (promo — это пример, вы можете придумать любое название поддомена, только не смешивайте в названии латиницу и кириллицу)
-
Type: CNAME
-
Canonical name: testlpgenerator.ru. (точка на конце нужна!)
Нажмите кнопку «Добавить»:
7) Нажмите справа сверху кнопку «Выгрузить зону»:
Готово!
На обновление DNS может потребоваться 24-48 часов. Если по прошествию этого времени на домене/поддомене, который вы привязали, не отобразиться страница 404 в фирменном оформлении LPgenerator, пишите нам support@lpgenerator.ru.
К письму просим приложить скриншот текущего состояния DNS — это значительно ускорит процесс решения вашей проблемы.
Работа с ресурсными записями
Типы записей и их параметры:
Файл зоны состоит из ресурсных записей разных типов.
Единственный поддерживаемый класс записей — IN.
Набор ресурсных записей с одинаковым типом, классом и именем (в левой части записи)
называется множеством записей (RRset).
Обязательными являются записи типа SOA и NS для имени, совпадающего
с названием зоны. Все остальные могут отсутствовать.
Записи состоят из различных полей (параметров).
Формат записи временных параметров
В интерфейсе редактора зон возможно указать значение временных параметров
в неделях, днях, часах, минутах и секундах, используя соответствующие буквы:
w — недели, d — дни, h — часы, m — минуты, s — секунды.
XXw — XX недель, XXd — XX дней, XXh — XX часов, XXm —
XX минут, XXs — XX секунд (где XX — число).
В файл зоны временной параметр будет записан в секундах.
Примеры записей:
1890 — 1890 секунд;
2d5h — 2 дня и 5 часов;
3h30s — 3 часа и 30 секунд.
Свернуть
Параметры Default TTL, TTL, Minimum TTL
Временные параметры Default TTL,
TTL, Minimum TTL определяют
время TTL (Time-to-live — «время жизни»), в течение которого
DNS-серверы (кроме вторичных), получившие информацию о записях с любого DNS-сервера,
будут ее хранить в своей памяти (кэше) и сообщать ее по запросам других DNS-серверов.
TTL |
Определяет «время жизни» (time-to-live) для конкретной записи. |
Default TTL |
Определяет время TTL— «время жизни», в течение |
Minimum TTL |
Определяет «время жизни» отрицательных ответов на запросы |
Формат записи временных параметров приведен в соответствующем
разделе
Свернуть
SOA-запись
Запись SOA (Start of Authority) или начальная запись зоны
указывает, на каком сервере хранится эталонная информация о данном домене,
содержит контактную информацию лица, ответственного за данную зону, параметры
времени кэширования зонной информации и взаимодействия DNS-серверов.
В любой зоне должна быть только одна SOA-запись для имени, совпадающего
с именем зоны.
Формат SOA-записи
имя [TTL] SOA Данные
имя: имя зоны
TTL: см. описание параметра TTL
SOА: тип записи
Данные:
- Primary Name Server
Первичный (Primary) DNS-сервер для некоторой зоны — DNS-сервер,
на котором хранится полная исходная информация об этой зоне.
Пример записи:
ns3-l2.nic.ru. (неизменяемая запись). - Hostmaster
Адрес электронной почты лица, ответственного за содержимое файла зоны.
Формат записи параметра Hostmaster:
В интерфейсе редактора зон в этом поле следует указывать электронный адрес
(один) в обычном формате адреса электронной почты.
В файл зоны адрес будет записан в стандартном для поля Hostmaster формате,
т.е. с символом «@», замененным на «.», и с точкой в конце.
Пример записи:
dns.nic.ru. - Serial number
Serial number (серийный номер) — это номер версии файла зоны.
Этот номер должен быть положительным целым числом и увеличиваться каждый раз,
когда в файл зоны вносятся изменения (см. RFC1982). Увеличение серийного номера
показывает вторичным серверам, что зона изменена, и что им необходимо обновить
у себя зону.
Вы можете не увеличивать этот номер вручную, т.к. он увеличивается
автоматически при сохранении файла зоны в редакторе файлов зон.
Если вы измените серийный номер так, что после сохранения файла зоны
он останется неизменным или станет меньше, чем был ранее, то вторичные серверы
не будут перечитывать данные с первичного сервера, т.к. будут считать, что данные
не изменились.
Диапазон допустимых значений (для редактора файлов зон):
от 0 до 2147483646 включительно (231−2). - Refresh
Временной параметр Refresh показывает, как часто вторичные серверы
должны запрашивать первичный сервер, чтобы узнать, не увеличился ли
Serial number(серийный номер) зоны и, следовательно, не нужно
ли обновить ее у себя.
Рекомендуемое значение: от 1h до 6h.
Диапазон допустимых значений: от 30m до 4w.
Формат записи временных параметров приведен в соответствующем
разделе. - Retry
Параметр Retry показывает, как долго вторичный сервер имен должен ждать, перед тем как повторить попытку запроса первичного сервера (на предмет изменений серийного номера данной зоны), если предыдущая попытка оказалась неудачной.
Рекомендуемое значение: от 20m до 60m;
Диапазон допустимых значений: от 5m до 2w.
Формат записи временных параметров приведен в соответствующем разделе. - Expire
Параметр Expire указывает верхнее ограничение по времени, в течение которого
вторичный сервер может использовать ранее полученные данные о зоне до того, как они
потеряют силу из-за отсутствия обновления (например, вследствие отключения первичного
сервера имен на длительное время).
Рекомендуемое значение: от 1w до 1m;
Диапазон допустимых значений: не менее значения параметра Refresh
и не более 1 года.
Формат записи временных параметров приведен в соответствующем разделе.
Редактирование SOA-записи
Для редактирования SOA-записи необходимо выбрать домен.
Затем выбрать пункт «SOA и TTL».
После чего заполнить необходимые поля и нажать кнопку «Применить».
Далее, перед выгрузкой обновленного файла зоны можно посмотреть его содержимое,
для этого нужно зайти в пункт «Ресурсные записи».
Нажать ссылку «предпросмотр зоны».
В открывшемся окне проверить правильность обновляемых данных.
В данном случае SOA-запись имеет следующий вид:
domaintest.ru. IN SOA ns3-l2.nic.ru.
dns.nic.ru.
(
2014012102 ; serial
1440 ; refresh
36000 ; retry
2592000 ; expire
600 ; minimum
)
Если данные верны, то нужно выгрузить зону. Для этого закройте окно с содержимым
файла зоны и нажмите кнопку «Выгрузить зону».
Свернуть
A-запись
Запись типа A позволяет установить соответствие между именем хоста в домене
и его IP-адресом.
Запись типа A имеет следующий формат:
имя_хоста [TTL] A IP-адрес
имя_хоста: доменное имя хоста (устройства), подключенного к Интернету,
для которого данная запись определяет соответствие с его IP-адресом.
TTL: см. описание параметра TTL
А: тип записи
IP-адрес: IP-адрес хоста.
Обращаем ваше внимание на то, что у всех записей типа А, относящихся
к одному имени хоста, значение TTL должно быть одинаковым.
Примеры A-записи для хоста info.domaintest.ru в файле зоны domaintest.ru:
или
Свернуть
NS-запись
Записи типа NS (Name Server — cервер имен) описывают DNS-серверы
для данного домена. Количество записей типа NS в файле зоны должно точно
соответствовать количеству DNS-серверов, обслуживающих домен и включать все DNS-серверы,
указанные в домене. Для доменов второго уровня это DNS-серверы, указанные
в полях «nserver» в информации по домену, которую можно получить, используя сервис
Whois (https://www.nic.ru/whois/).
Запись типа NS имеет следующий формат:
доменное_имя [TTL] NS имя_хоста
TTL: см. описание параметра TTL
NS: тип записи
имя_хоста: доменное имя DNS-сервера.
Примеры NS-записей в домене domaintest.ru.
Указаны DNS-серверы, обслуживающие домен domaintest.ru и домен третьего уровня
test в домене domaintest.ru (test.domaintest.ru).
Для домена domaintest.ru:
В случае делегирования поддомена, например, test.domaintest.ru:
Обращаем ваше внимание на то, что у всех записей типа NS, относящихся к одному
доменному имени, значение TTL должно быть одинаковым.
Если для делегирования некоторого домена в зону внесены NS-записи,
то для этого доменного имени в данной зоне не может быть других типов записей,
кроме glue-записей, если они нужны (см. RFC1034).
Например, в зоне domaintest.ru делегирован домен vasja.domaintest.ru:
vasja.domaintest.ru. NS ns1.vasja.domaintest.ru.
vasja.domaintest.ru. NS ns2. vasja.domaintest.ru.
В этом случае нужны glue-записи (A-записи с указанием IP-адресов DNS-серверов,
на которых размещен домен) вида:
ns1.vasja.domaintest.ru. A 194.123.1.1
ns2.vasja.domaintest.ru. A 194.123.2.1
и недопустимы записи вида:
vasja.domaintest.ru. MX 10 mail.domaintest.ru.
www.vasja.domaintest.ru. A 194.123.1.3
Эти записи должны находиться в зоне домена vasja.domaintest.ru.
Свернуть
MX-запись
Запись типа MX (Mail Exchange — почтовый сервер) определяет почтовый
сервер — машину, которая обрабатывает почту для вашего домена.
Запись типа MX имеет следующий формат:
доменное_имя [TTL] MX приоритет почтовый сервер
TTL: см. описание параметра TTL
MX: тип записи
приоритет: определяет значение приоритетности почтового сервера.
Чем меньше число, тем выше приоритет почтового сервера
(0 означает самый высокий приоритет, 65535 — самый низкий). Таким образом,
почтовый сервер с более высоким приоритетом является основным, а почтовые серверы
с более низкими приоритетами будут второстепенными и вступят в работу в том случае,
если все более приоритетные серверы по каким-либо причинам недоступны
или неработоспособны.
почтовый сервер: имя почтового сервера.
Примеры MX-записей для домена domaintest.ru:
или
Таким образом, почтовый сервер relay2.domaintest.ru является основным,
а relay3.domaintest.ru является второстепенным почтовым сервером и вступает
в работу в том случае, если relay2.domaintest.ru по каким-либо причинам недоступен
или неработоспособен.
Обращаем ваше внимание на то, что у всех записей типа MX, относящихся
к одному доменному имени, значение TTL должно быть одинаковым, то есть приведенные
в примере записи не могут существовать одновременно.
Свернуть
CNAME-запись
Запись типа CNAME (Canonical Name — каноническое имя) позволяет
присваивать хосту мнемонические имена. Мнемонические имена, или псевдонимы,
широко применяются для связывания с хостом какой-либо функции, либо просто
для сокращения имени.
Реальное имя иногда называют каноническим.
Если для хоста есть запись типа CNAME, которая содержит его мнемонические
имена, другие записи для данного хоста должны ссылаться на его реальное
(каноническое) имя, а не на мнемоническое. Когда программы DNS встречают запись
CNAME, они прекращают свои запросы по мнемоническому имени и переключаются
на реальное имя.
Например, недопустима конструкция вида:
ns1.domaintest.ru. CNAME ns.domaintest.ru.
office.domaintest.ru. NS ns1.domaintest.ru.
Кроме того, если данное имя использовано в качестве псевдонима,
то на него нельзя занести записи любого другого типа.
Т.е. недопустима конструкция вида:
domain CNAME имя_хоста
domain MX 10 почтовый сервер
Мнемонические имена полезны, например, в случае, когда имя хоста изменилось,
и вы хотите разрешить пользователям, знающим старое имя, получить доступ к хосту.
Запись типа CNAME имеет следующий формат:
мнемоимя [TTL] CNAME имя_хоста
Мнемоимя: мнемоническое имя хоста
TTL: см. описание параметра TTL
CNAME: тип записи
имя_хоста: каноническое имя хоста.
Примеры CNAME-записей для хоста archive.domaintest.ru в домене
domaintest.ru.:
или
Свернуть
AAAA-запись
Запись типа AAAA позволяет установить соответствие между именем хоста в домене и его IPv6-адресом.
Запись типа AAAA имеет следующий формат:
имя_хоста [TTL] AAAA IPv6_адрес
имя_хоста: доменное имя хоста (устройства), подключенного к Интернету, для которого данная запись определяет соответствие с его IPv6-адресом.
TTL: см. описание параметра TTL
АAAA: тип записи
IPv6_адрес: IPv6-адрес хоста.
Обращаем ваше внимание на то, что у всех записей типа АAAA, относящихся
к одному имени хоста, значение TTL должно быть одинаковым.
Примеры AAAA-записи для хоста info.domaintest.ru в файле зоны
domaintest.ru:
или
Свернуть
PTR-запись
Записи типа PTR (Pointer — указатель) служат для выполнения
обратного преобразования IP-адресов в имена хостов. Для каждого сетевого интерфейса
хоста рекомендуется создать запись PTR.
Примечание: Если провайдер выделил вам несколько IP-адресов
из своей сети, то по поводу записей в обратной зоне вам следует обращаться к нему.
Запись типа PTR имеет следующий формат:
адрес [TTL] PTR имя_хоста
адрес: преобразованный IP-адрес хоста
TTL: см. описание параметра TTL
PTR: тип записи.
Примеры PTR-записей
Если провайдер выделил вам IP-адрес 194.85.61.42 в сети 194.85.61.0/24,
то запись о вашем хосте (например, mx.domaintest.ru) будет сделана провайдером
в обратной зоне 61.85.194.in-addr.arpa. Запись будет иметь вид:
или
Свернуть
SRV-запись
Записи типа SRV используются для поиска серверов, обеспечивающих работу
тех или иных служб в данном домене.
С подробным описанием этого типа записей вы можете ознакомиться в
RFC-2782.
Запись типа SRV имеет следующий формат:
_Service._Proto.Name [TTL] SRV Priority Weight Port Target
Service: название службы (пример: ldap, kerberos, gc и другие).
Proto: протокол, при помощи которого клиенты могут подключиться
к данной службе (пример: tcp, udp).
Name: имя домена, в котором размещена данная служба.
TTL: см. описание параметра TTL.
SRV: тип записи.
Priority: приоритет данного сервера. Чем меньше число, тем выше приоритет
(0 означает самый высокий приоритет, 65535 — самый низкий).
Weight: относительный вес для серверов с одинаковым приоритетом.
Предназначен для распределения нагрузки между серверами, для которых указан равный
приоритет.
Port: порт, на котором размещена указанная служба на данном сервере.
Target: доменное имя сервера, предоставляющего данную службу.
Примеры SRV-записей
или
Свернуть
TXT-запись
Запись типа TXT обычно используется для текстового описания доменного имени.
Запись типа TXT имеет следующий формат:
имя [TTL] TXT текст
имя: имя домена или хоста
TTL: см. описание параметра TTL
TXT: тип записи
текст: одна или несколько текстовых строк, каждая из которых содержит
не более 255 символов.
Примеры TXT-записи:
или
При добавлении или редактировании TXT-записи в интерфейсе редактора файлов зон:
- Если необходимо внести несколько текстовых строк, то они должны быть
разделены переводом строки. - Если в строке ввода более 255 символов, перевод строки осуществляется
автоматически после 255-го символа. - Не нужно указывать кавычки (символ «) в начале и конце текстовой строки.
В файл зоны строка автоматически будет записана в стандартном для поля TXT-формате,
т.е. с кавычками. - Если в текстовой строке используются кавычки, то они будут автоматически
экранированы.
Свернуть
Работа с ресурсными записями:
Просмотр существующих ресурсных записей
Для просмотра ресурсных записей необходимо выбрать домен.
Перейти в раздел «Ресурсные записи»
После этого на странице откроется таблица со списком всех текущих ресурсных
записей.
Свернуть
Добавление новых ресурсных записей
Для того чтобы добавить новую запись, нужно перейти в раздел
«Ресурсные записи» зоны и нажать кнопку «Добавить новую запись».
Указать необходимые параметры добавляемой записи.
* Количество и набор задаваемых параметров различаются в зависимости от типа
добавляемой записи
После того, как вы добавите новую зону, вам нужно выгрузить файл зоны для того,
чтобы изменения вступили в силу. Для этого на этой же странице нажмите кнопку
«Выгрузить зону».
Свернуть
Маски (символ «*») в записях файла зоны
DNS резервирует специальный символ, звездочку (*), для использования
в файлах зоны в качестве части маски. Звездочка сопоставляется с любым числом
меток в имени, за исключением тех случаев, когда запись для имени уже существует
в базе данных DNS-сервера.
Место использования маски строго определено — это может быть только первый символ в поле имени текущего домена или имени хоста, отделенный от остальных символом «.».
Символ звездочка (*) недопустим в имени домена в левой части NS-записи.
Примеры использования масок:
Записи означают, что почта, отправленная на адрес somebody@domaintest.ru,
будет направлена на почтовый сервер relay1.domaintest.ru, а почта,
отправленная на любые другие адреса в домене domaintest.ru, например,
somebody@mail.domaintest.ru или somebody@anyhost.domaintest.ru,
будет направлена на почтовый сервер relay2.domaintest.ru. или
Запись означает, что любое возможное имя хоста в домене domaintest.ru
(например, «www.domaintest.ru», «mail.domaintest.ru», «anyname1.anyname2.domaintest.ru»
и т.п.) будет соответствовать IP-адресу 194.123.1.1.
Ограничения масок:
Маски не сопоставляются с доменными именами, для которых уже определены данные.
Например:
*.domaintest.ru. MX 10 relay2.domaintest.ru
mail.domaintest.ru. MX 10 relay3.domaintest.ru
info.domaintest.ru. A 194.123.1.1
office.domaintest.ru. NS ns1.office.domaintest.ru
Почта, например, для somebody@mail.domaintest.ru будет отправляться
на почтовый сервер relay3.domaintest.ru, но почта для somebody@anydomain.domaintest.ru
будет отправляться почтовому серверу relay2.domaintest.ru.
Поиск MX-записи для info.domaintest.ru приведет к получению ответа,
что MX-записи для данного доменного имени не существует.
Маска не может быть использована, так как для этого имени существует A-запись.
Маска также не будет использована для доменных имен в пределах зоны
office.domaintest.ru, так как маски не распространяются за границы делегирования.
Свернуть
Содержание
- Как создать поддомен на хостинге Руцентра (nic.ru)
- Руководство как создать поддомен на хостинге Руцентра (nic.ru)
- Похожие статьи
- 6 Комментариев
- Описание услуги «Настройка домена»
- Как создать поддомен?
- Создание синонимов и поддоменов на хостинге
- Синонимы
- Поддомены
- Присоединение доменного имени к веб-сайту
Как создать поддомен на хостинге Руцентра (nic.ru)
Задача создать поддомен (субдомен) обычно не вызывает затруднений, в Интернете достаточно руководств о том как это сделать, применительно к различным хостингам и серверам. Только вот к Руцентру это совсем не относится.
Создание поддомена на хостинге nic.ru совсем не тривиальная задача, потому что в стандартном FAQ хостера описание процесса создания поддомена третьего уровня не поддается анализу человеческим мозгом. При звонке в службу поддержки отвечают, что проще добавить поддомен в список сайтов и не париться с настройками.
Руководство как создать поддомен на хостинге Руцентра (nic.ru)
Нам понадобиться доступ в административную панель хостера, также не помешает возможность доступа по ftp, но без нее можно обойтись. В качестве примерного имени сайта будем использовать имя mysite.ru
1. Заходим в административной панели хостинга во вкладку Веб-сервер/Управление и включаем mod_rewrite (rewrite_module), если он еще не был включен.
2. Заходим во вкладку Веб-сервер/Сайты/mysite.ru, выбираем нужный сайт и включаем использование .htaccess, если эта функция еще не включена.
3. В этой же вкладке Веб-сервер/Сайты/mysite.ru добавляем poddomen.mysite.ru в список синонимов сайта mysite.ru, где poddomen — имя нашего поддомена.
4. Теперь необходимо создать нужную директорию, в корневой папке создаем папку subdmn, а в ней папку poddomen. Таким образом корневая папка поддомена будет находится по адресу mysite.ru/subdmn/poddomen.
5. Добавляем в файл .htaccess следующие строки:
Не забудьте вместо mysite.ru указать ваше доменное имя и доменную зону.
Ваш поддомен не сразу будет работать так как нужно, придется подождать пару часов, пока сервер хостера примет новые настройки.
Похожие статьи
6 Комментариев
Добрый день! Спасибо за статью, хотел спросить 1 нюанс, если у меня в папке основной с сайтом уже идет редирект всех запросов на index.php:
RewriteCond % !-f
RewriteCond % !-d
RewriteRule .* index.php [L]
Как правильно было бы переписать ваш код для htaccess что бы работали оба правила?
Не совсем поняла, зачем это нужно. Если у Вас хостинг на nic.ru там можно в настройках личного кабинета указать какой файл будет индексным и нет необходимости прописывать дополнительные правила в htaccess
1) Куда размещать index.html поддомена? в mysite.ru/subdmn/poddomen или в mysite.ru/subdmn/poddomen/docs ?
2) куда размещать.htaccess ? в mysite.ru или в mysite.ru/subdmn/poddomen или в mysite.ru/subdmn/poddomen/docs ?
3) это вы описали процедуру создания поддомена для отдельного сайта или для синонима одного из существующих сайтов?
Работающее решение, например, для WordPress и двух поддоменов:
1.
В панели управления Руцентра
Веб-сервер -> Сайты -> mysite.ru -> Синонимы сайта
Создаём синонимы
poddomen1.mysite.ru
poddomen2.mysite.ru
2.
Через FTP cоздаём подкаталоги
mysite.ru/subdmn/poddomen1
mysite.ru/subdmn/poddomen2
3.
Создаём .htaccess в кодировке UTF-8 без BOM-сигнатуры
и помещаем его в каталог /mysite.ru/docs
4.
Пишем в .htaccess следующее:
#———————
Options All -Indexes
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ — [L]
RewriteCond % !-f
RewriteCond % !-d
RewriteRule . /index.php [L]
#———————
P.S.
Важно, чтобы вордпрессовский блок (всё что после RewriteBase /) был ПОСЛЕ переадресаций поддоменов.
можно написать конкретно:
RewriteRule ^subdmn/poddomen1/ — [last]
RewriteCond % (www.)?poddomen1.mysite.ru [nocase]
RewriteRule (.*) subdmn/poddomen1/$1 [last]
RewriteRule ^subdmn/poddomen2/ — [last]
RewriteCond % (www.)?poddomen2.mysite.ru [nocase]
RewriteRule (.*) subdmn/poddomen2/$1 [last]
Зачем вы фантазируете на пустом месте? Откуда появилась папка docs? У меня про нее не слова и не нужна она вообще.
.htaccess лежит всегда в корневой папке основного сайта
Источник
Описание услуги «Настройка домена»
Настройка домена — услуга по изменению технических параметров вашего домена. Заказ можно сделать, оставив заявку с указанием необходимых настроек на странице услуги. В рамках услуги специалисты RU-CENTER проведут за вас следующие операции для домена:
Укажите в заявке список DNS-серверов, на которые нужно делегировать домен, и их IP-адреса, если делегирование осуществляется на дочерние DNS-серверы. Также по заявке можно снять делегирование с домена.
- Записи в файле зоны
Для внесения ресурсных записей в файл зоны перечислите в заявке все параметры, которые необходимо изменить: имя хоста, значения записи или тип записи (A, MX, TXT, CNAME). Операция возможна при наличии услуги «DNS-хостинг» или опции тарифа «DNS-премиум» для вашего домена.
- Связь с почтой и сайтом
Добавьте в заявку имена DNS-серверов (как правило, не менее двух), необходимых для работы сайта и почты, и их IP-адреса.
Специалисты RU-CENTER делегируют ваши поддомены на отдельные DNS-серверы для отдельного управления зонами. Делегирование осуществляется как минимум на два DNS-сервера, их необходимо указать в заявке на оказание услуги. Дополнительно могут понадобиться имена и IP-адреса DNS-серверов, если делегирование производится на DNS в этом же домене. Настройка возможна при наличии услуги «DNS-хостинг» или опции тарифа «DNS-премиум» для вашего домена.
Чтобы настроить DNSSEC для доменов .ru, .рф и .su, укажите в заявке DNSKEY и DS-записи. Для международных и зарубежных доменов достаточно DS-записей.
Для корректной работы DNSSEC перечислите DS-записи для ключа, которым подписана или вскоре будет подписана зона домена второго уровня.
Поддерживаемые алгоритмы для генерации ключей: DSA/SHA-1 RSA/SHA-1 DSA-NSEC3-SHA1 RSASHA1-NSEC3-SHA1 RSA/SHA-256 RSA/SHA-512 GOST R 34.10-2001 ECDSA Curve P-256 with SHA-256 ECDSA Curve P-384 with SHA-384;
- Настройка услуги «Secondary»
Для настройки необходимо указать в заявке имена DNS-серверов, использованных при делегировании домена, а также IP-адрес первичного DNS-сервера, с которого следует получать файл зоны для домена. Настройка возможна при наличии услуги «DNS-Secondary».
- Перенаправление с домена
Чтобы подключить перенаправление посетителей с домена на нужный сайт, укажите в заявке адрес страницы, на которую нужно настроить перенаправление. Кроме этого, можно указать домен второго, третьего и т. д. уровней, с которых нужно выполнять перенаправление. Возможна установка временного перенаправления, постоянного перенаправления и маскировки адреса, с которого осуществляется перенаправление. Настройка возможна при наличии услуги «Перенаправление домена».
Для подключения перенаправления с почты нужно указать в заявке действующий email. Все письма, отправленные на почтовые адреса в домене, будут перенаправлены на указанный вами адрес в другом домене. Либо вы можете указать список адресов электронной почты в домене и соответствующий им список действующих адресов в другом домене, на которые нужно перенаправить почту. Уточните, что необходимо делать с письмами, не попавшими под правила перенаправления: удалить или перенаправлять на другой адрес. Настройка возможна при наличии услуги «Перенаправление почты».
Услуга «Настройка домена» может быть оказана только при наличии необходимых денежных средств на балансе вашего договора.
Источник
Как создать поддомен?
Поддомен позволяет разделить сайт на отдельные категории, выделив для каждой из них отдельную запись на серверах имен. Что позволит как расположить поддомены и основной домен на разных серверах хостинга, так и создать запоминающееся имя для каждого раздела.
За примером далеко и ходить не надо: База Знаний NIC.UA, находится на поддомене http://support.nic.ua. А ещё есть info.nic.ua где мы выкладываем всякую полезную информацию и конечно же club.nic.ua для нашей ежегодной акции.
Так что если хотите и себе создать поддомен — давайте приступим к настройке.
⚠️Инструкция показывает создание поддомена когда домен использует серверы имен NIC.UA.
Откройте раздел «Серверы имен (NS)» и перейдите к настройкам записей, нажав на шестеренку возле серверов имен; а затем на «Изменить» возле DNS-записей:
Откроется меню для редактирования и добавления DNS-записей. Чтобы создать поддомен, который будет направлен на хостинг, вам нужно нажать на «Добавить запись» и создать такую DNS-запись:
- Имя: subdomain (имя поддомена)
- Тип: А
- IPv4 адрес хоста: 195.149.114.57 (IP вашего хостинга)
Название поддомена можно указывать любое, а их количество ограничено лишь вашей фантазией. Также поддомен может быть записью любого типа: CNAME / TXT / и так далее. На скриншоте ниже создано три поддомена:
- first.example.com, который расположен на том же хостинге что и example.com
- second.example.com, который ссылается на NIC.UA
- third.example.com, который перенаправляет на http://google.com
После того как вы заполнили поля, не забудьте нажать на кнопку «Сохранить» — и дождитесь обновления записей у своего интернет-провайдера. Обычно обновление занимает от пары часов до суток.
Источник
Создание синонимов и поддоменов на хостинге
Синонимы
Синоним ( алиас ; псевдоним) — альтернативное доменное имя. Например, для домена nic.ru можно создать синоним ник.рф. Для обоих доменов будет отображаться один сайт.
Создание синонима сайта осуществляется в разделе Сайты → Ваш_сайт → Настройки → Синонимы панели управления хостингом. На этой странице нажмите на кнопку Создать новый синоним и укажите его название. Добавляемый домен должен быть направлен на хостинг.
Если в качестве синонима вы добавите поддомен , он станет доступен в течение 2-4 часов.
Перенаправление с синонима на основной домен вы можете настроить с помощью .htaccess.
Поддомены
Поддомен ( субдомен ; домен 3-го уровня) — домен, который является частью домена более высокого уровня. Например, для домена nic.ru можно создать поддомены: www.nic.ru, info.nic.ru и т.д.
Если на поддомене будет использоваться отдельная CMS-система, следует создать его отдельным сайтом в панели управления хостингом:
- Перейдите в раздел Сайты.
- Нажмите на кнопку Создать сайт укажите имя поддомена (например, subdomain.domain.com), нажмите на кнопку Продолжить, далее следуйте инструкциям мастера установки.
Файлы поддомена subdomain.domain.com следует разместить в папке
/subdomain.domain.com/docs на хостинге.
Если поддомен должен быть синонимом (алиасом) одного из существующих сайтов, то необходимо:
- Зайти в раздел Сайты → Ваш_сайт → Настройки → Синонимыпанели управления хостингом.
- На данной странице нажмите на кнопку Создать новый синоним и укажите его название.
В этом случае по имени поддомена будет отображаться то же содержимое, что и на основном сайте. Этот вариант может использоваться при настройке многосайтовости на уровне CMS.
После обновления информации на DNS-серверах (1-3 часа) станет доступным по своему имени в Сети.
Источник
Присоединение доменного имени к веб-сайту
Если вы указали домен при заказе услуги, он будет автоматически привязан к вашему сайту.
В случае если вы заказали услугу без домена или вам необходимо привязать к сайту синоним или поддомен , выполните следующие действия.
- Перейдите в раздел «Для клиентов» → «Услуги / Хостинг, почта, конструктор сайтов»;
- Нажмите кнопку «Управление сайтом» напротив услуги, чтобы перейти в панель управления.
- На следующей странице перейдите во вкладку «Настройки», после нажмите на кнопку «Создать новый синоним», впишите ваш домен и нажмите Создать.
- В случае если вы желаете, чтобы сайт открывался по популярному поддомену «www» или другому доменному имени, то вы можете добавить его аналогичным образом.
- Домен также необходимо направить на серверы Конструктора сайтов.
Вы можете делегировать доменное имя на DNS-серверы услуг RU-CENTER:
ns3.nic.ru
ns4.nic.ru
ns8.nic.ru
Или указать следующие ресурсные записи:
ваш_домен.ru. | A | 91.189.114.30 |
www.ваш_домен.ru.ru | A | 91.189.114.30 |
ваш_домен.ru. | MX | 10 mx01.nicmail.ru. |
ваш_домен.ru. | MX | 20 mx03.nicmail.ru. |
ваш_домен.ru. | MX | 5 mx03.nicmail.ru. |
ваш_домен.ru. | TXT | v=spf1 redirect=nicmail.ru |
ваш_домен.ru. | CNAME | mail.nic.ru. |
В случае если домен зарегистрирован в RU-CENTER, рекомендуем воспользоваться инструкцией по делегированию домена.
Источник
Всем привет! Спешу поделиться кое-какой разработкой. Golang-клиент для NIC.ru API.
У нас есть тесная интеграция с nic.ru, так сложилось исторически, уверен, многие пользуются DNS-услугами nic.ru, может быть, не так активно как мы, но, так или иначе, для нас это важно, ранее у нас была разработка на Python, но, в последнее время мы активно переезжаем на Go, поэтому пришлось поддержать это дело. Буду рад, если кому-то это облегчит жизнь / сэкономить время.
Исходные данные
Изначально есть вот такой пакет для python https://pypi.org/project/nic-api/
Его написал наш коллега некоторое время назад, не утверждаю, что оно работает, но и не утверждаю обратное, у нас не было возможности это проверить, так как не было необходимости этим пользоваться, тем не менее, нельзя это не упомянуть.
Формат API описан тут, веселого там мало, всё на xml, но, унывать не приходится, приходится работать с тем, что дают.
Структуры
После чтения документации у нас получились следующие структуры
Request
Это общая структура для создания записей
type Request struct {
XMLName xml.Name `xml:"request"`
Text string `xml:",chardata"`
RrList *RrList `xml:"rr-list"`
}
RrList
Структура, описывающая список записей
type RrList struct {
Text string `xml:",chardata"`
Rr []*RR `xml:"rr"`
}
RR
Структура записи в DNS
type RR struct {
Text string `xml:",chardata"`
ID string `xml:"id,attr,omitempty"`
Name string `xml:"name"`
IdnName string `xml:"idn-name,omitempty"`
Ttl string `xml:"ttl"`
Type string `xml:"type"`
Soa *Soa `xml:"soa"`
Ns *Ns `xml:"ns"`
A *A `xml:"a"`
Txt *Txt `xml:"txt"`
Cname *Cname `xml:"cname"`
}
A
Структура, хранящая в себе IPv4-адрес А-записи. У нас, пока что, нет IPv6, не вникали даже, как жить с этим делом в NIC.ru, но, тут главная особенность в том, что, по сравнению с CNAME, нет никаких атрибутов, значение хранится как текст
type A string
func (a *A) String() string {
return string(*a)
}
CNAME
Структура, хранящая в себе каскадное имя, всё взято из API, IdnName может быть чем-то типа «наш-любимый-сайт.рф», в то время, как Name буде хранить значение, которые понятно всем узлам в сети Интернет, в данном случае:
xn-----6kccd6bhcmmf0dp7e6b4b.xn--p1ai
type Cname struct {
Text string `xml:",chardata"`
Name string `xml:"name"`
IdnName string `xml:"idn-name,omitempty"`
}
Service
Структура, отражающая сервис NIC.ru, тут отражён тариф, количество доменов и т.п, сервисная информация.
type Service struct {
Text string `xml:",chardata"`
Admin string `xml:"admin,attr"`
DomainsLimit string `xml:"domains-limit,attr"`
DomainsNum string `xml:"domains-num,attr"`
Enable string `xml:"enable,attr"`
HasPrimary string `xml:"has-primary,attr"`
Name string `xml:"name,attr"`
Payer string `xml:"payer,attr"`
Tariff string `xml:"tariff,attr"`
RrLimit string `xml:"rr-limit,attr"`
RrNum string `xml:"rr-num,attr"`
}
SOA
Структура SOA-записи
type Soa struct {
Text string `xml:",chardata"`
Mname struct {
Text string `xml:",chardata"`
Name string `xml:"name"`
IdnName string `xml:"idn-name,omitempty"`
} `xml:"mname"`
Rname struct {
Text string `xml:",chardata"`
Name string `xml:"name"`
IdnName string `xml:"idn-name,omitempty"`
} `xml:"rname"`
Serial string `xml:"serial"`
Refresh string `xml:"refresh"`
Retry string `xml:"retry"`
Expire string `xml:"expire"`
Minimum string `xml:"minimum"`
}
NS
Структура NS-записи
type Ns struct {
Text string `xml:",chardata"`
Name string `xml:"name"`
IdnName string `xml:"idn-name,omitempty"`
}
TXT
Структура TXT-записи
type Ns struct {
Text string `xml:",chardata"`
Name string `xml:"name"`
IdnName string `xml:"idn-name,omitempty"`
}
Zone
Структура зоны
type Zone struct {
Text string `xml:",chardata"`
Admin string `xml:"admin,attr"`
Enable string `xml:"enable,attr"`
HasChanges string `xml:"has-changes,attr"`
HasPrimary string `xml:"has-primary,attr"`
ID string `xml:"id,attr"`
IdnName string `xml:"idn-name,attr"`
Name string `xml:"name,attr"`
Payer string `xml:"payer,attr"`
Service string `xml:"service,attr"`
Rr []*RR `xml:"rr"`
}
Revision
Структура ревизии
type Revision struct {
Text string `xml:",chardata"`
Date string `xml:"date,attr"`
Ip string `xml:"ip,attr"`
Number string `xml:"number,attr"`
}
Error
Структура ошибки в ответе от API
type Error struct {
Text string `xml:",chardata"`
Code string `xml:"code,attr"`
}
Response
Структура ответа от API
type Response struct {
XMLName xml.Name `xml:"response"`
Text string `xml:",chardata"`
Status string `xml:"status"`
Errors struct {
Text string `xml:",chardata"`
Error *error `xml:"error"`
} `xml:"errors"`
Data struct {
Text string `xml:",chardata"`
Service []*Service
Zone []*Zone `xml:"zone"`
Address []*A `xml:"address"`
Revision []*Revision `xml:"revision"`
} `xml:"data"`
}
Как пользоваться
Клиент лежит тут https://github.com/maetx777/nic.ru-golang-client.git, готов к использованию. В examples описано как создавать и удалять A/CNAME записи, а также как скачать зону целиком.
Создание утилиты
Далее немного опишу как создать консольную утилиту для управления апишкой, код загружен в репозиторий.
cmd/nicru/config.go
для начала создадим структуру для хранения значений вводимых аргументов
package main
import api "github.com/maetx777/nic.ru-golang-client/client"
var config = &api.Config{
Credentials: &api.Credentials{
OAuth2: &api.OAuth2Creds{
ClientID: "",
SecretID: "",
},
Username: "",
Password: "",
},
ZoneName: "",
DnsServiceName: "",
CachePath: "",
}
cmd/nicru/main.go
создадим файл cmd/nicru/main.go:
package main
import (
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)
func main() {
cmd := &cobra.Command{
Use: `nicru`,
Short: `утилита для управления записями в DNS NIC.ru`,
Long: `oauth2 ключи нужно получить в ЛК nic.ru - https://www.nic.ru/manager/oauth.cgi?step=oauth.app_register
имя DNS-сервиса можно посмотреть по адресу https://www.nic.ru/manager/services.cgi?step=srv.my_dns&view.order_by=domain
`,
}
//создаём флаги для заполнения конфига
cmd.PersistentFlags().StringVar(&config.Credentials.OAuth2.ClientID, `oauth2-client-id`, ``, `oauth2 client id`)
cmd.PersistentFlags().StringVar(&config.Credentials.OAuth2.SecretID, `oauth2-secret-id`, ``, `oauth2 secret id`)
cmd.PersistentFlags().StringVar(&config.Credentials.Username, `username`, ``, `логин от ЛК nic.ru (******/NIC-D)`)
cmd.PersistentFlags().StringVar(&config.Credentials.Password, `password`, ``, `пароль от nic.ru`)
cmd.PersistentFlags().StringVar(&config.ZoneName, `zone-name`, `example.com`, `имя DNS-зоны`)
cmd.PersistentFlags().StringVar(&config.DnsServiceName, `service-name`, `EXAMPLE`, `имя DNS-сервиса`)
cmd.PersistentFlags().StringVar(&config.CachePath, `cache-path`, `/tmp/.nic.ru.token`, `путь до файла, где будет храниться авторизация от API`)
cmd.AddCommand(addACmd()) // подключаем команду add-a
cmd.AddCommand(commitCmd()) // подключаем команду add-a
if err := cmd.Execute(); err != nil {
logrus.Infoln(err.Error())
}
}
Этот файл собирает всю утилиту, в ней описаны две команды
-
addAcmd — команда для добавления А-записи
-
commitCmd — команда для фиксации изменений в зоне
cmd/nicru/config.go
для начала инициализируем структуру конфига, которую можно использовать в разных командах:
cmd/nicru/add-a.go
Создаём команду для создания А-записи.
package main
import (
"fmt"
api "github.com/maetx777/nic.ru-golang-client/client"
"github.com/spf13/cobra"
)
func addACmd() *cobra.Command {
var (
names []string //здесь будем хранить список записей, которые нужно создать
target string //здесь хранится ipv4-адрес, на которые будет ссылаться каждое имя, описанное выше
ttl int //TTL для каждой записи
)
cmd := &cobra.Command{
Use: `add-a`,
Short: `добавление A-записей`,
Run: func(cmd *cobra.Command, args []string) {
//инициализируем клиента
client := api.NewClient(config)
if response, err := client.AddA(names, target, ttl); err != nil {
//обрабатываем ошибку
fmt.Printf("Add A-record error: %sn", err.Error())
return
} else {
//печатаем результат
for _, record := range response.Data.Zone[0].Rr {
fmt.Printf("Added A-record: %s -> %sn", record.Name, record.A.String())
}
}
},
}
//создаём флаги для указания имён создаваемых записей, ipv4-таргета и TTL
cmd.PersistentFlags().StringSliceVar(&names, `names`, []string{}, `имена, которые нужно создать`)
cmd.PersistentFlags().StringVar(&target, `target`, ``, `куда нужно отправить имена (например, 1.2.3.4)`)
cmd.PersistentFlags().IntVar(&ttl, `ttl`, 600, `TTL для созданным записей`)
return cmd
}
Создаём команду для фиксации изменений в зоне
package main
import (
"fmt"
api "github.com/maetx777/nic.ru-golang-client/client"
"github.com/spf13/cobra"
)
func commitCmd() *cobra.Command {
cmd := &cobra.Command{
Use: `commit`,
Short: `фиксация изменений`,
Run: func(cmd *cobra.Command, args []string) {
//инициализируем клиента
client := api.NewClient(config)
//коммитим результат
if _, err := client.CommitZone(); err != nil {
fmt.Printf("Commit error: %sn", err.Error())
} else {
fmt.Printf("Zone committedn")
}
},
}
return cmd
}
Собираем утилиту:
go build ./cmd/nicru
Тестируем запуск утилиты
$ ./nicru --help
oauth2 ключи нужно получить в ЛК nic.ru - https://www.nic.ru/manager/oauth.cgi?step=oauth.app_register
имя DNS-сервиса можно посмотреть по адресу https://www.nic.ru/manager/services.cgi?step=srv.my_dns&view.order_by=domain
Usage:
nicru [command]
Available Commands:
add-a добавление A-записей
commit фиксация изменений
completion Generate the autocompletion script for the specified shell
help Help about any command
Flags:
--cache-path string путь до файла, где будет храниться авторизация от API (default "/tmp/.nic.ru.token")
-h, --help help for nicru
--oauth2-client-id string oauth2 client id
--oauth2-secret-id string oauth2 secret id
--password string пароль от nic.ru
--service-name string имя DNS-сервиса (default "EXAMPLE")
--username string логин от ЛК nic.ru (******/NIC-D)
--zone-name string имя DNS-зоны (default "example.com")
Use "nicru [command] --help" for more information about a command.
Смотрим хелп команды add-a
$ ./nicru add-a --help
добавление A-записей
Usage:
nicru add-a [flags]
Flags:
-h, --help help for add-a
--names strings имена, которые нужно создать
--target string куда нужно отправить имена (например, 1.2.3.4)
--ttl int TTL для созданным записей (default 600)
Global Flags:
--cache-path string путь до файла, где будет храниться авторизация от API (default "/tmp/.nic.ru.token")
--oauth2-client-id string oauth2 client id
--oauth2-secret-id string oauth2 secret id
--password string пароль от nic.ru
--service-name string имя DNS-сервиса (default "EXAMPLE")
--username string логин от ЛК nic.ru (******/NIC-D)
--zone-name string имя DNS-зоны (default "example.com")
Тестируем создание записи
$ ./nicru add-a --oauth2-client-id *** --oauth2-secret-id *** --username ***/NIC-D --password *** --service-name EXAMPLE --zone-name example.com --names foo123 --target 127.0.0.1 --ttl 3600
Added A-record: foo123 -> 127.0.0.1
Фиксируем изменения в зоне
$ ./nicru add-a --oauth2-client-id *** --oauth2-secret-id *** --username ***/NIC-D --password *** --service-name EXAMPLE --zone-name example.com
Zone committed
Запись успешно создана, аналогичным способом можно доработать создание CNAME, удаление A/CNAME, и другие функции, реализованные в модуле.
Что можно сделать для удобства
Чтобы не заморачиваться с подачей oauth2-кредов, а также логина и пароля, мы в своей версии утилиты используем vault, прямо в пакете cmd у нас есть функция, которые, при наличии файла ~/.vault-token, идёт в ваулт, забирает все нужны креды, а дальше подставляет их в команду в качестве дефолта, таким образом, нам не нужно каждый раз указывать всю портянку с авторизацией, но, при необходимости, можно это дело переопределить при каждом запуске.
Заключение
Изначально была идея делиться со всеми какими-то, полезными, по моему мнению, разработками, мы вынуждены много писать, иногда находим готовые решения, иногда — нет, и тогда мы пишем свои велосипеды.
Комментариев в коде пока что нет, в связи с тем, что сегодня карма резко понизилась из-за комментария в посте. С учётом стремительного ухудшения кармы, в скором времени я уже ничего не смогу писать тут, так что это завершающий пост.
Клиента обязательно разовьём, всё прокомментируем, разовьём ридми и сами будем им пользоваться непосредственно из гитхаба
Желаю всем мира и добра! Готов ответить на любые вопросы.