特集 インターネット「常時」接続計画

第6回 DNSサーバの設定と確認

3.正引きDNSゾーンの定義(2)

デジタルアドバンテージ
2002/03/06


正引きドメインのSOAレコードの編集

 以上でネーム・サーバに対するAレコードが定義できたので、次はこれをSOAレコードにネーム・サーバとして登録する。SOAレコードを編集するには、ドメイン名を右クリックして、[プロパティ]を選択する。

SOAレコードの編集
SOAレコードにはドメインに関する重要な情報が登録されている。これを編集して、ネーム・サーバ情報などを更新する。
  ドメイン名を右クリックして、ポップアップ・メニューから[プロパティ]をクリックする。
  これはウィザードで作成されたオリジナルのSOAレコード。ネーム・サーバ情報などを編集する必要がある。
  デフォルトのNSレコードは内部サーバ名になっているので、これを削除し、代わりに先ほど定義したネーム・サーバ情報に置き換える。
  先ほど定義した、nsというネーム・サーバ・ホスト。

 ドメインの[プロパティ]を選択すると、次のようなSOAレコードの編集ダイアログが表示される。インターネット向けのDNSサーバにするためには、いくらか設定を変更する必要がある。

動的更新の禁止

 Windows 2000 ServerのDNSサーバは、Active Directory環境などで利用するために動的更新が可能になっている。つまり、クライアント・マシンが自分自身のホスト名やそのIPアドレス(IPアドレスはDHCP環境だと起動するたびに変わる可能性がある)をDNSサーバに登録するという機能である。だがインターネット向けのDNSサーバではこのような機能は不要だし、勝手に登録されたクライアントのホスト名が外部へ漏洩してしまう危険性もあるので、動的更新は無効にしておくべきである。

DNSサーバの動作モードの設定
SOAレコードの[全般]タブでは、DNSサーバの動作モードなどの設定を行うことができる。動的更新は不要なので無効にしておく。
  動作モードを変更するにはこの[全般]タブを使う。
  このゾーン定義を一時的に無効にしたり、有効にしたりするためのボタン。
  プライマリ・サーバやセカンダリ・サーバといったゾーンの動作モードの切り替え。
  ゾーン・ファイル名。DNSのゾーン定義をファイルへ書き出す場合のファイル名の指定。
  動的更新を無効にするには[いいえ]を選択する。インターネット向けのDNSサーバではこの機能は使う必要がないので、[いいえ]にしておく。
  不要なレコードのクリーンアップなどに使用する。動的更新などがなければデフォルト設定のままでもよい。

ゾーン情報の定義

 SOAレコードには、ゾーンに関する重要な情報が数多く定義されている。DNSサーバを運営する場合にはこれらの設定が非常に重要なので、よく理解しておいていただきたい。特に「シリアル番号」と「更新間隔/再試行間隔/期限」は、その設定を間違うと、外部から正しくDNSレコードを引くことができなくなったりするので注意しよう。

■シリアル番号
 ゾーン情報には「シリアル番号」という識別用の(32bitの)整数値が付けられている。Windows 2000 ServerのDNSサーバでは、デフォルトでは1という数値が割り当てられていて、何らかのレコードを追加/削除したり、変更したりすると数値が増加するようになっている。UNIXなどのDNSサーバの場合には、一般的には200202271などというふうに、「西暦4桁+月2桁+日2桁+数値1桁」という数値を(ユーザーが手動で)付けることが多い。そしてゾーン内のデータを更新すると同時に、その更新年月日を元にしたシリアル番号を付ける。1日のうちに何度も更新する場合は、最後の桁を1ずつ増加させる。

 シリアル番号はゾーン・データが改訂されているかどうかを表すために使われる。セカンダリDNSサーバがゾーン情報をプライマリDNSサーバから取得する場合、このシリアル番号もキャッシュしている。取得したレコードの有効期限が切れて再度プライマリDNSサーバに問い合わせる場合には、まずSOAレコードだけを取得してそのシリアル番号を調べ、番号が増加していなければ(同じか、小さければ)ゾーン内のデータは変更されていないものとみなす。これにより無用なDNSレコードの取得を防いで、ネットワーク・トラフィックを抑えたり、応答速度を向上させたりすることができる。もしシリアル番号が増加していれば、ローカルにキャッシュされたレコードを破棄して、プライマリDNSサーバから新しいレコードを取得する。

 このような仕組みのため、ゾーン・データを更新した場合は(例:あるホストに割り当てられているIPアドレスを変更した場合など)、必ずこのシリアル番号も増加させなければならない。さもないとセカンダリDNSサーバでは、データが変更されていないとみなして、キャッシュされている古いままのIPアドレスを参照することになる。ただし以下で述べる「更新間隔」が過ぎてデータの有効期限が切れると、再度データを取得し直すことになる。だからシリアル番号を増加させなくても時間がたてば正しいデータが参照されるようになるが、それまで時間がかかるので、(直したはずなのに、データを正しく取得できないなどという)無用なトラブルを引き起こす可能性がある。

