LINUX.ORG.RU

dyndns, apache, хосты произвольных уровней


0

1

Есть локалхост с динамическим айпи и привязанное к нему имя bar.dyndns.org. Я хочу настроить локальный апач+бинд так, чтобы они обслуживали много разных vhost'ов, скажем отдельно bar.dyndns.org, foo.bar.dyndns.org, foo.foo.bar.dyndns.org, etc. Как это наиболее грамотно запилить? Все настройки желательно инкапсулировать в локалхост, чтобы на стороне dyndns.org ничего лишнего не настраивать кроме перенаправления (или что там)

★★★★★

допустим для апача что-то вроде

<VirtualHost *:80>
    ServerName default    
</VirtualHost>

<VirtualHost *:80>
    ServerName bar.dyndns.org
    DocumentRoot /var/www/bar.dyndns.org/htdocs
</VirtualHost>

<VirtualHost *:80>
    ServerName foo.bar.dyndns.org
    DocumentRoot /var/www/foo.bar.dyndns.org/htdocs
</VirtualHost>

а как быть с dns?

jcd ★★★★★
() автор топика

включить на dyndns wildcards, хотя теперь оно imho платным стало.

ну, и никто тебе не запрещает в bind'е завести отдельную зону на whatever.bar.dyndns.org и прописать её как cname на bar.dyndns.org.

beastie ★★★★★
()
Ответ на: комментарий от beastie

ну, и никто тебе не запрещает в bind'е завести отдельную зону на whatever.bar.dyndns.org и прописать её как cname на bar.dyndns.org.

т.е клиент вводит whatever.bar.dyndns.org , запрос рекурсивно передаётся от dyndns к айпи bar.dyndns.org , в дело вступает мой bind, через cname внутри себя он сам определяет айпи bar.dyndns.org, делая запрос к dyndns.org , после чего полученный адрес возвращается клиенту?

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

Нет. Wildcard - это такая специальная запись в DNS. На стороне dyndns.

*.bar.dyndns.org. IN A aaa.bbb.ccc.ddd

Либо такая:

*.bar.dyndns.org IN CNAME bar.dyndns.org.

Black_Shadow ★★★★★
()
Ответ на: комментарий от Black_Shadow

это понятно, я про второй предложенный способ

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

если на пальцах, то если у тебя есть локальная master зона whatever.bar.dyndns.org:

$ORIGIN whatever.bar.dyndns.org.

@                            IN SOA whatever.bar.dyndns.org. root.whatever.bar.dyndns.org. (
                                    2011039770 ; serial
                                    14400      ; refresh (4 hours)
                                    900        ; retry (15 minutes)
                                    604800     ; expire (1 week)
                                    86400      ; minimum (1 day)
                                )

                                CNAME bar.dyndns.org.

то bind думает, что он «авторитет» и отдаёт тебе запись (cname) и уже с этим cname ресолвер бежит уже дальше к dyndns и получает IP.

PS: за правильность не ручаюсь — всё по памяти, давнько уже bind не ковырял.

beastie ★★★★★
()
Ответ на: комментарий от beastie

включить на dyndns wildcards, хотя теперь оно imho платным стало.

там всё платным стало, так что фтопку, альтернатив полно

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

у меня древнющий акк ещё аж с 2002 года — но и там уже всё поурезали по самое нехочю. даже wildcard вырезали, сволочи. (только что специально проверил) пару лет назад, когда они ещё только начинали закручивать гайки, оно ещё за безплатно работало.

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

единственный баг в такой системе — на каждый whatever прийдётся заводить отдельную зону. буду дома и коль не забуду — поковыряю свой архив — может ещё рабочие конфиги остались. у меня в своё время был именно такой финт ушами прокручен.

beastie ★★★★★
()
Ответ на: комментарий от lazyklimm

там всё платным стало, так что фтопку, альтернатив полно

Но не все роутеры умеют с чем-то другим работать :)

Я тупо сделал — роутер прописывает mydomain.dyndnsdomain.tld, а на моём внешнем DNS уже с моим доменом все запросы *.home.mydomain.tld заворачиваются на IN CNAME mydomain.dyndnsdomain.tld.

Ну и TTL совсем короткий.

Понятно, что можно с домашней помойки дёргать по cron раз в минуту updatedd какой-нибудь, но это лишняя сущность :)

KRoN73 ★★★★★
()
Ответ на: комментарий от beastie

честно говоря не понимаю, как даже примитивным образом его настроить, не хочет подцеплять адреса. например у меня есть:

/etc/bind/named.conf:
zone "localhost" IN {
        type master;
        file "pri/localhost.zone";
        notify no;
};

/etc/bind/pri/localhost.zone:
$TTL 1W
@       IN      SOA     localhost. root.localhost. (
                                      2008122601
                                      28800
                                      14400
                                      604800
                                      86400 )
@       IN      A       127.0.0.1
@       IN      NS      localhost.

это работает. а как сделать, чтобы например foobar.localhost была cname на localhost?

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

Понятно, что можно с домашней помойки дёргать по cron раз в минуту updatedd какой-нибудь, но это лишняя сущность :)

почему бы и нет, если это позволяет пользоваться нормальным сервисом? один curl/wget запрос и ты в шоколаде.

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