歡迎您光臨本站 註冊首頁

dns 查詢的一個疑問

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

dns 查詢的一個疑問

假如域名example.com

在com.域裡面授權給了ns1.a.com 和 ns2.a.com
在example.com裡面有多授權到了ns3.a.com和ns4.a.com

ns3.a.com和ns4.a.com應該叫做stealth server.

我的疑問是,在什麼情況下,一個公網裡面的idc 提供的dns伺服器會去ns3.a.com和ns4.a.com查詢?

以前我也有個這樣的問題,但是都不是理解的很透徹。
因為據說不同的bind版本的查詢演算法是不一樣的。
我又看了一下rfc1034裡面提到的查詢演算法。

簡單的抄錄一下
==========
1.是否有本地緩存,有就返回本地緩存內的內容(windows做法)
2.尋找一組最好的dns伺服器來查詢
3.給他們發送請求直到收到一個應答
4.分析請求,根據不同的情況做出判斷:
        a.如果應答是正確,緩存這個應答,返回結果給查詢的客戶端
        b.如果應答保護一個更好(better)的授權信息,緩存這個授權信息,跳轉到第2步
        c.如果應答是一個cname,但是不符合查詢,把SNAME的內容改為應答裡面CNAME的內容,跳轉到第一步
        d.如果得到一個伺服器錯,或者奇怪的字元回應,從SLIST裡面刪除這個dns伺服器,跳轉到第3步
===============

我的理解。
假如一個剛啟動的cache name server. 收到一個www.example.com的請求
因為現在cache name server緩存裡面什麼記錄都沒有,所以
第一步,從/etc/resolv.conf 文件裡面讀入nameserver的地址加到SLIST(一組最好的dns伺服器列表)
第二步,給SLIST裡面的伺服器發送一個www.example.com IN A的查詢。
第三步,伺服器返回根域名的授權信息和dns伺服器地址(為了說明簡單,假設/etc/resolv.conf裡面的dns不支持遞歸查詢)
第四步,把根域名的dns伺服器地址加到SLIST,重新發送www.example.com IN A的請求
第五步,伺服器返回com.的dns授權和dns地址
第六步,把 .com域的dns伺服器地址加到SLIST, 重新發送www.example.com IN A請求
第七步,伺服器返回example.com域的dns授權和dns地址(ns1.a.com;ns2.com)
第八步,把exampl.com的dns伺服器地址加到SLIST,發送example.com IN A請求,得到答案.

寫到這裡,dns查詢演算法似乎不會去從example.com的dns伺服器裡面主動查詢example.com的授權信息。
但是突然有個想法就是,會不會是因為一個dns應答的附加信息會讓stealth server的信息被傳遞出來。
《解決方案》

原帖由 archangle 於 2009-8-11 16:15 發表 http://bbs2.chinaunix.net/images/common/back.gif
假如域名example.com

在com.域裡面授權給了ns1.a.com 和 ns2.a.com
在example.com裡面有多授權到了ns3.a.com和ns4.a.com

ns3.a.com和ns4.a.com應該叫做stealth server.

我的疑問是,在什麼情況下,一 ...


看你的問題真頭痛。
《解決方案》

實在不好描述,我表達能力有限
《解決方案》

1. 做為公網DNS伺服器,當其初次解析該域名時(緩存中沒有相關記錄),會通過根DNS得知去查ns1.a.com 和 ns2.a.com,根據ns1.a.com 和 ns2.a.com的再次授權就會向ns3.a.com和ns4.a.com發出查詢請求,並緩存誰是該域名最終的權威DNS

2. 第二次解析該域名時則會直接向ns3.a.com和ns4.a.com發出查詢請求。

3. 當公網DNS伺服器緩存中該域名的NS記錄過期時,重複1、2的過程。

[火星人 ] dns 查詢的一個疑問已經有558次圍觀

http://coctec.com/docs/service/show-post-21140.html