- blogs:
- cles::blog

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



さくらのクラウドに「クラウドDNS」サービスが追加されました*1*2。
現在はベータ版なので、月末までは無料で試用できます。さくらのクラウドの各種サービスは API から設定が可能*3なので、昔作ったRoute53 を使ったダイナミック DNS のさくらのクラウド版を構築してみることにしました。要領は昔作った SCHotBackup(さくらのクラウド API を使って日次でアーカイブをとるスクリプトを書いてみた)の時とほぼ同じです。
† 準備
まず、さくらのクラウド DNS で DDNS として運用するゾーンを作成し、リソース ID を取得しておきます。
このゾーンは現在のスクリプトの制限により DDNS 専用となります(他のレコードを作っても消えてしまいます)ので注意してください。一応ですが他のレコードとの混在に対応してみました。また、API 用のトークンとシークレットについては「コマンドライン操作ツール「sacloud CLI」とNode.js用モジュールを公開しました | さくらのクラウドニュース」を参考に取得しておいてください。
† 実装
突貫で作ったものなので、ある程度 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分おきにでも起動すれば良いでしょう。
- *1: 「クラウドDNS」のベータ版提供を開始しました | さくらのクラウドニュース
- *2: クラウドDNS | さくらのクラウドニュース
- *3: アプライアンス関連API - さくらのクラウド API v1.1 ドキュメント
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7889
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . Word で数式がグレーアウトされていて挿入できないときは(3352)
3 . Windows 10 で勝手にログアウトされないようにする(2980)
4 . Firefox でパスワードが保存されるページとされないページの違い(2519)
5 . シャープの空気清浄加湿器のキュルキュル音は PTFE スプレーで(2320)