Есть несколько ярлыков, которые вы можете использовать, чтобы сделать вашу жизнь проще:
Если вы используете Bind или подобное программное обеспечение, которое использует файлы для хранения данных зоны: укажите ваши зоны на один и тот же файл, например:
zone "example.net" {
type master;
file "/etc/bind/zone/default.zone";
};
zone "example.org" {
type master;
file "/etc/bind/zone/default.zone";
};
Поскольку вы можете использовать определенные сокращения DNS, вы можете создать универсальный файл зоны:
$TTL 1h ; default expiration time of all resource records without their own TTL value
@ IN SOA ns1.example.com. username.example.com. (
20140218131405 ; Serial number YYYYMMDDHHMMSS
28800 ; Refresh 8 hours
7200 ; Retry 2 hours
604800 ; Expire 7 days
86400 ; Minimum TTL 1 day )
@ IN NS ns1.example.com. ; ns1.example.com is a primary nameserver
@ IN NS ns2.example.com. ; ns2.example.com is a backup nameserver
@ IN MX 10 mail.example.com. ; mail.example.com is the mailserver
@ IN MX 20 mail2.example.com. ; the secondary mailserver
@ IN A 192.0.2.1 ; IPv4 address for the bare domain
IN AAAA 2001:db8:10::1 ; IPv6 address for the bare domain
www IN A 192.0.2.1 ; www.domain
IN AAAA 2001:db8:10::1 ; IPv6 address for www.domain - note by starting the line with a blank it becomes the continuation of the previous record and this IPv6 record applies to www
wwwtest IN CNAME www ; wwwtest is an alias for www
Это использует тот факт, что имена хостов в файлах зон, которые не заканчиваются точкой ., всегда расширяются с помощью $ORIGIN
которого в свою очередь неявно устанавливается имя зоны. И @это сокращение от $ ORIGIN.
Вместо того чтобы поддерживать отдельные файлы зон вручную, включите метод программного взаимодействия с серверами имен.
Я использовал PowerDNS, который позволяет использовать RDMS в качестве серверной части, которая очень хорошо вписывается в стек LAMP, который мы использовали в то время. Облачные сервисы, такие как Amazon Route 53, также предоставляют веб-API.
Но даже почтенный Bind также поддерживает динамическое обновление, которое является методом добавления, замены или удаления записей на главном сервере, отправляя ему специальную форму DNS-сообщений. Формат и значение этих сообщений определены в RFC 2136 .
Динамическое обновление включается включением предложения allow-update
или update-policy
в оператор зоны. Для получения дополнительной информации обратитесь к Справочному руководству администратора Bind .
rndc addzone
опция, но она все еще немного уродлива, поскольку в итоге она генерирует файл конфигурации с хешированным именем в рабочем каталоге для каждая добавленная зона.Короткий ответ
Если вы ищете установку «нулевой конфигурации» в BIND, она не существует. Настройка корневой зоны (
.
) кажется хорошей идеей, но это не так, и вам нужно найти решение, которое не включает взлом DNS для удовлетворения ваших потребностей.Длинный ответ
В прошлом году мы несколько раз получали варианты этого вопроса.
Ответ здесь довольно прост: вы не можете настроить определение одной зоны. Любое программное обеспечение, которое позволяет вам определять или иным образом синтезировать несколько
SOA
записей в этом контексте, является сломанным программным обеспечением, а выполнение сломанных вещей не является темой для ServerFault. Вам либо нужно выбрать программное обеспечение DNS, которое упростит вам это управление, либо вам нужно придумать другую стратегию, которая не предусматривает этот конкретный ярлык.Определенно есть некоторые приемы, которые вы можете использовать, чтобы упростить жизнь ... на примере BIND довольно распространено определение нескольких зон, которые ссылаются на один и тот же файл зоны шаблона. Это совершенно законное и проверочное программное обеспечение не найдет в этом ничего плохого: см. Ответ MadHatter. Большинство людей пропускают это решение, потому что все еще «слишком много» для добавления объявления зоны при каждом приобретении нового домена, но для этого типа хостинга нет опции «настроить его один раз и уйти».
В новых версиях BIND поддерживается опция
allow-new-zones
, которая позволяет динамически создавать определения зон на лету с помощью новойrndc addzone
функциональности. Возможно, вы захотите взглянуть на это и посмотреть, соответствует ли он вашим потребностям.Кроме того, что предложенные решения, ваши варианты несколько ограничены. Иногда вы просто застреваете в работе, если программное обеспечение не работает так, как вы этого хотите.
источник
Когда вы говорите «домены должны быть настроены одинаково», вы имеете в виду, что они должны содержать одинаковые записи ресурсов? В таком случае, не будет ли
DNAME
RR для всех, кроме одного домена, более чистым решением?Я не могу справиться с задачей @MadHatter импортировать тот же файл шаблона, оставаясь строго в рамках вашего вопроса. Я могу предложить только аналогичный подход для
LDAP
бэкэнда (в моем случае он используется с powerDNS): добавитьassociatedDomain
атрибуты для соответствующих записей SOA и NS, например, так:источник