Как вы будете автоматически создавать субдомены с DNS? - PullRequest
4 голосов
/ 25 февраля 2009

Я хотел бы автоматически обновлять несколько DNS-доменов программным способом. Я запускаю сервер BIND (во FreeBSD), а также хост-домены и DNS на GoDaddy. Я не смог найти API веб-службы для GoDaddy для доступа и обновления моего DNS, который они размещают, поэтому мне, возможно, придется использовать свой сервер BIND для обеспечения динамического решения.

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

Является ли BIND лучшим решением? Есть ли другой способ автоматического добавления новых доменов без необходимости входа в GoDaddy или обновления конфигурации BIND вручную?

Ответы [ 3 ]

3 голосов
/ 25 февраля 2009

Функция, которую необходимо добавить для новых поддоменов, - это Динамические обновления, как указано в RFC 2136 и хорошо поддерживается BIND.

Достаточно легко (например, с помощью Perl's Net :: DNS module) добавлять и удалять записи из файла зоны с помощью сообщения DNS "UPDATE".

Чтобы получить то, что есть, у вас есть два подхода:

  1. Рассматривать некоторые другие базы данных как окончательные и преобразовывать изменения в этой базе данных в обновления ddns, или.

  2. Разрешить DNS-сообщения «AXFR», чтобы позволить вам загружать весь контент зоны (хотя только в вашу систему управления зонами, а не во весь мир!)

3 голосов
/ 25 февраля 2009

Один из подходов заключается в написании программы, которая читает и / или обновляет файл конфигурации BIND (это просто текстовый файл с определенным форматом) и перезагружает демон BIND, если были внесены какие-либо изменения. Таким образом, вы бы обновили свою конфигурацию BIND вручную, если бы вы не написали программу, которая сделает это за вас.

2 голосов
/ 25 февраля 2009

Только к вашему сведению: это вопрос системного / сетевого администрирования, а не вопрос программирования. Возможно, вы могли бы получить лучшие ответы быстрее в других местах.

Тем не менее ... это довольно просто: вам просто нужен DNS-сервер, который поддерживает базу данных для своих данных. Затем вы просто записываете записи в базу данных или запрашиваете базу данных, что там, и записи DNS будут автоматически разосланы. В идеале используйте базу данных, которая поддерживает триггеры, чтобы вы могли автоматически обновлять серийные номера DNS-записей при внесении изменений. В противном случае вам нужно будет читать / записывать серийный номер при каждом изменении вашего кода, выполняя полное обновление внутри транзакции.

Редактировать: только что видел другой комментарий выше. Не разрешать AXFR. В наши дни это считается угрозой безопасности.

У доменных TTL установлены низкие значения, поэтому обновления быстро распространяются на другие серверы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...