Добрый день, я использую Zentyal, настроенный с двумя интерфейсами, одним внутренним и одним внешним. При вычислении имени хоста и псевдонимов серверов bind случайным образом возвращает внешний адрес в результатах. Проблема, конечно, в том, что локальная сеть не может разговаривать с внешней сетью и случайным образом прерывает работу служб. Пример:
dig proxy.private.example.com
;; ANSWER SECTION:
proxy.private.example.com. 259200 IN CNAME zentyal.private.example.com.
zentyal.private.example.com. 900 IN A 192.168.122.73
zentyal.private.example.com. 900 IN A 10.10.20.40
10.10.20.40 находится во внутренней сети, и адрес, который мы всегда должны разрешать.
Как мне исключить интерфейс 192.168.122.73 из результатов? Как будет выглядеть моя конфигурация привязки?
ps: Ищу уже 3 дня; возможно, я ищу не то.
Ваша помощь очень ценится.
Сейчас вы настроили несколько A
-запись для того же ресурса. Bind обработает это как циклический перебор и поочередно вернет 192.168.122.73 или 10.10.20.40 для DNS-запроса для zentyal.private.example.com.
Вы хотите, чтобы в зависимости от интерфейса / IP-адреса, с которого исходил DNS-запрос, последовательно возвращался другой ответ. В Bind это называется представлением.
Для этого необходимо настроить два разных файла зоны, один для внешних клиентов и второй для внутренних клиентов, и настроить привязку, когда использовать какой файл зоны. Соответствующий раздел конфигурации в вашей конфигурации может выглядеть примерно так:
view "internal" {
match-clients { localnets; };
recursion yes; /* this is the default */
zone "private.example.com" {
type master;
file "db.private.example.com.internal";
allow-transfer { any; };
};
};
view "external" {
match-clients { any; };
recursion no;
zone "example.com" {
type master;
file "db.example.com.external";
allow-transfer { none; };
};
};
Затем добавьте запись A с ip-адресом 10.x в db.private.example.com.internal и убедитесь, что только запись A с ip-адресом 192.x остается в общедоступном db.example.com.external. файл зоны.