LINUX.ORG.RU
ФорумAdmin

HELP ЧАЙНИКУ!!!! DNS работает на гейте, но не ресолвит запросы из локалки.


0

0

Машина подключенна к inet, на ней две сетевухи и запущен DNS.
Когда с нее пингую, или запускаю nslookup, все нормально за исключением
сообщения Can't find server name for address .... при запуске nslookup

fw:/var/named.local # nslookup
*** Can't find server name for address 192.168.0.37: Non-existent host/domain
> oracle.com
Server: [192.168.0.37]
Address: 192.168.0.37

Name: oracle.com
Address: 148.87.9.44

>

Когда делаю тоже самое c машины в сети ничего не выходит!
Точнее локальные запросы работают (www.companyname.ru, mail.),
т.е. dns сервер виден из локалки.

В relolv.conf dns прописан.

Когда делаю с компа из локалки:
> server 192.168.0.37
Default server: 192.168.0.37
Address: 192.168.0.37#53
> set type=any
> oracle.com
;; connection timed out; no servers could be reached
>

делаю:
> www.companyname.ru
Server: 192.168.0.37
Address: 192.168.0.37#53

www.companyname.ru canonical name = server2.companyname.ru.
Name: server2.companyname.ru
Address: 192.168.0.77
> mail
Server: 192.168.0.37
Address: 192.168.0.37#53

mail.companyname.ru canonical name = server2.companyname.ru.
Name: server2.companyname.ru.
Address: 192.168.0.77
>
$ traceroute www.companyname.ru.
traceroute to server2.companyname.ru (192.168.0.77), 30 hops max, 38 byte packets

Наружу не ресолвит имена:
$ traceroute www.oracle.com
traceroute: unknown host www.oracle.com

обычный пинг на внешний ip проходит нормально, т.е. гейт работает.
C гейтовой машины пингуется и по именам.



Заранее благодарен,



anonymous

Такое может быть, если он работает нерекурсивно, т.е. сам найти может, а когда к нему обращаются локальные клиенты, он возвращает им отсылки типа "я не знаю, спроси у такого-то сервера, может он знает".
Локальные тачки есть в его зонах, поэтому их определить он может, а остальное - никак.
Если "recursion yes;" не стоит, попробуй поставить:
options {
...
recursion yes; ...
};

spirit ★★★★★
()

Стоит рекурсия, recursion yes; ...
Я вот еще что сделал, запустил named -d 9, смотрю лог named.run,
если запускаю nslookup с той же машины ( с гейтовой) где стоит named,
то вижу в этом логе свои запросы. Вижу их также, если из локалки
захожу на какой-нибудь сайт (через squid - на той же машине, что и named),
но когда запускаю nslookup с локалки в named.run ничего НЕТ!
Где named ведет свои логи?
HELP!

anonymous
()

И allow-recursion не запрещает рекурсию для компов из локальной сети ?
А что он говорит, если на самом сервере определить что-то, например, "host www.rambler.ru" (чтобы он кешировал это), а потом с локальной тачки:
> server 192.168.0.37
> www.rambler.ru.
Покажет или нет ?

spirit ★★★★★
()

>spirit (*) (2002-06-24 17:08:53.198)
>И allow-recursion не запрещает рекурсию для компов из локальной сети ?
В named.conf recursion=yes, т.е должно ресолвится и пинговаться с локальных
тачек.

>он кешировал это), а потом с локальной тачки:
>> server 192.168.0.37
>> www.rambler.ru.
>Покажет или нет ?
Нет, не показывает. На гейте отрабатывает на локалке нет(опять же локальные хосты ресолвит, из тех что прописаны в dns).
Есть еще один момент. Используется два DNS. Когда указываю с локального
компа тот, что стоит на интерфейсе подключенном к Интернет все отрабатывает.
При этом пинг с локального компа наружу по IP'шникам идет, т.е route настроен
на гейте.




anonymous
()

Опции "allow-recursion {x.x.x.x;};" в named.conf нет ? named висит точно на всех интерфейсах ? ipchains/iptables не запрещают прохождение пакетов к нему и от него ? Хотелось бы видеть настройки firewall, named.conf, "netstat -nl|grep ':53' " :-)

spirit ★★★★★
()

>spirit (*) (2002-06-24 19:08:18.857)
Спасибо за советы,

>Опции "allow-recursion {x.x.x.x;};" в named.conf нет ?
нет. Есть опция recursion yes;

