dnsmasq
が実行されているサーバーのローカルIPアドレスにmyserver.local.example.com
を解決するための単純なDNSとしてdnsmasq
を実行しています。それ以外はすべてパブリックDNSに転送されます。
サーバーのIPアドレスが192.168.1.12であるとすると、私のコマンドは次のようになります。
dnsmasq --no-hosts --no-resolv --localise-queries \
--server=1.1.1.1 --server=8.8.8.8 --server=8.8.4.4 \
--Host-record=myserver,myserver.local.example.com,192.168.1.12
複数のネットワークインターフェイスが接続されている場合は、IPアドレスごとに1つずつ、複数の--Host-record
エントリを設定します。
dnsmasq --no-hosts --no-resolv --localise-queries \
--server=1.1.1.1 --server=8.8.8.8 --server=8.8.4.4 \
--Host-record=myserver,myserver.local.example.com,192.168.1.12 \
--Host-record=myserver,myserver.local.example.com,192.168.99.57
これは期待どおりに機能します。ホスト名は、構成したIPアドレスに解決されます。ただし、これを改善する方法について2つの質問があります。
ifconfig
出力からIPアドレスを解析してdnsmasq
に渡すbashスクリプトを使用していますが、これは面倒なようです。dnsmasq
はすでに開始されているので、手動でdnsmasq
を再起動する必要があります。前の質問のコンテキストでは、dnsmasq
がそれを自動的に検出し、手動で再起動せずに更新できることが望ましいでしょう。何か考えや提案はありますか?それとも、dnsmasq
の代わりに、私に適したものがあるのでしょうか。
あなたが使用することができます
--interface-name=<name>,<interface>
例えば
--interface-name=myserver.local.example.com,enp2s0
詳細については、 http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html を参照してください。
デフォルトの構成では、DnsmasqはインターフェースリンクとIPアドレスのイベントを確認でき、インターフェースがダウンおよびアップしたときに「インターフェース」DNS名を公開するために再起動する必要はありません。