У меня есть сервер 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.