何カ月か前に、先輩と2人でメールサーバの移設作業、ルータのリプレイスを行ないました。
このときは、メールサーバそのものは変更せず、メールサーバが接続されているネットワークのみをかえるという要件でした。具体的には、この会社では独立したインターネット回線が2本あって、片方が社内LAN側へ接続され、もう片方の回線はメールサーバがあるネットワークに接続されています。それぞれの回線はもともと物理的には同じサーバルームにあったのですが、このメールサーバを社内LANと同じ回線のほうに収容して、もう1つの回線は撤去します。
もちろん、「社外に公開されるメールサーバが社内LANと同じネットワークセグメント」ではセキュリティ的に問題があるのはいうまでもないので、ルータでDMZを作り、メールサーバはそこに置きます。ここでは、社内LANとDMZは両方ともプライベートIPです。仮にLAN側が10.10.0.0/24、DMZ側が10.20.0.0/24としておきます。
要するに「メールサーバのホスティング先を変更する」というのと似た作業です。まあ、メールサーバ自身は「同じメールサーバで、別回線側にケーブルをつなぎかえるだけ」で、「同時に新旧のメールサーバが生きている時間」がありません。つまり、もっと作業としては簡単です。
ちなみに、ルータとしてはYAMAHAのRTX1000を使っていたのですが、こちらも作業と同時に上位機種のRTX1200に変更します。ぢろーらもは実はこっちの作業を中心にやってました。まあ、設定の移行自体はRTX1000からRTX1200だと容易にできるので、先にRTX1200へまるまる旧コンフィグをうつして、あとは必要な部分(DMZや追加で必要なフィルタなど)を追加するだけです。YAMAHAルータはマニュアルにも設定法や設定例が詳しく書いてありますし、それ以外にもインターネットで探すといろんな情報が得られるので、こちらはそれほど苦労がありませんでした。
今回の場合、一番問題になるのはDNSまわりかな・・・。DNSは自社ではなくホスティング先のものを使っていたのですが、こちらはホスティング先に依頼しないと設定変更はできません。しかも問い合わせ窓口は平日昼間のみで、DNSレコード変更も平日しか対応してくれません。まあ、それ自体は仕方ないですね・・・。
ただ、メールが平日昼間にとまるのは困るので、当然のことながら移行は休日になります。メール(SMTP)の再送のしくみ上、数分くらいのダウンタイムであれば実質ユーザが困ることはない場合が多いのですが、万が一移行が失敗して切り戻す、となると何時間もかかる可能性もあります。やはり最悪のケースを考えると、休日にやらざるをえないかな・・・。
このときは土曜日に行う予定です。じゃあ、どうすればいいかな・・・。
ただ、メールの送信に関しては、MXを2つ書いておけばあまり問題はないはずです。http://www.atmarkit.co.jp/fwin2k/win2ktips/370nslookupmx/nslookupmx.html http://www.soi.wide.ad.jp/class/20040022/slides/09/25.html などにあるように、同じドメインで優先度の違うMXレコードを書いておけば、優先度の値が小さいほうが応答しない場合には、もう一方のMXレコードに書かれたメールサーバを参照するはずです。
ええと、それはいいけど、DNSのTTLとかどうだったかな・・・けっこう長めに設定されてるんだったら、たとえば「移行の一週間前には、TTLを10分~1時間くらいにする」という必要があります。世界全国のどこにキャッシュがあるかわからないので、もともとのTTLが1日とかだったら1週間くらいはみたほうがいいですし、それ以上なら2週間とか、もっと見ておく必要があるかもしれません。どのくらいかによっては、もちろん、ゾーン全体でなくて、関連するMXやAレコードだけで構わないと思いますが。
ただ、もともと使っていたDNSレコードのTTLは、変更するまでもなく十分短かったです。まあこれなら特にTTL調整はしなくていいや・・・。まあ、TTLが短いと毒入れがしやすくなる、という話もあるので、極端に短くするのもよくないかもしれませんが、今回はそこは許容します。
あと考えるのは、「社内からメールサーバにアクセスする場合には、インターネットを経由せずにルータを経由してプライベートIPで接続する」ということです。だとすると、社内クライアントからメールサーバにアクセスする場合には、メールサーバのIPはプライベートIP(10.20.0.0/24のネットワーク)を返さなくてはいけないな・・・。ただこれは、社内で使用しているActiveDirectoryのDNSサーバ(こちらは社内LAN:10.10.0.0/24にいる)が社内用DNSサーバになるので、こっちにレコードを登録しておけばいいですね。
あと、MXレコードはどうにかなりますが、Aレコードだとこういう使い方はできません。2つ同じの書いたらラウンドロビンになっちゃいますもんね。メールサーバ同士でメール送る場合にはMXを参照しますけど、Outlookなどのクライアントがメールサーバへメールの送受信のために接続する場合には、普通にホスト名をAレコードで解決して使うはずです。
社内からアクセスする分には、メールサーバの移設と同タイミングでActiveDirectoryのDNSサーバについても更新できるので問題ないですが、「社外から社内のメールサーバに接続してメールの受信などを行なおうとするクライアント」に関しては、土曜日の移設後から月曜日にAレコードを書きかえるまではホスト名でのアクセスできません。こちらは仕方ないので、「土日の間に社外からメールサーバを使う必要がある人は、つながらなかった場合には、メールクライアントで設定するメールサーバを(新しいほうの)IPアドレス直接指定にして使ってほしい」と通知しました。
じゃあ、こんな手順になるかな・・・。
金曜日
1:ホスティング業者さんに依頼して、DNSのMXレコードとAレコード(新しい回線の分)を1つ追加します。優先順位としては「既存、新規」の順になるようにします
もともとのレコードが
example.jp IN MX mail1.example.jp
mail1.example.jp IN A x.x.x.x(移設元回線側のIP)
のところを以下のレコードを追加します。
example.jp IN MX mail2.example.jp
mail2.example.jp IN A y.y.y.y(移設先回線側のIP)
2:リプレイス用のルータにはあらかじめ設定をいれておきます
作業当日
1:まず、ルータのリプレイスを行ない、社内からインターネット、VPN接続している拠点との接続などができることを確認しました。
2:社内用DNSサーバとして使用するActiveDirectoryのDNSに、移設後のメールサーバのAレコード(10.20.0.0/24のネットワーク)とMXレコードを追加します。社内からメールサーバを参照するので、AレコードのIPアドレスはプライベートIPになります
3:メールサーバを既存ネットワークから切断し、IPアドレスを変更して社内LANがある回線側のDMZ(10.20.0.0/24)に収容します。この際、「内部IPからの通信はリレーを許可」などを行なっている環境であれば、メールサーバのリレーを許可するIPアドレスなども変更します。
4:この時点で、「社内から社外、社外から社内にメールが送れるか」を確認します。「社外から」ということであれば、携帯メールから社内へメールが送れるかなど確認できればいいでしょう。また、「社外のクライアントから移設したメールサーバに接続して、メールの送受信ができるか?」についても確認しました。特に問題なさそうです。
翌月曜日
1:DNSのホスティング先に連絡し、メールサーバのAレコードを移行後の回線側のIPに書き換えます。クライアントPCのメールクライアントに設定されているメールサーバは”mail1.example.jp”になっているはずです。なので、必要なオペレーションとしては
mail1.example.jp IN A x.x.x.x(移設元回線側のIP) のIPアドレスを”y.y.y.y(移設先回線側のIP)”に変更し、
example.jp IN MX mail2.example.jp
mail2.example.jp IN A y.y.y.y(移設先回線側のIP)
のレコードを削除します。
最終的に残るのは
example.jp IN MX mail1.example.jp
mail1.example.jp IN A y.y.y.y(移設先回線側のIP)
土曜日の作業時も、せいぜい途中ルータのポートフォワーディングやフィルタ設定の不備などがあったくらいでした。その程度であればすぐに対応できます。大きな失敗もなく、朝からはじめて昼過ぎには作業が終わりました。
今のところ目立ったトラブルはありません。まあ大丈夫なんだろうな・・・(^^)。
この記事が気に入りましたら、また、お役に立ちましたら、以下のアイコンをクリックしていただけると嬉しいです(^^)