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 создаёт записи:
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 перенаправлять запросы:
но в любом случае это работает только в локалке, и зачем правильный PTR в ней я непонимаю....
итоги
Не придирайся. :)
Заметь, что я пользовался теми же самыми доками, только переведенными на русский. Кроме того, по сути мои записи были тем же самым, что сделал ты, только я разделил их по смыслу: отдельно SOA, отдельно NS, отдельно A и тд. К примеру, меня не устраивает дефолтный почтовый ящик администратора вида
, который получается из записи .evadim.ru:82.151.112.137:a:259200 ну и тд.
Я разобраться хотел с настройкой PTR в djbdns.
Вот именно это и надо было мне.
Окончательный вариант:
Ну и тесты:
Благодарю за помощь.
всётаки лучше
всётаки лучше все записи совмещать пологаясь на автоматику а вот нравятся ли тебе записи hostmaster@ postmaster@ и прочие совершенно никого не колышит, они должны присутствовать исходя из RFC :)