Bind9 IP アップデート

Bind9 IP アップデート

私は 2 つの DNS サーバー (BIND9) (プライマリ、セカンダリ) と 1 つのドメインを持っています。動的 IP を持つ Web サーバーがあります。そのため、IP が変更されると、DNS サーバーでドメイン ゾーン IP cot が変更されるため、ドメイン経由でサイトにアクセスできなくなります。

質問は、パブリック IP アドレスを使用して、サーバーから x 回ごとにゾーンを更新するにはどうすればよいかということです。Linux (Debian 9) 用のアップデータ スクリプトを提供してくれる人はいますか?

ありがとう

答え1

nsupdateツールをスクリプト化するか、互換性のあるサードパーティ クライアントを使用することによって、RFC 2136「DNS UPDATE」を使用できます。

共有秘密鍵 (TSIG)

  1. 更新を認証するための秘密キーを生成します。

    $ tsig-keygen -r /dev/urandom | tee tsig-key.private
    key "tsig-key" {
        algorithm hmac-sha256;
        secret "7P6HbRZRJCmtauo/lV0jwN9wkMgBTUikhf9JuaTvYT4=";
    };
    

    このキーはサーバーとクライアントのみが知っており、他の誰にも知られません。

  2. 印刷されたテキストを にコピーしますnamed.conf。(異なるホストに対して複数のキーを持つことができ、各キーにはフィールドに一意の名前を付けることができますkey "…"。)

  3. ゾーン構成で動的更新を有効にします。

    zone … {
        update-policy {
            /* grant <key_name> <policy> <record_types> */
            grant "tsig-key" name myserver.example.com ANY;
        };
    };
    

    様々な異なるポリシーを使用できます。例えばzonesub全体ゾーンであり、subdomain dyn.example.com明らかな意味を持っています。

  4. 更新を実行します。

    $ nsupdate -k tsig-key.private
    > zone example.com
    > del myserver.example.com
    > add myserver.example.com 3600 A 100.64.1.1
    > send
    

自動更新が可能なさまざまなクライアントがあります。

公開鍵/秘密鍵 (SIG(0))

  1. キーペアを生成します:

    $ dnssec-keygen -r /dev/urandom -T KEY -n USER myclient.example.com
    $ ls K*
    Kmyclient.example.com.+005+07399.key
    Kmyclient.example.com.+005+07399.private
    
  2. ファイル*.keyには公開キーが含まれているので、それを DNS ゾーンに追加します。

    ファイル*.privateには秘密鍵が含まれているので、それをクライアントコンピュータにコピーします。(実際には、両方ファイルをクライアント コンピュータに送信します。

  3. update-policy { }TSIG とまったく同じ方法で設定します。

  4. 更新も同様に を使って実行しますnsupdate -k <filename>.private

(注:TSIGキー名は任意ですが、SIG(0)キーはDNSに保存されるため、常にホスト名/サブドメインのような名前が付けられます。キー名はではないただし、更新するホスト名と一致する必要があります。

ケルベロス (GSS-TSIG)

少し範囲外ですが、BIND9 もこれをサポートしています (主に Active Directory での使用)。

関連情報