LINUX.ORG.RU
решено ФорумAdmin

BIND: форвард зоны первого уровня в звездообразной схеме

 , ,


0

2

Имеется следующая структура:

DNS-сервер в головной организации (ns.main.city.local):
MASTER для своей зоны main.city.local
SLAVE для всех филиальных зон filial_1.city.local - filial_N.city.local

DNS-сервера в филиалах (filialNS_N.filial_N.city.local):
MASTER для своей зоны filial_N.city.local

Между центром и филиалами VPN, все друг друга видят.

Хочется странного следующего:

1) запросы на xxx.filial_N.city.local обрабатываются внутри филиала на filialNS_N.filial_N.city.local (для взаимодействия внутри филиала)
2) запросы на xxx.xxx.xxx.local форвардятся на ns.main.city.local (для взаимодействия между филиалами по FQDN именам)
3) все остальное форвардится на провайдерские DNS или гугл-днс или куда еще взбрендит (для минимизации времени ответа DNS на серфинг)

Не получается с пунктом #2, пробовал в филиальный конфиг добавлять конструкцию

zone "local." {
      type forward;
      forward only;
      forwarders {
                <ns.main.city.local IP address>
      };
};

но эффекта не дало

nslookup server.main.city.local

Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find server.main.city.local: NXDOMAIN

В какую сторону копать ? Спасибо.

zone "filial_N.city.local." {
      type master;
      file "zone-filial_N.city.local";
};

zone "city.local." {
      type forward;
      forward only;
      forwarders {
                <ns.main.city.local IP address>
      };
};
DiMoN ★★★
()
Ответ на: комментарий от DiMoN

Кажется недосказал, либо неверно понимаю ваше сообщение.

«city» это переменная т.е. название города в котором расположен филиал т.к. в одном городе может быть несколько филиальных точек со своей зоной.

Задача исключить ситуацию когда при введении нового филиала нужно в конфиг каждого филиала прописывать новую зону, по этому пытаюсь сразу форвардить «local.»

TheRaven
() автор топика
Ответ на: комментарий от TheRaven

Это я как простой пример написал.
На каждом филиале всё-равно прийдется описывать свою «филиальную» зону:

zone "filial_N.city.local." {...};

Родительскую зону, да, можно указать как
zone "local." { type forward; forward only; ... };

Но, если по хорошему, то нужно сделать зоны филиалов как master/slave, что-бы они обновлялись на головном DNS-сервере, если есть необходимость иметь доступ между филиалами. Но в таком случае, на головном нужно будет добавлять записи для каждого филиа.

Либо, если линк между филиалами и головным стабилен на 99%, то можно на филиалах вообще прописать только форвард зону.

DiMoN ★★★
()
Последнее исправление: DiMoN (всего исправлений: 2)
Ответ на: комментарий от DiMoN

На каждом филиале всё-равно прийдется описывать свою «филиальную» зону

Конечно.
Мне и хочется чтобы на филиалах было две зоны - своя MASTER и корневая FORWARD.

Родительскую зону, да, можно указать как

О чем и вопрос - так и указал, не работает.
На головном DNS нужно заводить конкретно зону «local.» ? Мне представляется что он должен обработать запрос найдя среди своих SLAVE-зон ту, в которую запрос пришел.

Но, если по хорошему, то нужно сделать зоны филиалов как master/slave, что-бы они обновлялись на головном DNS-сервере, если есть необходимость иметь доступ между филиалами. Но в таком случае, на головном нужно будет добавлять записи для каждого филиа.

Так и есть, головной офис имеет зоны всех филиалов в качестве SLAVE, оно обновляется и работает. В первом сообщении же написано.

Либо, если линк между филиалами и головным стабилен на 99%, то можно на филиалах вообще не поднимать DNS-сервер.

Полностью отказываться от филиального DNS не планирую. У каждого филиала свой комплект SambaPDC+DHCP+DNS

TheRaven
() автор топика
Ответ на: комментарий от TheRaven

головной офис имеет зоны всех филиалов в качестве SLAVE, оно обновляется и работает. В первом сообщении же написано.

Сори, туплю. Невнимательно прочитал.

На головном DNS нужно заводить конкретно зону «local.»

Да, должны быть зона «local.», «city.local.» и все SLAVE-зоны «filial_N.city.local.»

DiMoN ★★★
()
Последнее исправление: DiMoN (всего исправлений: 1)
Ответ на: комментарий от DiMoN

Да, должны быть зона «local.»

Подходим к главному - а что в нее писать ? Вообще всех ?

named.conf

zone "local." {
      type master;
      file "network.local";
};

network.local

$ORIGIN .
$TTL 10800	; 3 hours
local.	IN SOA	root.local. (
				123        ; serial
				180        ; refresh (3 minutes)
				60         ; retry (1 minute)
				604800     ; expire (1 week)
				60         ; minimum (1 minute)
				)
			NS	ns.main.city.local.
			A	10.1.0.1
$ORIGIN filial_1.city.local.
$TTL 1800	; 30 minutes
COMPUTER1		A	10.1.1.111
$ORIGIN filial_2.city.local.
$TTL 1800	; 30 minutes
COMPUTER2		A	10.1.2.222

что-то вроде этого получится ?

TheRaven
() автор топика
Ответ на: комментарий от TheRaven

Нет, ерунда какая-то. Кто ж ее («local.») обновлять-то тогда будет.
Да и данные со всех филиалов у нас фактически есть - в слейвах лежат.

TheRaven
() автор топика
Ответ на: комментарий от TheRaven

После нескольких мучений с зоной «local.» решил сменил на «test.» и.... - заработало. В CentOS 6.2 «из коробки» зона описана уже.
Возможно у Вас эта-же проблема.
В результате получил такие настройки:
головной:

zone "f1.test." IN { type slave; file "test/f1"; masters { f1_IP; }; };
zone "f2.test." IN { type slave; file "test/f2"; masters { f2_IP; }; };

филиал1:

zone "test." IN { type forward; forward only; forwarders { main_IP; }; };
zone "f1.test." IN { type master; file "test/f1"; };

филиал2:

zone "test." IN { type forward; forward only; forwarders { main_IP; }; };
zone "f2.test." IN { type master; file "test/f2"; };

DiMoN ★★★
()
Последнее исправление: DiMoN (всего исправлений: 1)
Ответ на: комментарий от DiMoN

«local.» зарезервированная зона, да, натыкался что проблемы с ней. У меня другая, local для примера пишу.

Значит предложенная схема принципиально работоспособна. Спасибо что не поленились потестировать.

Хм, а на головном просто «test.» не создавали получается ?

TheRaven
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.