Назад | Перейти на главную страницу

Почему разрешение имен не работает на самом сервере?

У меня есть сервер Ubuntu Linux 12.04.1, который в качестве одной службы запускает bind9 для разрешения имен для домена xxx.local, который перенаправляет все остальные запросы на серверы имен моего интернет-провайдера.

Это отлично работает для всех клиентов в сети (Windows и Linux), они получают разрешение имен, как и ожидалось.

До вчерашнего дня то же самое было и с самим сервером. Но я обновил несколько пакетов и перезагрузил. Все было хорошо, поэтому я пошел домой. Сегодня утром прокси и электронная почта перестали работать. Выяснилось, что виной всему было разрешение имен. nslookup на клиентах по-прежнему работает нормально, но на сервере всегда истекает время ожидания:

nslookup google.com
connection timed out; no servers could be reached

nslookup google.com 127.0.0.1
;; connection timed out; no servers could be reached

nslookup google.com 192.168.115.250
;; connection timed out; no servers could be reached

(где 192.168.115.250 - IP-адрес самого сервера)

На другом компьютере Linux это работает:

nslookup google.com
Server:         192.168.115.250
Address:        192.168.115.250#53

Non-authoritative answer:
Name:   google.com
Address: ....

На компьютере с Windows XP это выглядит так:

nslookup google.com
*** Der Servername für die Adresse 192.168.115.250 konnte nicht gefunden werden:
    Non-existent domain
*** Die Standardserver sind nicht verfügbar.
Server:  UnKnown
Address:  192.168.115.250

Nicht autorisierte Antwort:
Name:    google.com
Address:  ...

(Ошибка означает: «Имя сервера для адреса ... не удалось найти ... что, вероятно, означает, что обратный поиск не работает. Я никогда раньше не видел этого.)

Если я укажу один из серверов имен своего интернет-провайдера на моем сервере, он будет работать:

nslookup google.com [IP goes here]
Server:         [IP goes here]
Address:        [IP goes here]#53

Non-authoritative answer:
Name:   google.com
Address: ....

Я не могу понять, что здесь может быть не так. Поскольку до вчерашнего дня все работало нормально, это должно быть связано с последним обновлением Ubuntu или перезагрузкой.

Любые подсказки будут оценены.

ОБНОВЛЕНИЕ: брандмауэр не должен быть проблемой:

sudo iptables -L -v -n
Chain INPUT (policy ACCEPT 16M packets, 6138M bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 13M packets, 50G bytes)
 pkts bytes target     prot opt in     out     source               destination 

ОБНОВЛЕНИЕ2:

Поскольку люди продолжают спрашивать resolv.conf, я хотел бы отметить, что указание IP-адреса сервера имен в приведенном выше вызове nslookup не сработало. Но все таки:

cat /etc/resolv.conf:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.115.250

(Если я изменю этот IP-адрес на сервер имен своего интернет-провайдера, он будет работать, но это не решение.)

ОБНОВЛЕНИЕ 3:

netstat -anp | egrep :53
tcp   0   0 192.168.115.250:53    0.0.0.0:*       LISTEN      104414/named
tcp   0   0 127.0.0.1:53          0.0.0.0:*       LISTEN      104414/named
tcp6  0   0 :::53                 :::*            LISTEN      104414/named
udp   0   0 192.168.115.250:53168 5.9.122.148:123 ESTABLISHED 106273/ntpd
udp   0   0 192.168.115.25:53     0.0.0.0:*                   104414/named
udp   0   0 127.0.0.1:53          0.0.0.0:*                   104414/named
udp6  0   0 :::53                 :::*                        104414/named

мне нравится.

ОБНОВЛЕНИЕ 4:

ip route show table local
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1
broadcast 192.168.115.0 dev eth0  proto kernel  scope link  src 192.168.115.250
local 192.168.115.250 dev eth0  proto kernel  scope host  src 192.168.115.250
broadcast 192.168.115.255 dev eth0  proto kernel  scope link  src 192.168.115.250

Я не знаю, как это интерпретировать.

ОБНОВЛЕНИЕ 5:

Я только что обнаружил еще одну странность: не работает не только имя, но и smtpd:

fetchmail: reading message [...]
Trying to connect to 127.0.0.1/25...connection failed.
fetchmail: connection to localhost:smtp [127.0.0.1/25] failed: Connection timed out.
fetchmail: Connection errors for this poll:
name 0: connection to localhost:smtp [127.0.0.1/25] failed: Connection timed out.
fetchmail: SMTP connect to localhost failed

Нашел: по какой-то причине интерфейс обратной петли не появился:

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1e:67:6e:cd:3b
          inet addr:192.168.115.250  Bcast:192.168.115.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:67ff:fe6e:cd3b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:58326791 errors:0 dropped:4 overruns:0 frame:0
          TX packets:109062010 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:21089630035 (21.0 GB)  TX bytes:131207523503 (131.2 GB)
          Interrupt:19 Memory:c1c00000-c1c20000

Обратите внимание, что здесь нет «lo».

Начнем с ...

ifup -v lo

... исправил проблему.

Спасибо всем, кто пытался помочь, в частности synneticon-dj.