みなさん、こんにちは。技術系の記事を担当しています瀬口です。
今回は、EasyBlocks DHCPシリーズおよびEasyBlocks DDNシリーズに搭載されている「DDNS(動的DNS更新)機能」について、設定方法および活用方法についてご紹介します。
DHCP、DNSサーバーをどちらも運用していると、

DHCPによるIPアドレスの変更にあわせて、DNSレコードを手動で更新するのは大変…

固定のホスト名から機器にアクセスできるようにしたい…
といったお悩みをいただくことがあります。
DDNS機能を利用すると、DHCPによるIPアドレスの払い出し・解放にあわせて、DNSサーバーのレコードを自動的に登録・更新できます。そのため、DHCPによってIPアドレスが変動する環境でも、固定のホスト名を使用して機器へアクセスできます。
本記事では、DDNSの仕組みから設定方法、実際の動作確認までご紹介します。
はじめに
DHCPサーバーでは、クライアントの接続状況に応じてIPアドレスを動的に払い出すため、同じ端末であってもタイミングによって異なるIPアドレスが割り当てられることがあります。
このとき、DNSレコードを手動で更新する運用では、更新漏れによって古いIPアドレスが登録されたままになる可能性があります。
こうしたIPアドレスの変動にDNSレコードを追従させる仕組みが、
今回ご紹介するDDNS(Dynamic DNS:動的DNS更新)機能です。
EasyBlocks DDNシリーズでは、DHCPサーバー機能とDNSサーバー機能のそれぞれにDDNSに関する設定項目が用意されており、DHCPによるIPアドレスの払い出し・解放にあわせて、DNSサーバーのレコードを自動的に更新できます。
EasyBlocks DHCPシリーズでは、DHCPサーバー機能のみを搭載していますが、DDNS機能に対応しており、別途用意したDNSサーバーのレコードを自動的に更新できます。
なお、DDNS機能は以下のバージョンからそれぞれ対応しています。
EasyBlocks DDNシリーズ:ver.1.1.2以上
EasyBlocks DHCPシリーズ:ver.1.2.3以上
DDNS機能について
今回ご紹介するDDNSは、自宅回線などで利用される「変動するグローバルIPアドレスにドメイン名を追従させるサービス」とは異なり、RFC2136で定義されたDNSレコードの動的更新を利用した仕組みです。

具体的には、DHCPサーバーがDHCPクライアントへIPアドレスを払い出した際などに、DNSサーバーへ更新リクエストを送信し、DNSサーバー側のゾーン情報を自動的に更新します。
役割分担は次のとおりです。
- DHCPサーバー:IPアドレスの払い出し・解放にあわせて、DNSサーバーへ更新リクエストを送信
- DNSサーバー:DHCPサーバーやDDNSクライアントからのリクエストを受け、ゾーン情報を更新
DHCPサーバーとDNSサーバーが別々の機器で構成されている場合だけでなく、EasyBlocks DDNシリーズのように両サービスを1台で提供する環境でも利用できます。
なお、DDNS機能を利用するには、DHCPサーバー側とDNSサーバー側の設定がそれぞれ必要です。
DNSサーバー側の設定方法
まずは、更新リクエストを受け取るDNSサーバー側の設定です。
主に「基本」タブと「ゾーン」タブで設定を行います。
ゾーンタブ:DDNS設定
対象ゾーンの作成・編集画面で、DDNS機能を設定します。
①ゾーンのタイプを「プライマリ」に設定すると「DDNS設定」が表示されますので、「使用する」に選択します。すると、DDNSアクセス制御が表示されます。

②表示されたDDNSアクセス制御では、DDNSの更新リクエストを許可する接続元を指定します。
指定のみの場合、③指定対象の記入欄が表示されますので、IPアドレス/ネットワーク/ACL/TSIG鍵を「;」区切りで指定できます。
※指定対象にTSIG鍵を指定する場合、key “<TSIG鍵管理名>”として指定してください。
また、DDNSによるレコード更新時には、SOAレコードを問い合わせる場合があります。そのため、DDNSアクセス制御だけでなく通常のクエリー送信元でも、DDNS更新を行うクライアントを許可する必要があります。
基本タブ:DDNS用TSIG鍵設定
DDNS更新にTSIG鍵による認証を使用する場合は、「基本」タブの「DDNS用TSIG鍵設定」からTSIG鍵を設定します。

