dnsmasq tanpa mengubah file / etc / hosts secara manual

5

Saya sudah mencoba agar dnsmasq berfungsi sebagai dns dan dhcp server gabungan. Sejauh ini menyebalkan ... Singkatnya, DNS berfungsi dengan baik untuk apa pun yang ditambahkan ke / etc / hosts, dan dhcp berfungsi dengan baik, tetapi dhcp tidak memperbarui dns dengan informasi nama host dari klien.

Hasil dari ini adalah bahwa saya hanya dapat melakukan ping node dengan nama host jika saya tahu alamatnya, yang berarti mengatur alokasi dhcp statis dan menempatkan nama host ke / etc / hosts secara manual, yang sangat menjengkelkan dan agak mengalahkan kekalahan dari dhcp . Pasti ada cara untuk mendapatkan dnsmasq untuk memperbarui file host, tentunya

Klien tidak menggunakan fqdn jika itu penting, dan saya pikir saya sudah mencoba setiap kombinasi "Expand-Host" dan "Domain ="

berikut adalah isi file config dnsmasq:

diperlukan domain
palsu-priv
kecuali-interface = tun0

dhcp-range = 192.168.1.10,192.168.1.80,255.255.255.0,12h
dhcp-leasefile = / var / lib / misc / dnsmasq.leases
dhcp-berwibawa

log-queries
log-dhcp
Sirex
sumber
Klien seperti apa yang Anda bicarakan? Beberapa klien tidak mengirim nama, atau setidaknya mereka tidak mengirim nama yang Anda harapkan.
Zoredache
klien linux, untuk saat ini saya dapat memaksa mengirim nama dengan dhclient -H, tapi itu sepertinya tidak memperbaiki masalah. saya mencoba hostname dan hostname.domain.com masuk ke -H
Sirex

Jawaban:

2

Coba atur domain dengan domain example.org.

dnsmasq juga memiliki hook untuk memanggil skrip dhcp-script=foo.sh. Argumen yang dikirim ke skrip adalah "add" atau "del", lalu alamat MAC, alamat IP dan akhirnya nama host.

Seharusnya relatif mudah untuk membuat skrip yang memperbarui file host dengan cepat.

Sakit kepala
sumber
menerima ini sebagai jawabannya. Ternyata a) saya perlu memberikan fqdn pada nama host yang diteruskan ke server dhcp, dan b) pengujian saya 2 klien mesin virtual berbenturan dengan alamat mac, yang menyebabkan beberapa gejala tidak jelas. Tak perlu dikatakan itu bukan waktu yang ideal untuk mac clash ketika juga melawan dns dinamis.
Sirex
3

Klien DHCP perlu mengirim nama agar nama tersebut tersedia di DNS. Jika tidak, dnsmasq dapat memberikan nama, tetapi Anda harus mengonfigurasinya di /etc/dnsmasq.conf atau / etc / hosts terlebih dahulu.

Karena dnsmasq adalah server DNS, Anda harus memiliki nama domain. Bagian domain-neededmemaksakan itu. Tetapkan nama domain di konfigurasi Anda juga.

Jadi pada dasarnya inilah yang saya miliki:

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>
Keith
sumber