DNSサーバーの構成を調べていると、「プライマリ」と「セカンダリ」という言葉を目にすることがあるでしょう。
この二つはDNSの冗長化・可用性向上において非常に重要な概念であり、安定したインターネットサービスの運用に欠かせません。
この記事では、プライマリとセカンダリの違い・それぞれの役割・冗長化の仕組みについて、わかりやすく解説していきます。
DNS設計やサーバー管理に携わる方にとって、ぜひ押さえておきたい内容です。
プライマリDNSサーバーとはゾーン情報の正式なマスターを管理するサーバーのこと
それではまず、プライマリDNSサーバーの基本的な意味と役割について解説していきます。
プライマリDNSサーバーとは、ゾーン情報の正式なマスターデータを保持し、DNSレコードの追加・変更・削除を直接行うことができるサーバーのことです。
ゾーンファイルへの書き込み権限を持つ唯一のサーバーであり、ドメインのDNS情報の源泉となります。
ドメイン管理者がAレコードやMXレコードなどを変更する際は、必ずプライマリDNSサーバーの設定を更新することになります。
プライマリDNSサーバーはDNS管理の「マスター」です。
すべてのゾーン情報の変更はプライマリで行われ、その情報がセカンダリへと複製されます。
プライマリが単独で稼働している構成では、障害発生時にDNSサービスが停止するリスクがあるため、セカンダリとの組み合わせが推奨されます。
プライマリDNSサーバーの主な機能
プライマリDNSサーバーが担う主な機能は以下のとおりです。
| 機能 | 内容 |
|---|---|
| ゾーン情報の管理 | ゾーンファイルを直接編集・管理する |
| DNSレコードの更新 | Aレコード・MXレコード・TXTレコードなどを追加・変更・削除する |
| ゾーン転送の提供 | セカンダリサーバーにゾーン情報を提供する |
| 名前解決への応答 | クライアントからの問い合わせに権威ある回答を返す |
ゾーン情報の変更ができるのはプライマリのみという点が、セカンダリとの最大の違いです。
SOAレコードとプライマリサーバーの関係
ゾーンのSOA(Start of Authority)レコードには、プライマリDNSサーバーのホスト名が記載されています。
セカンダリDNSサーバーはSOAレコードを参照することでプライマリサーバーを特定し、ゾーン転送の接続先を把握します。
SOAレコードにはシリアル番号も含まれており、シリアル番号が増加しているかどうかでゾーン情報の更新を検知する仕組みになっています。
プライマリでゾーン情報を変更した際は、必ずシリアル番号を増加させることが重要です。
プライマリDNSサーバーの冗長化の必要性
プライマリDNSサーバーが停止した場合、セカンダリが正常稼働していれば名前解決自体は継続できます。
しかしプライマリが停止している間は、ゾーン情報の更新ができなくなるという問題が生じます。
また、セカンダリがゾーン転送できなくなるため、SOAレコードの有効期限を過ぎると古い情報しか提供できなくなるリスクもあるでしょう。
そのためプライマリサーバー自体も、可能であれば冗長化を検討することが望ましい構成です。
セカンダリDNSサーバーの役割と冗長化への貢献
続いては、セカンダリDNSサーバーの役割と、冗長化においてどのように機能するかを確認していきます。
セカンダリDNSサーバーとは何か
セカンダリDNSサーバーとは、プライマリDNSサーバーからゾーン情報を複製(ゾーン転送)して保持する読み取り専用のDNSサーバーのことです。
プライマリから受け取ったゾーン情報をもとに名前解決への応答を行いますが、ゾーンファイルへの直接書き込みはできません。
セカンダリの主な目的は、プライマリに障害が発生した場合でもDNSサービスを継続させることと、プライマリへの問い合わせ負荷を分散させることにあります。
ゾーン転送によるデータ同期の仕組み
セカンダリDNSサーバーはゾーン転送によってプライマリのゾーン情報を定期的に同期します。
同期のタイミングはSOAレコードのリフレッシュ間隔で制御されており、その間隔ごとにセカンダリがプライマリのSOAレコードを確認します。
ゾーン転送の流れ:
①セカンダリがプライマリにSOAレコードを問い合わせる
②シリアル番号が増加していれば、ゾーン転送を要求する
③プライマリがゾーン情報をセカンダリに送信する(AXFRまたはIXFR)
④セカンダリがゾーン情報を更新して保存する
シリアル番号が変化していない場合はゾーン転送が発生しないため、不要なネットワーク負荷を抑えられます。
セカンダリを複数台設置するメリット
セカンダリDNSサーバーは1台に限らず、複数台設置することが可能です。
複数台のセカンダリを異なるネットワーク・データセンター・地域に配置することで、以下のようなメリットが得られます。
| メリット | 内容 |
|---|---|
| 高可用性 | 1台が障害停止しても他のサーバーが応答を継続できる |
| 負荷分散 | 問い合わせをプライマリと複数のセカンダリに分散できる |
| 地理的冗長性 | 特定地域の障害やDDoS攻撃の影響を局所化できる |
| 応答速度の向上 | 地理的に近いサーバーが応答することでレイテンシを低減できる |
大規模なWebサービスやミッションクリティカルなシステムでは、複数のセカンダリを地理的に分散配置することが標準的な設計となっています。
プライマリとセカンダリの具体的な違いと比較
続いては、プライマリとセカンダリの違いを各観点から整理して確認していきます。
プライマリとセカンダリの主な違い一覧
プライマリとセカンダリの違いを表でまとめます。
| 項目 | プライマリDNSサーバー | セカンダリDNSサーバー |
|---|---|---|
| ゾーン情報の保持 | マスターデータを保持 | プライマリから複製したデータを保持 |
| 書き込み権限 | あり(直接編集可能) | なし(読み取り専用) |
| ゾーン転送 | 提供側(マスター) | 受信側(スレーブ) |
| 名前解決への応答 | 可能 | 可能 |
| 障害時の影響 | 停止するとゾーン更新不可・転送不可 | 停止しても他のサーバーが継続応答 |
| 台数 | 通常1台 | 複数台設置が推奨 |
名前解決への応答能力はプライマリ・セカンダリともに同等であり、クライアントからはどちらのサーバーが応答しているかは区別されません。
クライアントのDNS設定における「プライマリ・セカンダリ」との違い
PCやスマートフォンのネットワーク設定でも「プライマリDNS」「セカンダリDNS」という項目が表示されることがあります。
ただし、これはDNSサーバーの構成としてのプライマリ・セカンダリとは異なる概念です。
クライアント設定における「プライマリDNS」は「最初に問い合わせるキャッシュDNSサーバー」を、「セカンダリDNS」は「プライマリに接続できない場合の代替サーバー」を意味します。
サーバー構成としてのプライマリ・セカンダリと、クライアント設定としてのプライマリ・セカンダリは別物であるため、混同しないよう注意が必要でしょう。
クラウドDNSにおけるプライマリ・セカンダリの扱い
AWS Route53やCloudflare・Google Cloud DNSなどのクラウドDNSサービスでは、プライマリ・セカンダリという概念が従来と異なる場合があります。
これらのサービスは内部的に複数のサーバーで冗長化を自動的に提供しており、ユーザーが意識してセカンダリを設定する必要はありません。
クラウドDNSを利用することで、冗長化・負荷分散・地理的分散をすべてサービス側が管理してくれるため、運用コストを大幅に削減できます。
可用性を高めるDNS冗長化設計のポイント
続いては、プライマリとセカンダリを活用したDNS冗長化設計の具体的なポイントについて確認していきます。
最低限必要なDNS構成
RFC(インターネット標準)では、ドメインに対して最低2台以上の権威DNSサーバーを設置することが推奨されています。
プライマリ1台・セカンダリ1台の最小構成でも冗長性は確保されますが、より重要なサービスでは3台以上の構成が望ましいでしょう。
2台以上のDNSサーバーを異なるネットワーク上に配置することが、冗長化の基本原則です。
ゾーン転送のセキュリティ設定
セカンダリへのゾーン転送を安全に行うためには、転送元・転送先のIPアドレスを明示的に制限することが重要です。
TSIG(Transaction SIGnature)と呼ばれる共有秘密鍵による認証を使うと、ゾーン転送の正当性を暗号的に保証できます。
ゾーン転送を無制限に許可することは非常に危険です。
攻撃者がゾーン転送を悪用するとドメイン内のすべてのホスト情報を取得でき、攻撃対象の特定に利用される恐れがあります。
必ずセカンダリサーバーのIPアドレスのみに転送を制限し、TSIGによる認証を合わせて設定することを強くおすすめします。
DNSの可用性を高めるその他の施策
プライマリ・セカンダリの冗長化に加えて、DNS可用性をさらに高めるための施策として以下が挙げられます。
| 施策 | 概要 |
|---|---|
| Anycastルーティングの活用 | 同一IPアドレスを複数拠点に配置し、最も近いサーバーが応答する |
| DDoS対策サービスの導入 | DNS DDoS攻撃に対する防御・吸収機能を持つサービスを活用する |
| TTLの適切な設定 | 障害時に素早くフェイルオーバーできるよう適切なTTLを維持する |
| 定期的な動作監視 | DNSサーバーの応答を定期的に監視し障害を早期検知する |
これらの施策を組み合わせることで、単一障害点のない高可用性DNSインフラを実現することができます。
まとめ
この記事では、DNSのプライマリとセカンダリの違い・それぞれの役割・冗長化設計のポイントについて解説しました。
プライマリDNSサーバーはゾーン情報のマスターデータを管理する唯一の存在であり、セカンダリDNSサーバーはそのデータを複製して冗長性と負荷分散を担います。
二つのサーバーを組み合わせることで、障害時にもDNSサービスを継続できる高可用性の構成が実現します。
クラウドDNSサービスを活用することでこれらの冗長化を自動化することも可能であり、運用コストの削減にもつながるでしょう。
プライマリとセカンダリの仕組みを正しく理解することが、安定したDNS運用と障害対応力の向上につながります。
ぜひ本記事を参考に、DNS構成の見直しに役立ててみてください。