Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: dnsmasq не видит eth0 при старте системы  (Прочитано 938 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Batiskaf_stv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Помогите, пожалуйста, разобраться с dnsmasq.
Система: xubuntu 14.04.1 32bit.
Настраивал по статье: http://help.ubuntu.ru/wiki/sharing_internet, раздел "Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing)".
У меня eth1 - интерфейс к провайдеру, eth0 - в домашнюю сеть. eth0 - это D-Link DGE-530T (PCI-карта), eth1 - встроенная сетевая Realtek RTL8111. Провайдер сам назначает IP по DHCP, нужно только подставить "правильный" mac-адрес. Домашнюю сеть решил строить на диапазоне 172.16.0.0/255.255.0.0.

После настройки всё работало, перезагружаюсь - нет проброса пакетов и служба dnsmasq остановлена.
Добавил строку (по рекомендации в статье, в самом конце):
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
в /etc/rc.local (кстати ещё есть /etc/init.d/rc.local - какой из них нужно было править?).
После перезагрузки проброс пакетов заработал (пинги с клиентской машины по ip идут в интернет), а DNS не работает.
Пробовал добавлять в тот же rc.local
service dnsmasq start- не помогло.
В логах нашёл такие строки (syslog):
Nov  2 12:42:51 router dnsmasq[964]: unknown interface eth0
Nov  2 12:42:51 router dnsmasq[964]: FAILED to start up
...
Nov  2 12:42:52 router dnsmasq[1091]: started, version 2.68 cachesize 150
Nov  2 12:42:52 router dnsmasq[1091]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth
Nov  2 12:42:52 router dnsmasq[1091]: warning: interface eth0 does not currently exist
Nov  2 12:42:52 router dnsmasq[1091]: warning: interface eth0 does not currently exist
...
Nov  2 12:42:56 router NetworkManager[821]: <info> (eth0): device state change: ip-config -> secondaries (reason 'none') [70 90 0]
Nov  2 12:42:56 router NetworkManager[821]: <info> Activation (eth0) Stage 5 of 5 (IPv4 Commit) complete.
Nov  2 12:42:56 router NetworkManager[821]: <info> (eth0): device state change: secondaries -> activated (reason 'none') [90 100 0]
Nov  2 12:42:56 router NetworkManager[821]: <info> NetworkManager state is now CONNECTED_GLOBAL
Nov  2 12:42:56 router NetworkManager[821]: <info> DNS: starting dnsmasq...
Nov  2 12:42:56 router NetworkManager[821]: <warn> dnsmasq not available on the bus, can't update servers.
Nov  2 12:42:56 router NetworkManager[821]: <error> [1414921376.889945] [nm-dns-dnsmasq.c:396] update(): dnsmasq owner not found on bus: Could not get owner of name 'org.freedesktop.NetworkManager.dnsmasq': no such name
Nov  2 12:42:56 router NetworkManager[821]: <warn> DNS: plugin dnsmasq update failed
Nov  2 12:42:56 router NetworkManager[821]: <info> Writing DNS information to /sbin/resolvconf
Nov  2 12:42:56 router dnsmasq[1388]: failed to create listening socket for 127.0.1.1: Address already in use
Nov  2 12:42:56 router dnsmasq[1388]: FAILED to start up
Nov  2 12:42:56 router NetworkManager[821]: <info> Activation (eth0) successful, device activated.
Если в dnsmasq.conf закоментировать
interface=eth0и оставить только
except-interface=eth1то dnsmasq при старте системы успешно запускается, но для интерфейса eth0 не работает, только для локальных вызовов.
Точно также в логах были ошибки, когда писал в dnsmasq.conf
listen-address=172.16.0.1Что-то типа не найден адрес.
Первоначально, ещё при настройке, при попытке старта службы dnsmasq ругнулся на строку
bind-interfaces eth0пришлось её закомментировать.

Я так понимаю, что во время старта службы dnsmasq, она еще не может увидеть интерфейс eth0, а как сделать, чтобы она запускалась позже, я не знаю. Задача, чтобы без логина пользователя всё работало.

Также при попытке (по другим статьям) добавлять строки в /etc/network/interfaces вроде
auto eth0
iface eth0 inet static
address 172.16.0.1
netmask 255.255.0.0
данный интерфейс вообще не работал.
Статический IP-адрес настроен на eth0 с помощью Диспетчер настроек - Сетевые соединения.

Помогите, пожалуйста, с настройкой.

P.S. [UPD]. Вывод по совету fisher74
sudo netstat -nlup | grep 53
udp        0      0 127.0.1.1:53            0.0.0.0:*                           1397/dnsmasq   
udp        0      0 0.0.0.0:57953           0.0.0.0:*                           601/transmission-da
Служба dnsmasq в это время "(not running)".
У меня ясности не прибавилось. Откуда взялся dnsmasq, если служба не запущена?

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: dnsmasq не видит eth0 при старте системы
« Ответ #1 : 04 Ноябрь 2014, 16:00:33 »
Либо стартовать сервис позже, либо перенести ограничения по интерфейсу/адресу в iptables.

Откуда взялся dnsmasq, если служба не запущена?
ps aux | grep [d]nsmasq

Оффлайн Batiskaf_stv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: dnsmasq не видит eth0 при старте системы
« Ответ #2 : 04 Ноябрь 2014, 16:38:39 »
Либо стартовать сервис позже, либо перенести ограничения по интерфейсу/адресу в iptables.
Подскажите, пожалуйста, как это делается?

ps aux | grep [d]nsmasq
dnsmasq   1012  0.0  0.0   5808   888 ?        S    15:50   0:00 /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -r /var/run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new
nobody    1163  0.0  0.1   5808  1452 ?        S    15:50   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
В данный момент служба была запущена.

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: dnsmasq не видит eth0 при старте системы
« Ответ #3 : 04 Ноябрь 2014, 16:48:24 »
На моём дистрибутиве сервисами управляет systemd, так что извиняйте.
Про iptables есть информация в wiki.
Второй экземпляр dnsmasq в Ubuntu выступает в роли локального кэширующего DNS.

 

Страница сгенерирована за 0.054 секунд. Запросов: 24.