2012-01-21 64 views
1

我必須爲Android應用程序中的SRV記錄進行DNS查找並選擇其中一個。 當我查詢多個SRV記錄的DNS服務器的優先級和權重不同時,我會按照每個請求的不同順序獲取記錄,這些記錄是由服務器排序的嗎?如果是,那麼訂單算法是什麼?SRV記錄從DNS服務器檢索的訂單

我猜想它尊重優先級,因爲低優先級是最優先的,但如果優先級相等,我認爲它會尊重循環體式的權重,但沒有發生!

我做了一個簡單的BIND9 DNS服務器2個SRV記錄如下:


域優先級重量


aaa.example.com 1 90


BBB .example.com 2 10

當我查找時,我期望能獲得aaa.example.com 倍,第一個結果和我會得到bbb.example.com作爲第一個結果,這並沒有發生!上服務器只是逆轉每個請求的順序!

回答

1

如果您正在查詢SRV記錄,它們的返回順序是任意的,您的客戶端應用程序不應該將其考慮在內。

相反,您的應用程序負責按照權重和優先級排序收到的結果,如RFC 2782中所述。

RFC中還規定,如果多個記錄以相同的權重和優先級返回,客戶端將隨機選擇,而不是根據返回這些記錄的順序。

因此,使用循環DNS來服務SRV記錄是多餘的。

相關問題