Доброе время! пытаюсь настроить на втором нашем серваке, который находится на удаленной площадке slave dns. я так понял, что нужны только db.cashe db.127.0.0 named.conf
а все остальные файлы он сам скачает с основного сервака. named.reload- смотрю, действительно в папке /var/namedb/ появились файлы named.наш_домен.rev и named.айпи_нашего_основного_сервера.rev
больше никаких файлов не должно появиться?
и как проверить, что сервак стал slave dns?
потому что
nslookup наш_домен
выдает, покрайней мере пока, только нашего провайдера и наш основной сервак.
заранее спасибо.
ну в принципе там мало что надо
ты покажи named.conf а там поглядим что да как
а то маловато инфы для ответа на твой вопрос
да log еще не отменяли!
>ну в принципе там мало что надо
>ты покажи named.conf а там поглядим что да как
>а то маловато инфы для ответа на твой вопрос
>да log еще не отменяли!base# cat /etc/namedb/named.conf
options
{
directory "/var/named";
fetch-glue no;
recursion no;
allow-query { 192.168.26/24; 127.0.0/8; };
allow-transfer { айпи_основного_сервера; };
transfer-format many-answers;
};
//These files are not specific to any zone
zone "." in
{
type hint;
file "db.cache";
};
zone "0.0.127.in-addr.arpa" in
{
type master;
file "db.127.0.0";
};
//These our slave zone files
zone "наш_домен" in
{
type slave;
file "named.наш_домен";
masters { айпи_основного_сервера; };
};
zone "сервера_основного_ай.in-addr.arpa" in
{
type slave;
file "named.айпи_основного_серв.rev";
masters { айпи_основного_сервера; };
};
> recursion no;
> allow-query { 192.168.26/24; 127.0.0/8; };
> allow-transfer { айпи_основного_сервера; };
вот это поправить и все заработает
>> recursion no;
>> allow-query { 192.168.26/24; 127.0.0/8; };
>> allow-transfer { айпи_основного_сервера; };
>вот это поправить и все заработаетЭ-э-э на что поправить-то? а?
>>> recursion no;
>>> allow-query { 192.168.26/24; 127.0.0/8; };
>>> allow-transfer { айпи_основного_сервера; };
>>вот это поправить и все заработает
>
>Э-э-э на что поправить-то? а?э-э-эм, документацию и статьи тут же на opennet почитайте...
>>> recursion no;
раз рекурсин не разрешен
>>> allow-query { 192.168.26/24; 127.0.0/8; };
в это не вижу смысла
>>> allow-transfer { айпи_основного_сервера; };
>>вот это поправить и все заработает
зачем? ведь по логике это секондари и ему не надо на примари ничего заливать
>
>Э-э-э на что поправить-то? а?
без документации и понимания того как работает, толку не будет все равно...
>>> recursion no;
>>> allow-query { 192.168.26/24; 127.0.0/8; };
>>> allow-transfer { айпи_основного_сервера; };
>>вот это поправить и все заработает
>
>Э-э-э на что поправить-то? а?/* recursion no; */
allow-query { any; };
allow-transfer { none; };
allow-recursion { 192.168.26/24; 127.0.0/8; };ну и в файле зоны прописать его в NS-ах
>>>> recursion no;
>>>> allow-query { 192.168.26/24; 127.0.0/8; };
>>>> allow-transfer { айпи_основного_сервера; };
>>>вот это поправить и все заработает
>>
>>Э-э-э на что поправить-то? а?
>
>/* recursion no;
> */
> allow-query { any; };
> allow-transfer { none; };
> allow-recursion { 192.168.26/24; 127.0.0/8; };
>
>ну и в файле зоны прописать его в NS-ахслейв готов тогда
хорошо, возвращаясь к моему второму вопросу- как убедиться, что сервер стал slave dns?
тоесть файлы зоны появились и что, все работает?
>хорошо, возвращаясь к моему второму вопросу- как убедиться, что сервер стал slave
>dns?
>тоесть файлы зоны появились и что, все работает?марш изучать документацию:
[unix1]~ > nslookup -q=ns ya.ru.
Server: 159.93.17.7
Address: 159.93.17.7#53Non-authoritative answer:
ya.ru nameserver = ns2.yandex.ru.
ya.ru nameserver = ns3.yandex.ru.
ya.ru nameserver = ns.ispm.ru.
ya.ru nameserver = ns1.yandex.ru.Authoritative answers can be found from:
ns1.yandex.ru internet address = 213.180.193.1
ns2.yandex.ru internet address = 213.180.199.34
ns3.yandex.ru internet address = 213.180.193.2[unix1]~ > nslookup -q=a www.ya.ru. ns1.yandex.ru
Server: ns1.yandex.ru
Address: 213.180.193.1#53www.ya.ru canonical name = ya.ru.
Name: ya.ru
Address: 213.180.204.8[unix1]~ > nslookup -q=a www.ya.ru. ns2.yandex.ru
Server: ns2.yandex.ru
Address: 213.180.199.34#53www.ya.ru canonical name = ya.ru.
Name: ya.ru
Address: 213.180.204.8[unix1]~ >
верхний пример как использовать nslookup для выполнения запросов и в том числе проверки
>>марш изучать документацию:
>спасибо :)
>пойду опять читатьnslookup -q=тип_записи host.domain. nameserver
проверка RR=A для www.zhopa.ru
# nslookup -q=a www.zhopa.ru. (точка в конце отделяет указанный FQDN от нашего домена)
# nslookup -q=a ftp - запрос к nameserver'у указанному в нашем resolv.conf, в конце
к ftp будет добавлен наш домен из resolv.confпоиск ns для mama.ru
# nslookup -q=ns mama.ru. - точка отделяет указанную зону от добавления нашего домена
к mama.ruпросмотр soa для google.com
[unix1]~ > nslookup -q=ns google.com.
Server: 159.93.17.7
Address: 159.93.17.7#53Non-authoritative answer:
google.com nameserver = ns3.google.com.
google.com nameserver = ns4.google.com.
google.com nameserver = ns1.google.com.
google.com nameserver = ns2.google.com.Authoritative answers can be found from:
ns1.google.com internet address = 216.239.32.10
ns2.google.com internet address = 216.239.34.10
ns3.google.com internet address = 216.239.36.10
ns4.google.com internet address = 216.239.38.10[unix1]~ >
проверяю работу разных ns от google.com:
ниже нам на запрос отвечает конкретно ns2.google.com - мы его указали в какчестве ns
[unix1]~ > nslookup -q=a groups.google.com. ns2.google.com
Server: ns2.google.com
Address: 216.239.34.10#53groups.google.com canonical name = groups.l.google.com.
а в данном случае мы используем ns1.google.com в качестве резолвера
[unix1]~ > nslookup -q=a groups.google.com. ns1.google.com
Server: ns1.google.com
Address: 216.239.32.10#53groups.google.com canonical name = groups.l.google.com.
[unix1]~ >
А теперь марш изучать документацию
>А теперь марш изучать документацию
если собрать все вопросы, на которые ответил lavr только здесь, на опеннете- я думаю это вещь посильнее Фауста Гете получится :)
всем спасибо, к сожалению моих теперешних знаний не хватило, чтобы понять, что мне сказали- отложим поднятие слэйв днс до лучших времен, благо это скорее моя инициатива, чем необходимость
>>А теперь марш изучать документацию
>если собрать все вопросы, на которые ответил lavr только здесь, на опеннете-
>я думаю это вещь посильнее Фауста Гете получится :)
>всем спасибо, к сожалению моих теперешних знаний не хватило, чтобы понять, что
>мне сказали- отложим поднятие слэйв днс до лучших времен, благо это
>скорее моя инициатива, чем необходимостьНу что сложного с ДНС?!
Допустим где-то есть nameserver'а, но не на нашей машине. Что мы делаем для
работы DNS - правильно, настраиваем resolver == /etc/resolv.conf
в котором указываем НАШ локальный домен и адреса nameserver'ов.
Возможны вариации - вместо domain использовать search
Тогда при наборе любого имени хоста, резолвер будет добавлять к нему ИМЯ нашего
домена и дергать nameserver'а указанные в резолвере - это касательно специализированных
утилит проверки DNSпример:
ниже мы используем имена хостов или так называемые алиасы, резолвер ПОНИМАЕТ что это
КОРОТКИЕ имена из нашего домена:[unix1]~ > ping -c 3 ns1
PING ns1.jinr.ru (159.93.17.7): 56 data bytes
64 bytes from 159.93.17.7: icmp_seq=0 ttl=62 time=0.415 ms
64 bytes from 159.93.17.7: icmp_seq=1 ttl=62 time=0.322 ms
64 bytes from 159.93.17.7: icmp_seq=2 ttl=62 time=0.262 ms--- ns1.jinr.ru ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.262/0.333/0.415/0.063 ms
[unix1]~ > ping -c 3 ultra
PING ultra.jinr.ru (159.93.17.75): 56 data bytes
64 bytes from 159.93.17.75: icmp_seq=0 ttl=254 time=0.560 ms
64 bytes from 159.93.17.75: icmp_seq=1 ttl=254 time=0.501 ms
64 bytes from 159.93.17.75: icmp_seq=2 ttl=254 time=0.565 ms--- ultra.jinr.ru ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.501/0.542/0.565/0.029 ms
[unix1]~ >Если же нам нужно работать с ВНЕШНИМИ именами, мы должны набирать их в FQDN формате,
Full Qualify Domain Name (полное доменное имя):[unix1]~ > ping -c 3 ultra.jinr.ru
PING ultra.jinr.ru (159.93.17.75): 56 data bytes
64 bytes from 159.93.17.75: icmp_seq=0 ttl=254 time=0.656 ms
64 bytes from 159.93.17.75: icmp_seq=1 ttl=254 time=0.552 ms
64 bytes from 159.93.17.75: icmp_seq=2 ttl=254 time=0.492 ms--- ultra.jinr.ru ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.492/0.567/0.656/0.068 ms
[unix1]~ > ping -c 3 www.ya.ru
PING ya.ru (213.180.204.8): 56 data bytes
64 bytes from 213.180.204.8: icmp_seq=0 ttl=58 time=20.882 ms
64 bytes from 213.180.204.8: icmp_seq=1 ttl=58 time=15.556 ms
64 bytes from 213.180.204.8: icmp_seq=2 ttl=58 time=12.773 ms--- ya.ru ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 12.773/16.404/20.882/3.364 ms
[unix1]~ >Отсюда вопрос, в чем разница между:
# ping www
и
# ping www.ya.ru
или
# ping www.rambler.ru
???Теперь nslookup:
# nslookup -q=тип_записи host[host.domain]. [nameserver]
тип_записи: RR=a,cname,ns,soa,...
host[host.domain]. - можем задавать как короткие имена/алиасы host
если без точки, резолвер будет считать что это короткое имя и добавлять к нему наш
домен, а если нам нужно разрешить внешний host.domain то мы в конце должны поставить
ТОЧКУ: host.domain. тем самым указав резолверу что это ВНЕШНЕЕ имя и ничего к нему
не добавлять.пример:
[unix1]~ > nslookup -q=a www
Server: 159.93.17.7
Address: 159.93.17.7#53Name: www.jinr.ru
Address: 159.93.39.7[unix1]~ > nslookup -q=a www.ya.ru.
Server: 159.93.17.7
Address: 159.93.17.7#53Non-authoritative answer:
www.ya.ru canonical name = ya.ru.
Name: ya.ru
Address: 213.180.204.8[unix1]~ >
разница видна НЕВООРУЖЕННЫМ глазом
Теперь про формат: nslookup -q=тип host.domain.
при таком формате в КАЧЕСТВЕ nameserver'а будут использовать ТЕ ЧТО У НАС заданы
в /etc/resolv.conf.
Допустим мне нужно проверить работу SLAVE Nameserver'а: ns2.jinr.ru - что я должен
сделать? Правильно - задать его в качестве nameserver'а для nslookup, тогда
формат будет:# nslookup -q=тип host.domain. nameserver-который-будет-использоваться-для-resolv'а
[unix1]~ > nslookup -q=a unix1.jinr.ru. ns2.jinr.ru
Server: ns2.jinr.ru
Address: 159.93.14.7#53Name: unix1.jinr.ru
Address: 159.93.44.57[unix1]~ >
выше видим что резолвинг был осуществлен nameserver'ом == ns2.jinr.ru, он же слейв,
работает? Работает! Мы хотели проверить slave - мы его проверили, можем более
подробно:стягиваем RR=SOA со слейва:
[unix1]~ > nslookup -q=soa jinr.ru. ns2.jinr.ru
Server: ns2.jinr.ru
Address: 159.93.14.7#53jinr.ru
origin = ns1.jinr.ru
mail addr = PostMaster.jinr.ru
serial = 2006102560
refresh = 7200
retry = 1800
expire = 2419200
minimum = 86400[unix1]~ >
Теперь про Primary и Secondary(slave - болван/раб)
Все зоны ведутся и хранятся на Primary, Secondary их только стягивает с Primary по
notify или другому принудительному фактору.
Значит ЧТО нужно в настройках слейва named.conf?!
Правильно - указать адрес primary откуда стягивать и файл куда сохранить:например есть первичный nameserver с зонами lavr[beaviz].pp.ru, мне нужно сделать
slave на какой-то машине, что делать?! :zone "lavr.pp.ru" {
type slave;
--------^^^^-^^^^^-- ти зоны SLAVE
file "slave/lavr.pp.ru";
masters { 159.93.17.121; };
--------^^^^^^^^--^^^^^^^^^^^^^- указываем ip primary nameserver откуда СКАЧАТЬ
};zone "beaviz.pp.ru" {
type slave;
--------^^^^-^^^^^- тип зоны SLAVE
file "slave/beaviz.pp.ru";
masters { 159.93.17.121; };
--------^^^^^^^---^^^^^^^^^^^^^---- ip адрес primary откуда скачать
};Очень сложно?!
>Ну что сложного с ДНС?!
>Очень сложно?!
если бы это было просто- я бы уже это сделал, поверьте. если бы это было просто, книга BIND&DNS не занимала бы почти тыщю страниц, а в интернете было бы полно человеческих описаний. а так самое человеческое про слейв днс это "Глава 14. Серверное программное обеспечение (BIND/Сервис DNS)". но там слишком все упростили и из этого рассказа сложно понять, что же необходимо изменить и где, чтобы я смог поднять свой днс, а не тот, который в примере у них рассматривается.
из весьма подробного описания уважаемого мной lavr'a так и не смог понять:дак работает мой днс как слейв или нет?-bash-2.05b# nslookup -q=ns наш_домен.
Server: bc.наш_домен
Address: айпи_примари_днснаш_домен nameserver = base.наш_домен
наш_домен nameserver = bc.наш_домен
наш_домен nameserver = наш_провbc.наш_домен internet address = айпи_примари_днс
наш_пров internet address = айпи_прова
собственно base.наш_домен - это и есть та машинка, на которой пытаюсь слейв днс поднять
да нет там никаких сложностейкэширующий днс - никаких зон не держит,
исполняет рекурсивные запросы к другим серверамфорвард сервер - все запросы перенаправляет к другому серверу
первичный (primary) - в дополнение к этому держит свои зоны
и выдает authoritative ответы на запросы по своей зоне (так как он в этом "уверен"),
ответы на запросы о хостах чужих зон - неавторитативные
(получены от другого сервера и неизвестно, можно ли им доверять:)вторичный (slave) - все настройки аналогично первичному днс,
за исключением зон - их необходимо получить от первичного
также будет выдавать авторитативные ответы по своим зонамв реальности - сервер может быть первичным для одних зон,
вторичным - для других, и форвардящим впридачу
как понять, что мой сервер стал-таки slave dns?
>>Ну что сложного с ДНС?!
>>Очень сложно?!
>если бы это было просто- я бы уже это сделал, поверьте. если
>бы это было просто, книга BIND&DNS не занимала бы почти тыщю
>страниц, а в интернете было бы полно человеческих описаний. а так
>самое человеческое про слейв днс это "Глава 14. Серверное программное обеспечение
>(BIND/Сервис DNS)". но там слишком все упростили и из этого рассказа
>сложно понять, что же необходимо изменить и где, чтобы я смог
>поднять свой днс, а не тот, который в примере у них
>рассматривается.
>из весьма подробного описания уважаемого мной lavr'a так и не смог понять:дак
>работает мой днс как слейв или нет?
>
>-bash-2.05b# nslookup -q=ns наш_домен.
>Server: bc.наш_домен
>Address: айпи_примари_днс
>
>наш_домен nameserver = base.наш_домен
>наш_домен nameserver = bc.наш_домен
>наш_домен nameserver = наш_пров
>
>bc.наш_домен internet address = айпи_примари_днс
>наш_пров internet address = айпи_прова
>
>
>собственно base.наш_домен - это и есть та машинка, на которой пытаюсь слейв
>днс поднятьеще раз 5-10 прочитайте ЧТО я НАПИСАЛ и все поймете, будет немножко стыдно,
потому как самую малось нужно немножечко напрячь серое вещество.Slave НИЧЕГО НЕ СОДЕРЖИТ кроме записей в named.conf которые отражают
всего ДВЕ вещи тип slave и ip-адрес primary откуда высасывать зоны.конкретный пример: зона jinr.ru
- находим ее nameserver'а, для этого выполняем запрос=ns
[unix1]~ > hostname
unix1.jinr.ru
[unix1]~ > nslookup -q=ns jinr.ru.
Server: 159.93.17.7
Address: 159.93.17.7#53jinr.ru nameserver = ns1.jinr.ru.
jinr.ru nameserver = ns2.jinr.ru.[unix1]~ >
- теперь я хочу ПРОВЕРИТЬ работу слейва == ns2.jinr.ru
ЧТО Я ДОЛЖЕН СДЕЛАТЬ?! Правильно - отправлять ЗАПРОСЫ по своей зоне nameserver'у
ns2.jinr.ru, КАК, да ПРОСТО - последняя опция у nslookup - указание nameserver'а
для резолвинга - НУ ЧТО ТУТ СЛОЖНОГО или НЕПОНЯТНОГО?!!!!!!!!!!!!!!!!!!!!!1Как это выглядит:
[unix1]~ > nslookup -q=soa jinr.ru. ns2.jinr.ru
Server: ns2.jinr.ru
Address: 159.93.14.7#53jinr.ru
origin = ns1.jinr.ru
mail addr = PostMaster.jinr.ru
serial = 2006102560
refresh = 7200
retry = 1800
expire = 2419200
minimum = 86400[unix1]~ >
выше я вытягиваю SOA зоны jinr.ru со СЛЕЙВА ns2.jinr.ru, те ns2.jinr.ru ИЗ СВОИХ
файлов отдает информацию, ОНА должна совпадать с информацией с primary
Если SLAVE отдает информацию и правильно, значит ОН работает.Аналогично верхнему я могу вытянуть RR=NS зоны jinr.ru со SLAVE'а:
[unix1]~ > nslookup -q=ns jinr.ru. ns2.jinr.ru
Server: ns2.jinr.ru
Address: 159.93.14.7#53jinr.ru nameserver = ns2.jinr.ru.
jinr.ru nameserver = ns1.jinr.ru.[unix1]~ >
Или могу по любому хосту получить информацию RR=A или RR=CNAME или RR=MX и я хочу
получить это со SLAVE'а, поэтому и указываю что мои запросы идут ЕМУ:[unix1]~ > nslookup -q=mx jinr.ru. ns2.jinr.ru
Server: ns2.jinr.ru
Address: 159.93.14.7#53jinr.ru mail exchanger = 1 mail.jinr.ru.
jinr.ru mail exchanger = 10 relay.jinr.ru.
jinr.ru mail exchanger = 40 relay1.jinr.ru.[unix1]~ >
могу получить IP (RR=A) по mail и relay или ns1, ns2:
[unix1]~ > nslookup -q=a mail.jinr.ru. ns2.jinr.ru
Server: ns2.jinr.ru
Address: 159.93.14.7#53Name: mail.jinr.ru
Address: 159.93.17.40[unix1]~ > nslookup -q=a relay.jinr.ru. ns2.jinr.ru
Server: ns2.jinr.ru
Address: 159.93.14.7#53Name: relay.jinr.ru
Address: 159.93.14.25[unix1]~ > nslookup -q=a ns1.jinr.ru. ns2.jinr.ru
Server: ns2.jinr.ru
Address: 159.93.14.7#53Name: ns1.jinr.ru
Address: 159.93.17.7[unix1]~ > nslookup -q=a ns2.jinr.ru. ns2.jinr.ru
Server: ns2.jinr.ru
Address: 159.93.14.7#53Name: ns2.jinr.ru
Address: 159.93.14.7[unix1]~ >
Еще один вариант - на SLAVE'е зайти в директорию где файлы с зонами, в самом начале
НИЧЕГО на SLAVE'е быть не должно кроме named.conf и named.root - слейв САМ должен
выкачать зоны, если он это сделал - ВСЕ РАБОТАЕТ, если НЕТу - НЕ РАБОТАЕТ.
Берем и удаляем файлы зон, через некоторое время SLAVE должен высосать зоны с PRIMARY.
Можно руками это сделать rndc - тоже самое но не дожидаясь notifyВот ЧТО ЗДЕСЬ СЛОЖНОГО?!
>еще раз 5-10 прочитайте ЧТО я НАПИСАЛ и все поймете, будет немножко
>стыдно, потому как самую малось нужно немножечко напрячь серое вещество.нет, стыдно не было
>Еще один вариант - на SLAVE'е зайти в директорию где файлы с
>зонами, в самом начале
>НИЧЕГО на SLAVE'е быть не должно кроме named.conf и named.root - слейв
>САМ должен
>выкачать зоны, если он это сделал - ВСЕ РАБОТАЕТ, если НЕТу -
>НЕ РАБОТАЕТ.
>>
так и сделал, я в принципе сразу это писал, что он файло это выкачивает, но вот конкретный ответ получил только что
>Вот ЧТО ЗДЕСЬ СЛОЖНОГО?!
наверно ничего.
lavr'у - респект и уважуха, так красиво у меня врядли когда-нибудь получится.
всем, кто отвечал- большое спасибо. честно-честно