什麼是 Anycast DNS?|Anycast 如何搭配 DNS 運作

使用 Anycast 搭配 DNS 可加速使用者的 DNS 解析流程,並確保 DNS 可靠性。

Share facebook icon linkedin icon twitter icon email icon

Anycast DNS

學習目標

閱讀本文後,您將能夠:

  • 理解 Anycast 的運作方式
  • 瞭解 Anycast 如何讓 DNS 解析更快速且更有效率
  • 說明 Anycast 可協助緩解 DNS 洪水 DDoS 攻擊的原因

什麼是 Anycast DNS?

在 Anycast 中,一個 IP 位址可套用至許多伺服器。Anycast DNS 代表其中任一個 DNS 伺服器都可回應 DNS 查詢,而且地理位置最靠近的 DNS 伺服器通常會提供回應。這可減少延遲、改善 DNS 解析服務的運作時間 ,並提供保護以防禦 DNS 洪水 DDoS 攻擊

什麼是 Anycast?

通常,任何直接連線至網際網路的裝置或伺服器都有唯一的 IP 位址。網路連線裝置之間的通訊是 1 對 1;每次通訊會從某個特定裝置前往通訊另一端的目標裝置。相反地,Anycast network 允許網路上的多個伺服器使用相同的 IP 位址或 IP 位址集合。與 Anycast network 之間的通訊是 1 對多。

Anycast DNS

一般而言,IP 位址的運作情況如同街道地址:這指定某個訊息要前往的特定位置。但假設有個朋友在該國具有多個居住地點。想像一下,寄往她其中一間房屋的信件,可以前往其他房屋當中最接近寄信者的一間房屋,即使信件是寄到位於另一個城市的房屋,仍可如此。這就是 Anycast 路由傳送的運作方式:一個 IP 位址可以聯結多個位置。

例如,對於 Cloudflare CDN 內部 IP 位址的請求可由任何 Cloudflare 營運的資料中心來回應,而非由某個特定伺服器來回應。如需進一步瞭解 Anycast 以及 CDN 可以如何使用 Anycast,請參閱「什麼是 Anycast?」

Anycast DNS 如何運作?

DNS 代表網域名稱系統,這是將網域名稱(網站名稱)轉譯為機器可讀之英數字元 IP 位址的系統。這稱為「解析」網域名稱,而 DNS 解析程式則是管理解析的伺服器。當使用者想要載入網站時,用戶端裝置就需要查詢 DNS 解析程式,以取得該網站的 IP 位址。

Anycast 可加快 DNS 的解析速度。透過 Anycast DNS,DNS 查詢將會前往 DNS 解析程式的網路,而非前往某個特定解析程式,然後會路由傳送至最靠近的可用解析程式。DNS 查詢和回應將會按照最佳化路徑,以便盡快回答查詢。

Anycast 也能協助 DNS 解析服務保持高度的可用性。若某個 DNS 解析程式離線,網路中的其他解析程式仍可回答查詢。

Cloudflare 透過位於 200 個城市的資料中心,在我們的分散式 DNS 提供 DNS 解析。因為 CDN 是 Anycast,所以可從網路中的任何資料中心解析 DNS 查詢。網路中的任何 DNS 解析程式都可回應任何 DNS 查詢。

若沒有 Anycast,DNS 解析如何運作?

若 DNS 解析服務沒有使用 Anycast,可能會使用 Unicast 路由傳送。在 Unicast 路由傳送中,每個 DNS 伺服器具有一個 IP 位址,而每個 DNS 查詢則前往特定的伺服器。若該解析程式故障或無法使用,用戶端將必須查詢其他 DNS 解析程式,增加 DNS 解析流程的時間。

Anycast DNS 如何成功防禦 DDoS 攻擊?

DDoS 攻擊可透過 DNS 洪水攻擊,以 DNS 解析程式作為目標。這些攻擊通常使用 IoT 裝置的大規模殭屍網路,以透過 DNS 查詢癱瘓或「淹沒」DNS 解析程式。(DNS 洪水攻擊與 DNS 放大攻擊不同,DNS 放大攻擊使用開放 DNS 解析程式來放大 DDoS 攻擊。在這類攻擊中,解析程式本身不是目標。)

Anycast 與 Unicast

Anycast network 可提供 DDoS 保護,因為流量可散佈於整個網路。換言之,對於某個 IP 位址的請求可由許多伺服器來回答,因此原本會淹沒一個伺服器的上千個請求可分攤給許多伺服器。所以 Anycast DNS 並不容易受到大部分 DNS 洪水攻擊的影響,因此 Cloudflare DNS 服務可成功防禦 DDoS 攻擊。