動作しているDNS + DHCPサーバーがあります。クライアントがdhcpdサーバーからIPを受信すると、ホスト名をdhcpd + dnsサーバーに送信して正常に動作します。しかし、一つの問題があります。 nagios1.myzone.comというクライアントを何らかの理由で削除し、名前は同じですが、Linuxディストリビューションが異なり、もちろん、異なるDHCID(dhcpクライアントID)クライアントを持つ別のクライアントに置き換えたとします。 dns+dhcp サーバーは次のエラーを返します。
client @0x6g12280f2z00 192.168.0.4#48193/key dhcp.myzone.com: updating zone 'myzone.com/IN': update unsuccessful: nagios1.myzone.com: 'name not in use' prerequisite not satisfied (YXDOMAIN)
Nov 26 20:38:11 dns1 named[1541]: client @0x6g12280f2z00 192.168.0.4#37309/key dhcp.myzone.com: updating zone '.myzone.com/IN': update unsuccessful: nagios1..myzone.com/TXT: 'RRset exists (value dependent)' prerequisite not satisfied (NXRRSET)
Nov 26 20:38:11 dns1 dhcpd[1548]: Forward map from nagios1..myzone.com to 192.168.0.110 FAILED: Has an address record but no DHCID, not mine.
回避策があります。次の行を含むTXTレコードを削除してください。
vim file.txt
zone myzone.com.
server dns1.myzone.com
update del nagios1.myzone.com. 600 IN A 192.168.0.110
send
zone myzone.com.
server dns1.myzone.com
update del nagios1.myzone.com. 600 IN TXT "3147358c8b5523979cfecd8d67f26b6678"
send
zone 0.168.192.in-addr.arpa.
server dns1.myzone.com.
update del 110.0.168.192.in-addr.arpa. 600 IN PTR nagios1.myzone.com.
send
次に、nsupdate file.txt コマンドを使用します。
私の質問は:DHCID / TXTレコードの動的更新を強制的に生成または生成できますか?この設定を使用してDNSを構成しました
zone "myzone.com." IN {
type master;
file "/var/named/data/myzone.zone";
update-policy {
grant dhcp.myzone.com. wildcard * A TXT SRV CNAME MX DHCID;
};
動的更新は、テストされたすべてのAおよびPTRに対して機能します。 TXT/DHCIDには適用されないのはなぜですか?
答え1
DHCIDレコードは、現在同じ名前の動的に更新された他のDNSレコードを保持しているクライアントを識別するスキームの一部です。RFC 4701。
TXTレコードは、同じ目的で使用される以前のスキームです。 ISC をdhcpd
DHCP サーバーとして使用して設定されている場合、ddns-update-style standard;
DHCID レコードが使用されます。これを設定すると、ddns-update-style interim;
TXT レコードが使用されます。
DHCP クライアントが DHCID/TXT レコードに関係なく、現在所有している IP アドレスの DNS レコードを常に上書きできるようにするには、次のように構成する必要があります。DHCPサーバーupdate-conflict-detection off;
(またはISC以外のDHCPサーバーと同等のもの)を使用してくださいdhcpd
。これにより、他のクライアントIDレコードがあっても古いレコードのみが削除され、新しいレコードが作成されます。
DHCPサーバー(および管理者)のみがDDNS更新を実行することを許可されている場合は、これを許可できます。クライアントが自分のDDNSアップデートをDNSサーバーに直接送信できる場合は、競合検出を無効にすると、DNSサーバーが許可するアップデートの種類に応じて、悪意のあるクライアントがゾーンまたは重要なサーバー上の他のクライアントを偽装する可能性があります。