■更新間隔/再試行間隔/期限
 これはゾーン・データ(SOAレコードに記録されたデータ)がいつまで有効かを表す値である。セカンダリDNSサーバが取得したSOAレコードは、この期限が来るまでは変更がないものとみなされる。例えば「期限」が1日になっていると、このプライマリDNSサーバからSOAレコードを取得したセカンダリDNSサーバは、そのデータが1日間はずっと有効であるとみなす。たとえプライマリDNSサーバ側でSOAレコードの内容を更新しても(シリアル番号を更新しても)、1日たたないとデータを再取得しない。

 実際には、プライマリDNSサーバのデータは(ほかのDNSサーバなどで)さらに何段もキャッシュされていることがあるので、世界中のDNSサーバへSOAレコードの変更情報が伝わるには有効期限の何倍もの時間がかかることになる。よって頻繁にデータを書き換える必要がある場合は(例えば今回のような、DNSサーバの立ち上げ初期などは)、この更新時間を短くしておかないと、ローカルでは正しくDNSサーバが動作していても、インターネット側からは(新しいデータがまだ届いていないので)見ることができない、という状態になる。具体的には、インターネット側からメールを出したり、Webサーバを閲覧したりできないという症状が起こる。最初のうちは期限を数分から数10分にしておき、安定的に運用できるようになれば期限を1日とか1週間などに延ばせばよいだろう(あまり短いとネットワークのトラフィックやDNSサーバの負荷が増える)。そして、ホストのIPアドレスを変更したり、ネットワークの構成を変えたりする予定がある場合は、1週間くらい前から期限を短くして準備しておく。

 SOAレコードにセットする3つの時間情報はそれぞれ次のとおりである。「更新間隔」は、セカンダリDNSサーバがプライマリDNSサーバに問い合わせを行う時間間隔である。セカンダリDNSサーバは、ゾーンのSOAレコード情報が変更されていないかどうかをこの時間間隔ごとに調べる。そしてシリアル番号が増加していればゾーン情報が更新されているとみなし、DNSのレコードをゾーン転送(一括転送)して、自身の情報を更新する。デフォルトでは15分であるが、安定的に運用が始まればもっと長くするべきであろう。

 「再試行間隔」は、プライマリDNSサーバに接続できないときに、セカンダリDNSサーバがリトライする時間間隔である。プライマリDNSサーバへのネットワーク経路がダウンしていたり、プライマリDNSサーバ自身がダウンしていたりする場合に、この時間間隔でリトライを行う。デフォルトでは10分となっている。

 「期限」は、取得したSOAレコードの情報が有効である最大時間を表す。この時間が過ぎるとSOAレコードの内容は無効となり、再度取得が試みられることになる。この値は「更新間隔」よりも長くするのが普通である。デフォルトでは1日になっているが、安定的に運用している場合には3日とか、1週間程度に延ばしておいてもよい。

ゾーンのSOAレコードの属性
SOAレコードには、ゾーン(ドメイン)定義のベースとなる重要な情報が格納されている。ウィザードで作成したデフォルトのままではネーム・サーバ情報などが異なるのでここで修正しておく。
  SOAレコードの値を修正するにはこの[SOA]タブを選択する。
  シリアル番号。SOAレコードを修正した場合はこの値を増加させる。セカンダリDNSサーバはこの数値が増加していれば、DNSレコードに変更があったとみなし、ゾーン情報の更新を行う。
  これをクリックするとシリアル番号が1つ増加する。通常はレコードを更新するとDNS管理ツールが自動的に増加させるが、これを使って手動で管理することも可能。
  このドメインの情報を持つプライマリDNSサーバのFQDN名。「ns.d-advantage.jp.」を指定しておく。
  のFQDN名はすでにDNSのAレコードとして登録済みなので、この[参照]ボタンを使ってそこから選ぶこともできる。
  ドメインの管理責任者のメール・アドレス。あるユーザーがこのドメインの管理者へコンタクトしたい場合に、このアドレスへメールを送ることがある。ただしメール・アドレス中の「@」は「.」に置き換えて記述する(DNSレコード中では「@」は特別な意味を持つので使用できない)。例えばメール・アドレスが「postmaster@d-advantage.jp」ならば(ドメインの管理者は通常はpostmasterというメール・アドレスを持つことになっている)、「postmaster.d-advantage.jp」とする。
  セカンダリDNSサーバがゾーン情報の更新をチェックする間隔。この時間ごとに、ゾーンのシリアル番号を調べ、増加していればゾーン転送を行う。
  DNSサーバへ接続できない場合のリトライ時間間隔。
  セカンダリDNSサーバにおける、SOAレコードの有効期限。の時間間隔よりも長くすること。
  レコードのTTL(有効期限)値のデフォルト値。
  このレコードのTTL(有効期限)値。
 

 INDEX
  [特集]インターネット「常時」接続計画
  第6回 DNSサーバの設定と確認
     1.DNSサーバの管理
     2.正引きDNSゾーンの定義(1)
   3.正引きDNSゾーンの定義(2)
     4.正引きDNSゾーンの定義(3)
     5.逆引きDNSゾーンの定義(1)
     6.逆引きDNSゾーンの定義(2)
     7.DNSサーバの動作確認
 
 インターネット「常時」接続計画


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間