dnsmasq без изменения файла / etc / hosts вручную

10863
Sirex

Я пытаюсь заставить работать dnsmasq как сервер dns и dhcp. Пока что это бесит ... Короче говоря, DNS работает нормально для всего, что добавлено в / etc / hosts, и dhcp работает нормально, но dhcp не обновляет dns с информацией об имени хоста от клиентов.

В результате я могу пинговать узел только по имени хоста, если знаю, что это адрес, что означает установку статического распределения dhcp и помещение имени хоста в / etc / hosts вручную, что очень раздражает и в некоторой степени побеждает пуаз dhcp, Должен быть способ заставить dnsmasq обновить файл hosts, конечно

Клиенты не используют fqdn, если это имеет значение, и я думаю, что я попробовал каждое сочетание "expand-hosts" и "domain ="

Ниже приведено содержимое файла конфигурации dnsmasq:

домена требуется поддельные-собства кроме интерфейса = tun0  Диапазон-DHCP = 192.168.1.10,192.168.1.80,255.255.255.0,12h DHCP-leasefile = / вар / Библиотека / разное / dnsmasq.leases DHCP-авторитетный  LOG-запросы срубы DHCP 
5
О каких клиентах вы говорите? Некоторые клиенты не отправляют имя или, по крайней мере, не отправляют имя, которое вы ожидаете. Zoredache 13 лет назад 0
клиенты linux, сейчас я могу принудительно отправить имя с помощью dhclient -H, но это, похоже, не решит проблему. я пробовал имя хоста и hostname.domain.com перешли в -H Sirex 13 лет назад 0

2 ответа на вопрос

3
Keith

DHCP-клиент должен отправить имя, чтобы имя стало доступным в DNS. В противном случае dnsmasq может предоставить имя, но вы должны сначала настроить его в /etc/dnsmasq.conf или / etc / hosts.

Поскольку dnsmasq является DNS-сервером, вам необходимо иметь доменное имя. domain-neededЧасть навязывает это. Установите доменное имя в вашей конфигурации также.

Итак, вот что у меня есть:

bogus-priv dhcp-authoritative dhcp-host=00:0c:29:1b:62:c6,host1,192.168.1.86,infinite dhcp-host=00:0c:29:f7:e6:7d,host2,192.168.1.89,infinite dhcp-host=00:1e:58:94:d2:5b,192.168.1.10,infinite dhcp-option=19,0 # option ip-forwarding off dhcp-option=27,1 dhcp-option=42,0.0.0.0 dhcp-option=44,192.168.1.10 # set netbios-over-TCP/IP nameserver(s) aka WINS server(s) dhcp-option=45,0.0.0.0 # netbios datagram distribution server dhcp-option=46,8 # netbios node type dhcp-option=6,0.0.0.0 dhcp-option-force=210,/ dhcp-option-force=211,30i dhcp-option=option:domain-search,example.com dhcp-option=option:router,192.168.1.1 dhcp-range=192.168.1.50,192.168.1.150,255.255.255.0,30d domain=example.com domain-needed enable-tftp expand-hosts interface=eth0 local=/dartworks.biz/ local=/localnet/ no-poll no-resolv server=<ISP DNS 1> server=<ISP DNS 2> 
2
Zoredache

Попробуйте установить домен с помощью domain example.org.

У dnsmasq также есть ловушка для вызова скрипта dhcp-script=foo.sh. Аргументами, посылаемыми сценарию, являются «add» или «del», затем MAC-адрес, IP-адрес и, наконец, имя хоста.

Должно быть относительно легко быстро создать скрипт, который обновляет файл hosts.

принимая это как ответ. Оказывается, что а) мне нужно было указать fqdn в имени хоста, передаваемом на dhcp-сервер, и б) клиенты моей тестовой виртуальной машины 2 конфликтовали с MAC-адресами, что привело к некоторым неясным симптомам. Само собой разумеется, что это не было идеальным временем для столкновения mac, когда также сражались с динамическими DNS. Sirex 13 лет назад 0