Dnsmasqはローカルホスト名をネット全体で127.0.0.1に解決します


8

私のdnsmasqが構成されています:

  • ホスト 'rtfm.lan'
  • ドメイン「lan」
  • ホスト名を含むDHCPプリセットがいくつかあります

DHCP経由で登録されたすべての「* .lan」ホストは問題なく解決します。dnsmasqは、どのIPがどのホスト名に割り当てられているかを認識しています。ただし、「rtfm.lan」は/ etc / hostsから読み取られ、127.0.0.1に解決されます。

dnsmasqが/ etc / hostsを読み取らないようにして、アドレスを手動で追加できます。

no-hosts
address=/rtfm.lan/192.168.1.2

しかし、これには柔軟性がありません。ある日、自分のIPを変更する場合は、dnsmasq.confでも変更する必要があります。

実際のIPでlocal-hostnameを使用するようにdnsmasqに指示するにはどうすればよいですか?


念のために..これが私の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

回答:


10

通常、静的ホストを定義してファイルで/etc/hosts有効にhostsしますdnsmasq.confdnsmasqこのファイルの代替名を指定できます。

次のrtfm.lanように対処したい場合は192.168.1.2、行の読み取り192.168.1.2 rtfm.lanをに追加してください/etc/hosts。通常、dnsmasqのhostsファイルは、すべてのサーバーに移植可能でなければなりません。

オン rtfm.lan IPスタックショートネットワークにトラフィックを送信してルーティングしません。

/etc/hostsファイルを更新dnsmasqして、HUPシグナルで送信すると、hostsファイルが再度読み取られ、変更が適用されます。

編集:dnsmasqは、自身のホストの動的ホストアドレスを提供するようには設計されていません。前述のとおり、DHCPクライアントのリースファイルから名前を提供します。

ホストがインターネットゲートウェイの場合、通常はローカルの静的アドレスを提供します。インターネットゲートウェイアドレスを提供すると、ルーティングとファイアウォールの問題が発生する可能性があります。

1行のhostsファイルを書き込むようにDHCPクライアントを構成できます。dnsmasqオプションaddn-hostを使用して、dnsmasqにに加えてこのファイルを読み取らせることができます/etc/hosts。アドレスが変更される可能性が高い場合、DHCPクライアントはファイルを書き換え、HUPIPアドレスの変更時にdnsmasqに信号を送信できます。


それで、dnsmasqにインターフェースからフェッチされた現在のIPを使用させる方法はありませんか?
kolypto

デフォルトではありませんが、DHCPクライアントに必要なデータを提供させることができます。dnsmasqからホストの動的アドレスを提供する理由がわかりません。
BillThor 2011年

4

dnsmasqは、/ etc / hostsからの読み取りを無効にし、それ自体を含むホスト名を読み取るための別の構成ファイルを構成することにより、独自のホスト名を解決できます。

dnsmasq構成(/etc/dnsmaq.conf):

no-hosts
addn-hosts=/etc/dnsmasq_hosts

/ etc / dnsmasq_hostsで、必要なIPアドレス(およびローカルLANの他のホスト名)を指す独自のホスト名を構成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.