SOAレコード【DNSレコード】
ゾーンファイルの中身だよ
ゾーン(管理する範囲)に関する情報が書かれているよ
簡単に書くよ
SOAレコード【DNSレコード】(英:SOA record)とは
自分の管理している情報を教えてあげるのが仕事のDNSサーバさん
(IPアドレスとドメイン名の対応を管理するのが仕事のコンピュータ)(権威DNSサーバ)がお仕事で使うネタ帳(ゾーンファイル)の中身
であり
管理する範囲(ゾーン)に関する情報あれこれが書かれている行のこと
です。
詳しく書くよ
最初に留意事項です。
このページの説明は
・DNS
・DNSサーバ
・権威DNSサーバ
・ゾーンファイル
の意味と関係性を理解している前提で書きます。
簡単に補足はしますけどね。
できれば上記の用語の意味を理解してから続きを ご覧ください。
それでは順番に見ていきましょう。
DNSサーバには
1.フルサービスリゾルバ(DNSキャッシュサーバ)
2.権威DNSサーバ(DNSコンテンツサーバ)
の2種類あります。
一般的には、パソコンさんからの問い合わせはフルサービスリゾルバさんが受け付けて対応します。
フルサービスリゾルバさんが対応しきれない場合には、権威DNSサーバさんに「こんな問い合わせが来たんだけど、知ってたら教えて~」と助けを求めます。
権威DNSサーバさんは、仕方ないのでフルサービスリゾルバさんを助けてあげることにしました。
自分の管理しているエリアの情報が書かれているファイル(ゾーンファイル)を見て、フルサービスリゾルバさんからの問い合わせに答えてあげます。
権威DNSサーバさんはゾーンファイルを見ながらお仕事をしています。
ゾーンファイルの中には、いろいろな情報が書かれています。
その「いろいろな情報」のひとつで
権威DNSサーバさんが担当しているゾーン(管理する範囲)に関する情報が書いてある行
が「SOAレコード」です。
SOAレコードを書くときの書式は、以下の通りです。
【ドメイン名】 【クラス名】 SOA 【DNSサーバのドメイン名】 【連絡先】 (
【シリアル番号】
【更新チェックの間隔】
【リトライ間隔】
【問い合わせ諦めるぜ期間】
【ネガティブキャッシュの有効期限】 )
実際のSOAレコードは、例えば以下のような内容になります。
@ IN SOA ns1.example.com. postmaster.example.com. (
2014033101
10800
3600
604800
86400 )
「IN」の後ろに「SOA」と書いてありますよね。
それがSOAレコードの目印です。
それでは項目を1つずつ見ていきますね。
「ドメイン名」は管理する範囲のドメイン名を記述する場所ですが、普通は「@」と書きます。
決まり文句だと思って かまいません。
「クラス名」にはクラス名を書きますが、普通は「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サーバ」と呼ばれます。
プライマリDNSサーバさんもセカンダリDNSサーバさんもゾーンファイルを使います。
ですから当然、ゾーンファイルも2つあります。
ですが、この2つのゾーンファイルは同じ物です。
わざわざ人間様の手をわずらわせるのは恐縮です。
そこでセカンダリDNSサーバさんは、プライマリDNSサーバさんのゾーンファイルをコピーして使っています。
定期的にチェックしに行って、ゾーンファイルが新しかったらコピーしてくるのです。
この「ゾーンファイルが新しいかの判断」に使う項目がシリアル番号です。
セカンダリDNSサーバさんは自分の使っているゾーンファイルのシリアル番号とプライマリDNSサーバさんの使っているゾーンファイルのシリアル番号を比較して、数字が違うときはゾーンファイルをコピーします。
同じであれば、コピーしません。
これがシリアル番号の使い道です。
セカンダリDNSサーバさんに対するゾーンファイル更新通知用の項目ですね。
ゾーンファイルを更新したときは、必ずシリアル番号も変更してください。
シリアル番号を更新しないと、セカンダリDNSサーバさんがゾーンファイルをコピーしてくれません。
プライマリDNSサーバさんとセカンダリDNSサーバさんで違う内容のゾーンファイルを使うことになってしまいます。
またシリアル番号はうっかりミスを防ぐためにも「年月日+通番」で書くのが慣例です。
例えば、ゾーンファイルの変更が「2017年10月14日に行った3回目の変更」だとしたら「2017101403」のように書きます。
年月日を入れておけば「うっかり前回更新したシリアル番号と同じ番号にしちゃった~」のような事態が防げますからね。
次の項目の話に移ります。
「更新チェックの間隔」は、セカンダリDNSサーバさんが「ゾーンファイル新しくなったかな~?」とチェックに来る間隔です。
「10800」のように秒単位で指定します。
「リトライ間隔」は、セカンダリDNSサーバさんが「ゾーンファイル新しくなったかな~?」とチェックしようとして失敗したときの再チャレンジまでの待ち時間です。
これも「3600」のように秒単位で指定します。
「問い合わせ諦めるぜ期間」は、セカンダリDNSサーバさんが「ゾーンファイル新しくなったかな~?」とチェックするのを諦める時間です。
仮にプライマリDNSサーバさんが力尽きているとすると、セカンダリDNSサーバさんがいくらチェックしようとしても失敗します。何回試しても無駄足です。
失敗が一定期間以上続くと「あぁ、プライマリDNSサーバさんはどこかおかしいんだな」と判断し、いろんな意味で諦めます。
このセカンダリDNSサーバが諦めるまでの期間が、問い合わせ諦めるぜ期間です。
これも「604800」のように秒単位で指定します。
「ネガティブキャッシュの有効期限」はネガティブキャッシュの有効期限です。
そもそも「ネガティブキャッシュって何よ?」ですよね。
DNSサーバさんは「キャッシュ」と呼ばれるカンペ機能を持っています。
一度あった問い合わせ内容とその回答をカンペにメモっておいて、次回以降はカンペを見ることでお客さまをお待たせしない機能です。
このキャッシュのうちネガティブなキャッシュ、「えっ?そんなこと聞かれても分からないよ」な問い合わせ内容をメモったカンペがネガティブキャッシュです。
「えっ?そんなこと聞かれても分からないよ」な問い合わせを受けたDNSサーバさんは「分かりませ~ん」と返します。
ですが、人というのは自分の過ちを中々認めたがらないものです。
大抵の場合、もう一度同じ内容の問い合わせがきます。
間違い電話が掛かってきて「いえ、鈴木さんじゃありません」と言って切ったのに、直後にまた「鈴木さんのお宅ですか?」と電話がかかってくるのと一緒ですね。
DNSサーバさんも同じような経験が多々あります。
その度に調べて「分かりませ~ん」と答えるのは、かったるいのです。
そこでDNSサーバさんは「分かりませ~ん」と答えた内容もカンペにメモっています。
この「分かりませ~ん」と答えた内容をメモったカンペがネガティブキャッシュです。
そして、同じ内容のネガティブキャッシュをいつまで使うかの期限が、ネガティブキャッシュの有効期限です。
有効期限が切れたカンペは捨てちゃいます。
この項目も「86400」のように秒単位で指定します。
ざっと、そんなところでしょうか。
結構、駆け足で説明しました。
できれば他のところで情報を補完してください。
一言でまとめるよ
まぁ「SOAレコード」って単語が出てきたら「ゾーン(管理する範囲)に関する情報が書いてあるんだな~」と お考えください。
おまけ
■訳してみるよ
「SOA」は、そのまんま「SOA」でお願いします。
「record(レコード)」の意味は「記録」とか「成績」とか「レコード」とか「記録する」とか「録音する」とかです。
何となく くっつけると
SOAの記録
となります。
■検索してみる?






