web-dev-qa-db-ja.com

dnsmasqを取得して、DNS上のDHCPネットワークにホスト名を自動的に登録します

イーサネット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
1
Magnus

問題は、クライアントで静的アドレスを指定していることです。 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は衝突の危険性があるため、一般的に危険であると見なされるべきです。

1
Bob