Dnsmasq

Dnsmasq 在整個網路上將本地主機名解析為 127.0.0.1

  • March 19, 2015

我的 dnsmasq 已配置:

  • 在主機“rtfm.lan”上
  • Domain ’lan'
  • 有一些 DHCP 預設包含主機名

所有通過 DHCP 註冊的“*.lan”主機都可以正常解析:dnsmasq 知道哪些 IP 分配給了哪些主機名。但是,從 /etc/hosts 讀取“rtfm.lan”並解析為 127.0.0.1。

我可以阻止 dnsmasq 讀取 /etc/hosts 並手動添加地址:

no-hosts
address=/rtfm.lan/192.168.1.2

但這並不靈活:如果有一天我決定更改我的 IP — 我還必須在 dnsmasq.conf 中更改它。

如何告訴 dnsmasq 使用本地主機名及其真實 IP?


以防萬一..這是我的 DNSmasq 配置:

# 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

通常,您會在文件中定義靜態主機/etc/hosts並啟用。 允許您為此文件指定一個備用名稱。hosts``dnsmasq.conf``dnsmasq

如果你想rtfm.lan被定址,192.168.1.2那麼添加一行閱讀192.168.1.2 rtfm.lan/etc/hosts. 通常,您的 dnsmasq 主機文件應該可以移植到您的所有伺服器。

rtfm.lanIP 堆棧上將短路路由並且不會將流量發送到網路上。

如果您使用信號更新文件/etc/hosts和信號,則將重新讀取主機文件並應用更改。dnsmasq``HUP

編輯:dnsmasq 並非旨在為其自己的主機提供動態主機地址。如前所述,它確實從其租用文件中為 DHCP 客戶端提供名稱。

如果您的主機是 Internet 網關,它通常會提供本地靜態地址。提供 Internet 網關地址可能會導致路由和防火牆問題。

您可以將 DHCP 客戶端配置為編寫一個單行主機文件。除了. addn-host_ /etc/hosts如果地址可能改變,那麼 DHCP 客戶端可以重寫文件並向 dnsmasqHUP發送關於 IP 地址改變的信號。

引用自:https://serverfault.com/questions/250524