Menu
はじめに
ネットワーク準備
インストール準備
インストール
 ・HDD1個
 ・RAID1
 ・アップデート
Linux基本操作
サーバー設定
 ・ネットワーク
 ・sshサーバー
 ・DNSサーバー
  ・ダイナミックDNS
 ・Webサーバー
 ・mailサーバー
  ・内部のみ許可
  ・POPbeforeSMTP
 ・ftpサーバー
 ・ntpサーバー
 ・ディスク容量制限
 ・アクセス解析
 ・webメール
 ・全文検索設置
 ・メーリングリスト
拡張・変更
 ・ディスクを交換
 ・RAID1に変更
 ・マシン入替え
 ・postfixにする
 ・kernelをソースから
 ・ドメイン名
   サーバー名
   IPアドレス変更
CGI
 ・カウンタ設置
セキュリティーアップ
格安でドメイン登録
日々のメモ
便利なコマンド

サイト内検索
www.kaji3.com


本日
昨日
---------
ダイナミックDNS(DDNS)で独自ドメインサーバーを運用
費用を出来るだけ押さえて運用したいと考えるとやはり固定IPアドレスに月1500円も払っているのはばかばかしくなる。安定運用の為の費用と考えればいいのだが趣味のサーバーではもったいない。やはりダイナミックDNSを使い費用削減となる。 どのくらい安定して運用できるのかまだ未知数だが世の中では多くの方がやっているので問題なく運用出来ることを期待して準備をしてみることにする。なお、今回は別ドメインで別回線での実験で本HPは固定IPでの運用を継続する。状況が良ければ本HPもダイナミックDNSへ移行したいと思っている。
今回利用する無料のダイナミックDNSサーバーはZoneedit.comを利用する。多くの方のページでhn.orgを使ったものが出ているが、ここは登録件数に制限がありなかなか登録出来ないのであきらめることになった。 しかたなし、以前セカンダリーDNSを試そうと思ったZoneeditが確かDDNSが出来たような気がしたので、確認したら直接DDNSがサポートされていてる。さらに別のページで評判を調べるとサーバーの稼動安定度も良いのでここに決定した。
IPアドレスの通知はいろいろなソフトがあるようだけど、簡単なシェルスクリプトを自作してcronで自動実行させる方法を使うことにした。実際、cronで実行した結果がメールで届くからアップデートの状況はすぐに確認可能となる。
TTLがどのくらいに設定されているかが不明だが、Zoneeditのページにはdynamic.htmlからIPアドレスを更新する場合にはそれに見合うTTLが設定されていると書かれているのでひとまずやってみることにする。
なお、DDNSでサーバーを構築する場合と固定IPアドレスで構築する場合の違いはDNSサーバーの設定でローカルのzoneだけを準備するだけでよく、外部の無料セカンダリーDNSも不要になる点ぐらいです。

*このページから入った場合には最初にDNSサーバーの設定から始めてください。

