今回は DNS におけるサブドメインの委任についてお話しします。
なお、DNS を理解するためにはゾーンファイルの書き方を理解するのが一番の近道なので、以下の記事を一読していただけると理解が早まるかと思います。
サブドメインについて
例えば、example.com というドメインをあなたが管理しているとします。example.com のゾーンファイルは以下のようになっています。
$ORIGIN example.com.$TTL 3600@ IN SOA ( ns1.example.com. postmaster.example.com. 2019062301 3600 900 604800 3600 ) IN NS ns1ns1 IN A 172.16.0.250www IN A 10.10.10.10
example.com に sales サブドメインを作成したいという要望があったとします。この時、選択肢は2つあります。サブドメインを「委任する」か「委任しない」かです。
サブドメインを委任する場合
サブドメインを委任する場合、サブドメイン用のネームサーバが必要になります。そして example.com のネームサーバのゾーンファイルは以下のようになります。
$ORIGIN example.com.$TTL 3600@ IN SOA ( ns1.example.com. postmaster.example.com. 2019062301 3600 900 604800 3600 ) IN NS ns1sales IN NS ns1.salesns1 IN A 172.16.0.250ns1.sales IN A 172.17.0.200www IN A 10.10.10.10
そして sales.example.com のネームサーバのゾーンファイルは以下のようになります。
$ORIGIN sales.example.com.$TTL 3600@ IN SOA ( ns1.sales.example.com. postmaster.sales.example.com. 2019062301 3600 900 604800 3600 ) IN NS ns1ns1 IN A 172.17.0.200hanbai IN A 172.17.0.110keiyaku IN A 172.17.0.120
サブドメインを委任しない場合
サブドメインを委任しない場合、sales.example.com のレコードは example.com のネームサーバが管理することになります。
$ORIGIN example.com.$TTL 3600@ IN SOA ( ns1.example.com. postmaster.example.com. 2019062301 3600 900 604800 3600 ) IN NS ns1ns1 IN A 172.16.0.250www IN A 10.10.10.10hanbai.sales IN A 172.17.0.110keiyaku.sales IN A 172.17.0.120
委任について
DNS のゾーンとは、委任によって管理を任された範囲のことを指します。サブドメインを委任することで、委任元は委任先の委任情報のみを管理すればよいので、管理が容易になります。DNS における委任とは管理性の向上を図った技術という事を念頭に置いておきましょう。
今回のように、サブドメインのホストが少ない場合は、ドメインを委任しない=ゾーンを分けないという考えもあります。ドメインとゾーンをイコールで考えると名前空間の理解の妨げになるので注意してください。