Перейти к основному содержимому

Интеграции

Интеграция с ISPmanager

NexDNS обеспечивает полную совместимость с API DNSmanager, поэтому вы можете подключить NexDNS к ISPmanager как вторичный DNS-сервер. ISPmanager остаётся первичным сервером и, после того как вы разрешите передачу зоны (AXFR) с IP-адреса источника NexDNS, передаёт каждую зону в NexDNS, поэтому управление записями по-прежнему ведётся в ISPmanager. Полный API DNSmanager для доменов и записей также доступен для прямого использования через единую точку совместимости.

Точка подключения

Все вызовы совместимого API направляются через единую точку:

https://api.nexdns.ru/dnsmgr

Аутентификация

Совместимый API использует для аутентификации отдельный логин и секрет интеграции, которые вы создаёте в NexDNS в разделе Аккаунт → Интеграции (а не пароль вашей учётной записи). ISPmanager передаёт их с каждым запросом; вы также можете открыть сессию вручную с помощью функции func=auth и повторно использовать полученный токен.

curl -X POST "https://api.nexdns.ru/dnsmgr?func=auth" \
    -d "username=your_integration_login" \
    -d "password=your_integration_secret"

Успешный ответ (XML):

<doc><auth id="SESSION_ID"/></doc>

Для получения ответа в формате JSON добавьте out=json к любому запросу. Повторные неудачные попытки входа временно ограничиваются.

Поддерживаемые функции

Совместимый API выполняет операции на основе параметра запроса func:

Функция Описание
auth Открытие сессии по логину и секрету интеграции
domain Список всех доменов авторизованной учётной записи
domain.edit Создание или обновление домена (с sok=ok); когда ISPmanager передаёт IP своего первичного сервера, NexDNS создаёт вторичную зону, которая передаётся с ISPmanager. Без sok возвращается информация о домене
domain.delete Удаление домена (передайте elid=domain.name)
domain.refresh Принудительная немедленная повторная передача вторичной зоны с ISPmanager (передайте elid=domain.name). ISPmanager вызывает её после изменения записей
domain.record Список записей домена (передайте elid=domain.name)
domain.record.edit Создание или обновление записи (с sok=ok)
domain.record.delete Удаление записи (передайте elid и rkey)
dnsparam Получение конфигурации серверов имён для вашего аккаунта
slaveserver Список серверов имён, назначенных вашим зонам

Подключение ISPmanager к NexDNS

Чтобы подключить ISPmanager к NexDNS:

  1. Зарегистрируйте аккаунт NexDNS на nexdns.ru и выберите тариф, включающий интеграцию с ISPmanager и вторичный DNS.
  2. Настройте интеграцию в NexDNS: откройте Аккаунт → Интеграции, нажмите «Создать секрет», затем включите доступ для ISPmanager (по умолчанию выключен). Этот канал обходит двухфакторную аутентификацию, поэтому при желании привяжите его к фиксированному IP-адресу.
  3. В ISPmanager добавьте NexDNS как вторичный DNS-сервер для ваших доменов (Доменные имена → вторичные серверы имён).
  4. Введите параметры подключения:
    • Адрес: https://api.nexdns.ru/dnsmgr
    • Логин: ваш логин интеграции из раздела Аккаунт → Интеграции
    • Секрет: ваш секрет интеграции
  5. Разрешите передачу зоны (AXFR): на первичном DNS-сервере разрешите передачу зоны с IP-адреса источника NexDNS, указанного в разделе Аккаунт → Интеграции. Без этого ISPmanager создаёт вторичную зону, но она остаётся пустой.

ISPmanager остаётся первичным сервером, и вы продолжаете управлять записями в нём; NexDNS забирает каждую зону как вторичную по AXFR. Разовый шаг с вашей стороны: на первичном DNS-сервере разрешите зонную передачу (AXFR) с IP-адреса источника NexDNS, указанного в разделе «Аккаунт → Интеграции», иначе зоны останутся пустыми. Аутентификация использует логин и секрет интеграции из раздела «Аккаунт → Интеграции»; убедитесь, что доступ ISPmanager включён и ваш тариф включает вторичный DNS.

Параметры записей

