BLOGTIMES
2015/09/11

さくらのクラウドDNSでダイナミック DNS を構築する

  sakura  dns  integration 
このエントリーをはてなブックマークに追加

さくらのクラウドに「クラウドDNS」サービスが追加されました*1*2

現在はベータ版なので、月末までは無料で試用できます。さくらのクラウドの各種サービスは API から設定が可能*3なので、昔作ったRoute53 を使ったダイナミック DNS のさくらのクラウド版を構築してみることにしました。要領は昔作った SCHotBackup(さくらのクラウド API を使って日次でアーカイブをとるスクリプトを書いてみた)の時とほぼ同じです。

準備

まず、さくらのクラウド DNS で DDNS として運用するゾーンを作成し、リソース ID を取得しておきます。

このゾーンは現在のスクリプトの制限により DDNS 専用となります(他のレコードを作っても消えてしまいます)ので注意してください一応ですが他のレコードとの混在に対応してみました。また、API 用のトークンとシークレットについては「コマンドライン操作ツール「sacloud CLI」とNode.js用モジュールを公開しました | さくらのクラウドニュース」を参考に取得しておいてください。

クラウドDNS - さくらのクラウドDNSでダイナミック DNS を構築する

実装

突貫で作ったものなので、ある程度 DNS の知識がある人向け用です。
今回も実装はシェルスクリプトです。コードは GitHub の hsur/SCDdns に置いてあります。

lastip.txt

現在の IP アドレスが格納されるファイルです。chmod 644 などとして、ユーザーの書き込み権限を与えておいてください。

config.json

token, secret, resource_id, hostname にはそれぞれ、API トークン, API トークンシークレット, クラウドDNS のリソース ID, ホスト名を設定します。
作成したゾーンのゾーン名が ddns.example.com で、ホスト名が abc の場合、FQDN は abc.ddns.example となります。

scddns.sh

設定が完了したら以下のシェルスクリプトを実行すると、起動したホストのグローバル IP がさくらのクラウドDNS に登録されます。
IP が替わっていなければ API を叩かないようになっているので、cron で10分おきにでも起動すれば良いでしょう。


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7889
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン