金子邦彦研究室インストールSolarisDNS,メールサーバの移行手順案

DNS,メールサーバの移行手順案

DNS, メール, popper が動いているマシン(以下、「旧マシン」と呼ぶ)を、 新しいマシン(以下、「新マシン」と呼ぶ)に移行する手順について。

OSのバージョンアップ、パッチを、現に DNS, メール, popper が動いてい るマシンで行うのは面倒です。いっそ移行する方が良いこともあります。

準備

新マシンの準備です。

移行作業

移行作業でトラブルが起きたら、「新マシンへの移行を取りやめて、旧マシンの 稼働に戻す」という決断を持つ勇気も必要です。 そのためには、旧マシンの 設定を変えたりなどは、極力避けます(実際、設定の変更は必要ないはずです)。

「旧マシン」はシャットダウンし、シャットダウン後に、必 要なファイル(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, 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
この時点で、新マシンにおいて次の確認を行なう

DNS 関係

DNS に関する設定ファイル(例えば下記)は、事前に設定(あるいは移行)とテストが済んでい るものとして、説明を続けます。

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 を実行。その後、動作チェック