單一 IP 位址分配給多個伺服器?

單一 IP 位址分配給多個伺服器?

一個IP如何分配給多個網域名稱伺服器?

例如,Google 有一個 IPv4 8.8.8.8,許多 DNS 具有相同的位址。
當我向他們的 DNS 發出網域查找請求時,根據我的地理位置,該請求將重新路由到離我最近的 Google DNS 位置。

答案1

相關技術稱為選播路由。
任播本質上巧妙地利用了 BGP 路由協定的固有行為。包含相關位址的網路前綴從多個位置通告。網路上的其他 BGP 路由器用於查看通往相同目的地的多條路徑並選擇最短的路徑(就作為躍點)路徑。然而,在這種情況下,到這個「一個」目的地的多條路徑實際上恰好在網路上的不同位置結束。

值得注意的是,它的運作不是基於地理位置的接近,而是基於數量的接近。自治系統(實體,例如 ISP,執行 BGP 路由)位於網路的網路路徑上。通常,這在一定程度上與地理鄰近性相關,但不一定。

另外值得注意的是,當 BGP 表中的路由可用性不可避免地會隨著時間的推移而改變時,「最近」的任播目的地完全有可能發生變化(可能是在會話中)。這種情況的發生顯然會破壞任何維護狀態的協定(包括任何基於 TCP 的協定)。 DNS 是一個特別適合的協定範例(主要使用 UDP,只回答目前查詢中收到的一件事),但任何沒有長期連線的協定都可以很好地工作(CDN 是已知要做HTTP/HTTPS,這顯然有點賭博)。

答案2

您的問題標題暗示了完全不同的內容,即一個 DNS 名稱有多個 IP 位址。您的實際問題並不真正涉及 DNS,它只是使用 DNS 作為範例。 http(s) 的內容交付網路將使用相同的內容。

如果世界各地有不同的伺服器用於相同目的,則在路由器中設定不同的路由目標,每個目標都指向最近的伺服器。

通常,您需要每個路由器都指向相同目的地的 IP 位址。在這裡,它們指向不同的目的地,但指向相同的功能。

答案3

如果任播路由在您的層級不可用,另一種選擇是運行地理上分散的伺服器並使用以下命令設定 DNS 系統DNS 水平分割

相關內容