LINUX.ORG.RU
решено ФорумAdmin

Зависает dnsmasq после суток работы сервера

 , , ,


0

1

Здравствуйте. Прошу Сообщество помочь мне с одним вопросом...

Имеется сервер, на котором стоит Ubuntu Server. Сервер работает в режиме шлюза, раздаёт интернет. Для этого на сервере стоит dnsmasq, который раздаёт айпишники по DHCP и выступает в роли DNS-посредника. Соответственным образом настроен iptables на форвардинг адресов. Сервер подключается к интернету посредством PPPoE, настроен на автоматическое подключение при загрузке.

Собственно, проблема: раз в сутки зависает сервер. Зависает, правда, частично. Не пускает в интернет. Судя по всему, отваливается DNS, ибо внешние IP-адреса пингуются прекрасно, а вот traceroute и nslookup молчат как рыбы, ожидая, пока я нажму Ctrl+C. Интернета, естественно нет. Причём нет как с клиентов, так и с самого сервера. Лечится это банальной перезагрузкой сервера. Рестарт dnsmasq не помогает. Переподключение PPPoE тоже. Только полная перезагрузка. После перезагрузки подключение по SSH выполняется нормально, однако, когда сам сервер зависает, подключиться можно, но нужно ждать секунд 30, пока сервер спросит пароль.

Вопрос: как это исправить? В чём может быть проблема? Как попытаться её диагностировать и найти причину зависания?

Правила iptables какие, устанавливаются при поднятии интерфейса скриптом или сохранены куда-нибудь в /var/lib/iptables/rules-save?

backbone ★★★★★ ()
Ответ на: комментарий от backbone

Правила устанавливаются при поднятии интерфейса:

root@nyanserv:/home/namikiri# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules


auto eth1
iface eth1 inet static
        address 192.168.1.5
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

namikiri ()
Ответ на: комментарий от dbzer0

Файла /var/log/dnsmasq.log нет. В конфигах включил логирование.

iptables-save:

# Generated by iptables-save v1.4.10 on Thu Dec 13 20:04:45 2012
*mangle
:PREROUTING ACCEPT [253646:201166452]
:INPUT ACCEPT [21969:1610211]
:FORWARD ACCEPT [230874:199508587]
:OUTPUT ACCEPT [34653:37308349]
:POSTROUTING ACCEPT [265734:236861860]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Thu Dec 13 20:04:45 2012
# Generated by iptables-save v1.4.10 on Thu Dec 13 20:04:45 2012
*nat
:PREROUTING ACCEPT [6629:419931]
:INPUT ACCEPT [3171:230182]
:OUTPUT ACCEPT [3422:237658]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -j MASQUERADE
COMMIT
# Completed on Thu Dec 13 20:04:45 2012
# Generated by iptables-save v1.4.10 on Thu Dec 13 20:04:45 2012
*filter
:INPUT ACCEPT [22028:1614834]
:FORWARD ACCEPT [2745:146438]
:OUTPUT ACCEPT [34709:37315935]
-A FORWARD -s 192.168.1.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Thu Dec 13 20:04:45 2012

Логи dnsmasq и /var/log/messages выложу, когда сервер в очередной раз зависнет. Думаю, именно в этот момент можно будет получить больше полезной информации.

namikiri ()

Путём курения лога выяснилось, что сначала dnsmasq получает правильные DNS от провайдера:

Dec 13 20:10:02 dnsmasq[4216]: reading /etc/resolv.conf
Dec 13 20:10:02 dnsmasq[4216]: using nameserver 91.204.179.2#53
Dec 13 20:10:02 dnsmasq[4216]: using nameserver 178.213.32.18#53
Dec 13 20:10:02 dnsmasq[4216]: чтение /etc/hosts - 7 адресов

Но потом откуда-то берёт левые значения (видимо, из /etc/resolv.conf, который не успел отредактировать демон PPPoE):

Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 vendor class: udhcp 0.9.9-pre
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 DHCPREQUEST(eth1) 192.168.1.119 1c:af:f7:19:ca:fb
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 DHCPACK(eth1) 192.168.1.119 1c:af:f7:19:ca:fb route
Dec 14 09:08:09 dnsmasq-dhcp[4216]: Ignoring domain nyanserver.com for DHCP host name route
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 requested options: 1:netmask, 3:router, 6:dns-server, 12:hostname,
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 requested options: 15:domain-name, 28:broadcast, 40:nis-domain,
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 requested options: 41:nis-server, 42:ntp-server, 121:classless-static-route
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 tags: eth1
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 next server: 192.168.1.5
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  1 option: 53:message-type  05
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  4 option: 54:server-identifier  192.168.1.5
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  4 option: 51:lease-time  00:01:51:80
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  4 option: 58:T1  00:00:95:fb
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  4 option: 59:T2  00:01:14:8b
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  4 option:  1:netmask  255.255.255.0
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  4 option: 28:broadcast  192.168.1.255
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  4 option:  3:router  192.168.1.5
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  4 option:  6:dns-server  192.168.1.5
Dec 14 09:08:09 dnsmasq-dhcp[4216]: 2228958822 sent size:  5 option: 12:hostname  route
Dec 14 10:23:49 dnsmasq[4216]: reading /etc/resolv.conf
Dec 14 10:23:49 dnsmasq[4216]: using nameserver 192.168.1.10#53
Dec 14 10:23:49 dnsmasq[4216]: using nameserver 192.168.1.1#53

Надо сказать, за сервером стоит вай-фай роутер. Судя по логам, именно он подключается к серверу (а точнее, обновляет DHCP), после чего сервер ВНЕЗАПНО откуда-то берёт два левых адреса DNS (192.168.1.10 и 192.168.1.1), и, естественно, теряет связь с DNS. Вопрос теперь встал иначе: как отучить его это делать? И почему вообще такое происходит?

namikiri ()
Ответ на: комментарий от namikiri

Всё исправил. Взял другую сеть по совету сисадмина провайдера.

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