djbdns и PTR-запись [Solved]

Здравствуйте.
Установлен djbdns.
Подняты dnscache и tinydns.

Конфигурация:

Назначил 2 адреса под разные сервисы:

# ifconfig 
bond0     Link encap:Ethernet  HWaddr 00:30:48:93:BE:56  
          inet addr:192.168.1.169  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:2333611 errors:0 dropped:0 overruns:0 frame:0
          TX packets:281960 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:366344418 (349.3 Mb)  TX bytes:169411795 (161.5 Mb)

bond0:1   Link encap:Ethernet  HWaddr 00:30:48:93:BE:56  
          inet addr:192.168.1.170  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:2333611 errors:0 dropped:0 overruns:0 frame:0
          TX packets:281960 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:366344418 (349.3 Mb)  TX bytes:169411795 (161.5 Mb)

Настроил и поднял соответствующие сервера:

# svstat /service/*
/service/axfrdns: up (pid 19057) 590 seconds
/service/dnscachex: up (pid 19058) 590 seconds
/service/tinydns: up (pid 19056) 590 seconds
# netstat -lna | grep 53
tcp        0      0 192.168.1.169:53        0.0.0.0:*               LISTEN      
tcp        0      0 192.168.1.170:53        0.0.0.0:*               LISTEN      
udp        0      0 192.168.1.169:53        0.0.0.0:*                           
udp        0      0 192.168.1.170:53        0.0.0.0:*

Заполнил и сконфигурировал зоны:

# cat /service/tinydns/root/data
# SOA record for ph.com
#Zfqdn :mname :rname       :ser       :ref  :ret :exp   :min :ttl  :timestamp :lo
Zph.com:ph.com.:root.ph.com.:::::3600:3600
# name server 1
&ph.com:192.168.1.170:ns1.ph.com.:3600
&1.168.192.in-addr.arpa:192.168.1.170:ns1.ph.com.:3600
# a full on record for the domain with the internet IP (1.2.3.4)
=ph.com:192.168.1.170:3600
# definitions
=localsrv.ph.com:192.168.1.253:3600
=mainserv.ph.com:192.168.1.169:3600
=gate.ph.com:192.168.1.250:3600

Кеширующий днс на 192.168.1.169, днс-сервер на .170. Разрешил доступ к кеширующему из локальной сети:

# ls /service/dnscachex/root/ip/
127.0.0.1  192.168.1

Если идет запрос про ph.com, то опрашивается локальный днс-сервер, иначе, опрашиваются и кешируются днс-запросы к провайдерским днс-серверам:

# ls /service/dnscachex/root/servers/
@  ph.com
# cat /service/dnscachex/root/servers/\@ 
212.188.4.10
195.34.32.116
# cat /service/dnscachex/root/servers/ph.com 
192.168.1.170

Тестируем:

$ cat /etc/resolv.conf
nameserver 192.168.1.169
$ dnsq a gate.ph.com 192.168.1.170
1 gate.ph.com:
95 bytes, 1+1+1+2 records, response, authoritative, noerror
query: 1 gate.ph.com
answer: gate.ph.com 3600 A 192.168.1.250
authority: ph.com 3600 NS ns1.ph.com
additional: ns1.ph.com 3600 A 192.168.1.170
additional: ns1.ph.com 3600 A 192.168.1.170

$ dnsq ptr 250.1.168.192.in-addr.arpa 192.168.1.170
12 250.1.168.192.in-addr.arpa:
100 bytes, 1+0+1+2 records, response, noerror
query: 12 250.1.168.192.in-addr.arpa
authority: 1.168.192.in-addr.arpa 3600 NS ns1.ph.com
additional: ns1.ph.com 3600 A 192.168.1.170
additional: ns1.ph.com 3600 A 192.168.1.170

И тут замечаю неладное, локальный днс отрабатывает вот так:

$ dnsqr a gate.ph.com
1 gate.ph.com:
45 bytes, 1+1+0+0 records, response, noerror
query: 1 gate.ph.com
answer: gate.ph.com 3440 A 192.168.1.250

$ dnsqr ptr 250.1.168.192.in-addr.arpa
12 250.1.168.192.in-addr.arpa:
44 bytes, 1+0+0+0 records, response, authoritative, nxdomain
query: 12 250.1.168.192.in-addr.arpa

а внешний так:

$ dnsqr a ya.ru
1 ya.ru:
39 bytes, 1+1+0+0 records, response, noerror
query: 1 ya.ru
answer: ya.ru 3460 A 213.180.204.8

$ dnsqr ptr 8.204.180.213.in-addr.arpa
12 8.204.180.213.in-addr.arpa:
63 bytes, 1+1+0+0 records, response, noerror
query: 12 8.204.180.213.in-addr.arpa
answer: 8.204.180.213.in-addr.arpa 3331 PTR ya.ru

Вопрос: как правильно задать PTR для корректной работы tinydns?

Скурил мануалы:
http://gentoo-wiki.com/HOWTO_Setup_a_DNS_Server_with_DJBDNS
http://lithium.opennet.ru/articles/djbdns-faq/index.html
http://www.opennet.ru/docs/RUS/tinydns/#common_lines (вариант, который озвучен здесь, отработал также неприглядно)

дело не в PTR

