LINUX.ORG.RU
ФорумAdmin

BIND, ответ на все запросы


0

1

Все привет,

Есть некий сервис, который позволяет подключать к своей системе доменные имена клиентов. При подключении своего домена клиент прописывает A запись своего домена на IP этого сервиса. Но возникла необходимость переезда серверов в другой ДЦ, следовательно IP поменяется и неизвестно сколько еще раз будет меняться. Регистрировать свою AS нет времени. Да и в RIPE IPv4 айпишники вродь закончились(?). Подключенных доменов несколько сотен и дописывать функционал движка для добавления домена в DNS нет времени. Нужно какое-то быстрое и временной решение. Пока что придумал вот что. Настраиваю bind таким образом, чтоб он отвечал на все запросы выдавая нужный IP. А клиенты прописывают NS-ы свой зоны мой DNS-а (ns{1,2}.domain.com).

named.conf:

zone "." in {
        type master;
        file "/var/bind/db.all";
        allow-update { none; };
};

db.all:

$TTL 1W
@       IN      SOA     ns1.domain.com. root.localhost.  (
                                      2008122601 ; Serial
                                      60      ; Refresh
                                      60      ; Retry
                                      60     ; Expire - 1 week
                                      60 )    ; Minimum
                IN      NS      ns1.domain.com.
                IN      NS      ns2.domain.com.
                IN      A       1.1.1.1
*               IN      A       1.1.1.1

 # dig @2.2.2.2 example.com

; <<>> DiG 9.9.3-P2 <<>> @2.2.2.2 example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1080
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		604800	IN	A	1.1.1.1

;; AUTHORITY SECTION:
.			604800	IN	NS	ns1.domain.com.
.			604800	IN	NS	ns2.domain.com.

;; ADDITIONAL SECTION:
ns1.domain.com.	604800	IN	A	1.1.1.1
ns2.domain.com.	604800	IN	A	1.1.1.1

;; Query time: 1 msec
;; SERVER: 2.2.2.2#53(2.2.2.2)
;; WHEN: Tue Dec 24 16:54:11 EET 2013
;; MSG SIZE  rcvd: 130

Как видим выше, при выполнении запроса A запись выдается. А вот на запрос NS записей ответа нет:

# host -t ns example.com 2.2.2.2
Using domain server:
Name: 2.2.2.2
Address: 2.2.2.2#53
Aliases: 

example.com has no NS record

Поскольку на запрос NS записей ответа нет, многие клиенты не могут поменять у себя NS записи домена. К примеру на godaddy при попытке поменять NS-ы домена говорит: You must enter a registered nameserver.

Можно как-то решить проблему? Да и вообще, возможно выше описанную задачу можно решить каким-то другим способом? Цель - управлять A записями подключенных доменов. А позже можно будет привязать DNS к движку сервиса.

Заранее благодарен за ответы!

★★★★★

А разве для example.com обявлены ns? Пока я вижу только для domain.com.

Ну и дальше спрошу, на что я сам напоролся при настройке:
ns зарегистрирован в nsi registry?

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

А разве для example.com обявлены ns?

Так по идее «IN NS ns1.domain.com.» и является объявлением NS-а для зоны о которой спрашивают. Или я не прав?

пока я вижу только для domain.com.

domain.com тут вообще не фигурирует. Он нужен для того, чтоб поменять IP DNS сервера в случае переезда куда-то. Или я снова не прав?

ns зарегистрирован в nsi registry?

Не зарегистрирован. Спасибо за подсказку, почитаю что это такое и зачем нужно.

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

Так по идее «IN NS ns1.domain.com.» и является объявлением NS-а для зоны о которой спрашивают. Или я не прав?

Правы, я недосмотрел...

мне кажется что нужно еще добавлять
ns1 IN A 1.1.1.1
ns2 IN A 1.1.1.1

Ну и желательно их разкинуть на разные айпишки, т.к. некоторые сервисы не разрешают добавлять нс с одинаковыми айпишками.

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

Добавление ns1... ничего не изменило. Если поменять в named.conf:

zone "."
на:
zone "example.com"
... то NS записи нормально отдаются:
# host -t ns example.com 2.2.2.2
Using domain server:
Name: 2.2.2.2
Address: 2.2.2.2#53
Aliases: 

example.com name server ns2.domain.com.
example.com name server ns1.domain.com.

Думаю истина где-то рядом...

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

Файлик root.cache?

Файлик как файлик. И чё с ним?

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