URL 如何解析為特定伺服器的 IP 位址?

URL 如何解析為特定伺服器的 IP 位址?

我知道 DNS 將 URL 名稱解析為 IP 位址,但我不明白當 Google 等網站的資料中心擁有超過 200,000 台伺服器時,DNS 如何得出特定伺服器的 IP 位址?

答案1

您所描述的稱為負載平衡 DNS。負載平衡器有不同類型,最簡單的是循環負載平衡。這個連結有很好的解釋循環 DNS。當您的負載很大和/或流量很大而一台伺服器和/或網路無法自行處理時,通常會使用此方法。

循環賽負載平衡是在一組伺服器之間分配客戶端請求的最簡單方法之一。沿著群組中的伺服器列表,循環負載平衡器依序將客戶端請求轉發到每個伺服器。當到達列表末尾時,負載平衡器循環會返回並再次沿著列表向下查找(將下一個請求發送到第一個列出的伺服器,將下一個請求發送到第二個伺服器,依此類推)。

循環負載平衡的主要好處是實現起來極為簡單。然而,它並不總是導致最準確或最有效的流量分配,因為許多循環負載平衡器假設所有伺服器都是相同的:當前處於運行狀態,當前正在處理相同的負載,並且具有相同的儲存和計算能力。循環演算法的以下變體考慮了其他因素,可以實現更好的負載平衡:

加權循環賽— 根據網站管理員選擇的標準為每台伺服器分配權重;最常用的標準是伺服器的流量處理能力。權重越高,伺服器接收到的客戶端請求所佔的比例就越大。例如,如果伺服器 A 分配的權重為 3,為伺服器 B 分配的權重為 1,則負載平衡器向伺服器 A 發送的請求每向伺服器 B 發送 1 個請求,則向伺服器 A 轉送 3 個請求。

動態循環賽— 根據伺服器目前負載和空閒容量的即時數據,動態為每個伺服器分配權重。

還有其他方法,但我認為這應該能讓您對幕後發生的事情有一個很好的了解。

答案2

事實並非如此。

雖然我們的網路瀏覽器可能會向一個 IP 位址發送多個請求,但不能保證您在每個連線上都與同一台伺服器通訊。從表面上看,你很可能不是。根據您在網路拓撲中的位置,單一 IP 位址可以路由到不同的主機。 選播是一種流行的方式來通告一個 IP 位址,該位址根據網路上「更接近」的伺服器路由到多個伺服器。非常簡單,分散在網路上的邊界路由器通告它們可以到達 IP 位址 ABCD,而您的 ISP 將您的請求路由到最近的路由器,然後由該路由器將請求轉送到主機。該 IP 位址背後的主機可能是負載平衡器,它將傳入請求分發到伺服器集區。透過網路位址轉換,從伺服器返回的答案看起來就像來自同一個 IP 位址。

相關內容