全4292文字
PR

DNSサーバーを冗長化

 インターネットやイントラネットでは、ドメイン名で通信相手を指定できることが前提となっている。DNSサーバーで障害が発生すると、通信相手に問題がなくてもアクセスできなくなる。このためDNSサーバーの冗長化は必須だ。

 実際、オリジナルのDNSサーバーとは別に、バックアップ用のDNSサーバーを運用するのが一般的だ。前者をプライマリーサーバー、後者をセカンダリーサーバーと呼ぶ。管理者がプライマリーサーバーのゾーンファイルに変更を加えると、セカンダリーサーバーがコピーする(図6)。DNSサーバー間でゾーンファイルをコピーして同期を取ることはゾーン転送と呼ばれる。

図6●セカンダリーサーバーにゾーンファイルをコピー
図6●セカンダリーサーバーにゾーンファイルをコピー
ゾーン情報を管理する権威DNSサーバー(ネームサーバー)は冗長化するのが一般的だ。オリジナルとなるプライマリーサーバーのゾーンファイルに管理者が変更を加えると、セカンダリーサーバーにコピーされる。
[画像のクリックで拡大表示]

 管理者はプライマリーサーバーのゾーンファイルだけを変更すればよいので、管理の負荷を軽減できるとともに設定ミスなどを防げる。また、プライマリーサーバーは1台だが、セカンダリーサーバーは何台でも構わない。多ければ多いほど冗長性が高まる。

 ゾーンファイルの同期で重要になるのが、ゾーンファイルのSOAレコードである。SOAレコードには同期に必要な情報が記載されているためだ。

シリアル番号で変更確認

 SOAレコードはゾーンの管理情報を指定するためのレコードである(図7)。1つのゾーンに1つだけ記載する。前述のAレコードやMXレコードとは異なり、複数記載することはできない。通常はゾーンファイルの最初に記載する。

図7●冗長化の要となるSOAレコード
図7●冗長化の要となるSOAレコード
ゾーンファイルに記載されるSOAレコードの例。SOAレコードの情報を基にセカンダリーサーバーはプライマリーサーバーと同期を取る。REFRESH、RETRY、EXPIRE、TTLの単位はいずれも秒。
[画像のクリックで拡大表示]

 SOAレコードには、MNAME(プライマリーサーバー名)やSERIAL(シリアル番号)、REFRESH(リフレッシュの間隔)、RETRY(リトライの間隔)、EXPIRE(期限切れ)といった項目がある。