ZoneeditにプライマリDNSを作る
  1. www.zoneedit.comにアクセスするとなにやら英語だらけのページになるが、気にせずに右上のFree Sing Upをクリックする。
  2. 新規登録画面になるので、名前や住所を記入して、一番下のSelect Service OptionはFree Trial - up to 5 zonesのまま[Sing Up Now]をクリック。
  3. 登録完了画面になり、じきにメールが送られてきてユーザー名とパスワードが知らされる。
  4. さっそくトップページに戻って左上のLoginをクリックするとパスワードの入力が現れるのでメールを見ながらユーザー名とパスワードを入力する。
  5. Zone選択の画面になるので Add Zone をクリックして新しいZone登録画面であなたのドメイン名を空欄に入力してその他は空欄のまま[Add Zone]ボタンをクリック。
  6. 現在のDNSの設定状況画面が現れるので左上のEdit Zoneをクリックします。。現在レンタルサーバーなどを運用している場合は、このDDNSが確実に動かしてから登録業者のDNSを変更するのが望ましいです。過去に先走ってDNS切り替えて大失敗したこともあったりしました 苦笑
  7. 現在のZone設定画面になります。メール転送がせっていされているのがわかると思います。これはあとで削除します。まず現在のIPアドレスを登録します。上のメニューのIP addresses(A)をクリックします。
  8. IPアドレス追加画面になります。今回はwwwとmailを登録しますので2回操作を繰り返します。Nameにwww、Numeric IPに現在のルーターのIPアドレスを入力して[Add New IP Address]をクリック。
  9. 確認画面が現れてwww.yourdomain.com以外にyourdomain.comも同じIPアドレスで登録するかを聞いてきます。これはwww抜きでプラウザから接続された場合には同じIPアドレスのサーバーに向かうことを可能にします。ただ、www.yourdomain.comがバーチャルドメインの場合には、apacheのドキュメントルートに向かうので異なるサイトが表示されることになります。サーバーが単独のWEBサイトだけで運用されているなら問題ないので上のBoth・・・のところの[OK]をクリック。もしこのドメインがバーチャルドメインならば下のOnly・・・の[OK]をクリックします。今回の例ではバーチャルドメインなので下になります。
  10. IPアドレスの画面に今追加した名前が入ります。さらにmailも同じように追加します。
  11. 次にメニューの上のMailForwardをクリックしてメール転送を削除します。メール転送の画面になったら、Deleteにチェックを入れて[Deliete Selected]をクリックします。
  12. 確認画面になるので[OK]をクリックするとメール転送画面に戻りますので、上のメニューのMail Server(MX)をクリックします。
  13. メールサーバーの設定画面になります。左の空欄に先ほど登録したmail.yourdomain.com、右の空欄にyourdomain.comを入力して[Add New Mail Server]をクリックします。
  14. 確認画面になるので[OK]をクリックすると、メール設定画面に今登録したものが現れます。左上のView全体を確認して間違えがなければこれで登録は終わりです。
定時にIPアドレスを通知する
2種類の方法を試しました。フリーウェアのDDNSクライアントDiCEを自作の簡単なスクリプトをcronで定期実行。結局、DiCEでIPアドレスの変化を5分おきに検出して更新することにしました。自作スクリプトでは一定時間おきにIPアドレスの変化に関係なく更新作業を行うので、最悪は更新直後にIPアドレスが変わると次の更新までの間(最大1時間弱)接続が出来なくなるのでこれでは実用に耐えないと判断したからです。それにDiCEはベータ版ですが多くの方が利用していること、NTTのADSLモデムNVのグローバルIPアドレスをしっかり検出出来たので問題ないとも判断出来たからです。2006-2-12 ADSLモデムSV3のURL追記、DiCEバージョンをdiced0199からdiced01912

DiCEの導入

ファイルをダウンロードして展開して実行し必要な設定をします。
# cd /usr/local/bin/
# wget http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019
# tar xvzf diced01912.tar.gz  (ダウンロードしたファイル名を確認してtarして下さい)
# /usr/local/bin/DiCE/diced

