Декабрь 22, 2005
Как правильно настроить DNS (окончание)
Использование forward - зон для одновременного разрешения Internet и Intranet имен.
Предположим, что в у нас уже есть отдельный DNS-сервер для локальной сети и отдельный DNS-сервер для Internet. Оказывается, возможно (man named.conf) настроить машину так, чтобы для разных диапазонов IP-адресов использовались разные DNS сервера. Для этого на ней нужно запустить свой DNS-сервер, который бы перенаправлял поступающие на него запросы на другие DNS-сервера, в зависимости от того, какой запрос получен.
Пример: машина, работающая как с интернет, так и с локальной сетью. Для разрешения internet-адресов следует использовать существующий DNS сервер c IP-адресом 195.19.6.10 . Для разрешения intranet-адресов (Private диапазон 172.16.0.0) - существующий DNS сервер с IP-адресом 172.16.3.1 . В Intranet - сети используется "внутренний" домен первого уровня "cge". На машине запускаем локальный DNS сервер, и в дальнейшем используем его. Файлы конфигурации:
/etc/resolv.conf
nameserver 127.0.0.1
/etc/named.conf(bind 8.2.3)
options {
directory "/var/named";
forward first;
forwarders {195.19.6.10;};
// по умолчанию все запросы передаются
// на DNS-server 195.19.6.10
};
//стандартная локальная зона
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
//Эти правила - более приоритетные!
zone "16.172.in-addr.arpa" in{
type forward;
forward first;
forwarders {172.16.3.1;};
// для этой зоны все запросы передаются
// на DNS-server 172.16.3.1
};
zone "cge" in{
type forward;
forward first;
forwarders {172.16.3.1;};
//для этой зоны все запросы передаются
// на DNS-server 172.16.3.1
};
Примечание: Задача не решается простым прописыванием двух DNS-серверов в /etc/resolv.conf. Hint: Отрицательный ответ от одного DNS-сервера не является основанием для обращения к другому.
Еще одно возможное решение - вписать forward-зоны прямо на интернетовском DNS-сервере. Примерно так:
/etc/named.conf(bind 8.2.3)
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
//
// Прямая и обратная зоны домена cge.ru (Internet)
//
zone "cge.ru" in{
type master;
file "named_cge.data";
};
zone "6.19.195.in-addr.arpa" in{
type master;
file "named_cge.rev";
};
//
// Intranet сеть - 172.16.0.0, зона cge
// запросы переправляются на DNS сервер 172.16.3.1
//
zone "16.172.in-addr.arpa" in{
type forward;
forward only;
forwarders {172.16.3.1;};
};
zone "cge" in{
type forward;
forward only;
forwarders {172.16.3.1;};
};
Я проверил этот вариант, он работает, но имеет один недостаток - для forward-зон нельзя написать правила allow-query и allow-transfer, поэтому информация о структуре внутренних зон может быть прочитана любым желающим.
Все зоны на одном DNS-сервере
Возможно, это самый лучший способ. Внутренняя зона поддерживается тем же DNS-сервером, что и внешняя, а чтобы извне нельзя было посмотреть структуру внутренних зон, для них пишутся правила allow-query и allow-transfer.
К сожалению, для того, чтобы использовать этот способ, мне пришлось бы поменять настройку DNS на всех машинах Intranet-сети. Увы, я не готов к подобному подвигу. Впрочем, если ваша сеть находится еще в процессе становления, этот способ легко применим.
Часть 2 |
Разместил:
Источник: Docs.Winsov.Ru