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

Условная переадресация DNS с использованием named в Linux

У меня есть сервер Centos 5.2, который работает с именем для разрешения DNS - он не содержит никакой собственной информации и просто пересылает все запросы. Из named.conf:

options {
[...]
        forwarders { 1.1.1.1; 1.1.1.2; };
};

Все остальные строки в named.conf оставлены по умолчанию.

Я хочу изменить конфигурацию, чтобы запросы на что-либо в newdomain.com передавались на 22.22.22.22, а запросы на любой другой адрес - на 1.1.1.1 или 1.1.1.2.

Как я могу настроить DNS на этом сервере для этого?

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

Итак, если вы отредактируете свой named.conf и добавьте следующее:

zone "newdomain.com" {
    type forward;
    forward only;
    forwarders { 22.22.22.22; };
};

теперь вы не сможете легко выполнять обратный поиск, вам придется изменить следующий оператор зоны, чтобы он имел смысл для IP-адреса (ов) домена (изначально это было наоборот для 192.168.80.0/24).

zone "80.168.192.in-addr.arpa" {
    type forward;
    forward only;
    forwarders { 22.22.22.22; };
};

После внесения изменений вы должны

  1. Убедитесь, что вы не запутали файлы конфигурации: named-checkconf

  2. Скажите bind перезагрузить его конфигурацию: rndc reload (гораздо предпочтительнее /etc/init.d/bind reload )

Имейте в виду, что это вернет неавторизованные ответы для домена. Чтобы обойти это (и предложить лучшее локальное кэширование, если удаленный DNS будет проблематичным), нужно действовать как подчиненное устройство для зоны.


отредактирован, чтобы добавить forward only; заявление. это приведет к сбою запроса после попытки сервера (ов), указанного в серверах пересылки, а не к сбою и последующей попытке стандартного поиска. Также отредактировано, чтобы изменить /etc/init.d/bind reload на rndc reload после совета в комментариях.

Если вы пытаетесь оптимизировать, а 22.22.22.22 является авторизацией для этой зоны, вы также можете использовать тупиковую зону:

zone "newdomain.com" {
    type stub;
    masters { 22.22.22.22 };
};

Это немного отличается от пересылки. Он будет запрашивать у сервера 22.22.22.22 записи NS и постоянно хранить их в кеше. Это будет делать почти то же самое, но если другой хост NS (скажем, 33.33.33.33) также будет указан, ваш сервер узнает об этом и также будет использовать его.

Я считаю, что тупиковая зона здесь - лучший вариант, чем условная пересылка.

Можете ли вы работать в качестве ведомого для newdomain.com? т.е. сделать полный перевод?