イーサネットLAN上のホストに10.0.0。*アドレスを提供するようにdnsmasqを構成しました。このネットワーク上のホストは、10.0.0.1で実行されているdnsmasqサーバーからDHCPを使用して静的IPアドレスを要求します。彼らはまた、インターネットにアクセスするためにルーターへのwifiアクセスを持っています。例えば。 10.0.0.2のホストでは、/etc/dhcpcd.conf
に次のエントリがあります。
### Wifi-router
interface wlan0
static ip_address=192.168.1.202
static routers=192.168.1.1
### Ethernet Switch
interface eth0
static ip_address=10.0.0.2
static domain_name_servers=10.0.0.1 ### Where dnsmasq runs
ここで、dnsmasqがこれらのホストのDNSサーバーとして自動的に機能し、名前で相互に通信できるようにします。例えば。 10.0.0.2のホストにホスト名 'node2'がある場合、このネットワーク内の任意のホストから10.0.0.2にsshすることができます。 ssh user@node2
。
私の質問は、各ホストの名前をキャッシュするようにdnsmasqを構成するにはどうすればよいですか自動的に? dnsmasqが実行されているマシンの/etc/hosts
にエントリを追加し、expand-hosts
の/etc/dnsmasq.conf
オプションを適用できることは知っていますが、そのような追加リストを維持したくありません-私は ' d個々のホストにホスト名を設定し、それを名前の付け方のSSOTにすることをお勧めします。どうすれば設定できますか?
これが私の/etc/dnsmasq.conf
ファイルです。
interface=eth0
listen-address=127.0.0.1
dhcp-range=10.0.0.0,10.0.0.10,12h
bind-interfaces
domain-needed
bogus-priv
expand-hosts
### Upstream DNS servers
server=8.8.8.8
server=8.8.4.4
問題は、クライアントで静的アドレスを指定していることです。 man 5 dhcpcd.conf
から:
Configures a static value. If you set ip_address then dhcpcd
will not attempt to obtain a lease and will just use the value
for the address with an infinite lease time.
したがって、dnsmasqはDHCPREQUEST
を受け取ることはなく、クライアントの存在を認識することもありません。
ここには2つのオプションがあります。
DHCPサーバーから固定アドレスを割り当てます。 dnsmasqを使用すると、MACアドレス、クライアントID、またはその他のカスタムタグを照合できます。通常はMACアドレスが使用されます。次のような行を追加します。
dhcp-Host=00:53:00:11:22:33:10.0.0.2
クライアント側で静的アドレスを削除します。
または、代わりにdhcpcd request
またはinform
オプションを使用します。
request [address]
Request the address in the DHCP DISCOVER message. There is no
guarantee this is the address the DHCP server will actually give.
If no address is given then the first address currently assigned
to the interface is used.
inform [address[/cidr[/broadcast_address]]]
Behaves like request as above, but sends a DHCP INFORM instead of
DISCOVER/REQUEST. This does not get a lease as such, just
notifies the DHCP server of the address in use. You should also
include the optional cidr network number in case the address is
not already configured on the interface. dhcpcd remains running
and pretends it has an infinite lease. dhcpcd will not de-
configure the interface when it exits. If dhcpcd fails to
contact a DHCP server then it returns a failure instead of
falling back on IPv4LL.
衝突の可能性を最小限に抑えるため、通常はサーバーから静的アドレスを割り当てることをお勧めします。単に優先アドレスがあり、それがすでに使用されていても変更してもかまわない場合は、クライアントからrequest
を使用しても問題ない可能性があります。 inform
は衝突の危険性があるため、一般的に危険であると見なされるべきです。