[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

SOAレコード

pointこの用語のポイント

pointゾーンファイルの中身だよ

pointゾーン(管理する範囲)に関する情報が書かれているよ

スポンサーリンク

簡単に書くよ

SOAレコードとは

権威DNSサーバさんがお仕事で使う対応表(ゾーンファイル)の中身で、ゾーン(管理する範囲)に関する情報あれこれが書かれている行のこと
です。

image piyo

詳しく書くよ

まず最初に、このページの説明は「DNS」「DNSサーバ」「権威DNSサーバ」「ゾーンファイル」の意味と関係性を理解している前提で記載します。
簡単に補足はしますが、可能であれば、上記の用語の意味を理解してから続きをご覧ください。

それでは順番に見ていきましょう。

DNSサーバにはフルサービスリゾルバDNSキャッシュサーバ)と権威DNSサーバ(DNSコンテンツサーバ)の2種類があります。

一般的には、パソコンさんからの問い合わせはフルサービスリゾルバさんが受け付けて対応しますが、フルサービスリゾルバさんが対応しきれない場合には、権威DNSサーバさんに「こんな問い合わせが来たんだけど、知ってたら教えて~」と助けを求めます。

SOAレコード

権威DNSサーバさんは、仕方ないのでフルサービスリゾルバさんを助けてあげることにしました。
自分の管理しているエリアの情報が書かれているファイル(ゾーンファイル)を見て、フルサービスリゾルバさんからの問い合わせに答えてあげます。

SOAレコード2

権威DNSサーバさんはゾーンファイルを見ながらお仕事をしています。
ゾーンファイルの中には、いろいろな情報が書かれています。

そのいろいろな情報の中の一つで、権威DNSサーバさんが担当しているゾーン(管理する範囲)に関する情報が書いてある行が「SOAレコード」です。

SOAレコードを書く際の書式は、以下の通りです。

【ドメイン名】     【クラス名】 SOA 【DNSサーバのドメイン名】 【連絡先】 (
        【シリアル番号】
        【更新チェックの間隔】
        【リトライ間隔】
        【問い合わせ諦めるぜ期間】
        【ネガティブキャッシュの有効期限】 )


実際のSOAレコードは、例えば以下のような内容になります。

@     IN SOA ns1.example.com. postmaster.example.com. (
        2014033101
        10800
        3600
        604800
        86400 )


「IN」の後ろに「SOA」と書いてありますよね。それがSOAレコードの目印です。

それでは項目を一つずつ見ていきますね。

「ドメイン名」は管理する範囲のドメイン名を記述する場所ですが、普通は「@」と書きます。決まり文句だと思って構いません。

「クラス名」にはクラス名を書きます……が、普通は「IN」と書きます。これも決まり文句だと思って構いません。
ちなみに「IN」は「Internet」の「IN」です。IN/OUTの「IN」ではありませんのでご注意ください。

つまり

@     IN SOA 【DNSサーバのドメイン名】 【連絡先】 (
        【シリアル番号】
        【更新チェックの間隔】
        【リトライ間隔】
        【問い合わせ諦めるぜ期間】
        【ネガティブキャッシュの有効期限】 )


までは固定だと思っても構いません。

ここからは環境にって変わります。

「DNSサーバのドメイン名」には、そのゾーンファイルを使ってお仕事をするDNSサーバさんのお名前を書きます。
「自分の名前は○○です!」なDNSサーバさんの自己紹介だと思って構いません。

「連絡先」には、何かあった際の連絡先メールアドレスを書きます。
メールアドレスの「@」は「.」に変えて書きますのでご注意ください。また、他に「.」を使っている場合は「\.」に変えます。
例えば、メールアドレス

piyo.piyota@example.com

を載せたい場合は

piyo\.piyota.example.com

と書きます。

「シリアル番号」はゾーンファイルを更新する度に変更する適当な数字です。

シリアル番号の説明を進める前に、DNSサーバさんの仕組みをもう少し補足しておきます。

DNSサーバさんは普通、2台同時に動いています。どっちかがぶっ壊れても困らないようにです。
メインで動いている方は「プライマリDNSサーバ」と言います。壊れたとき用のサブは「セカンダリDNSサーバ」と呼ばれます。

SOAレコード3

プライマリDNSサーバさんもセカンダリDNSサーバさんもゾーンファイルを使います。
ですから当然、ゾーンファイルも2つあります。

SOAレコード4