в djbdns нет "файла зоны", есть конфиг, который их описывает.
думаю что сильно лучше для создания использовать скрипты(add-alias add-childns add-host add-mx add-ns) которые идут в комплекте а не править вручную конфиг, да и использовать лучше местами офф-доки Бернштейна - http://cr.yp.to/djbdns.html
вот тут например параметры строк конфига и что из них делает tinydns - http://cr.yp.to/djbdns/tinydns-data.html
вообще думается мне невыходит это у тебя потому что ты какойто хак затеял, и несовсем понимаеш как система DNS работает.
вот как это сделано у меня:

.evadim.ru:82.151.112.137:a:259200
=evadim.ru:82.151.112.137:86400
+www.evadim.ru:82.151.112.137:86400
.137.112.151.82.in-addr.arpa:82.151.112.137:a:259200

строка .evadim.ru:82.151.112.137:a:259200 создаёт записи:
NS (``name server'')
A (``address'')
SOA (``start of authority'')

строка =evadim.ru:82.151.112.137:86400 создаёт записи:
A
PTR (``pointer'')

строка =evadim.ru:82.151.112.137:86400 создаёт записи:
A

в нормальной ситуации это всё, но нам нужно чтобы кто-то делегировал нам эти домены - как evadim.ru так и .137.112.151.82.in-addr.arpa, но если первое решается просто, то второе мой пров решить не может, поэтому я поступил так:
делегировал его сам себе, причём всего 1 ip:
.137.112.151.82.in-addr.arpa:82.151.112.137:a:259200
а потом сказал dnscashe перенаправлять запросы:

ls /service/dnscachex/root/servers/
@  137.112.151.82.in-addr.arpa  evadim.ru

cat /service/dnscachex/root/servers/137.112.151.82.in-addr.arpa 
82.151.112.137

но в любом случае это работает только в локалке, и зачем правильный PTR в ней я непонимаю....

итоги

evadim написал(а):
в djbdns нет "файла зоны", есть конфиг, который их описывает.

Не придирайся. :)

evadim написал(а):
думаю что сильно лучше для создания использовать скрипты(add-alias add-childns add-host add-mx add-ns) которые идут в комплекте а не править вручную конфиг, да и использовать лучше местами офф-доки Бернштейна - http://cr.yp.to/djbdns.html

Заметь, что я пользовался теми же самыми доками, только переведенными на русский. Кроме того, по сути мои записи были тем же самым, что сделал ты, только я разделил их по смыслу: отдельно SOA, отдельно NS, отдельно A и тд. К примеру, меня не устраивает дефолтный почтовый ящик администратора вида

, который получается из записи .evadim.ru:82.151.112.137:a:259200 ну и тд.

evadim написал(а):
вот тут например параметры строк конфига и что из них делает tinydns - http://cr.yp.to/djbdns/tinydns-data.html
вообще думается мне невыходит это у тебя потому что ты какойто хак затеял, и несовсем понимаеш как система DNS работает.

Я разобраться хотел с настройкой PTR в djbdns.

evadim написал(а):
а потом сказал dnscashe перенаправлять запросы:

ls /service/dnscachex/root/servers/
@  137.112.151.82.in-addr.arpa  evadim.ru

cat /service/dnscachex/root/servers/137.112.151.82.in-addr.arpa 
82.151.112.137

Вот именно это и надо было мне.

Окончательный вариант:

# cat /service/tinydns/root/data
# SOA record for ph.com
# Zfqdn :mname :rname       :ser       :ref  :ret :exp   :min :ttl  :timestamp :lo
Zph.com:ph.com.:root.ph.com.:::::3600:3600
# name server 1
&ph.com:192.168.1.170:ns1.ph.com.:3600
.1.168.192.in-addr.arpa:192.168.1.170:ns1.ph.com:3600
# a full on record for the domain with the internet IP (1.2.3.4)
=ph.com:192.168.1.170:3600
# definitions
=gate.ph.com:192.168.1.250:3600
=mainserv.ph.com:192.168.1.169:3600
=localsrv.ph.com:192.168.1.253:3600
# ls /service/dnscachex/root/servers/
@  1.168.192.in-addr.arpa  ph.com

# cat /service/dnscachex/root/servers/\@
212.188.4.10
195.34.32.116
# cat /service/dnscachex/root/servers/1.168.192.in-addr.arpa     /* вот этого не было
192.168.1.170
# cat /service/dnscachex/root/servers/ph.com
192.168.1.170

Ну и тесты:

$ dnsqr a gate.ph.com
1 gate.ph.com:
45 bytes, 1+1+0+0 records, response, noerror
query: 1 gate.ph.com
answer: gate.ph.com 2227 A 192.168.1.250
$ dnsqr ptr 250.1.168.192.in-addr.arpa
12 250.1.168.192.in-addr.arpa:
69 bytes, 1+1+0+0 records, response, noerror
query: 12 250.1.168.192.in-addr.arpa
answer: 250.1.168.192.in-addr.arpa 2201 PTR gate.ph.com
 $ nslookup
> gate.ph.com
Server:         192.168.1.169
Address:        192.168.1.169#53

Non-authoritative answer:
Name:   gate.ph.com
Address: 192.168.1.250
> 192.168.1.250
Server:         192.168.1.169
Address:        192.168.1.169#53

Non-authoritative answer:
250.1.168.192.in-addr.arpa      name = gate.ph.com.

Благодарю за помощь.

всётаки лучше

всётаки лучше все записи совмещать пологаясь на автоматику а вот нравятся ли тебе записи hostmaster@ postmaster@ и прочие совершенно никого не колышит, они должны присутствовать исходя из RFC :)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".