
画像イメージを添付して質問させていただきます。
a.co.jpのDNSサーバとして、dns1.a.co.jpとdns2.a.co.jpの二つのDNSサーバをJPRSに登録した場合、
b.co.jpからweb.a.co.jpにアクセスする際には、b.co.jpの内部DNSサーバが、a.co.jpのDNSサーバに
の場所を確認するために、ルートドメインからco.jpのDNSサーバに参照していくかと思います。
co.jpのDNSサーバにはdns1.a.co.jpとdns2.a.co.jpの二つのDNSサーバをb.co.jpのDNSサーバに
返すと思いますが、そこでb.co.jpはどちらのDNSサーバを選択し、web.a.co.jpのアドレスを
名前解決するのでしょうか?優先順位等あるのでしょうか?


No.3ベストアンサー
- 回答日時:
あるNSからの応答が無かった場合に、DNSキャッシュサーバがどうするかは、DNSの原規格[RFC1035] の記述はかなり曖昧です。
基本的には別のNSを使うことになってますが、エラーをクライアントに返してもよいことになっています。確実に言えるのはそれだけで、あとはDNSキャッシュサーバのアルゴリズム次第ということになります。とはいえ、最初に選んだ1つのNSから応答が無いからといってクライアントに即座にエラーを返すキャッシュサーバは私の知る限り無く、すべてのNSに何度かクエリを投げ、どれからも応答が得られないことが分かって初めてクライアントにエラーを返すものが多いようです。
> 応答速度が早いdns1.a.co.jp優先したとして、
> 次のタイミングでdns1.a.co.jpが故障により通信不可となった場合、
> b.co.jpは即座にdns2.a.co.jpから名前解決しようとするのでしょうか?
> その時にb.co.jpのPCにはweb.a.co.jpのDNSキャッシュはないものとします。
dns1が「故障により通信不可になった」ことを、DNSキャッシュサーバは即座に知ることはできません。BIND9は、dns1に問い合わせを投げて、一定時間(数秒、場合によって差がある)以内に応答がなければ、dns2に問い合せます。
> web.a.co.jpはb.co.jpのDNSサーバにもキャッシュされており、
> そもそもDNSに聞きにいかないのでしょうか?
web.a.co.jp がキャッシュされていればDNSに聞きにいきません。つまり、(b.co.jpの)クライアントが web.a.co.jp を名前解決するために(b.co.jpの)DNSキャッシュサーバに問い合わせを投げ、さらにDNSキャッシュサーバが運悪く故障したdns1のほうに聞きにいったがタイムアウトしてdns2に聞いてようやく応答を得たために名前解決に数秒かかった、ということが発生しても、それは初回だけです。キャッシュが消える(通常web.a.co.jpのTTLが経過する)までは、DNSキャッシュサーバが保持しているキャッシュを使って応答するため、クライアントがweb.a.co.jp の名前解決をする度に数秒待たされるわけではありません。(これはBIND9に限らずすべてのDNSキャッシュサーバで言えます)
> あるいは都度都度、優先としているdns1から応答があるかどうか確認し、
> 応答がない場合、dns2に聞きにいくのでしょうか?
キャッシュが消える都度、DNSキャッシュサーバはdns1またはdns2に問い合わせを行いますが、BIND9の場合、応答が返ってこなかったNSは優先度を下げることをします。つまり、dns1から応答がないためdns2に聞き直したということが起こると、次回はdns2に優先的に問い合わせるようにします。dns1に問い合わせを永遠にしなくなるわけではなく、時々dns1に問い合わせを投げてみて復活したかどうかを確認するようです。
ご回答ありがとうございます。
DNSの選択等、アプリケーション側の動作に依存することが判り、大変助かりました。
きめ細かなご回答をいただき、本当にありがとうございます。
質問させていただきました本当の目的は、
DNS及び安価なアウトバウンドルータの構成で、
回線の可用性が確保できるかといったことです。
まだDNSの動作が曖昧な部分がございますが、
上記回答により、目的が実現できるのでないかと思っております。
宜しければ下記質問に対してもご回答いただけないでしょうか。
何卒よろしくお願いいたします。
>BGP4、負荷分散装置を利用しないマルチホーミング
http://oshiete.goo.ne.jp/qa/6853135.html