При создании или обновлении записей через domain.record.edit используются следующие параметры в зависимости от типа записи:

Тип Параметры
A / AAAA name, ip (or value), ttl
CNAME / NS / PTR name, value, ttl
MX name, value, priority, ttl
SRV name, value, priority, weight, port, ttl
TXT name, value, ttl
CAA name, caa_value (or value), flag, tag, ttl

Для обновления передайте rkey с ID существующей записи. Опустите rkey (или передайте пустое значение) для создания новой записи.

Формат вывода

По умолчанию все ответы возвращаются в формате XML. Добавьте out=json к любому запросу для получения ответов в формате JSON.

Управление API-ключами

API-ключи используются для аутентификации запросов к REST API NexDNS. Каждый ключ имеет набор разрешений и может иметь дату истечения срока действия.

Создание API-ключа

Создать API-ключ можно двумя способами:

  • Панель управления: перейдите в Настройки > API-ключи и нажмите «Создать API-ключ»
  • REST API: POST /v1/account/api-keys (требуется существующий API-ключ)

Формат ключа

API-ключи имеют формат nxd_, за которым следуют 40 случайных буквенно-цифровых символов. Полный ключ показывается только один раз при создании. NexDNS хранит только хешированную форму ключа, поэтому при утере восстановить его невозможно.

nxd_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789abcd

Разрешения

Каждому API-ключу необходимо назначить хотя бы одно разрешение. Доступные разрешения:

Разрешение Предоставляет доступ к
zones.read Список зон, просмотр деталей зон, экспорт зон, просмотр статуса DNSSEC
zones.write Создание зон, удаление зон, включение/отключение DNSSEC
records.read Список записей, просмотр отдельных записей
records.write Создание, обновление и удаление записей
webhooks.read Список и просмотр вебхуков
webhooks.write Создание, обновление и удаление вебхуков

Мы рекомендуем предоставлять каждому ключу только необходимые ему разрешения.

Срок действия

API-ключи могут иметь дату истечения срока действия. При установке ключ перестанет работать после указанной даты (проверка в полночь UTC). Просроченные ключи возвращают ответ 401 Unauthorized.

Отзыв ключа

Вы можете отозвать любой API-ключ в любое время через страницу настроек или через API. Отзыв немедленный и необратимый – ключ удаляется, а не отключается.

curl -X DELETE "https://api.nexdns.ru/v1/account/api-keys/{id}" \
    -H "Authorization: Bearer nxd_your_api_key"

Требования к тарифу

Доступ к API требует тарифного плана с функцией api_access.

Ограничение запросов

API NexDNS применяет ограничения запросов для обеспечения справедливого использования и стабильности сервиса. Ограничения применяются к аккаунту пользователя (не к API-ключу), поэтому использование нескольких API-ключей не увеличивает лимит.

Лимиты

Область Лимит Окно Политика
API-запросы 60 1 минута Скользящее окно

Неаутентифицированные запросы (или запросы с недействительными ключами) ограничиваются по IP-адресу.

Заголовки ограничения запросов

Каждый ответ API содержит заголовки, указывающие текущий статус ограничения запросов:

Заголовок Описание
X-RateLimit-Limit Максимальное количество запросов, допустимое в окне
X-RateLimit-Remaining Количество оставшихся запросов в текущем окне
X-RateLimit-Reset Временная метка Unix сброса окна ограничения
Retry-After Секунды ожидания перед повторной попыткой (только в ответах 429)

Превышение лимита

При превышении лимита API возвращает 429 Too Many Requests:

{
    "status": "error",
    "error": {
        "code": "rate_limit_exceeded",
        "message": "Too many requests. Please retry after {timestamp}."
    }
}

Мы используем файлы cookie и метрические программы (Яндекс Метрика) для анализа посещаемости, улучшения работы сайта и оценки эффективности рекламы. Метрические программы собирают данные о вашем поведении на сайте, которые являются персональными данными. Обработка осуществляется в соответствии с законодательством о персональных данных (ФЗ-152).

Вы можете принять использование всех файлов cookie или ограничиться только необходимыми. Подробнее: Политика обработки персональных данных и Политика cookie.

Необходимые cookie (всегда активны)
Аналитические cookie (Яндекс Метрика)