ですが、この2つのゾーンファイルは同じ物です。わざわざ人間様の手をわずらわせるのは恐縮です。

そこでセカンダリDNSサーバさんは、プライマリDNSサーバさんのゾーンファイルをコピーしてきて使っています。
定期的にチェックしに行って、ゾーンファイルが新しかったらコピーしてくるのです。

SOAレコード5

この「ゾーンファイルが新しいかの判断」に使う項目が、シリアル番号です。
セカンダリDNSサーバさんは自分の使っているゾーンファイルのシリアル番号とプライマリDNSサーバさんの使っているゾーンファイルのシリアル番号を比較して、数字が違うときは、ゾーンファイルをコピーします。

SOAレコード6

同じであれば、コピーしません。

SOAレコード7

これがシリアル番号の使い道です。セカンダリDNSサーバさんに対するゾーンファイル更新通知用の項目ですね。
ゾーンファイルを更新した際には、必ずシリアル番号も変更してください。
シリアル番号を更新しないと、セカンダリDNSサーバさんがゾーンファイルをコピーしてくれません。
プライマリDNSサーバさんとセカンダリDNSサーバさんで違う内容のゾーンファイルを使うことになってしまいます。

またシリアル番号はうっかりミスを防ぐためにも「年月日+通番」で書くのが慣例です。
例えば、ゾーンファイルの変更が2014年8月6日に行った3回目の変更だとしたら「2014080603」のように書きます。
年月日を入れておけば、うっかり前回更新したシリアル番号と同じ番号にしちゃった~のような事態が防げますからね。

次の項目の話に移ります。

「更新チェックの間隔」は、セカンダリDNSサーバさんが「ゾーンファイル新しくなったかな~?」とチェックに来る間隔です。
「10800」のように秒単位で指定します。

「リトライ間隔」は、セカンダリDNSサーバさんが「ゾーンファイル新しくなったかな~?」とチェックしようとして失敗した際の、再チャレンジまでの待ち時間です。
これも「3600」のように秒単位で指定します。

「問い合わせ諦めるぜ期間」は、セカンダリDNSサーバさんが「ゾーンファイル新しくなったかな~?」とチェックするのを諦める時間です。
仮にプライマリDNSサーバさんが力尽きているとすると、セカンダリDNSサーバさんがいくらチェックしようとしても失敗します。何回試しても無駄足です。
失敗が一定期間以上続くと「あぁ、プライマリDNSサーバさんはどこかおかしいんだな」と判断し、いろんな意味で諦めます。
このセカンダリDNSサーバが諦めるまでの期間が、問い合わせ諦めるぜ期間です。
これも「604800」のように秒単位で指定します。

ネガティブキャッシュの有効期限」はネガティブキャッシュの有効期限です。
そもそも「ネガティブキャッシュって何よ?」ですよね。

DNSサーバさんは「キャッシュ」と呼ばれるカンペ機能を持っています。
一度あった問い合わせ内容とその回答をカンペにメモっておいて、次回以降はカンペを見ることでお客さまをお待たせしない機能です。

このキャッシュのうちネガティブなキャッシュ、「えっ?そんなこと訊かれても分からないよ」な問い合わせ内容をメモったカンペがネガティブキャッシュです。

「えっ?そんなこと訊かれても分からないよ」な問い合わせを受けたDNSサーバさんは「分かりませ~ん」と返します。

SOAレコード8

ですが、人というのは自分の過ちを中々認めたがらないものです。大抵の場合、もう一度同じ内容の問い合わせがきます。
間違い電話が掛かってきて「いえ、鈴木さんじゃありません」と言って切ったのに、直後にまた「鈴木さんのお宅ですか?」と電話が掛かってくるのと一緒ですね。

SOAレコード9

DNSサーバさんも同じような経験が多々あり、その度に調べて「分かりませ~ん」と答えるのはかったるいのです。

そこでDNSサーバさんは「分かりませ~ん」と答えた内容もカンペにメモっています。
この「分かりませ~ん」と答えた内容をメモったカンペがネガティブキャッシュです。

SOAレコード10

そして、同じ内容のネガティブキャッシュをいつまで使うかの期限が、ネガティブキャッシュの有効期限です。
有効期限が切れたカンペは捨てちゃいます。
この項目も「86400」のように秒単位で指定します。

ざっと、こんなところでしょうか。

image piyo2

一言でまとめるよ

まぁ「SOAレコード」って単語が出てきたら「ゾーン(管理する範囲)に関する情報が書いてあるんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク