DNS/BIND サーバのテストとは,概念的には,必要な情報が置かれている場所を探し出すことです。
具体的には,探している情報を格納しているサーバを見つけるまで,各サーバ群およびそれらのデータベースを調べて,ネットワークをトレースすることです。
この章では,情報の位置を調べるために使用できるテストについて説明します。
11.1 用語一覧
次に,この章で使用されている用語を示します。 テスト実行中に,必要に応じて参照してください。
ローカルに情報を格納しているサーバ。 オーソライタティブ・サーバの例としては,マスタ・サーバおよびスレーブ・サーバがあります。 この両サーバは,与えられたドメインに対してそれぞれ 1 次権限および 2 次権限を持っています。
これとは対照的に,要求された情報を持っていないサーバは,ターゲット・ホストについての情報を他のサーバに要求する必要があります。 そのような要求に答えられるフォワーダのリストに,クエリーを転送するタイプのサーバには,たとえば転送専用のサーバがあります。
現在ログインしてテストを行っているサーバ。
DNS 照会に対して自身のデータベースおよびキャッシュ内のデータから応答できるサーバ。
オリジナル・データを持っているかどうかは関係ありません。
転送サーバのエントリは
named.boot
ファイルに書き込めます。
ネーム・サーバ・レコードは,ドメインに属するシステムにドメイン名をマップし, システムがオーソライタティブ・ドメインのネーム・サーバを知っているかどうかを決定します。 次に,ネーム・サーバ・レコードの形式を示します。
domain-name IN NS machine-name
左がドメイン名で,右がドメインにサービスするマシンの名前です。
ターゲット・ドメインのデータを他のサーバからコピーするサーバ。 ほとんどの場合,マスタ・サーバのデータをコピーしますが,他のスレーブ・サーバからコピーする場合もあります。
スレーブ・サーバは,与えられた 1 つのドメイン内のネーム・サービス情報についての 2 次権限を持ちます。
SOA レコードは,オーソリティ・ゾーンの始点をマークします。 このレコードは,各マスタ・データベース・ファイルの最初にあります。 SOA レコードの形式を次に示します。
domain-name IN SOA machine-name
ターゲット・ホスト名の,最初のピリオド (.) 以降の部分。
解決しようとしているホストの名前。 ターゲット・ドメイン名は,ターゲット・ホスト名の一部です。
図 11-1
は, この後の節にあるテストから得る情報を記入するためのDNS サーバのテスト用ワークシートを示しています。
本書をオンラインで参照している場合には,使用しているブラウザのプリント機能を使用して,このワークシートをプリントできます。
ワークシートには現在のサーバ名,現在のドメイン名,そしてターゲット・ドメイン名を記入してください。
図 11-1: DNS サーバのテスト用ワークシート
現在のサーバがターゲット・データを解決できるかどうかを判定するには, 次の手順に従ってください。
現在のサーバがターゲット・データにアクセスできるかどうかを判定します。 次のコマンドを使用します。
# nslookup Default Server: host1.corp.com Address: 127.0.0.1 > server localhost Default Server: localhost.corp.com Address: 127.0.0.1 > set timeout=45 > set retry=2 > target_host.target_domain.
nslookup
コマンドの実行結果 |
処置 |
成功 | 手順 3 に進みます。 |
失敗 | 1 回目の場合は,手順 2 に進みます。 |
2 回目の場合は,11.4 節に進みます。 |
次のコマンドを使用して,
named
デーモンが実行されていることを確かめます。
# ps gax | grep named
named
デーモンの状態 |
処置 |
実行されている。 | 手順 1 に進みます。 |
実行されていない。 | /sbin/init.d/named start
コマンドを使用して,デーモンをスタートさせます。
Internet name service started
というメッセージが表示された場合は,手順 1 に進みます。 |
メッセージが表示されない場合は,マシンが DNS サーバとして構成されていません。 マシンの構成を決めてください。 詳細については, 2.5 節を参照してください。 |
クライアント・システムにログインして,nslookup
コマンドを使用してターゲット・データにアクセスします。
nslookup
コマンドの実行結果 |
処置 |
成功 | 手順は終了です。 クライアントはターゲット・データを解決できます。 |
失敗 | サーバは情報を認識していますが,クライアントに転送していません。
クライアントからログアウトします。
/sbin/init.d/named restart
コマンドを使用して,サーバで DNS を再起動させます。
クライアントにログインして,nslookup
コマンドを実行します。
それでもターゲット・データを解決できない場合は,誤ったサーバを指定しているか,または DNS サーバが正しく機能していません。 |
現在のサーバがマスタ・サーバとスレーブ・サーバのどちらであるかを判定するには,次の手順に従ってください。
ターゲット・ドメイン名を,/etc/named.conf
ファイルにあるマスタおよびスレーブ・エントリのすべてのドメイン名と比較します。
これらのエントリの形式は,次のとおりです。
zone "domain" {
type server-type;
file "filename.db";
};
次の例は,ターゲット・ドメイン zz.bb.cc.
と,そのサブセット群を示しています。
例 11-1: named.conf ファイル内でのターゲット・ドメインの見つけ方
# cat /etc/named.conf
.
.
.
options { directory "/etc/namedb"; }; zone "aa.bb.cc" { [1] type master; file "aa.bb.cc.db"; }; zone "cc" { [2] type master; file "cc.db"; }; zone "bb.cc" { [3] type slave; file "bb.cc.db"; masters { 128.102.0.42; }; }; zone "zz.bb.cc" { [4] type slave; file "zz.bb.cc.db"; masters { 128.102.29.73; }; };
.
.
.
このゾーン・エントリは,zz.bb.cc. ドメインのサブセットではありません。 [例に戻る]
このゾーン・エントリは zz.bb.cc.
ドメインのサブセットです。
サーバは cc.
ドメインのマスタ・サーバであり,このドメインの情報を
cc.db
ファイルに格納します。
[例に戻る]
このゾーン・エントリは zz.bb.cc.
ドメインのサブセットです。
サーバは bb.cc.
ドメインのスレーブ・サーバであり,このドメインの情報を
bb.cc.db
ファイルに格納します。
[例に戻る]
このゾーン・エントリは zz.bb.cc.
ドメインと一致しています。
サーバは zz.bb.cc.
ドメインのスレーブ・サーバであり,このドメインの情報を
zz.bb.cc.db
ファイルに格納します。
[例に戻る]
named.conf
ファイルのフォーマットについての詳細は,
named.conf
(8)
次の表の指示に従って,ワークシートの
named.boot
ファイル・セクションに情報を記録してください。
named.boot
エントリの比較結果 |
最初のフィールド | 処置 |
ターゲット・ドメイン名と一致する。 | マスタ | サーバの種類,ドメイン名,およびデータベース・ファイル名をワークシートに記入して,11.8 節に進みます。 |
スレーブ | サーバの種類,ドメイン名,データベース・ファイル名,およびホストのIPアドレスをワークシートに記入して,11.7 節に進みます。 | |
ターゲット・ドメイン名のサブセット。 | マスタ | サーバの種類,ドメイン名,およびデータベース・ファイル名をワークシートに記入して,手順 2 に進みます。 |
スレーブ | サーバの種類,ドメイン名,データベース・ファイル名,およびホストの IP アドレスをワークシートに記入して,手順 2 に進みます。 | |
ターゲット・ドメイン名と一致せず,サブセットでもない。 | マスタまたはスレーブ | 11.5 節に進みます。 |
ターゲット・ドメイン名を,ワークシートに記録されたデータベース・ファイルにあるすべてのネーム・サーバ (NS) のレコードと比較します。 次の表の中で指示された場合は,ワークシートの Nameserver セクションに情報を記録してください。 次のコマンドを使用して,NS レコードのリストを作成および表示します。
# grep -n NS database_file > ns_list # grep -n ORIGIN database_file >> ns_list # sort -n ns_list > ns_list.srt # cat ns_list.srt
次の例は,これらのコマンドで作成されたファイルを示しています。
ターゲット・ドメインは zz.bb.cc.
です。
例 11-2: DNS データベース内でのターゲット・ドメインの見つけ方
# cat ns_list.srt 1:$ORIGIN cc. 10: IN NS server_1.cc. 17:$ORIGIN cc. 18:bb IN NS server_3.bb.cc. 21:$ORIGIN cc. 22:bb IN NS server_4.bb.cc. 41:$ORIGIN bb.cc. 42:zz IN NS server_5.zz.bb.cc. [1] 45:$ORIGIN bb.cc. 46:zz IN NS server_6.bb.cc. [2]
このエントリは,ターゲット・ドメインの,長い名前のサブセット (厳密に一致) です。 直前の $ORIGIN 行のドメイン名 (.bb.cc.) が,この行のドメイン名 zz に追加されて,zz.bb.cc. となっています。 [例に戻る]
このエントリは,ターゲット・ドメインの,長い名前のサブセット (厳密に一致) です。 直前の $ORIGIN 行のドメイン名 (.bb.cc.) が,この行のドメイン名 zz に追加されて,zz.bb.cc. となっています。 [例に戻る]
NS レコードの状態 | サーバ | 処置 |
ワークシートに記入されたドメイン名より長いターゲット・ドメイン名のサブセットを含む。 | マスタまたはスレーブ | サーバは,ターゲット情報の 1 次権限または 2 次権限ではありません。 サーバの名前をワークシートに記入して,手順 3 に進みます。 |
ワークシートに記入されたドメイン名より短いか,または等しいターゲット・ドメイン名のサブセットを含む。 | マスタ | データベース・ファイルにターゲット情報が存在します。 11.8 節に進みます。 |
スレーブ | データベース・ファイルにターゲット情報が存在します。 11.7 節に進みます。 |
ワークシートに記入されたすべてのネーム・サーバの IP アドレスを,データベース・ファイルから検索します。 次のコマンドを使用します。
# grep -n ORIGIN database_file > ip_list # grep -n server_name database_file >> ip_list
.
.
.
# sort -n ip_list > ip_list.srt # cat ip_list.srt
ワークシートの対応サーバ名の隣りに IP アドレスを記入して, 11.5 節に進みます。
次に,これまで実行されたコマンドによって作成されたファイルの例を示します。
# cat ip_list.srt 1:$ORIGIN cc. 17:$ORIGIN cc. 21:$ORIGIN cc. 41:$ORIGIN bb.cc. 42:zz IN NS server_5.zz.bb.cc. 43:$ORIGIN zz.bb.cc. 44:server_5 IN A 10.140.48.3 [1] 45:$ORIGIN bb.cc. 46:zz IN NS server_6.bb.cc. 47:$ORIGIN bb.cc. 48:server_6 IN A 10.12.48.3 [2]
ターゲット・ドメインの情報を得るために現在のサーバが通信しているサーバを調べるには,次の手順に従ってください。
named.conf
ファイルを探索し,フォワーダ (forwarders) のエントリをすべて探し出します。
これらのエントリは,次のフォームを持っています。
options { directory "directory-name"; forward only; forwarders { IP-address; IP-address; }; };
次の表の中で指示された場合は,ワークシートの Forwarders セクションに情報を記録してください。
フォワーダの行 | 処置 |
ある | 現在のサーバは要求を転送します。 すべての転送サーバの IP アドレスをワークシートに記入して, 11.6 節に進みます。 |
ない | 現在のサーバは要求を転送しません。 手順 2 に進みます。 |
ターゲット・ドメイン名を,ワークシートに記録されたデータベース・ファイルに存在するすべてのネーム・サーバ (NS) のレコードと比較します。 次の表の中で指示された場合は,ワークシートの Nameserver セクションに情報を記録してください。
次のコマンドを使用して,各データベース・ファイルの NS レコードのリストを作成および表示します。
# grep -n NS database_file > ns_list # grep -n ORIGIN database_file >> ns_list # sort -n ns_list > ns_list.srt # cat ns_list.srt
NS レコードの状態 |
その他の条件 | 処置 |
ワークシートに記入されたドメイン名より長いターゲット・ドメイン名のサブセットを含む。 | --> | サーバの名前をワークシートに記入して,手順 3 に進みます。 |
ワークシートに記入されたドメイン名より短いか, または等しいターゲット・ドメイン名のサブセットを含む。 | ワークシートのNameserverセクションが空白。 | 11.9 節に進みます。 |
ワークシートに記入されているすべてのネーム・サーバの IP アドレスをデータベース・ファイルから検索します。 次のコマンドを使用します。
# grep -n ORIGIN database_file > ip_list # grep -n server_name database_file >> ip_list
.
.
.
# sort -n ip_list > ip_list.srt # cat ip_list.srt
ワークシートの対応サーバ名の隣りに IP アドレスを記入して,手順 4 に進みます。
ping
コマンドを使用して,
ワークシートの Nameservers セクションにリストされた各サーバに到達可能であることを確認します。
サーバの状態 | その他の条件 | 処置 |
ping
コマンドに応答する。 |
そのサーバに root でアクセスできる。 | サーバは到達可能で,管理者として管理できます。 この 2 つのことをワークシートに記入します。 手順 5 に進みます。 |
サーバに root でアクセスできない。 | サーバは到達可能ですが,管理者として管理することはできません。 この 2 つのことをワークシートに記入します。 手順 5 に進みます。 | |
ping
コマンドに応答しない。 |
--> | ワークシートにこのことを記入します。 |
ping
コマンドに応答するサーバがない場合は,手順はここで終了です。
現在のサーバは,ネットワーク上にある各サーバから独立しています。
この問題は解決できません。
ネットワーク管理者にお問い合わせください。 |
telnet
コマンドを使用して,到達可能な各サーバにログインします。
ログインしたサーバが現在のサーバとなります。
新しいワークシートを用意して,現在のサーバ名,現在のドメイン名,およびターゲット・ドメイン名を記入します。
各サーバごとに DNS サーバのテストを実施します。
11.3 節を参照してください。
フォワーダのためにターゲット・ホスト名を解決できないのかどうかを判定するには,次の手順に従ってください。
ping
コマンドを使用して,ワークシートにリストされた各フォワーダが到達可能かどうかを調べます。
フォワーダの状態 | その他の条件 | 処置 |
ping
コマンドに応答する。 |
そのフォワーダにルートでアクセスできる。 | フォワーダは到達可能で,管理者として管理できます。 この 2 つのことをワークシートに記入します。 手順 2 に進みます。 |
フォワーダにルートでアクセスできない。 | フォワーダは到達可能ですが,管理者として管理することはできません。 この 2 つのことをワークシートに記入します。 手順 2 に進みます。 | |
ping
コマンドに応答しない。 |
--> | ワークシートにこのことを記入します。 |
ping
コマンドに応答するフォワーダがない場合は,手順はここで終了です。
現在のサーバは,ネットワーク上にある各フォワーダから独立しています。
この問題は解決できません。
ネットワーク管理者にお問い合わせください。 |
named.boot
ファイルを編集して,
ping
コマンドに応答しなかったフォワーダをすべて削除します。
ターゲット・ホストに対して,nslookup
コマンドを再実行します。
nslookup
コマンドの実行結果 |
処置 |
成功 | 手順 4 に進みます。 |
失敗 | 手順 5 に進みます。 |
named.boot
ファイルを編集して,
フォワーダの行の最後に手順2で削除したフォワーダを追加します。
さらに,自分が管理していない転送サーバの管理者に問い合わせて,
相手のフォワーダに問題があるかもしれないことを伝えます。
手順はここで終了です。
telnet
コマンドを使用して,到達可能な各フォワーダにログインします。
ログインしたフォワーダが現在のサーバとなります。
新しいワークシートを用意して,現在のサーバ名,現在のドメイン名,およびターゲット・ドメイン名を記入します。
各サーバごとに DNS サーバのテストを実施します。
11.3 節を参照してください。
フォワーダまたは他のマシンの状態 | 処置 |
ターゲットの名前を解決できません。 | named.boot
ファイルから,そのフォワーダを削除します。 |
ターゲットの名前を解決できます。 | 手順は終了です。 |
スレーブ・サーバが希望するデータを持っているかどうかを調べるには,次の手順に従ってください。
データベース・ファイルの SOA (start of authority) レコードからデータベースのシリアル番号を検索します。 次のコマンドを使用します。
# head -4 database_file
シリアル番号である最初の数字をワークシートの named.conf セクションに記入します。 以前のワークシートにシリアル番号が記入してある場合は,この現在のシリアル番号と比較します。 現在のシリアル番号が前の番号より大きい (新しい) か,または前の番号より小さい (古い) かに注意してください。
次に示す例は,シリアル番号が 23 の場合です。
# head -4 database_file $ORIGIN cc. bb IN SOA host1.bb.cc. postmaster.host1.bb.cc. ( 23 300 60 1209600 43200 ) IN MX 100 host1.bb.cc.
ワークシートに記入されたデータベース・ファイルに,ターゲット・データが含まれているかどうかを調べます。 次のコマンドを使用して,リソース・レコードのリストを作成および表示します。
# grep -n data_type database_file > ns_list # grep -n ORIGIN database_file >> ns_list # sort -n ns_list > ns_list.srt # cat ns_list.srt
データベース・ファイルの内容 | シリアル番号 | 処置 |
ターゲット・データを含む。 | 新 | ドメインにターゲット・データが存在します。 手順 3 に進みます。 |
ターゲット・データを含む。 | 旧または同じ | サーバが正常に機能していないか,または手順が間違っています。 これまでのすべての手順を確認してください。 |
ターゲット・データを含まない。 | --> | ドメインにターゲット・データはありません。 手順 4 に進みます。 |
現在のサーバがターゲット・データにアクセスできるかどうかを調べます。 次のコマンドを使用します。
# nslookup Default Server: host1.corp.com Address: 127.0.0.1 > server localhost Default Server: localhost.corp.com Address: 127.0.0.1 > set timeout=45 > set retry=2 > target_host.target_domain.
nslookup
コマンドの実行結果 |
データベースのシリアル番号 | 処置 |
成功 | --> | 手順は終了です。 サーバは動作しています。 クライアントまたはサーバが現在のサーバと通信できていないか,または現在のサーバはスタートしたばかりです。 |
成功 | 新 | スレーブ・サーバからログアウトします。 以前のスレーブ・サーバのワークシートを用意して,手順 8 に進みます。 |
失敗 | --> | /sbin/init.d/named restart
コマンドを使用して,現在のスレーブ・サーバを再起動させます。
その後,nslookup
コマンドを再実行します。 |
ping
コマンドを使用して,ワークシートにリストされた各ネーム・サーバまで到達可能かどうかを確認します。
サーバの状態 | その他の条件 | 処置 |
ping
コマンドに応答しない。 |
そのサーバにルートでアクセスできる。 | ネーム・サーバは到達可能で,管理者として管理できます。 この 2 つのことをワークシートに記入します。 |
サーバにルートでアクセスできない。 | サーバは到達可能ですが,管理者として管理することはできません。 この 2 つのことをワークシートに記入します。 | |
ping
コマンドに応答しない。 |
--> | ワークシートにこのことを記入します。 |
ping
コマンドに応答するサーバがない場合は,手順はここで終了です。
現在のサーバは,ネットワーク上にある各サーバから独立しています。
この問題は解決できません。
ネットワーク管理者にお問い合わせください。 |
ping
コマンドに応答したサーバのうち,
自分が管理者として管理できるサーバの数を数えます。
0 の場合は,11.10 節に進みます。
named.boot
ファイルを編集して,secondary
のエントリを見つけます。
到達可能ではないサーバ,および自分が管理者として管理しないサーバの IP アドレスを削除します。
これらのエントリもワークシートから削除します。
telnet
コマンドを使用して,到達可能な各サーバにログインします。
各サーバごとに新しいワークシートを用意して,そのサーバの名前を現在のサーバとして記入します。
今までのワークシートは保管しておいてください。
ターゲット・ドメイン名を,/etc/named.conf
ファイルにあるマスタおよびスレーブ・エントリのすべてのドメイン名と比較します。
これらのエントリの形式は,次のとおりです。
zone "domain" {
type server-type;
file "filename.db";
};
次の表の中で指示された場合は,ワークシートの
named.conf
ファイル・セクションに情報を記録してください。
named.boot
の比較結果 |
最初のフィールド | 処置 |
ターゲット・ドメイン名と一致する。 | マスタ | ドメイン名およびデータベース・ファイル名をワークシートに記入して,11.8 節に進みます。 |
スレーブ | ドメイン名,ホストのIPアドレスおよびデータベース・ファイル名をワークシートに記入して,手順 1 に進みます。 | |
ターゲット・ドメイン名のサブセット。 | --> | 手順を終了し,他のマスタ・サーバまたはスレーブ・サーバのエントリを調べます。 |
ターゲット・ドメイン名と一致しない。 サブセットでもない。 | --> | 手順を終了し,次のマスタ・サーバまたはスレーブ・サーバのエントリを調べます。 |
次のコマンドを使用して,現在のスレーブ・サーバを再起動させます。
# /sbin/init.d/named restart
再起動後,数分間待ってから次の手順に進みます。 この間にデータベースが更新されます。
現在のサーバがターゲット・データにアクセスできるかどうかを調べます。 次のコマンドを使用します。
# nslookup Default Server: host1.corp.com Address: 127.0.0.1 > server localhost Default Server: localhost.corp.com Address: 127.0.0.1 > set timeout=45 > set retry=2 > target_host.target_domain.
nslookup
コマンドの実行結果 |
処置 |
成功 | 手順は終了です。
サーバは正常に動作しています。
telnet
で他のスレーブ・サーバに接続している場合は,ログアウトして手順 8 に進みます。 |
失敗 | 他のサーバとの
telnet
セッションを終了したばかりの場合は,手順 10 に進みます。 |
telnet
セッションを終了していない場合は,現在のサーバが正常に機能していないためデータベース・ファイルを読み取れないか,または手順が誤っています。
これまでのすべての手順を確認してください。 |
現在のサーバのデータベースのシリアル番号と,直前にログアウトしたサーバのデータベースのシリアル番号を比較します。 次のコマンドを使用します。
# head -4 database_file
現在のデータベースのシリアル番号の比較結果 | 処置 |
旧 | 現在のサーバがオーソライタティブ・サーバからデータベースをコピーできないか,または手順が誤っています。 これまでのすべての手順を確認してください。 |
同じ | シリアル番号が同じになることはありません。 これまでのすべての手順を確認してください。 |
希望するデータがマスタ・サーバにあるかどうかを調べるには,次の手順に従ってください。
telnet
セッションでスレーブ・サーバからマスタ・サーバに接続している場合は,手順 2 に進みます。
それ以外の場合は,手順3に進みます。
データベース・ファイルの SOA (start of authority) レコードからデータベースのシリアル番号を検索します。 次のコマンドを使用します。
# head -4 database_file
シリアル番号である最初の数字をワークシートの named.conf セクションに記入します。 以前のワークシートのシリアル番号が記入してある場合は,現在のシリアル番号と比較します。 現在のシリアル番号が前の番号より大きい (新しい) か,または前の番号より小さい (古い) かに注意してください。
前の番号より小さい場合は,「旧」と記入します。 前の番号と同じ場合は,「同じ」と記入します。 次に示す例は,シリアル番号が 23 の場合です。
# head -4 database_file $ORIGIN cc. bb IN SOA host1.bb.cc. postmaster.host1.bb.cc. ( 23 300 60 1209600 43200 ) IN MX 100 host1.bb.cc.
ワークシートに記入されたデータベース・ファイルに,ターゲット・データが含まれているかどうかを調べます。 次のコマンドを使用して,リソース・レコードのリストを作成および表示します。
# grep -n data_type database_file > ns_list # grep -n ORIGIN database_file >> ns_list # sort -n ns_list > ns_list.srt # cat ns_list.srt
データベース・ファイルの内容 | 処置 |
ターゲット・データを含む。 | ドメインにターゲット・データが存在します。 手順 4 に進みます。 |
ターゲット・データを含む。 | ドメインにターゲット・データが存在しません。 手順 5 に進みます。 |
現在のサーバがターゲット・データにアクセスできるかどうかを調べます。 次のコマンドを使用します。
# nslookup Default Server: host1.corp.com Address: 127.0.0.1 > server localhost Default Server: localhost.corp.com Address: 127.0.0.1 > set timeout=45 > set retry=2 > target_host.target_domain.
nslookup
コマンドの実行結果 |
データベースのシリアル番号 | 処置 |
成功 | --> | 手順は終了です。 サーバは動作しています。 最後のサーバが現在のサーバと通信できていないか,または現在のサーバはスタートしたばかりです。 |
成功 | 旧または同じ | 手順は終了です。 サーバが正常に機能していないか,または手順が誤っています。 これまでのすべての手順を確認してください。 |
成功 | 新 | 使用しているマスタ・サーバからログアウトします。 以前のスレーブ・サーバのワークシートを用意して,11.7 節の手順 8 に進みます。 |
失敗 | --> | /sbin/init.d/named restart
コマンドを使用して,
現在のマスタ・サーバを再起動させます。
その後,nslookup
コマンドを再実行します。 |
データベース・ファイルを編集して, データベースのシリアル番号を 1 つ増やし,データベースを更新します。 次に,編集前および編集後の SOA レコードの例を示します。 シリアル番号が 23 から 24 に増加していることに注意してください。
# head -4 database_file $ORIGIN cc. bb IN SOA host1.bb.cc. postmaster.host1.bb.cc. ( 23 300 60 1209600 43200 ) IN MX 100 host1.bb.cc. # vi database_file
.
.
.
# head -4 database_file $ORIGIN cc. bb IN SOA host1.bb.cc. postmaster.host1.bb.cc. ( 24 300 60 1209600 43200 ) IN MX 100 host1.bb.cc.
データベース・ファイルを編集して,データベースに新しいデータを追加します。
有効なデータ型についての説明は,11.1 節を参照してください。
新しいエントリの先頭には,必ず
$ORIGIN
エントリを追加し,データベースのフィールドはタブで区切ってください。
次に,host1.bb.cc.
ホストの新しいアドレス・レコードの例を示します。
$ORIGIN bb.cc host1 IN A 16.141.112.11
次のコマンドを使用して,マスタ・サーバを再起動させます。
# /sbin/init.d/named restart
現在のサーバがターゲット・データにアクセスできるかどうかを確かめます。 次のコマンドを使用します。
# nslookup Default Server: host1.corp.com Address: 127.0.0.1 > server localhost Default Server: localhost.corp.com Address: 127.0.0.1 > set timeout=45 > set retry=2 > target_host.target_domain.
nslookup
コマンドの実行結果 |
処置 |
成功 | マスタ・サーバからログアウトします。 以前のスレーブ・サーバのワークシートを用意して, 11.7 節の手順 8 に進みます。 |
失敗 | サーバが正常に機能していないか,または手順が間違っています。 これまでのすべての手順を確認してください。 |
DNS ネーム・スペースのルートで始まるターゲット名を解決するには,次の手順に従ってください。
ルート・サーバを探し出すために必要な情報を含むキャッシュ・ファイルが現在のサーバにあるかどうかを調べます。 次のコマンドを使用します。
# grep cache /etc/named.boot
キャッシュ行の有無 | 処置 |
存在しない。 | 現在のサーバはルート・ネーム・サーバと通信できません。 ワークシートにこのことを記入して,手順 2 に進みます。 |
存在する。 | ワークシートにこのことを記入して,手順 3 に進みます。 |
使用しているサーバにキャッシュ・ファイルを追加します。
注意
キャッシュ・ファイルを追加すると多くのシステム・ファイルが変更されます。 ご使用のシステムが正しく動作するように,次に示す手順どおりに操作してください。
必要な DNS ファイルおよびシステム・ファイルのコピーを作成します。 次のコマンドを入力します。
# cd /etc # cp -r namedb namedb.back # cp rc.config.common rc.config.common.back # cp hosts hosts.back # cp resolv.conf resolv.conf.back # cp svc.conf svc.conf.back # cd /var/adm/sendmail # cp sendmail.cf sendmail.cf.back
hostname
コマンドを使用して,ローカル・ホスト名を表示します。
SysMan Menu ユーティリティを実行してシステム・ファイルをコピーした後に,ローカル・ホスト名を再設定する必要があります。
SysMan Menu ユーティリティを実行します。
構成を変更して,キャッシュ・サーバを作成します (2.5.3 項参照)。
DNS デーモンを自動的にスタートさせないでください。
また,svcsetup
コマンドを実行しないでください。
システム・ファイルをコピーして
/etc
ディレクトリに戻します。
次のコマンドを使用します。
# cd /etc # cp rc.config.common.back rc.config.common # cp hosts.back hosts # cp resolv.conf.back resolv.conf # cp svc.conf.back svc.conf
hostname
コマンドを使用して,ホスト名を元のホスト名に戻します。
sendmail
ファイルをコピーして
/var/adm/sendmail
ディレクトリに戻してから,sendmail
を再起動させます。
次のコマンドを使用します。
# cd /var/adm/sendmail # cp sendmail.cf.back sendmail.cf # /sbin/init.d/sendmail restart
DNSの各ファイルをコピーして
/etc
ディレクトリに戻します。
次のコマンドを使用します。
# cd /etc # cp namedb/namedb.boot namedb.back/named.conf_new # cp namedb/namedb.ca namedb.back # rm -rf namedb.back namedb # mv namedb.back namedb # cd namedb
named.boot
ファイルを編集して,ファイルの最後に次の行を追加してください。
zone "." { type hint; file "named.ca"; };
named.conf_new
ファイルを削除します。
/sbin/init.d/named restart
コマンドを使用して,現在のサーバを再起動させます。
次のコマンドを使用して,named.ca
ファイルを表示します。
# cat named.ca
ワークシートのRoot nameserverセクションに,ルート・ネーム・サーバの名前および IP アドレスを記入します。
ping
コマンドを使用して,ワークシートにリストされた各ルート・ネーム・サーバに到達可能かどうかを確認します。
ルート・ネーム・サーバの状態 | 処置 |
ping
コマンドに応答する。 |
ワークシートにこのことを記入します。 11.11 節に進みます。 |
ping
コマンドに応答しない。 |
ワークシートにこのことを記入します。
ping
コマンドに応答するサーバがない場合は,手順 5 に進みます。 |
次のいずれかを実行します。
現在のサーバがインターネットにアクセスできるようにします。
その後,次のコマンドを使用して,named
デーモンを再起動させます。
# /sbin/init.d/named restart
現在のサーバとワークシートはそのままにして, 11.3 節に進みます。
フォワーダのエントリを追加して,現在のサーバがインターネットにアクセス可能なマシンと通信できるようにします。
その後,次のコマンドを使用して,named
デーモンを再起動させます。
# /sbin/init.d/named restart
現在のサーバとワークシートはそのままにして, 11.3 節に進みます。
ネーム・サーバを使用してターゲット・データを解決するには,次の手順に従ってください。
ターゲット・システムに対して,nslookup
コマンドを実行します。
Root nameserver セクションまたは Nameserver セクションの,最初のネーム・サーバを選択します。
次のコマンドを使用します。
current_server> nslookup Default Server: localhost.omni.corp.com Address: 127.0.0.1 > server IP_address Default Server: [IP_address] Address: 128.102.16.10 > set type data_type > target_name
nslookup
コマンドの実行結果 |
その他の条件 | 処置 |
成功 | --> | 手順は終了です。 サーバは動作しています。 最後に調べたサーバが現在のサーバと通信していないか,または現在のサーバはスタートしたばかりです。 これまでのすべての手順を確認してください。 |
失敗 | エラー・メッセージが返される。 | non-existent domain
というメッセージが表示される場合は,target_name
のデータは存在していません。
11.11 節に進みます。 |
no information available
というメッセージが表示される場合は,target_name
は存在していますが,希望する情報が対応付けされていません。
このデータが必要な場合には,ターゲット・ドメインの管理者に連絡し,このデータをドメインに追加するように求めます。 |
||
timed-out
というメッセージが表示される場合は,照会の宛先のサーバが,情報が格納されているサーバに到達できません。
手順 2 に進みます。 |
||
失敗 | エラー・メッセージが返されない。 | 未知のエラーです。 ターゲット・ドメインの管理者にお問い合わせください。 |
再試行およびタイムアウトの値を変更して,nslookup
コマンドを再実行します。
次のコマンドを入力します。
current_server> nslookup
Default Server: localhost.omni.corp.com
Address: 127.0.0.1
> server IP_address
Default Server: [IP_address]
Address: IP_address
> set type data_type
> target_name
nslookup
コマンドの実行結果 |
その他の条件 | 処置 |
成功 | --> | 手順は終了です。 サーバは動作していますが,低速です。 このままでは照会が解決されない可能性があります。 サーバまでのネットワーク接続を確かめます。 正しく接続されている場合は,性能が向上するのを待ちます。 性能が向上しない場合は,サーバの管理者にお問い合わせください。 |
失敗 | エラー・メッセージが返される。 | non-existent domain
というメッセージが表示される場合は,target_name
のデータは存在していません。
11.11 節に進みます。 |
no information available
というメッセージが表示される場合は,target_name
は存在していますが,希望するデータは対応付けされていません。
このデータが必要な場合には,ターゲット・ドメインの管理者に連絡し,このデータをドメインに追加するように求めます。 |
||
timed-out
というメッセージが表示される場合は,照会の宛先のサーバが,データが格納されているサーバにアクセスできません。
ワークシートから別のネーム・サーバを選択して,手順 1 に進みます。 |
||
失敗 | エラー・メッセージが返されない。 | 未知のエラーです。 ターゲット・ドメインの管理者にお問い合わせください。 |
ターゲット名の中から存在しない最初のドメインを検索するには, 次の手順に従ってください。
ターゲット・ドメイン名の最小サブセットを使用して,nslookup
コマンドを実行します。
次のコマンドを入力します。
current_server> nslookup
Default Server: localhost.omni.corp.com
Address: 127.0.0.1
> server IP_address
Default Server: [IP_address]
Address: IP_address
> set type=ns
> target_name_subset
たとえば,ターゲット・ドメイン名が zz.bb.cc. の場合は, まず最初に,ターゲット名の cc. サブセットを解決します。 必要な場合は,2回目として bb.cc. を使用します。 必要な場合は,3回目として,zz.bb.cc. を使用します。
nslookup
コマンドの実行結果 |
その他の条件 | 処置 |
成功 | --> | 手順3に進みます。 |
失敗 | エラー・メッセージが返される。 | non-existent domain
というメッセージが表示される場合は,target_name
のデータは存在していません。
このデータが必要な場合には,ドメインの管理者に連絡し,このデータをドメインに追加するように求めます。
手順はここで終了です。 |
timed-out
というメッセージが表示される場合は,手順 2 に進みます。 |
再試行およびタイムアウトの値を変更して,nslookup
コマンドを再実行します。
次のコマンドを入力します。
current_server> nslookup
Default Server: localhost.omni.corp.com
Address: 127.0.0.1
> server IP_address
Default Server: [IP_address]
Address: IP_address
> set retry=2
> set timeout=45
> set type=ns
> target_name_subset
nslookup
コマンドの実行結果 |
その他の条件 | 処置 |
成功 | --> | 手順 3 に進みます。 |
失敗 | エラー・メッセージが返される。 | non-existent domain
というメッセージが表示される場合は,target_name
のデータは存在していません。
この情報が確かに存在する場合には,ターゲット・ドメインの管理者に問い合わせて,希望する情報をドメインに追加するように要求してください。
手順はここで終了です。 |
timed-out
というメッセージが表示される場合は,ワークシートから別のネーム・サーバを選択して,11.10 節に進みます。 |
ターゲット・サブセットにターゲット・ドメイン名の次の部分を追加して,手順 1 に進みます。