Dnsmasq menyelesaikan hostname lokal menjadi 127.0.0.1 di seluruh internet


8

Dnsmasq saya sudah dikonfigurasi:

  • Di host 'rtfm.lan'
  • Domain 'lan'
  • Ada beberapa preset DHCP yang menyertakan nama host

Semua '* .lan' host yang terdaftar melalui DHCP dapat mengatasi dengan baik: dnsmasq mengetahui IP mana yang ditugaskan untuk nama host mana. Namun, 'rtfm.lan' dibaca dari / etc / hosts dan diselesaikan menjadi 127.0.0.1.

Saya dapat mencegah dnsmasq dari membaca / etc / hosts dan menambahkan alamat secara manual:

no-hosts
address=/rtfm.lan/192.168.1.2

Tapi ini tidak fleksibel: jika suatu hari saya memutuskan untuk mengubah IP saya - saya juga harus mengubahnya di dnsmasq.conf.

Bagaimana saya bisa memberitahu dnsmasq untuk menggunakan nama host-lokal dengan IP asli?


Untuk berjaga-jaga .. inilah konfigurasi DNSmasq saya:

# Never forward plain names (without a dot or domain part)
domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv
# Read resolv.conf serially
strict-order

#==========[ NAMESERVER ]==========#

# Cache size
cache-size=4096
# Don't read /etc/hosts
no-hosts
# Read additional hosts-file (not only /etc/hosts) to add entries into DNS
addn-hosts=/etc/hosts-dnsmasq
# Auto-append <domain> to simple entries in hosts-file
expand-hosts

#=== HOSTNAME OVERRIDES
address=/localhost/127.0.0.1 # *.localhost => 127.0.0.1

#==========[ DHCP ]==========#
# Enable for the local network?
dhcp-authoritative
# Tell MS Windows to release a lease on shutdown
dhcp-option=vendor:MSFT,2,1i

#=== DHCP
# Domain name
domain=lan
# DNS-resolve hosts in these domains ONLY from /etc/hosts && DHCP leases
local=/lan/

# DHCP range & lease time
dhcp-range=192.168.1.70,192.168.1.89,24h 
# Default route
dhcp-option=3,192.168.1.1

#=== FIXED LEASES
# LAN MY HOSTS
dhcp-host=00:23:54:5d:27:fa,                    rtfm.lan,               192.168.1.2
dhcp-host=00:23:54:5d:27:fb,                    rtfm.lan,               192.168.1.2
dhcp-host=c8:0a:a9:45:f1:03, 00:1e:64:9e:e9:5e, wtf.lan,                192.168.1.3

Jawaban:


10

Biasanya, Anda akan menentukan host statis Anda /etc/hostsdan mengaktifkannya hostsdi dnsmasq.conffile Anda . dnsmasqmemungkinkan Anda menentukan nama alternatif untuk file ini.

Jika Anda ingin rtfm.landitangani saat 192.168.1.2itu tambahkan baris bacaan 192.168.1.2 rtfm.lanke /etc/hosts. Biasanya, file host Anda untuk dnsmasq harus portabel untuk semua server Anda.

Pada rtfm.lantumpukan IP akan terjadi hubungan arus pendek pada rute dan tidak mengirim lalu lintas ke jaringan.

Jika Anda memperbarui /etc/hostsfile dan memberi sinyal dnsmasqdengan HUPsinyal, file host akan dibaca ulang dan perubahan diterapkan.

EDIT: dnsmasq tidak dirancang untuk menyajikan alamat host dinamis untuk hostnya sendiri. Sebagaimana dicatat, ia memang melayani nama dari file sewaannya untuk klien DHCP.

Jika host Anda adalah gateway Internet, biasanya ia melayani alamat statis lokal. Melayani alamat gateway Internet dapat menyebabkan masalah perutean dan firewall.

Anda dapat mengonfigurasi klien DHCP Anda untuk menulis file host satu baris. Opsi dnsmasq addn-hostdapat digunakan untuk membuat dnsmasq membaca file ini sebagai tambahan /etc/hosts. Jika alamat cenderung berubah, maka klien DHCP dapat menulis ulang file dan mengirim HUPsinyal dnsmasq pada perubahan alamat IP.


Jadi .. tidak ada cara untuk membuat dnsmasq menggunakan IP saat ini yang diambil dari antarmuka?
kolypto

Bukan secara default, tetapi Anda bisa meminta klien DHCP Anda untuk menyediakan data yang diperlukan. Saya tidak yakin mengapa Anda melayani alamat dinamis untuk host dari dnsmasq.
BillThor

4

dnsmasq dapat menyelesaikan nama hostnya sendiri dengan menonaktifkan membaca dari / etc / hosts dan mengkonfigurasi file konfigurasi lain untuk membaca nama host termasuk dirinya sendiri.

konfigurasi dnsmasq (/etc/dnsmaq.conf):

no-hosts
addn-hosts=/etc/dnsmasq_hosts

Di / etc / dnsmasq_hosts, konfigurasikan titik hostname sendiri ke alamat ip yang dibutuhkan (juga nama host lainnya di lan lokal).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.