④ TSIG鍵管理名:TSIG鍵の管理名を指定します。また、管理名はDDNSクライアントと同一にする必要があります。
※内部ACL(any / localhost / localnets / none)及び予約語は使用できません。
⑤ TSIG鍵アルゴリズム:TSIG鍵のアルゴリズムを以下から選択します。
(hmac-md5 / hmac-sha1 / hmac-sha256 / hmac-sha512)
⑥ TSIG鍵シークレット:TSIG鍵のシークレット情報を登録します。[生成]ボタンを押すことで新規に生成されます。
設定したTSIG鍵は一覧で表示されます。

ここで設定した「TSIG鍵管理名・アルゴリズム・シークレット」は、後述するDHCPサーバー側の設定でも使用します。
なお、TSIG鍵は必須ではありませんが、DDNSの更新リクエストを送りつけられるだけで誰でもレコードを書き換えられてしまうと困るケースでは、認証の仕組みとしてあわせて設定しておくと安心です。
これでDNSサーバー側の設定は完了です。
DHCPサーバー側の設定方法
続いて、DHCPサーバー側を設定します。
主に「基本」タブと「サブネット」タブで設定を行います。
基本タブ:DDNS使用設定
DDNS機能を利用する際には、①「基本」タブの「DDNS使用設定」を有効にします。

「DDNS使用設定」を有効にすると、後述する「DDNS TSIG鍵登録」および「DDNS ドメイン/ゾーン登録」が表示されます。
基本タブ:DDNS TSIG鍵登録
DNSサーバー側でTSIG鍵を設定した場合、「基本」タブの「DDNS用TSIG鍵登録」にも同じ内容を登録します。

② TSIG鍵管理名:TSIG鍵の管理名を指定します。また、管理名はDNSサーバーと同一にする必要があります。
③ TSIG鍵アルゴリズム:TSIG鍵のアルゴリズムを以下から選択します。
(hmac-md5 / hmac-sha1 / hmac-sha256 / hmac-sha512)
④ TSIG鍵シークレット:TSIG鍵のシークレット情報を登録します。DNSサーバー側で発行されたTSIG鍵の内容を登録します。
登録したTSIG鍵は一覧で表示されます。

基本タブ:DDNS ドメイン/ゾーン登録
DDNSの更新対象となるドメイン/ゾーンと、更新先となるDNSサーバーを登録します。

⑤ ドメイン/ゾーン名:DDNS更新の対象とするドメインまたはゾーン名を指定します。
⑥ DDNS更新サーバ:更新対象とするDNSサーバーのIPアドレスを指定します。
⑦ 使用TSIG鍵:「なし(TSIG鍵未使用)」または、DDNS TSIG鍵登録で登録したTSIG鍵から選択します。
登録したDDNS ドメイン/ゾーンは一覧で表示されます。

ここで登録したドメイン/ゾーンは、後述するサブネット設定で「更新対象ドメイン」として選択できます。
サブネットタブ:DDNS登録対象
「DDNS使用設定」を有効にすると、「サブネット」タブに「DDNS登録対象」が表示されます。
DDNSを使用するサブネットごとに設定します。

⑧ DDNS登録対象:対象サブネットでDDNS機能を使う場合は有効、使わない場合は無効にします。
⑨ DDNS登録方式:「正引きのみ」または「正引き/逆引き」から選択します。※後述の注意点あり
⑩ 更新対象ドメイン:「基本」タブで登録したドメイン/ゾーンの中から、更新対象を選択します。
⑪ DDNSホスト名規則設定:DDNS登録を行う際のホスト名として設定する規則を以下から選択します。
・<ホスト名またはプレフィックス+IPアドレス>:DHCPリクエスト時のホスト名が優先してDDNS登録されます。
・<プレフィックス+IPアドレス>:後述で設定したプレフィックス+払い出しIPアドレスにてDDNS登録されます。
⑫ 自動設定プレフィックス:上記のホスト名規則で使用するプレフィックス文字列を指定します。
※DDNS登録方式の注意点
EasyBlocks DDNシリーズ ver.1.1.3以降では「DDNS登録方式」による逆引きの制御は行われません。逆引きが更新されるかどうかは、更新先となる逆引きゾーンが「DDNS ドメイン/ゾーン登録」に登録されているかどうかで決まります。該当するゾーンが登録されていない場合、逆引きの登録・更新は行われません。
以上の設定を保存すると、DHCPサーバーによるIPアドレスの払い出し・解放にあわせて、指定したドメイン/ゾーンへDDNS更新リクエストが送信されます。
これでDHCPサーバー側の設定は完了です。
実施例
ここからは、EasyBlocks DDN1のDDNS機能を使用し、OpenBlocks IX9のFQDNとIPアドレスをDNSレコードへ自動登録・更新する例をご紹介します。
以下の設定は、あらかじめ完了しているものとします。
- DNSサーバー:DDNS使用設定、DDNS用TSIG鍵設定
- DHCPサーバー:DDNS使用設定、DDNS TSIG鍵登録、DDNS ドメイン/ゾーン登録
OpenBlocks IX9(DHCPクライアント)のFQDNは[obsix9.test.org]、DHCPで使用するネットワークは[192.168.10.0/24]とします。
その後、DNSクライアントとして使用するLinuxサーバーからdigコマンドを使用し、DNSサーバーでもあるEasyBlocks DDN1(192.168.10.5)を指定して、[obsix9.test.org]から正常に名前解決できているかを確認します。

