Alibaba Cloud DNS權重配置指在DNS伺服器中為同一主機記錄、同一解析線路配置多個記錄值(IP、CNAME),在應答查詢時根據預設權重比例按機率返回對應記錄值,將解析流量分配到不同的伺服器上,從而達到負載平衡的目的。
啟用條件
權重配置的啟用條件是網域名稱同一主機記錄和解析線路下存在多條A/CNAME/AAAA記錄。
當不開啟權重時:
-
對於A/AAAA/NS/MX/TXT記錄:Alibaba Cloud DNS返回該線路下的全部記錄,由LocalDNS選擇返回結果(若LocalDNS返回全部地址,則由終端隨機播放)。
-
對於CNAME記錄:Alibaba Cloud DNS直接返回其中一條記錄。
規則限制
|
限制 |
支援 |
不支援 |
|
記錄類型 |
A記錄、CNAME記錄、AAAA記錄。 |
其他記錄類型。 |
|
選項組 |
處於啟用狀態的記錄。 |
處於暫停、鎖定狀態的記錄,以及泛解析記錄。 |
|
解析記錄數量限制 |
單網域名稱單線路下允許配置權重的最大解析記錄數量:免費版支援10個,付費版支援90個。 |
不涉及。 |
|
權重值規則 |
權重值允許設定0-100,預設權重值比例為1:1。支援權重值設定為0,則Alibaba Cloud DNS不返回此解析記錄值。 |
不涉及。 |
|
解析線路 |
可對預設線路配置帶權重的A記錄,也可以對具體的線路配置。 說明
不同線路中,其權重相互獨立。 |
針對不同線路,開啟/關閉負載平衡。 |
設定方法
首次添加解析記錄
-
Alibaba Cloud DNS-公網權威解析頁面,單擊目標網域名稱進入到 解析设置 頁面。
-
在 解析设置 頁面,單擊 添加记录 按鈕。
一般開啟時預設權重(1:1:1)的配置,在DNS請求應答中,Alibaba Cloud DNS會按照1:1:1的權重策略返回IP地址。
在 添加記錄 面板中,設定 記錄類型 為 A,填寫 主機記錄,解析請求來源 選擇 預設,TTL 設為 10分鐘(推薦)。將 記錄值負載策略 設定為 權重,並添加多條記錄值(如
223.5.5.x和223.6.6.x),各權重均設為 1。
修改權重配置
-
Alibaba Cloud DNS-公網權威解析頁面,單擊目標網域名稱進入到 解析设置 頁面。
-
在 解析设置 頁面,單擊 修改 後面的下拉按鈕
,點擊 修改记录集。 -
在彈出對話方塊中,可修改記錄值及權重。
將記錄值負載策略設定為權重,在記錄值集合中修改各記錄值對應的權重值。
實現效果
未開啟權重配置的效果
假設您有 3 台伺服器(IP 位址分別為1.1.XX.XX、2.2.XX.XX、3.3.XX.XX)提供同一服務(1個網域名稱),且在解析設定中對應如下3條A記錄:
|
記錄類型 |
主機記錄 |
解析線路 |
記錄值 |
|
A |
www |
預設 |
1.1.XX.XX |
|
A |
www |
預設 |
2.2.XX.XX |
|
A |
www |
預設 |
3.3.XX.XX |
當Local DNS訪問Alibaba Cloud DNS,Alibaba Cloud DNS將這3個解析記錄全部返回給Local DNS。如果Local DNS將所有的IP地址返回給網站訪問者,網站訪問者的瀏覽器會隨機訪問其中一個IP。
在無DNS負載平衡的權威DNS中,這種方法能夠在一定程度上減輕單台伺服器的壓力,但它不能區分伺服器的差異,不能反映伺服器的當前運行狀態。
預設權重效果
權重配置開啟,預設配置的是1:1:1權重,Alibaba Cloud DNS會根據(預設權重1:1:1),輪詢3個A記錄,依次返回3個IP地址,以響應網站訪問者的請求。DNS解析結果如下所示:
Region1 訪問,返回 1.1.XX.XX
Region2 訪問,返回 2.2.XX.XX
Region3 訪問,返回 3.3.XX.XX
Region4 訪問,返回 1.1.XX.XX
Region5 訪問,返回 2.2.XX.XX
Region6 訪問,返回 3.3.XX.XX
……
權重設定效果
權重配置開啟後,進行權重設定,在DNS請求應答中,IP地址按照預先設定的權重進行返回,可以實現將解析流量按照權重進行分配。例如,將上述3條解析記錄的權重比設定為2:1:1時,則DNS解析結果如下所示:
Region1 訪問,返回 1.1.XX.XX
Region2 訪問,返回 2.2.XX.XX
Region3 訪問,返回 3.3.XX.XX
Region4 訪問,返回 1.1.XX.XX
Region5 訪問,返回 1.1.XX.XX
Region6 訪問,返回 2.2.XX.XX
……
如果您在測試過程中,發現偶爾會出現DNS解析結果和權重配置不符的現象,這屬於一種正常現象。因為加權輪詢是一個粗粒度的解析流量調度方式,它針對的是Local DNS的請求,而Local DNS在TTL時間內是只會向權威DNS(Alibaba Cloud DNS)請求一次。
例如您的網域名稱被上海和北京兩個地區的使用者訪問,假設上海使用者使用的是localdnsA,北京使用者使用到的是localdnsB。 當localdnsA和localdnsB向Alibaba Cloud DNS發起查詢請求的時候,Alibaba Cloud DNS會按照使用者配置的加權策略返回,但是在TTL時間內,使用相同Local DNS的所有使用者擷取到的都是同一個解析結果。