Dynamic DNS

By siteadministrator, 1 8月, 2020

PowerDNSとISC-KEAでDDNSを実装する。

PowerDNSとISC-KEAは既にセットアップ済とする。

ダイナミックDNSでDNS情報を動的に変更する際、DNSサーバー同士を認証するために使われる通信プロトコルであるTSIGを利用する。

TSIG nykel の助けを借りてゾーン転送を保護する。

マスタ サーバーで TSIG キーを生成

pdnsutil generate-tsig-key tsig-transfer hmac-sha512

次に、セキュリティを確保するゾーンで nykel を有効にする。

pdnsutil activate-tsig-key example.com tsig-transfer master

スレーブにコピーできるように TSIG nykeln をリストする。

pdnsutil list-tsig-keys

スレーブにキーをインポートします。

pdnsutil import-tsig-key tsig-transfer hmac-sha512 'キーの値'

次に、マスターと同じゾーンでTSIG nykel ninをアクティブにする。

pdnsutil activate-tsig-key example.com tsig-transfer slave

※キーがマスターとスレーブの両方に同じ名前が必須

Dnssec

DNSSEC は、受信した応答が正しいソースから来て、途中で改ざんされていないことを確認できるように、暗号キーを使用して DNS ルックアップに署名する機能

DNSSEC を有効

pdnsutil secure-zone ZONE

DNSSEC を無効

pdnsutil disable-dnssec ZONE

次のコマンドを実行して DS レコードを表示する。

pdnsutil show-zone ZONE

ZONEはゾーン名(例:example.com)

 

ダイナミック DNS

更新をより安全にするために使用される TSIG nykel を生成する。

pdnsutil generate-tsig-key ddns_update hmac-md5

更新するドメインで、nykelを有効にする。

pdnsutil set-meta example.com TSIG-ALLOW-DNSUPDATE ddns_update

特定のネットワークのみがゾーンの更新を許可する。

pdnsutil set-meta example.com ALLOW-DNSUPDATE-FROM 192.168.1.0/24
pdnsutil set-meta example.com ALLOW-DNSUPDATE-FROM 10.100.0.0/24

本来、これで設定できるはずだが、ALLOW-DNSUPDATE-FROMのレコードは1つしか持てない。ドキュメントだと複数持てるはずなのでが・・・・。で、2レコード以降は、SQLでインサートする。

insert into domainmetadata (domain_id, kind, content) values (ドメインのID,'ALLOW-DNSUPDATE-FROM','2001:db8:53::1');

マスターが各更新時にスレーブに通知を送信することを確認します。それ以外の場合は、スレーブ自身がマスターに尋ねるまで待つ必要がある。

pdnsutil set-meta example.com NOTIFY-DNSUPDATE 1

PowerDNSコンフィグファイルに追記する。

vi /etc/powerdns/pdns.conf

dnsupdate=yes

PowerDNS を再起動して、動作を確認

nsupdate <<!
server <ip> <port>
zone example.com
update add ddnstest.example.com 3600 A 10.13.37.1
key ddns_update キー
send
!

ISC-KEAの設定

kea-dhcp4、kea-dhcp6、kea-ctrl-agentの設定は終了しているとする。kea-dhcp-ddnsの設定のみを記載する。

 

 

 

 

タグ

コメント