自動登録
まずは、DHCPでIPアドレスを払い出した際に、DNSレコードが自動登録されることを確認します。
DHCPサーバーの「サブネット」タブでDDNS登録対象の各項目を設定し、①IPアドレスの払い出し範囲は、[192.168.10.90~192.168.10.99]で設定します。

設定後、DHCPサービスを再起動して設定を反映します。
②OpenBlocks IX9および③EasyBlocks DDN1のホスト管理画面から、払い出されたIPアドレスを確認します。


続いて、EasyBlocks DDN1の「レコード」タブより、DNSレコードを確認しますと、
④obsix9.test.orgのレコードに払い出された[192.168.10.90]が登録されていることが確認できます。
また、⑤登録時にはDHCID(DHCP Client Identifier)も登録されます。

登録したレコードが名前解決できるか、「dig @192.168.10.5 obsix9.test.org.」コマンドで確認します。

⑥「obsix9.test.org」の名前解決結果として192.168.10.90が応答されているため、DNSレコードが正常に登録されていることを確認できます。
自動更新
続いて、IPアドレスが変更された際にDNSレコードが自動更新されることを確認します。
テストのため、①IPアドレスの払い出し範囲を[192.168.10.70~192.168.10.79]に変更します。

設定後、DHCPサービスを再起動して設定を反映します。
②OpenBlocks IX9および③EasyBlocks DDN1のホスト管理画面から、変更後のIPアドレスを確認します。


④DNSレコードを確認すると、IPアドレス[192.168.10.70]が更新されています。

その後、登録時と同様に「dig @192.168.10.5 obsix9.test.org.」コマンドで名前解決を確認します。

⑤「obsix9.test.org」の名前解決結果として、変更後の192.168.10.70が応答されているため、DNSレコードが正常に更新されていることを確認できます。
活用方法
DDNS機能を利用することで、次のような環境でDNSレコードの管理負担を軽減できます。
- 端末が多く、IPアドレスの変更が頻繁な環境
オフィスや工場など、多数の端末がDHCPを利用する環境でも、IPアドレスの変更にあわせてDNSコートが自動更新されるため、管理者がレコードを都度メンテナンスする必要がなくなります。 - ホスト名を使用した監視・運用
IPアドレスではなくホスト名で機器を管理・監視したい場合にも有効です。
例えば、弊社のEasyBlocks 監視と組み合わせることで、IPアドレスが変わる環境でもホスト名(FQDN)を利用した死活監視を維持しやすくなります。 - 社内向けサービスへのアクセス
社内システムやファイルサーバーなどをホスト名で利用しておけば、DHCPによってIPアドレスが変更されても、利用者は同じホスト名のままアクセスを継続できます。
EasyBlocks DDNシリーズであれば、DHCPサーバーとDNSサーバーを1台で提供でき、同じWeb UIからそれぞれの設定を行えるため、DHCP・DNSの連携をシンプルに構築できます。
まとめ
今回は、EasyBlocks DDNシリーズおよびDHCPシリーズに搭載されているDDNS機能について、仕組みから設定方法、実施例までご紹介しました。
要点をまとめると、以下のとおりです。
- DDNS機能により、DHCPサーバーによるIPアドレスの払い出し・解放にあわせて、
DNSサーバーのレコードを自動更新できる。 - DHCPサーバー側では、DDNS使用設定・TSIG鍵・更新対象のドメイン/ゾーン・サブネットごとのDDNS登録対象を設定する。
- DNSサーバー側では、DDNS使用設定とアクセス制御、必要に応じてTSIG鍵を設定する。
- IPアドレスの変動が多い環境や、ホスト名を利用した運用・監視に適している。
DHCP・DNSサーバーを連携させた運用や、DDNS機能の設定についてご不明な点がございましたら、お気軽にお問い合わせください。
▼ 今回ご紹介した機能に対応している製品はコチラ ▼


