LINUX.ORG.RU
ФорумAdmin

Dnsmasq(dhcp & dns) настройка

 , , ,


1

2

Настраиваю dnsmasq на сервере.

 # Configuration file for dnsmasq.

listen-address=127.0.0.1,192.168.0.5
dhcp-range=192.168.0.10,192.168.0.150,12h
dhcp-option=option:router,192.168.0.1
#resolv.conf
nameserver 192.168.0.5

Пробую перезапустить # /etc/init.d/dnsmasq restart # dnsmasq: unknown user or group: dnsmasq

Как разрешить проблему? Нужно ли еще что-то добавить в конфиг dnsmasq?

Ответ на: комментарий от Rayman24

А что за дистрибутив? Пользователя можно создать руками, либо в конфиге (dnsmasq.conf) указать другого пользователя и группу (параметры user и group)

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

Пользователя добавил в конфиге. Сервис заработал. Не, пойму только одно, нужно ли здесь прописывать обратные зоны?

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

MX записи и прочие я так полагаю тоже добавляются в конфиг dnsmasq?

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

Можете разъяснить почему так?

#nslookup ast
Server: 192.168.0.5
Address: 192.168.0.5#53
Name: ast
Address: 127.0.1.1

#nslookup client
Server: 192.168.0.5
Address: 192.168.0.5#53
Name: client
Address: 192.168.0.134

Почему нслукап определяет ast как 127.0.1.1, если ast это 192.168.0.5? если в /etc/hosts закоментить #127.0.1.1 ast то выводит

Server: 192.168.0.5
Address: 192.168.0.5#53
** server can't find ast: REFUSED

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

Видимо по этому, не?
listen-address=127.0.0.1,192.168.0.5
dhcp-range=192.168.0.10,192.168.0.150,12h

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

Нужно посмотреть что там у вас в dnsmasq для ast, может там нет такого адреса или еще что, по-этому ответа и нет. Опять же у dnsmasq хорошие логи, можно там посмотреть в чем проблема. По поводу строки в /etc/hosts - это все настраивается в файле /etc/nsswitch.conf, там по дефолту сначала проверяется наличие адреса в hosts-файлах, если там нет - шлем запрос серверу.

MX записи и прочие я так полагаю тоже добавляются в конфиг dnsmasq?

Да, MX и прочие типы тоже, но все это лучше держать в отдельном файле

alozovskoy ★★★★★ ()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

# /var/log/dnsmasq.log

 
Apr 12 13:26:30 dnsmasq[8960]: started, version 2.62 cachesize 150
Apr 12 13:26:30 dnsmasq[8960]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack
Apr 12 13:26:30 dnsmasq-dhcp[8960]: DHCP, IP range 192.168.0.10 -- 192.168.0.150, lease time 12h
Apr 12 13:26:30 dnsmasq[8960]: reading /etc/resolv.conf
Apr 12 13:26:30 dnsmasq[8960]: ignoring nameserver 192.168.0.5 - local interface
Apr 12 13:26:30 dnsmasq[8960]: read /etc/hosts - 3 addresses
Apr 12 13:27:15 dnsmasq[8960]: query[A] client from 192.168.0.5
Apr 12 13:27:15 dnsmasq[8960]: DHCP client is 192.168.0.134
Apr 12 13:27:20 dnsmasq[8960]: query[A] ast from 192.168.0.5
Почему тогда игнорит 192.168.0.5?

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

Попробую повторить Dnsmasq(dhcp & dns) настройка (комментарий)
Поясняю на пальцах, dhcp у вас раздается в диапазоне 192.168.0.10,192.168.0.150 соответственно если клиент подставляет свое имя то и dns у вас будет отвечать для этих адресов. 192.168.0.5 к этому диапазону не относиться он у вас прописан статиком, dnsmasq ничего о нем не знает и знать не должен. Далее dnsmasq заодно подгружает записи из hosts (если не запретить). Вот и все. Если вам нужна запись для 0.5 можите оставить правильную в hosts или прописать явно в конфиге dnsmasq.

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

Есть ли у dnsmasq подробный лог? Не тот который выдает DHCPREQUEST и т.п. Как очистить кэш в сервисе? Например, машина получила адрес по dhcp, 192.168.0.56, но пул адресов идет от 10 до 100. Почему не выдает 10, 11 и тд

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

RTFM
http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html

Есть ли у dnsmasq подробный лог?

log-queries
Log the results of DNS queries handled by dnsmasq.

Как очистить кэш в сервисе?

When it receives a SIGHUP, dnsmasq clears its cache

Например, машина получила адрес по dhcp, 192.168.0.56, но пул адресов идет от 10 до 100. Почему не выдает 10, 11 и тд

