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アドレス、この辺の意味をちゃんと理解していないとすぐ迷子になる(というか今も理解が曖昧…)。