DNS輪循(英語:round-robin DNS)是一種用於負載分配負載平衡容錯組態多個冗餘網際協定(IP)服務主機(例如Web伺服器FTP伺服器)的技術,通過適當的統計模型管理域名系統 (DNS) 響應客戶端電腦對地址的請求。[1]

在其最簡單的實現中,DNS輪循響應DNS請求的返回結果是多個伺服器對應的潛在IP位址列表,而不是單個潛在IP位址[2][3]。返回列表中IP位址的順序是術語輪循(英語:round robin)的基礎。對於每次DNS響應,列表中的IP位址的順序都會被置換[4]傳統上,IP客戶端最初嘗試使用從DNS查詢返回的第一個地址進行連接, [5]這樣在不同的連接嘗試中,客戶端將接收來自不同伺服器的服務,從而將整體負載分配到不同伺服器之間。

一些DNS解析器在實現上嘗試重新排序列表,以優先考慮IP位址在數字上「更接近」的網絡。這種行為在IPv6的定義過程中被標準化[6],但也被指責會破壞基於輪循的負載均衡[7][8]。一些桌面客戶端會在連接逾時30秒後嘗試備用地址。[2]

DNS輪循通常用於在多個Web伺服器之間對請求進行負載平衡。例如,一家公司擁有一個域名和相同網頁但部署在三個IP位址的三台伺服器。這時,設置DNS服務使域名有多個A記錄,每個IP位址對應一個。當第一個用戶訪問網頁時,請求將被傳送到第一個IP位址。第二個訪問首頁的用戶將被傳送到下一個IP位址,第三個用戶將被傳送到第三個IP位址。在每種情況下,一旦給出IP位址,它就會進入列表的末尾。因此,第四個用戶將被傳送到第一個IP位址,依此類推。

缺點

儘管易於實現,但DNS輪循有許多缺點,例如DNS的分層結構中的快取記錄,以及客戶端地址的快取和重用,這些缺點的組合可能難以管理。同時,不應僅依賴DNS輪循來保障服務的可用性。如果列表中某個地址的服務故障,DNS仍然會繼續分發該地址,客戶端仍將嘗試連接無法訪問的服務。

DNS輪循本身可能不是負載均衡的最佳選擇,因為只是在每次查詢名稱伺服器時交替地址記錄的順序。由於DNS輪循不考慮業務時常、伺服器負載和網絡擁塞,所以它最適將大量連接均勻分配到相同容量的伺服器上。在其他情況下,它只會進行負載分配,而不是負載均衡[9]

存在克服這些限制的方法。例如,修改過的DNS伺服器(例如 lbnamed[10] )可以定期輪循鏡像伺服器的可用性和負載因素。如果伺服器的回覆不符合預設參數,則可以暫時從DNS池中移除該伺服器,直到下次報告符合參數。

參見

任播

參考

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.