Dnsmasq is designed to choose IP addresses for DHCP clients using a hash of the client's MAC address.

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

Dnsmasq is designed to choose IP addresses for DHCP clients using a hash of the client's MAC address.

А если мне не нужно делать привязку по МАС адресу. Собственно вопрос, почему не раздает адреса начиная с первого и далее по порядку.

When it receives a SIGHUP, dnsmasq clears its cache

т.е. при рестарте dnsmasq кэш автоматом чистится?

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

А если мне не нужно делать привязку по МАС адресу. Собственно вопрос, почему не раздает адреса начиная с первого и далее по порядку.

Тот же самый абзац целиком:

dhcp-sequential-ip
Dnsmasq is designed to choose IP addresses for DHCP clients using a hash of the client's MAC address. This normally allows a client's address to remain stable long-term, even if the client sometimes allows its DHCP lease to expire. In this default mode IP addresses are distributed pseudo-randomly over the entire available address range. There are sometimes circumstances (typically server deployment) where it is more convenient to have IP addresses allocated sequentially, starting from the lowest available address, and setting this flag enables this mode. Note that in the sequential mode, clients which allow a lease to expire are much more likely to move IP address; for this reason it should not be generally used.

т.е. при рестарте dnsmasq кэш автоматом чистится?

Да, кэш не хранится на диске.

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

Собственно еще появился вопрос. Как удалять А-записи? Если я например, делаю для машины привязку по Mac и делаю #dig client, то мне выдает A-запись с старым ip адресом.

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

Как удалять А-записи? Если я например, делаю для машины привязку по Mac и делаю #dig client, то мне выдает A-запись с старым ip адресом.

Либо подождать, пока аренда истечёт, либо отредактировать /var/lib/dnsmasq/dnsmasq.leases.
При ручном редактировании для применения изменений потребуется перезапуск сервиса, но можно воспользоваться утилитой dhcp_release из пакета dnsmasq-utils, и тогда перезапуск будет не нужен.

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

Я установил dnmasq-utils через менеджер пакетов. Я иммею как воспользоваться dhcp_release чтобы не перезагружать каждый раз машину

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

как воспользоваться dhcp_release чтобы не перезагружать каждый раз машину

# dhcp_release --help
usage: dhcp_release <interface> <addr> <mac> [<client_id>]


Но это не отменяет необходимость получения нового IP на клиентской стороне.

если dnsmasq автоматически продлевает аренду, это в конфиге где редактируется? не могу найти

Там же, где и диапазон раздаваемых адресов.

ArcFi ()
Ответ на: комментарий от ArcFi
# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally
# a lease time. If you have more than one network, you will need to
# repeat this for each network on which you want to supply DHCP
# service.
######## выдаем указанный диапазон на 12 часов
#dhcp-range=192.168.0.10,192.168.0.100,12h

Ну здесь только время аренды указано, или в другом месте копать?

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

Ну здесь только время аренды указано, или в другом месте копать?

Да, параметр dhcp-range, только он у вас почему-то закомментирован.
Вообще, в некоторых случаях диапазон может идти в виде опции к запускаемому процессу, либо может затеряться среди комментариев, так что можно проверить и более тщательно:

ps aux | grep [d]nsmasq
grep -rEv '^#|^$' /etc/dnsmasq* | grep dhcp-range
grep -rEv '^#|^$' /etc/dnsmasq*

ArcFi ()
Ответ на: комментарий от ArcFi
root@astra:~# grep -rEv '^#|^$' /etc/dnsmasq*
/etc/dnsmasq.conf:user=test
/etc/dnsmasq.conf:group=test
/etc/dnsmasq.conf:listen-address=127.0.1.1,192.168.0.5
/etc/dnsmasq.conf:dhcp-range=192.168.0.10,192.168.0.100,12h
/etc/dnsmasq.conf:dhcp-host=08:00:27:a1:29:d6,192.168.0.99
/etc/dnsmasq.conf:dhcp-option=option:router,192.168.0.1
/etc/dnsmasq.conf:log-facility=/var/log/dnsmasq.log
/etc/dnsmasq.conf:log-dhcp
/etc/dnsmasq.conf:dhcp-sequential-ip
/etc/dnsmasq.conf:clear-on-reload

Вот. Интересно где отключить автоматическое продление аренды. Пробовал ставить 30 мин, но аренда продляется и айпи не меняется. Видимо dnsmasq запоминает что уже присваивал данной машине такой ip адрес. Или я не прав?

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

Во первых. Не совсем понятно, чего достичь хотим. Во вторых многое и от клиента зависит, например винда не будет запрашивать адрес без ребута (по крайней мере раньше не запрашивала).

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

винда не будет запрашивать адрес без ребута