>named висит точно на всех интерфейсах ?
Не совсем понял, как он должен на двух интерфейсах висеть?
>netstat -nl|grep ':53' (ip'шники условны)
tcp 0 0 192.168.0.37:53 0.0.0.0:* LISTEN
tcp 0 0 212.154.36.37:53 0.0.0.0:* LISTEN
udp 0 0 192.168.0.37:53 0.0.0.0:*
udp 0 0 212.154.36.37:53 0.0.0.0:*
Тут два named -один для внешних запросов(висит на внешнем интерфейсе),
для определения IP нашей почты, web,..., снаружи (с ним все OK)
и один внутренний (висит на 192.168.0.37:53 ), для разрешения имен для
внешних
запросов из локалки, и сохранения одинаковых имен наших публичных
ресурсов(www.companyname.ru - снаружи DNS его дает как интеренет IP, а для локальных запросов как 192.****, и их он ресолвит, не умеет ресолвить
внешние адреса ПРИ ЗАПРОСЕ с локалки).

>ipchains/iptables не запрещают прохождение пакетов к нему и от него ?
Только маскарадинг, но я останавливал его не помогает.
# ipchains -L
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
target prot opt source destination ports
MASQ all ------ 192.168.0.0/24 anywhere n/a
Chain output (policy ACCEPT):

Почему nslookup при запуске на гейтовой машине(где DNS установлен)
программа не видит DNS сервера на локальном интерфейсе(пытается его
увидеть потому что он прописан в resolv.conf)

# nslookup
*** Can't find server name for address 192.168.0.37: Non-existent host/domain
Default Server: ns.companyname.ru
Address: 212.154.36.37

Вообще, кто-нибудь может это объяснить - ведь DNS сервер это серверная
программа, если он отрабатывает на гейтовой машине, то как он может
отрабатывать по запросу с локальной машины частично (выдет внутренние
имена, прописанные в его конфигах, и не ресолвит внешние)?
Ему послылают запрос - он отрабатывает - как может он работать для запросов с локалки частично?.
Что интересно, NT'тевый nslookup не выдает и этих имен, но tracert показывает,
что внутренние имена ресолвятся нормально, т.е. www.companyname.ru
находится через 192.****.

Все ip'шники условны:

/* sample configuration file for BIND 8.1 or later
* should be installed as /etc/named.conf
*
* Author: Florian La Roche
*/

#
# overall options of the server
#
options {
directory "/var/named.local";
# the default is to fail, if the master file is not correct
check-names master warn;

pid-file "/var/run/named.local.pid";
statistics-interval 0;
cleaning-interval 720;

datasize default;
stacksize default;
coresize default;
files unlimited;
recursion yes;

multiple-cnames no;
listen-on { 192.168.0.37; };

};

#
# do not be verbose about these problems...
#
logging {
# category default { null; };
category lame-servers { null; };
category cname { null; };
};


zone "." IN {
type hint;
file "root.hint";
};


zone "companyname.ru" {
type master;
file "companyname.ru.localhosts";
};

zone "0.0.168.192.in-addr.arpa" {
type master;
file "192.168.0.0.rev";
};



/var/named/companyname.ru.local.hosts

$ttl 38400
@ IN SOA ns.companyname.ru. administrator.companyname.ru. (
2002050801
10800
3600
604800
38400 )

@ IN NS ns.companyname.ru.

@ IN MX 10 mail.companyname.ru.

router IN A 192.168.0.41
server1 IN A 192.168.0.37
firewall IN A 192.168.0.37
server2 IN A 192.168.0.97

www IN CNAME server2
mail IN CNAME server2
smtp IN CNAME server2
pop IN CNAME server2
webmail IN CNAME server2
mailadmin IN CNAME server2


ftp IN CNAME server1
ns IN CNAME server1

proxy IN CNAME firewall
fw IN CNAME firewall

Вот эти www,mail, ... ресолвятся.

Спасибо за помощь.

anonymous
()

>spirit (*) (2002-06-24 19:08:18.857)
>Опции "allow-recursion {x.x.x.x;};" в named.conf нет ?
Если ее задаю, то вижу ошибку в named.run.

anonymous
()

Всем спасибо за помощь!
Ларчик просто открывался.
Я переносил эти два DNS с машины в локалке на гейтовую.
Перенес DNS, выключил комп, поднял DNS, проверил.
Потом все съехало. Оказалось что кто-то(или он сам) включил тот
комп на котором раньше был DNS. Получилось в сети два DNS сервера,
с одинаковой конфигурацией(IP-port). Почему это дало такой странный эфект сказать не могу.


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