DNS,メールサーバの移行手順案
DNS, メール, popper が動いているマシン(以下、「旧マシン」と呼ぶ)を、 新しいマシン(以下、「新マシン」と呼ぶ)に移行する手順について。
OSのバージョンアップ、パッチを、現に DNS, メール, popper が動いてい るマシンで行うのは面倒です。いっそ移行する方が良いこともあります。
準備
新マシンの準備です。
- 交換の手順、スケジュール、分担は前もって打ち合わせしておく
- Solaris をインストール
ポイント: マシン名は、「旧マシン」とは違うものにする(その方が作 業しやすい)。IPアドレスも、「旧マシン」とは違うものを仮に付けてお (最終的には、IPアドレスはつけ変える)。旧マシンと新マシンでは、同じ OSが動いていることが望ましい(作業しやすい)。
ポイント: 作業の間、「旧マシン」の設定は変えないようにする。 「旧マシン」が動かなくなると、いざという時に困るので。
【関連する外部ページ】
- SUN Solaris 8/9 for SPARC/Intel インストール手順
Solaris メディアをつかってインストールする手順 - SUN Solaris 8/9 for SPARC/Intel 牧之内研設定
各種の設定、gcc バイナリインストール、bind、OpenSSH、TCP Wrapper、 am-utils のインストール、カスタマイズ - SUN Solaris 8/9 for SPARC/Intel 各種のソフトのインストール
GNU や各種のツールを入れて使いやすくしよう(ソースと、インストール用スクリプトを掲載)。 - SUN Solaris 8/9 各種設定
- SUN Solaris 8/9 for SPARC/Intel インストール手順
- DNSサーバソフト(bind) をインストールし、設定を行う
ポイント: 設定ファイルは、「旧マシン」から持ってくる が、次のように書き換えておく。また、bind の起動オプションが変更され ているかも知れないので、確認しておく。
- db.zone の1行目:「旧マシン」名 →「新マシン」名
- dbrev.rev の1行目:「旧マシン」名 →「新マシン」名
- localhost.zone の1行目:「旧マシン」名 →「新マシン」名
- localhost.rev の1行目:「旧マシン」名 →「新マシン」名
- localhost.rev の NS の行:「旧マシン」名 →「新マシン」名
参考 Web ページ
- qpopper をインストールし、設定を行う。
参考 Web ページ
- sendmail をインストールし、設定を行う。
ポイント: sendmail や DNS を変えたいという欲求 は、我慢する。移行のときは最小限の作業に絞った法が良い。トラブルの元になります(バージョンアップしたければ、後日ゆっ くり行う)。
- この時点で動作テスト
移行作業
移行作業でトラブルが起きたら、「新マシンへの移行を取りやめて、旧マシンの 稼働に戻す」という決断を持つ勇気も必要です。 そのためには、旧マシンの 設定を変えたりなどは、極力避けます(実際、設定の変更は必要ないはずです)。
「旧マシン」はシャットダウンし、シャットダウン後に、必 要なファイル(pop.auth, /var/spool/mail )を「新DNSメールマシン」に正しく移す(オーナー、タイムスタン プもそのままで移す。同時「新DNSメールマシン」のIPアドレスだけを付け 変える。その後、動作チェックし、うまく行かないようであれば、元に戻す。
popper の移転では、pop.auth (pop パスワードの入ったファイル)をそのまま 使い続けたいと思うのは当然ですが、 旧マシンと新マシンで、popper の make 時のオプション(GNU gdbm を使う/使 わない) などを一致させておく必要がある。オプションが違うと、 pop.auth が使えません。
同じIPアドレスのマシンが同時に稼働しないように十分に注意すること。ま た、この作業は20分以内に終えること。そのために、事前に、数回の練習をし ておくことが望ましい。
/etc/rc2.d/S88sendmail
/etc/rc2.d/S88sendmail を作る。普通は、「旧マシン」からコピーしてくる だけでよい
新マシンにおけるバックアップ
sendmail に関する設定ファイル(例えば下記)は、もし、事前に設定とテス トが済んでいれば、バックアップを実施しておく(下記の手順では、上書きさ れてしまう可能性があるため)。
- sendmail.mc
sendmail, popper 関係のファイルの移行
sendmail, popper 関係のファイルを、「旧マシン」から「新マシン」に移行 します。
[旧マシンでの作業] cd /var/spool/mail tar -cvpf /var/spool/all.tar ./* chown root /var/spool/all.tar chmod 700 /var/spool/all.tar # sftp で dnsmail へ /var/spool/all.tar と /etc/pop.auth を転送 sftp 「新マシン」 passward **** cd /etc/ lcd /etc/ put pop.auth cd /var/spool/ lcd /var/spool/ put all.tar 旧マシンのシャットダウン ps -e | grep sendmail で、確かに sendmail も止まっているかを念のために確認
[新マシンでの作業] chown pop /etc/pop.auth chmod 600 /etc/pop.auth chown root /var/spool/all.tar chmod 700 /var/spool/all.tar cd /var/spool/mail; tar -xvpf /var/spool/all.tarこの時点で、新マシンにおいて次の確認を行なう
- メールのエイリアスファイル /etc/mail/alias が正しいファイルか?
- sendmail.mc が正しいファイルか?
- /etc/inetd.conf に pop3 のエントリが含まれているか
- 必要なら、次のコマンドを実行
m4 .../m4/cf.m4 sendmail.mc > sendmail.cf
DNS 関係
DNS に関する設定ファイル(例えば下記)は、事前に設定(あるいは移行)とテストが済んでい るものとして、説明を続けます。
- /usr/named/db.zone
- /usr/named/dbrev.rev
- /usr/named/localhost.rev
- /usr/named/localhost.zone
- /usr/named/root.cache
- /etc/rc2.d/S72inetsvc
- /etc/rc2.d/S72inetsvc
IPアドレス関係
「新マシン」のIPアドレスだけを変える。マシン名は変えない。
「新マシン」 の /usr/named/db.zone
次のように変更する。
変更前
「旧マシン名」 IN A 「IPアドレス」 「新マシン名」 IN A 「仮のIPアドレス」
変更後
「新マシン名」 IN A 「IPアドレス」
同時に、次の1行を追加
「旧マシン名」 IN CNAME 「新マシン名」
db.zone の中に、「旧マシン名」が残っていたら、1つずつチェックしながら、 「新マシン名」で置き換える。
設定例は次の通り
2c2 < 2004031712 ; Serial --- > 2004032301 ; Serial 51c51 < oldmachine IN A 133.5.18.160 --- > newmachine IN A 133.5.18.160 55c55 < newmachine IN A 133.5.18.163 --- > ;newmachine IN A 133.5.18.163 85c85 < ; oldmachine IN CNAME newmachine --- > oldmachine IN CNAME newmachine
「新マシン」 の /usr/named/dbrev.rev
次のように変更する。
変更前
「アドレス」 IN PTR 「旧マシン名」 「仮のアドレス」 IN PTR 「新マシン名」
変更後
「アドレス」 IN PTR 「新マシン名」
dbrev.rev の中に、「旧マシン名」が残っていたら、1つずつチェックしながら、 「新マシン名」で置き換える。
2c2 < 2004031702 ; Serial --- > 2004032301 ; Serial 18c18 < 160 IN PTR oldmachine.domainname.jp. --- > 160 IN PTR newmachine.domainname.jp. 22c22 < 163 IN PTR newmachine.domainname.jp. --- > ;163 IN PTR newmachine.domainname.jp.
「新マシン」 の /etc/hosts に書かれた IP アドレス
/etc/hosts のIPアドレスを書き換えます。
テスト
以上の書き換えが終わったら、書き換えがうまく言ったか nslookup でテストしてみる。
kill -HUP `cat /var/run/named.pid` /etc/rc2.d/S88sendmail stop /etc/rc2.d/S88sendmail start nslookup 「新マシン名」 nslookup 「IPアドレス」
NIS サーバ
移行作業のために「仮のマシン名」を NIS サーバに登録していたのなら、削除します。
NIS サーバの hosts ファイル(/var/yp/nis.inputs/hosts)を書き換えて、make を実行。その後、動作チェック