Назад | Перейти на главную страницу

Как настроить DNS-сервер, чтобы можно было добавлять записи на лету?

Мне нужно разместить приложение SaaS на основе поддомена на нескольких серверах. Серверы - xx1.example.com, xx2.example.com и так далее. Я хочу разместить на этих серверах несколько сайтов yyy.example.com.

Поскольку сайты создаются «на лету», мне также необходимо иметь возможность настраивать записи DNS «на лету». Зона с подстановочными знаками DNS на самом деле не масштабируется, так как в конечном итоге я перерасту первый сервер и мне нужно будет отправлять новые экземпляры на другие машины. Поэтому мне нужно указать конкретный субдомен на определенный IP-адрес.

Я поискал облачные DNS-сервисы на основе API (что было бы здорово), но они кажутся невероятно дорогими для моих нужд (много экземпляров с низким объемом). У Rackspace есть бесплатная служба Cloud DNS, но она охватывает только 500 зон, и техническая поддержка сообщила мне, что они переписывают API, поэтому я хотел бы пока отказаться от их службы.

Поэтому я решил настроить свой собственный DNS-сервер для этих зон. Отсюда вопросы: какое хорошее программное обеспечение DNS-сервера для этой конкретной потребности позволяет мне создавать зоны без перезапуска?

Какие-либо предложения? Спасибо!

Если все записи, которые вы будете добавлять, являются субдоменом определенной зоны, вы можете легко настроить привязку для динамических обновлений. Затем просто используйте nsupdate для отправки обновления в зону.

Это должно работать нормально, если все новые записи являются записями в существующем домене. Если вам нужно динамически добавлять другие домены, это не особо поможет.

// zone config
// using ip only for authentication, should really use hmac auth
zone "example.com" {
        type master;
        file "/etc/bind/dyn/example.com.dns";
        allow-query {any;};
        allow-update {
                127.0.0.1;
                192.0.2.0/24;
        };
};

Обновить скрипт с помощью nsupdate.

#!/bin/bash
record=yyy.example.com
(
 echo "server xx1.example.com"
 echo "zone example.com"

 echo "update delete ${record} A"
 echo "update add ${record} ${ttl} A 192.0.2.1"
 echo "send"
) | /usr/bin/nsupdate

bind может (повторно) загружать файлы для отдельных доменов без перезагрузки целиком.

я использую myDNS Он отлично работает и прост, он также может легко работать с BIND. Есть и другие, вроде PowerDNS и другие.

либо используйте интерфейс bind rndc, либо то, что я предпочитаю: используйте PowerDNS

Обновления djbdns полностью прозрачны - без прерываний - и структура «файл зоны» идеально подходит для модификации и автоматизации по сценарию. Формат записи полностью не похож на BIND, но его не так сложно понять, как кажется на первый взгляд. Настоятельно рекомендуется.