No.2
- 回答日時:
まず、DNSのプロトコルとしては、あるゾーンの複数NSレコードに優先順位はありません。
どちらを先に選ぶかは(b.co.jpの) DNSキャッシュサーバのアルゴリズム次第です。DNSキャッシュサーバとしてよく使われるBIND9では、基本的に応答が速いほうを優先選択し、先に問い合わせをします(応答得られなければ、もう一方にも問い合せます)。最初の1,2回はどちらが速いか分からないため、ランダム選択になりますが、何回かクエリを投げているうちにそれぞれの応答時間が分かり、速いほうを優先するようになります。たまに遅いほうにも問い合わせを投げて応答時間を再確認したりします。
BINDの版により細かい違いはありますが、概ねこのような感じです。
ご回答ありがとうございます。
>まず、DNSのプロトコルとしては、あるゾーンの複数NSレコードに優先順位はありません。
>どちらを先に選ぶかは(b.co.jpの) DNSキャッシュサーバのアルゴリズム次第です。
その一言が知りたかったです!
下記は続けての質問で申し訳ないのですが、
ご回答いただければと思います。
b.co.jpのDNSサーバがa.co.jpのDNSサーバの
応答速度が早いdns1.a.co.jp優先したとして、
次のタイミングでdns1.a.co.jpが故障により通信不可となった場合、
b.co.jpは即座にdns2.a.co.jpから名前解決しようとするのでしょうか?
その時にb.co.jpのPCにはweb.a.co.jpのDNSキャッシュはないものとします。
web.a.co.jpはb.co.jpのDNSサーバにもキャッシュされており、
そもそもDNSに聞きにいかないのでしょうか?
あるいは都度都度、優先としているdns1から応答があるかどうか確認し、
応答がない場合、dns2に聞きにいくのでしょうか?
よろしくお願いいたします。
No.1
- 回答日時:
>優先順位等あるのでしょうか?
クライアント側にプライマリドメインとして指定してある方が優先される。
クライアント側というのは図で言いますと、b.co.jpの内部DNSサーバということでしょうか?
その場合どのようにしてDNS1とDNS2からプライマリドメインを選択するのでしょうか?
またはクライアント側というのはa.co.jpのそれぞれのDNSサーバになるのでしょうか?
その場合、それぞれのDNSサーバ1と2にはプライマリ、セカンダリの設定があるのでしょうか?
またそれがJPRSに登録される形となり、b.co.jpの内部DNSにも認識されるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DNS設定をコピーしたい
-
グループポリシーのスクリプト...
-
二つのPCでサンダーバードを使...
-
nslookupでIPが見つからない
-
FTPサーバーの構築について
-
Localhostでは動くのにIP指定...
-
自宅と下宿をVPNでつないでファ...
-
windowsでSYN/ACKを返すプログラム
-
PROPFIND 405 Method Not Allow...
-
TortoiseSVN でユーザー設定
-
ネットワークカード2枚を利用し...
-
DNS未設定なのにインターネット...
-
逆引きの問い合わせにテストに...
-
PR-S300NEでLAN側DNS設定で困っ...
-
DHCPの適切なリース期間を教え...
-
ActiveDirectoryのドメインにク...
-
IEEE1394 VS US...
-
BIND9で設定が有効になりません。
-
QNAP NAS FTPS接続ができない
-
停止中のメールサーバへメール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DNS設定をコピーしたい
-
DNS SOAレコードのserial値につ...
-
ブロードバンドルーターのDNS設...
-
プライマリDNSを2つ指定可能か...
-
2つあるDNSサーバの選択について
-
DNS ゾーンの転送と、ゾーンの...
-
DNSサーバのTTL値について(ネ...
-
DNSサーバの入れ替えをする際の...
-
DNSキャッシュサーバのキャッシ...
-
DNSのドメイン名が勝手にIPに書...
-
DNS情報の伝播時間に関して
-
nslookupでIPが見つからない
-
グループポリシーのスクリプト...
-
二つのPCでサンダーバードを使...
-
ActiveDirectoryのドメインにク...
-
DHCPの適切なリース期間を教え...
-
やってはいけないアクセス制限
-
フォルダ、ファイルのアクセス...
-
TortoiseSVN でユーザー設定
-
FTPサーバーの構築について
おすすめ情報