DNS委任とは?サブドメインを別管理する仕組みとNSレコードの役割

DNS委任

DNS委任とは?サブドメインを別管理する仕組み

DNSを運用していると、「サブドメインだけ別のDNSサーバで管理したい」という場面があります。

例えば企業全体では example.com を管理しているものの、開発部門では dev.example.com を独自に管理したい場合があります。

このような場合に利用される仕組みがDNS委任(Delegation)です。

DNS委任はDNS階層構造の特徴を活かした仕組みであり、大規模な組織やクラウドサービスでも広く利用されています。

本記事ではDNS委任の仕組みやNSレコードとの関係、実際の設定例について解説します。

DNS委任とは

DNS委任とは、あるドメイン配下の管理権限を別のDNSサーバへ委譲する仕組みです。

例えば次のような構成を考えます。

example.com
 ├─ www.example.com
 ├─ mail.example.com
 └─ dev.example.com

通常はexample.comの権威DNSサーバがすべて管理します。

しかし、dev.example.comだけを別のDNSサーバへ委任できます。

なぜDNS委任が必要なのか

小規模な環境では1つのDNSサーバですべて管理できます。

しかし組織が大きくなると管理を分離したい場面が増えます。

  • 開発部門と本番環境を分離したい
  • 子会社ごとに管理したい
  • クラウドサービスへ委任したい
  • 部門単位でDNS管理を任せたい

DNS委任を利用すると管理を分散できます。

委任しない場合の構成

example.com DNS

www.example.com
mail.example.com
dev.example.com
test.example.com
api.example.com

すべてのレコードを1つのゾーンで管理します。

管理対象が増えると運用負荷も増加します。

委任した場合の構成

example.com DNS
 ├─ www.example.com
 ├─ mail.example.com
 └─ dev.example.com → 委任

dev.example.com DNS
 ├─ test.dev.example.com
 ├─ api.dev.example.com
 └─ db.dev.example.com

dev.example.com以下を別のDNSサーバで管理できます。

DNS委任の仕組み

DNS委任はNSレコードによって実現されます。

親ゾーン側に次のような設定を行います。

dev.example.com. IN NS ns1.dev.example.com.
dev.example.com. IN NS ns2.dev.example.com.

これにより、dev.example.comに関する問い合わせは指定されたDNSサーバへ転送されます。

名前解決の流れ

例えば次の名前を問い合わせます。

api.dev.example.com

名前解決は次の流れになります。

PC
↓
キャッシュDNS
↓
ルートDNS
↓
TLD DNS
↓
example.com権威DNS
↓
dev.example.comのNS情報取得
↓
dev.example.com権威DNS
↓
最終回答

PC
↓
キャッシュDNS
↓
ルートDNS
↓
TLD DNS
↓
example.com権威DNS
↓
dev.example.comのNS情報取得
↓
dev.example.com権威DNS
↓
最終回答

親ゾーンは最終回答を持っていません。

委任先DNSサーバを案内するだけです。

NSレコードの役割

NSレコードは権威DNSサーバを示すレコードです。

example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.

委任時にも利用されます。
dev.example.com. IN NS ns1.dev.example.com.

DNS委任では特に重要なレコードです。

グルーレコードとは

委任先DNSサーバ自身が委任先ドメイン内に存在する場合があります。

dev.example.com. IN NS ns1.dev.example.com.

この場合、ns1.dev.example.comのIPアドレスが分からないと問い合わせできません。

そこで利用されるのがグルーレコード(Glue Record)です。

グルーレコードの例

dev.example.com. IN NS ns1.dev.example.com.
ns1.dev.example.com. IN A 192.0.2.50

親ゾーン側でIPアドレスも管理します。

これにより問い合わせ先DNSサーバへ到達できます。

クラウドサービスとDNS委任

クラウド環境でもDNS委任は頻繁に利用されます。

例えばAWS Route53です。

example.com
↓
AWS Route53
↓
dev.example.com

サブドメインだけクラウドDNSへ委任できます。

企業での利用例

企業では次のような構成がよくあります。


example.com
 ├─ 社内システム
 ├─ Webサイト
 ├─ メール
 └─ 開発環境

開発環境だけ別チームが管理するケースがあります。

DNS委任により管理権限を分離できます。

BINDでの設定例

親ゾーンです。

dev IN NS ns1.dev.example.com.
dev IN NS ns2.dev.example.com.

子ゾーンです。

zone "dev.example.com" {
    type master;
    file "dev.example.com.zone";

これにより独立したゾーンとして管理できます。

よくあるトラブル

NSレコードの設定ミス

委任先DNSサーバへ到達できません。

グルーレコード不足

DNSサーバのIPアドレスが分からず名前解決できません。

子ゾーン未設定

委任先にゾーンが存在しない場合です。

権威DNSサーバ停止

委任先全体が利用できなくなります。

digコマンドで確認する

委任状況はdigで確認できます。

dig NS dev.example.com

権威DNSを確認できます。

経路を追跡する場合です。

dig +trace api.dev.example.com

委任の流れを確認できます。

実務で覚えておくポイント

  • DNS委任は管理権限の分離機能
  • NSレコードで実現する
  • サブドメイン単位で委任可能
  • グルーレコードが重要
  • クラウドDNSでも頻繁に利用される

まとめ

DNS委任とは、サブドメインの管理権限を別のDNSサーバへ委譲する仕組みです。

NSレコードを利用して実現され、大規模組織やクラウドサービスで広く利用されています。

また、委任先DNSサーバが委任先ドメイン内に存在する場合はグルーレコードも必要になります。

DNS委任を理解することで、ゾーン設計やDNS運用、クラウド環境との連携をより深く理解できるようになります。