unbound 是個輕薄短小好用的 DNS Resolver,也支援 DNSSEC。
這幾天剛好遇到一個問題:有一組 Cluster 的 Server Loading 分布不均,但一個小時後 Loading 會轉移 Server,原本有 Loading 的變成沒 Loading,原本沒 Loading 的變成有 Loading。
經過檢查之後發現是 Unbound 回傳 Resource Record (RR) 的順序問題。
按照這篇 Maillist 的說法,unbound 在回傳結果的時候,會完全按照原本結果的資訊回傳,包含 RR 的順序。所以 RR 的順序會固定一個 TTL (被 unbound cache 住了),而剛好我們把 TTL 設為一個小時。
除了把 TTL 設短一些外,寫 Client 程式的時候,如果考慮有使用到 DNS Round Robin 來作 Load Balance 的話,最好不要固定使用回傳的第一個 RR 會比較好。
2 thoughts on “Unbound 回傳 RR Set 的順序問題”