Емнип, Win 7/XP должна спросить по истечению текущей аренды.
Либо можно отдать/обновить аренду руками.

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

Хочется, достигнуть того, чтобы когда аренда заканчивалась, сервер не продлял ее машине автоматически, либо менял адрес на другой. Так же в confige прописал dhcp-sequential-ip, чтобы ip адреса выдавались последовательно. Но когда запускаю машину (со старым ip 192.168.0.32, ), то сервер все равно присваивает ей 0.32. А не 0.11...12...13

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

Интересен принцип работы dnsmasq. Например, при смене айпи, кто кого опрашивает, клиент сервера или же наоборот? Нигде не могу найти подробное описание взаимодействия клиента и сервера.Или когда на клиенте меняю hostname. Клиент передает информация dns или dhcp?

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

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

Простите, но нафейхуа такое? Вообще-то сама идея как раз состоит в обратном, иначе у клиента с открытыми сокетами в приложениях начнется ад и израиль если ему внезапно ip менять.

Интересен принцип работы dnsmasq. Например, при смене айпи, кто кого опрашивает, клиент сервера или же наоборот? Нигде не могу найти подробное описание взаимодействия клиента и сервера.Или когда на клиенте меняю hostname. Клиент передает информация dns или dhcp?

Если клиент ранее получал ip то он будет запрашивать его же (именно ip) подтверждения и в случае если этот ip не был занят сервер его подтвердит. Возвращаясь к винде, она и после ребута с рандомной вероятностью будет запрашивать тот же адрес (именно рандомной, темных дебрей мс не понять)

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

Или когда на клиенте меняю hostname. Клиент передает информация dns или dhcp?

Хостнэйм и dhcphostname это вообще два разных человека, т.е. клиент его может передавать а может и нет, понятия не связаны друг с другом. Но вот винда например передает, у нее вообще почти все в одном флаконе netbiosname, hostname и имя передаваемое в запросе dhcp.

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

Интересно как передавать опции по dhcp клиентам, настраивается ли это в dnsmasq? 69 Simple Mail Transport Protocol (SMTP) Server 70 Post Office Protocol (POP3) Server

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

настраивается ли это в dnsmasq?

Да.

$ grep ^#dhcp-option /etc/dnsmasq.conf 
#dhcp-option=3,1.2.3.4
#dhcp-option=option:router,1.2.3.4
...

Но чтобы оно работало, нужна поддержка со стороны прикладного ПО, а в реале далеко не всякое ПО это умеет.
Часть опций вообще ничем не поддерживается.

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

Пробую передать ntp option. На сервере поднял ntp сервер. в /etc/dnsmasq.conf

######## Выдаем NTP сервера
# Set the NTP time server addresses to 192.168.0.4
dhcp-option=option:ntp-server,192.168.0.5

######## указываем себя в качестве сервера времени 
# Set the NTP time server address to be the same machine as
# is running dnsmasq
dhcp-option=42,192.168.0.5

в /var/log/dnsmasq.log

ignoring duplicate dhcp-option 42

и время на клиенте не обновляется с сервером.

Rayman24 ()

Сначала установить нормальный дистрибутив c systemd. Псоле этого, скорее всего, всё заработает само.

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

в ntp.conf прописал следующее:

server 192.168.0.5
server 127.127.1.0
fudge 127.127.1.0 stratum 10
Но когда обновляю время на сервере, то на клиенте происходит отключение от сети. Затем он автоматом подключается и время меняется. Как победить проблему с отключением от сетки клиентов?

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

ignoring duplicate dhcp-option 42

Это значит, что строки

dhcp-option=option:ntp-server,192.168.0.5
dhcp-option=42,192.168.0.5

для dnsmasq равнозначны, т.е. достаточно одной из двух.

время на клиенте не обновляется с сервером

А для этого может быть множество причин.
DHCP-клиент, NTP-сервис, менеджер сети — все они должны работать согласованно, т.е. может требоваться внесение изменений в конфиги наличие хук-скриптов.
Конечно, при это условии, что сам NTP-сервер работает корректно и нет проблем с прохождением NTP-трафика через фаервол на шлюзе.

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

$: /etc/ntp.conf

server 192.168.0.5
server 127.127.1.0
fudge 127.127.1.0 stratum 10
установил следующие настройки, время на клиенте меняется после того как происходит кратковременное отключение от сети,затем интерфейс поднимается и время синхронизируется. Из-за чего отключается сеть при синхронизации? Параметр fudge влияет ли на это?

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

Вот что выдает # ntpq -p -n

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 192.168.0.5     .INIT.          16 u    -  256    0    0.000    0.000   0.000
*127.127.1.0     .LOCL.          10 l   49   64  377    0.000    0.000   0.000

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