Страница 1 из 1

DNS. Как создать зону-псевдоним?

Добавлено: 2010-08-16 14:33:37
xDi
Дано:
1. внешняя машина с динамическим IP и имеющая домен, связанный с машиной посредством dyndns (domain.dyndns.org)
2. локальная сеть с dns-сервером (FreeBSD, BIND 9.6.2-P2), который обслуживает клиентов в этой сети.

Требуется: создать домен первого уровня, который бы адресовал на указанную внешнюю машину, имеющую dyndns-домен.

Как пробовал решить:
Определил зону для домена

Код: Выделить всё

zone "domain"  { type master; file "master/domain-forward.db"; allow-transfer { clients; }; };
и конфиг зоны в двух вариантах

Код: Выделить всё

$ORIGIN .
$TTL    600
domain    IN SOA  ns.lan. root.ns.lan. (  2010081600  600 60  86400 600  )
domain    IN A domain.dyndns.org.

Код: Выделить всё

$ORIGIN .
$TTL    600
domain    IN SOA  ns.lan. root.ns.lan. (  2010081600  600 60  86400 600  )
domain    IN CNAME domain.dyndns.org.
На оба варианта идет ругань в messages.

Подскажите, как грамотно организовать связь "имя (локальный домен) -> имя (домен dyndns) -> адрес ip"?

Re: DNS. Как создать зону-псевдоним?

Добавлено: 2010-08-16 19:09:46
Burner
ничего не понятно. Причем тут вообще dyndns?

Re: DNS. Как создать зону-псевдоним?

Добавлено: 2010-08-16 19:15:15
BlackCat
xDi писал(а):1. внешняя машина с динамическим IP и имеющая домен, связанный с машиной посредством dyndns (domain.dyndns.org)
dyndns не выдают домены, они выдают доменные имена, это к вопросу о терминологии.
xDi писал(а):Требуется: создать домен первого уровня, который бы адресовал на указанную внешнюю машину, имеющую dyndns-домен.
Сомневаюсь, что можно сделать домен-синоним, а доменное имя синоним - пожалуйста.
xDi писал(а):

Код: Выделить всё

$ORIGIN .
$TTL    600
domain    IN SOA  ns.lan. root.ns.lan. (  2010081600  600 60  86400 600  )
domain    IN CNAME domain.dyndns.org.
Этот вариант наиболее правильный. Вы указываете, что domain.domain это синоним для имени domain.dyndns.org.
xDi писал(а):На оба варианта идет ругань в messages.
"Ругань" на конфигурацию с CNAME в студию.
=====
И ещё один момент, если DNS-сервер ответит клиенту, что domain.domain это domain.dyndns.org, то клиент начнёт разрешать имя domain.dyndns.org в адрес и этот запрос кто-то должен будет выполнить. Проще говоря DNS-сервер должен не только обслуживать внутреннюю зону, но ещё и выполнять рекурсивные запросы.

Re: DNS. Как создать зону-псевдоним?

Добавлено: 2010-08-16 19:39:52
xDi
BlackCat писал(а):dyndns не выдают домены, они выдают доменные имена, это к вопросу о терминологии.
BlackCat писал(а):Сомневаюсь, что можно сделать домен-синоним, а доменное имя синоним - пожалуйста.
Хм... По контексту ясно, что речь идет именно о доменных именах, а не о каком-либо ином значении. А я думал, что наконец нашел форум без троллинга. Ошибался видимо...

На вариант с master/domain-forward.db:

Код: Выделить всё

$ORIGIN .
$TTL    600
domain    IN SOA  ns.lan. root.ns.lan. (  2010081600  600 60  86400 600  )
domain    IN CNAME domain.dyndns.org.
при рестарте named в messages падает это:

Код: Выделить всё

Aug 16 20:32:52 iru named[38757]: dns_master_load: master/domain-forward.db:4: domain: CNAME and other data
Aug 16 20:32:52 ns.lan named[38757]: zone domain/IN: loading from master file master/domain-forward.db failed: CNAME and other data
Aug 16 20:32:52 ns.lan named[38757]: zone domain/IN: not loaded due to errors.
BlackCat писал(а):И ещё один момент, если DNS-сервер ответит клиенту, что domain.domain это domain.dyndns.org, то клиент начнёт разрешать имя domain.dyndns.org в адрес и этот запрос кто-то должен будет выполнить. Проще говоря DNS-сервер должен не только обслуживать внутреннюю зону, но ещё и выполнять рекурсивные запросы.
Да, в named.conf в блоке options имеется строка recursion yes;

Re: DNS. Как создать зону-псевдоним?

Добавлено: 2010-08-17 3:52:04
BlackCat
xDi писал(а):Подскажите, как грамотно организовать связь "имя (локальный домен) -> имя (домен dyndns) -> адрес ip"?
Для этого вам нужно в описании уже имеющегося локального домена (как я понял, у вас он называется "lan") добавить CNAME запись, например для имени "external", должно получиться что-то похожее на:

Код: Выделить всё

external.lan.   CNAME domain.dyndns.org.
Эту строку добавить в файл описания зоны lan.

Тогда при разрешении имени external.lan ответом будет адрес имени domain.dyndns.org.