Anycast——減少DDOS攻擊的新方向

之前的文章提到過Anycast技術,現在我們來分析下何為Anycast?

任播(Anycast)提供的是一種無狀態的、盡力而為的服務,目前對於 Anycast 的中文譯稱主要有任播、泛潘、選播等。最初是在 RFC1546 中提出並定義的,根據 RFC1546 的說明 IPv4 的任播地址不同於 IPv4 的單播地址,它建議從 IPv4 的地址空間分配出一塊獨立的地址空間作為任播地址空間。任播的基本概念是從物理主機設備中分離出的邏輯服務標識符,任播地址可以根據服務類型來分配,使得網絡服務擔當一個邏輯主機的角色。

在應用中,任播 (Anycast) 是一種網絡尋址和路由的策略。Anycast 採用將一個單播地址分配到處於 Internet 中多個不同物理位置的主機上,發送到這個主機的報文被網絡路由到路由協議度量的最近的目標主機上。


在這裡我們分析下Anycast與Unicast和Multicast的區別。

Unicast是點對點傳輸,如我們的TCP請求,而Multicast是一對多的傳輸,如即時通信技術上的應用。對於Anycast技術,則是集Multicast和Unicast特性於一身的。

從宏觀上來說,Anycast類似於Multicast,同一種類型的數據流同時存在多個接收者。

而從微觀上來說,Anycast又有著Unicast的唯一性。每一個單獨的IP會話都能夠找到唯一的源主機和目標主機。

Anycast有如下優點:

a.不同客戶端將訪問不同目的主機,此過程對客戶端透明,從而實現了目的主機的負載均衡。

b.減弱了DDoS攻擊對用戶帶來的影響。當 Anycast 組中某一個成員或者幾個成員受到攻擊時,負責報文轉發的路由器可以根據各個組成員的響應時間來決定報文應該轉發到哪個成員上,這樣受到攻擊的成員由於沒有響應,所以報文就不會被轉發到那裡,同時,由於 Anycast 提供的服務訪問透明性,組成員也相對較難受到DDoS攻擊。

c.減弱了網絡擁塞給用戶帶來的影響。同上面的道理,當 Anycast 的某些組成員處在擁塞的網段時,它的響應時間就較長,報文可以被轉發到響應較好的成員那裡。

d.部署Anycast可以獲得設備的高冗餘性和可用性。

當然,Anycast也有部分缺點,如下:

a.使用任播中的共享單播地址不能作為客戶端發起請求,因為請求的響應不一定能返回到發起的任播單播地址。因此,目前任播僅適合一些特定的上層協議。如大範圍的DNS部署,CDN數據緩存,數據中心。

b.Anycast嚴重依賴於BGP的選路原則,在整個Internet網絡拓撲復雜的情況下,會導致次優路由選擇。


這裡要提下Anycast在減弱DDOS攻擊方面,由於Anycast在DNS部署方面的優越性,同時Anycast對系統作了冗餘,因此,即使受到DDOS攻擊,只有部分節點斷服,只是對DNS系統的吞吐有些許影響,不影響整個DNS系統的可用性。即分佈式系統中CAP理論的權衡,三者只能滿足其二。

Anycast——減少DDOS攻擊的新方向


BGP Anycast是Anycast應用的典型實例,通過配置多個Anycast組,對每組服務器採用相同的IP,這樣,通過BGP路由選擇算法就可以找到可提供DNS服務的最近節點,而具體由個節點來服務,這對客戶端是透明的。目前,著名的公共DNS服務,如cloudflare的1.1.1.1和google的8.8.8.8等都採用了BGP Anycast部署。

上面提到了相同的 IP,不會衝突嗎???其實,當然不會了,Anycast實現的是多地部署,IP地址在不同的廣播域中,因此,並不會衝突呀。

這裡談一下全球最快的公共DNS-cloudflare。它們在全球部署了194個數據中心,部署了廣泛的 Anycast服務。

Anycast——減少DDOS攻擊的新方向

Cloudflare提供了web界面查看各節點的狀態,當為Operational為正常工作狀態,Re-routed則在之前的某一時刻,進行了路由選擇。

Anycast——減少DDOS攻擊的新方向

上面是我對Anycast的認識,如果大家對Anycast技術有新的認識,歡迎在評論區留言,我們共同交流技術!


分享到:


相關文章: