🏡まったのブログ

Webサーバーとメールサーバーを分けて運用する

本日はWebサーバー(Webホスティング)とメールサーバー(メールホスティング)を分けて運用する場合のDNS切替作業を行なった。忘れそうなのでメモしておく。

まず上記2つと別にDNSサーバーもあることを忘れてはならない。本来はDNSサーバーはWebサーバーを提供している会社のものを使うはずである(Xserver Business ならns1.xbiz.ne.jpなど)が分けることもできるようである。

今回はIIJのサーバーだったが、さくらサーバーと同じくDNSレコードの編集内容を反映させるにはDNSサーバーはIIJ固定で、DNSレコード側(IIJのサービス名でいうとDNSアウトソースサービス)で別のDNSサーバーに名前解決の権限を委任しないといけなかった(NSレコードを追加する必要があった)。

Webサーバーとメールサーバーを分ける時のDNSレコードの書き方

今回はDNS、Web、メールすべてを1つのサーバーでホスティングしていたものを、Webサーバーだけ別のサーバーに分けて運用するケースだった。

ここではDNSサーバーのIPアドレスを000.000.000.000とする。Webサーバーとして使用したいサーバーのIPアドレスを111.111.111.111とする

本来のDNSレコード

今回はIIJのサーバーだったので後述のDNSレコード設定となったが、Webで色々調べた限り本来は以下のような設定で済むようである(ただし確証なし)。

example.com	28800	IN	NS	dns-a.server-company.jp
example.com	28800	IN	NS	dns-b.server-company.jp
localhost	28800	IN	A	127.0.0.1
@		28800	IN	A	111.111.111.111

mail		28800	IN	A	000.000.000.000
@		28800	IN	MX	メールの初期ドメイン
@		28800	IN	MX	メールの初期ドメイン

example.com@000.000.000.000はどれも同じ値になるはず?なので代替可能であるはず。

Aレコードを新しいWebサーバーに指定するけど、メールだけはDNSサーバーと同じ今のサーバーで使いたいから、mail.example.comは000.000.000.000にAレコードを指定する。

基礎知識としてAレコードはNSレコードがあれば無くていい。

またlocalhostのAレコード127.0.0.1はlocalhostのIPアドレスを自分自身を割り当てるための記述だそうで、このIPアドレスは常にこれらしい。他サイトを参照すると、どうやらetc/hostsファイルを参照させるもののようだ。

DNS切替前でもhostsファイルにIPアドレスを指定すればそちらを強制的に参照させることができるので、おそらくそれを機能させるものなのかと思う。

今回のDNSレコード

example.com	28800	IN	NS	dns-a.server-company.jp
example.com	28800	IN	NS	dns-b.server-company.jp
localhost	28800	IN	A	127.0.0.1

www		28800	IN	NS	ns1.xbiz.ne.jp
www		28800	IN	NS	ns2.xbiz.ne.jp
www		28800	IN	NS	ns3.xbiz.ne.jp

mail		28800	IN	A	000.000.000.000
@		28800	IN	MX	メールの初期ドメイン
@		28800	IN	MX	メールの初期ドメイン

基本は上記と同じだが、中断でサブドメインwwwのNSレコードを別のネームサーバーに指定している。これは「www.example.comの名前解決は、ns1.xbiz.ne.jpに委任するよー」という意味らしく、これによりAレコードも今回でいう Xserver Business 側を参照してくれて、無事Webサーバーだけを切り離すことができた。

ホスト、ゾーン、正引きと逆引き、CNAME、@、ワイルドカード、IPアドレス、この辺の意味をちゃんと理解していないとすぐ迷子になる(というか今も理解が曖昧…)。