我試圖代碼我自己的DNS服務器,我通過在DNS RFC1035閱讀,但我有幾個疑問:DNS響應數據包
1)我希望我的服務器與CNAME特定響應請求,但沒有A記錄 - 我可以這樣做嗎?例如,接收'server1.com'的請求,響應'CNAME server2.com',然後客戶端查詢另一臺DNS服務器以獲取'server2.com'的A記錄。 我目前已經將標頭設置爲:'\ x84 \ x00'這樣說,這是授權服務器,但遞歸是不可能的。這是正確的嗎?
2)我希望我的服務器響應任何其他請求沒有記錄,以便客戶端然後查詢不同的DNS服務器的記錄。我目前已經將標題設置爲'\ x83 \ x03',以便發出NAME ERROR回覆代碼的信號。這是正確的嗎?那麼我應該怎麼做呢,在其他所有領域都是零,或者只是在那裏結束數據包?我不想用'這個名字不存在'作爲迴應,而是'我不知道這個名字,嘗試別人' - 我該怎麼做?
非常感謝:)
謝謝西蒙 - 我問CNAME與A記錄的原因是,看着wireshark捕獲,來自DNS服務器的單個響應有多個記錄,一個CNAME,然後附加的A記錄。但是,如果只返回一個CNAME是有效的,那很好。是的,我會嘗試RCODE#2,看看更多的數據包捕獲:)謝謝! – Technosites 2010-11-10 16:46:37
實際上,沒有A記錄的CNAME似乎不起作用。我可以NSLOOKUP和檢索CNAME記錄罰款,但如果我嘗試ping它仍然沒有得到一個記錄,所以迴應'未知主機' - 任何想法? – Technosites 2010-11-10 18:09:24
您是使用'nslookup'直接查詢授權的域名服務器,還是通過遞歸的域名服務器? – SimonJ 2010-11-10 18:20:31