読者です 読者をやめる 読者になる 読者になる

DDNSを利用して外部へサーバ公開をする

サーバ公開をはじめるにあたって、固定IPアドレスを契約しようと当初は考えていたけれど、できるだけ安くcentOS用のサーバを購入し、ありものだけで自宅のネットワーク環境をそれに合わせて変更をしていると、ここで月額でいくらか払うのは「可能な限り安くやり遂げる」という路線を最後の最後で外れてしまうような気がしていて、そもそも月額1000円近く固定IPアドレスに払うのであれば、はじめからServerManさくらVPSでサーバ借りたほうがよっぽどかお値打ちであることは間違いない。

 

ということで、DDNSを利用して外部公開をすることにしました。

 

どのDDNSにしようかな

viral-community.com

 

今回は自身がお名前.comで取得した独自ドメインであるno1497.comを自宅サーバに割り当てたい。

どうやらお名前.comもDDNSには対応しているらしいけど、クライアントソフトがWindowsにしか対応していない時点でNG。

 

過去にieServerを利用していたけど、自宅の動的グローバルIPアドレスをieServerが準備したドメインとしか紐付けできないのでNG。

 

となるとmyDNSとNo-IPの比較になる。

サービス内容はほぼほぼ変わらないけれど、myDNSはシェルスクリプトをcronでまわすことでIPアドレスの更新ができそうなのでmyDNSにすることに決定。

www.mydns.jp

 

No-IPもできるみたいだけど、制限がどんどんきつくなっているみたいなので避けておく。

takuya-1st.hatenablog.jp

 

ドメイン構成図を決める

 ドメインツリー構造をどうしようか悩む。

no1497.comのZone ApexをそのままmyDNSに移管することは避けたい。なぜなら、AWS上で遊ぶために利用するaws.no1497.comであるとか、ブログ用のサブドメインであるとか、いろいろとお名前.comのネームサーバ上で動いているためです。

 

なので、ひとまずはds.no1497.comというサブドメインを新規作成し、その配下をmyDNSのネームサーバ管理とすることにしました。no1497.com自体は引き続きお名前.com配下としました。将来的にはno1497.com自体を自宅サーバ用に割り当てる予定。

 

こういうツリーから
f:id:no1497:20170514122834j:image

 

こう変えます。
f:id:no1497:20170514122849j:image

 

早速設定してみました

流れとしては以下の感じ。

  1. myDNSでアカウント登録。
  2. お名前.com上で、NSレコードを追加。ds.no1497.comとmyDNS指定のネームサーバを紐付けるようなNSレコードです。
  3. 自宅のcentOSサーバが定期的にmyDNSのログインページをwgetするスクリプトをcronにより現在の動的グローバルIPアドレスを定期通知させるように設定。

 定期更新スクリプト

以下が参考になる。

qiita.com

 

1時間に一回くらいの更新でいいかな。上記サイトより引用。

 

#!/bin/sh
#
# update ddns
#

# MyDNS
wget -O - --http-user=hogehoge --http-password=fugafuga http://www.mydns.jp/login.html

 

 

定期更新はいいけど・・・TTLはいくつなの?

myDNSで配布されるレコードのTTLが一体いくつなんだろうか。

更新しても、1日経たないとクライアントが再度レコードを取りに来てくれなければ意味がない。ということで調べてみました。

 

[root@localhost ~]# dig ds.no1497.com @ns0.mydns.jp

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> ds.no1497.com @ns0.mydns.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42948
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;ds.no1497.com. IN A

;; ANSWER SECTION:
ds.no1497.com. 300 IN A 14.3.191.236

;; Query time: 15 msec
;; SERVER: 210.197.74.200#53(210.197.74.200)
;; WHEN: Sun May 14 21:25:15 2017
;; MSG SIZE rcvd: 47

 

TTLは5分ですね。