DNS輪循
来自维基百科,自由的百科全书
来自维基百科,自由的百科全书
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池中移除該服務器,直到下次報告符合參數。
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.