web-dev-qa-db-ja.com

/ etc / hostsファイルを手動で変更せずにdnsmasq

私はdnsmasqをdnsとdhcpサーバーの組み合わせとして機能させようとしています。これまでのところ腹立たしいです...要するに、DNSは/ etc/hostsに追加されたものすべてに対して正常に機能し、dhcpは正常に機能しますが、dhcpはクライアントからのホスト名情報でdnsを更新していません。

この結果、アドレスがわかっている場合にのみホスト名でノードにpingを実行できます。つまり、静的dhcp割り当てを設定し、ホスト名を/ etc/hostsに手動で配置します。これは非常に煩わしく、dhcpのポイントを打ち負かします。 。確かに、dnsmasqにhostsファイルを更新させる方法が必要です。

それが重要な場合、クライアントはfqdnを使用していません。私は、「expand-hosts」と「domain = "」のすべての組み合わせを試したと思います。

以下は、dnsmasq構成ファイルの内容です。

 domain-needed 
 bogus-priv 
 except-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-authoritative 
 
 log-queries 
 log- dhcp 
5
Sirex

domain example.orgでドメインを設定してみてください。

dnsmasqには、スクリプトdhcp-script=foo.shを呼び出すためのフックもあります。スクリプトに送信される引数は、「add」または「del」、次にMACアドレス、IPアドレス、最後にホスト名です。

ホストファイルを更新するスクリプトをすばやく作成するのは比較的簡単です。

2
Zoredache

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