Я пытаюсь настроить BIND так, чтобы он перехватывал все запросы, сделанные к нему, и указывал их на определенный набор серверов NS и конкретную запись A.
У меня около 500 доменов, и я добавляю новые со скоростью 10-15 в день, поэтому я не хочу явно добавлять зону для каждого домена.
Моя текущая настройка: в моем named.conf у меня есть представление (с именем external) со следующей зоной:
zone "." {
type master;
file "ext.zone";
};
Это соответствует всем запросам.
ext.zone это:
TTL 3600 @ В SOA. root.nsdomain.com. ( 1; последовательный 3600; обновление 300; Retry 3600; истекать 300); Отрицательный кэш TTL IN NS ns1.example.com IN NS ns2.example.com ns1 IN A 192.0.2.4 ns2 IN A 192.0.2.5 *. В 192.0.2.6
Итак, цель: для всех NS-запросов return ns1.example.com
и ns2.example.com
для всех A-запросов, кроме тех, где она есть ns1.example.com
или ns2.example.com
, return 192.0.2.6
. Для ns1.example.com
возвращения 192.0.2.4
, для ns2.example.com
возвращения 192.0.2.5
.
Это почти работает, единственная проблема в том, что когда я копаю, я получаю:
копать @localhost somedomain.example ; > DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3> @localhost somedomain.example ; (Найден 1 сервер) ;; глобальные параметры: printcmd ;; Получил ответ: ;; код операции: QUERY, статус: NOERROR, id: 37733 ;; флаги: qr aa rd; ЗАПРОС: 1, ОТВЕТ: 1, ПОЛНОМОЧИЯ: 2, ДОПОЛНИТЕЛЬНО: 2 ;; РАЗДЕЛ ВОПРОСА: ; Somedomain.example. В ;; ОТВЕТ РАЗДЕЛ: somedomain.example. 3600 В 192.0.2.6 // как и ожидалось ;; РАЗДЕЛ ВЛАСТИ: , 3600 IN NS ns1.example.com. // ожидается, я не знаю, если "." в начале это плохо, хотя. , 3600 IN NS ns2.example.com. // см. выше. ;; ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ: ns1.example.com. 3600 IN A 192.0.2.6 // не ожидается, это должно быть 192.0.2.4 ns2.example.com. 3600 IN A 192.0.2.6 // не ожидается, это должно быть 192.0.2.5
Как я могу это исправить? Я делаю что-то ужасное? Есть лучший способ это сделать?