設定は、IPアドレスの検出方法と確認間隔、Zoneeditへの登録を行います。
IPアドレスの検出 > setup
   検出方法:外部のスクリプトから検出
   スクリプトのURL: http://user:パスワード@192.168.1.1/info_main.html
    (ADSLモデムNVの場合です。@以下はルーターの内側アドレスで192.168.1.1はデフォルト)

    (ADSLモデムSV3の場合は
     http://user:パスワード@192.168.1.1/cgi-bin/main.cgi?mbg_webname=status)

   プライベートアドレス:検出対象外
   チェック間隔:5分
   サーバー保護間隔:60分(デフォルト)

IPアドレス更新 > add
   サービス名:ZoneEdit
   ドメイン名:あなたのドメイン
   ホスト名:www と mail
   ログインユーザー名:あなたのZoneEditユーザー名
   ログインパスワード:あなたのZoneEditパスワード
   登録IPアドレス:自動
   イベント題名:www mail などご自由に
   実行頻度:IPアドレス変化時
   変化なし時更新間隔:7日
   更新モード:ホスト
   オフライン:NO
   レコードタイプ:A (mailもAです)
   イベント有効:Y
   保存:Y

 上記の設定の実際の例はこちら

設定が終わったら確認してデーモンをバックグランドで起動させます。
:list
:ex 0
:ex 1
:startd
DiCE Daemon Started !!

スタートアップ時に自動起動するようにrc.localに起動スクリプトを追加します。
# pico /etc/rc.d/rc.local
   # start DiCE Dynamic DNS client at boot.
   /usr/local/bin/DiCE/diced -d -l

実際に再起動して動作しているか確認します。ps aux

おまけとしてスクリプトの場合

用意してそれを1時間ごとに自動実行させます。スクリプトの場所は/etc/cron.hourly/になります。
picoで以下のスクリプトを作成してもいいですし、このページからダウンロードしてユーザー名とパスワードとドメインを編集してもかまいません。うまく動かなかったのでwwwとmail用の2つを用意します。なお、wget以下2行はドメイン名まで一行で書く必要があります。自動改行されますが先頭の場所でBackspaceキーで繋げることが出来ます。手動で実行する場合にはwget以下2行をコマンドラインから打ち込めばOKです。なお、一時間起きでは更新頻度がサーバーに対して高く、IPアドレス更新にたいして空白時間があるのであまりお勧め出来ません。どうしても上記DiCEが動かない場合に使ってください。

# pico /etc/cron.hourly/updateIP-www_zoneedit

#! /bin/bash
# update IP address for dynamic DNS on Zonedtit

wget -O - --http-user=ユーザー名 --http-passwd=パスワード
'http://dynamic.zoneedit.com/auth/dynamic.html?host=www.yourdomain.com'

exit 0

# pico /etc/cron.hourly/updateIP-mail_zoneedit

#! /bin/bash
# update IP address for dynamic DNS on Zonedtit

wget -O - --http-user=ユーザー名 --http-passwd=パスワード
'http://dynamic.zoneedit.com/auth/dynamic.html?host=mail.yourdomain.com'

exit 0

IPアドレス更新状況の確認
ADSLモデムの電源を切るかNVの設定画面上接続を切って新たなIPアドレスを取得してから5分ほど待ちます。LOGを確認して以下のように更新されていればOKです。

# cat /usr/local/bin/DiCE/log/events.log
○ 12/30 13:13 デーモン動作を開始しました
○ 12/30 14:10 IPアドレスが変わりました >218.47.194.113
★ 12/30 14:10 にwww.yourdomain-zoneeditが実行されました
  IPアドレスを更新しました
★ 12/30 14:10 にmail.yourdomain-zoneeditが実行されました
  IPアドレスを更新しました

念のためにZoneEditのページでも確認しておきましょう。

IPアドレス更新状況の確認

今の時点ではまだルートサーバーのDNSを変更していないので、www.yourdomain.comでは接続が出来ません。確実にIPアドレスの更新が出来るようになってwebやメールサーバーの準備が整ったらドメイン登録業者を通してDNSを今回取得したZoneEditのサーバーに変更します。これでやっとwww.yourdomain.comで接続できるようになります。

  • ドメイン登録先のページから(国内業者の場合によってはメールとか書面?もあり)DNSの設定を変更します。これについては登録先によってことなるので詳細な説明は省略します。Namesecureの場合にはこちら
  • ルートサーバー(comドメインの場合は a.gtld-servers.net等)は1日もあれば変更が反映されます。しかし、それ以外の普通にユーザーが問合せするプロバイダのDNSは2・3日ぐらいかかることがあります。それはキャッシュにあなたのドメインが入っているからです。特に自分が接続しているプロバイダのDNSはあなたのドメインにアクセスしてますから書き換えられるのは一番最後だったりします。変更されたかどうかはやはりnslookupで確認します。このとき server a.gtld-servers.netを確認してみて変わっているようならばあとは待つだけです。
  • 最後に http://www.dnsreport.com/ であなたのDNSの設定が正しいかを確認してみましょう。
  • 自分のサイトが本当に動いているかを確認する方法としては、外部から自分のページを開いてみるのが簡単な方法です。自宅に居ながら確認するほうほうとして私はaltavistaの翻訳ページを利用してます 笑 こちらのページでTranslate a Web page自分のページを指定して、Japanese to Englishを選んで表示させます。これで表示されれば外部から見えているということです。

Copyright (C) 2003-2004 Kaji3.com. All Rights Reserved.