• DDNSサーバ作ったよー

    前回に引き続き、DDNSサーバのお話です。
    パーミッションを修正したおかげで、nsupdateが使えるようになりましたので、いよいよ自宅サーバにてDynamic DNS環境を構築していきます!

    シェルスクリプトでやるのだけれど…実はシェルスクリプト初挑戦…(((๑゚㉨゚๑)))
    ほんとにできんのか…

    という感じでしたが、意外とあっさりできました。


    ■作成環境
    CentOS 6.5 64bit
    BIND9 DNSサーバ構築済み(nsupdateが使える環境)
    postfix 送信メールサーバ構築済み(IPアドレスの変化をメールで通知しないのなら不要)

    ■作成したスクリプトサンプル
    ddns.zip

    ■使用方法
    環境によってはいろいろ書き直さないといけないけも…。
    初心者のスクリプトなんで、許してくだせぇw
    もし、使う際には自己責任でお願いしますね!!!!

    1. rootでログインする
    2. named.confにてDDNSに対応させたいドメインを自動更新できるようにする。
      # vi /etc/named.conf
      ※更新したいドメインのゾーンについて、allow-update { localhost; };を付記。
    3. /usr/local/binへ移動
      # cd /usr/local/bin
    4. スクリプトファイルをダウンロード
      # wget http://www.aozorawaon.com/wp-content/uploads/ddns.zip
    5. 圧縮されたzipファイルを解凍
      # unzip ddns.zip
    6. 解凍してできたディレクトリへ移動
      # cd ddns
    7. 自身のDNSレコードの情報を「command.org」に記載。
      # vi command.org
      ※myhost.mydomainをwww.aozorawaon.com等のFQDNに書き換える。
    8. 更新された時のメール通知先を「ddns.sh」に記載。
      # vi  ddns.sh
      ※user@myhost.mydomainを自身のメールアドレスへ変更。
      ※メール通知が不要の場合は、『echo “$MAIL” | mail…』の先頭に#を付記してコメントアウト。
    9. スクリプトファイルに実行権限を付与
      # chmod 744 ddns.sh
    10. スクリプトのテスト動作(commandというファイルが作成されます。キニシナイデ)
      # ./ddns.sh
      ※IPアドレスが更新されました!と表示されればおk
    11. cronへの登録
      # crontab -e
      */15 * * * * /usr/local/bin/ddns/ddns.sh 1> /dev/null

    以上で動く…はず。


    /usr/local/bin/ddnsにいるファイルたちの大まかな役割は次の通り。

    command command.orgをもとに作成されるnsupdate用のコマンド。1回目の実行で作成される。
    command.org nsupdateで流すコマンドの素を記述したテキストファイル。
    ddns.sh 外部IPアドレスをチェックするスクリプト本体。初心者が書いたコテコテのスクリプト。
    mail IPアドレスが変化した際に送付するメールの内容文。
    old.addr 前回のチェックの際の外部IPアドレスを記憶しておくためのファイル。

    こんな感じ。

    ちなみに/etc/named.confにて『allow-update{ localhost;192.168.1.0/24; }』を追記し、
    /usr/local/bin/comman.orgにて『server 192.168.1.1』などと指定すれば、リモートサーバのDNSレコードを更新することもできる。

    流れとしては、cronで15分おきにこのスクリプトを実行し、
    http://ieserver.net/ipcheck.shtmlにアクセスして自身の外部IPアドレスを取得。
    それを前回取得した外部IPと比べて変化していればnsupdateコマンドにてDNSレコードを更新するというシンプルなもの。


     

    初心者でもさっくりできる程度のスクリプトだからなのか、なかなかネットに転がってないんですよね。
    しかし、自宅DDNSというのは大きな欠点があってですね…。

    ちょっと考えればわかるのですが、固定IPではないため、ドメイン取得業者のネームサーバの指定を自宅サーバに向けようとすると、IPアドレスで指定するわけにもいかず困ってしまうのです。
    私はYAMAHAのルータを使ってますんで、netvolante.jpのDDNSサービスを使って、ドメイン取得業者のネームサーバをnetvolante.jpで登録したアドレスで指定しています。

    結局、どっかのDDNS使うんかーい。という感じですが…。
    とにかく、自宅で外部向けDNSサーバ立てたかったの!

    以上!

    カテゴリー: ゲーム関連, ネットワーク, 技術系

    コメントを残す

    メールアドレスが公開されることはありません。

    計算式の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.