サイトアイコン puti se blog

DNSフォワーダーでループする?DNSサーバーでフォワードをお互いに設定すると

DNSサーバーAとDNSサーバーBに対し

DNSサーバーAにフォワードするDNSクエリを問い合わせたら、フォワーダーのループはどのようになるでしょうか?

 

結論、無限ループせずにDNSクエリが失敗となる

上記のようなDNSふぁわーだーのループ構造を作った上で、DNSクエリをnslookupしたところ、
結果的に、クエリの数は増えましたがDNSクエリの無限ループはしなかったです。

DNSループは起きないんですね。

LinuxでDNSフォワーダーループ環境を構築した結果

でDNSサーバーAとDNSサーバーBで構築。
DNSサーバーAから127.0.0.1に対し、nslookupでwww.aaa.comのクエリを送った結果、以下のようになった。

  1. 127.0.0.1へクエリを送り
  2. 2回フォワーダーによるループが発生
  3. 127.0.01へ再送されて
  4. 2回フォワーダーによるループが発生
  5. 127.0.01へ再再送、再再送されて
  6. 1回フォワーダーによるループが発生し終了。

少し謎めいた動きではありますが、
一回のnslookupのクエリに対し、9回のDNSのやり取りが発生しました。

 

WindowsでDNSフォワーダーループ環境を構築した結果

でDNSサーバーAとDNSサーバーBで構築。
DNSサーバーAから127.0.0.1に対し、nslookupでwww.bbb.comのクエリを送った結果、以下のようになった。

テストは、

nslookup

server 127.0.0.1

set type=A

www.bbb.com.

を実行した結果です。

Windowsのクエリログの方が非常にわかりやすい表示ですね

  1. 127.0.0.1からDNSサーバーAがクエリを受けた
  2. DNSサーバーAからDNSサーバーBにクエリをフォワードした。
  3. DNSサーバーBからDNSサーバーAにクエリをフォワードした。
  4. DNSサーバーAから127.0.0.1に失敗を送る。
  5. DNSサーバーAからDNSサーバーBに失敗を送る。
  6. DNSサーバーBからDNSサーバーAに失敗が届く
  7. DNSサーバーBからDNSサーバーAに失敗が届く

IPアドレスの横のIDを確認すると、すべてのクエリに対し失敗が伝えられたことがわかる。
一回のnslookupのクエリに対し、7回のDNSのやり取りが発生しましたが、DNSフォワードの無限ループは起きませんでした。

 

WindowsサーバーでDNSクエリログを取得する設定方法

DNSサーバーを右クリックし、「プロパティ」を開く。
「デバックのログ」タブを開き、

「OK」ボタンを押します。

モバイルバージョンを終了