什么是 Anycast DNS?
在 Anycast 中,一個 IP 地址可以應(yīng)用于許多服務(wù)器。Anycast DNS 意味著一組 DNS 服務(wù)器中的任何一臺都可以響應(yīng) DNS 查詢,通常由地理位置最接近的一臺提供響應(yīng)。這可減少延遲,提高 DNS 解析服務(wù)的正常運行時間,并提供針對 DNS 洪水 DDoS 攻擊的防護。
什么是 Anycast?
通常,任何直接連入 Internet 的設(shè)備或服務(wù)器都具有唯一的 IP 地址。聯(lián)網(wǎng)設(shè)備之間的通信是一對一的;每個通信都從一個特定設(shè)備傳到通信另一端的目標設(shè)備。相比之下,Anycast 網(wǎng)絡(luò)允許網(wǎng)絡(luò)上的多臺服務(wù)器使用相同的 IP 地址或一組 IP 地址。與 Anycast 網(wǎng)絡(luò)的通信是一對多的。
通常,IP 地址的功能類似于街道地址:指定消息前往的一個特定位置。不過,假設(shè)一個朋友在全國各地有多個住所。想象一下,寄往其中一所房子的信件能夠寄到任何一棟與發(fā)送方最接近的房子,即便這封信原本發(fā)給另一城市中的房子。這類似于 Anycast 路由的工作方式:一個 IP 地址可以跟多個位置相關(guān)聯(lián)。
例如,對 Cloudflare CDN 中某個 IP 地址的請求可以由 Cloudflare 運營的任何數(shù)據(jù)中心響應(yīng),而不是一臺特定的服務(wù)器。
Anycast DNS 如何工作?
DNS 代表域名系統(tǒng),它是將域名(網(wǎng)站名稱)轉(zhuǎn)換為機器可讀取的字母數(shù)字 IP 地址的系統(tǒng)。這稱為“解析”域名,DNS 解析器則是管理解析的服務(wù)器。當用戶想要加載某個網(wǎng)站時,客戶端設(shè)備需要向 DNS 解析器查詢該網(wǎng)站的 IP 地址。
Anycast 能提高 DNS 解析速度。使用 Anycast DNS 時,DNS 查詢將轉(zhuǎn)到 DNS 解析器網(wǎng)絡(luò),而不是一個特定的解析器,并將路由到最接近的可用解析器。DNS 查詢和響應(yīng)將沿著優(yōu)化的路徑傳送,以便盡快答復(fù)查詢。
Anycast 還有助于保持 DNS 解析服務(wù)的高度可用性。如果一個 DNS 解析器離線,網(wǎng)絡(luò)中的其他解析器仍可以答復(fù)查詢。
Cloudflare 在 200 個城市建有數(shù)據(jù)中心,可以在我們的分布式 CDN 上提供 DNS 解析。由于 CDN 屬于 Anycast,因此可以從網(wǎng)絡(luò)中的任何數(shù)據(jù)中心解析 DNS 查詢。網(wǎng)絡(luò)中的任何 DNS 解析器都可以響應(yīng)任何 DNS 查詢。
若不使用 Anycast,DNS 解析如何工作?
如果 DNS 解析服務(wù)不使用 Anycast,則有可能使用單播路由。在單播路由中,每一 DNS 服務(wù)器都有一個 IP 地址,每個 DNS 查詢都轉(zhuǎn)到特定的服務(wù)器。如果該解析器關(guān)閉或不可用,則客戶端將不得不查詢其他 DNS 解析器,從而增加了 DNS 解析過程所需的時間。
Anycast DNS 如何提供抵御 DDoS 攻擊的彈性?
DDoS 攻擊可以通過 DNS 洪水攻擊來針對 DNS 解析器。這些攻擊通常利用由 IoT 設(shè)備組成的大型僵尸網(wǎng)絡(luò),通過大量 DNS 查詢來壓垮或“沖擊”DNS 解析器。(DNS 洪水攻擊不同于 DNS 放大攻擊,后者使用開放的 DNS 解析器放大 DDoS 攻擊。在那種攻擊中,解析器本身不是目標。)
Anycast 網(wǎng)絡(luò)可以提供 DDoS 防護,因為流量可以分散到整個網(wǎng)絡(luò)。換而言之,對一個 IP 地址的請求可以由許多服務(wù)器答復(fù),因此數(shù)千個可能會壓垮一臺服務(wù)器的請求會分散到許多服務(wù)器。所以,Anycast DNS 不受大多數(shù) DNS 洪水攻擊的影響, Cloudflare DNS 服務(wù)也因此而能抵御 DDoS 攻擊。