Cloudflare:什么是 Anycast?

來(lái)源: Cloudflare
作者:Cloudflare
時(shí)間:2021-01-25
20704
Anycast 是一種網(wǎng)絡(luò)尋址和路由方法,可以將傳入請(qǐng)求路由到各種不同的位置或“節(jié)點(diǎn)”。在 CDN 的上下文中,Anycast 通常會(huì)將傳入的流量路由到距離最近并且能夠有效處理請(qǐng)求的數(shù)據(jù)中心。選擇性路由使 Anycast 網(wǎng)絡(luò)能夠應(yīng)對(duì)高流量、網(wǎng)絡(luò)擁塞和 DDoS 攻擊。

什么是 Anycast?

Anycast 是一種網(wǎng)絡(luò)尋址和路由方法,可以將傳入請(qǐng)求路由到各種不同的位置或“節(jié)點(diǎn)”。在 CDN 的上下文中,Anycast 通常會(huì)將傳入的流量路由到距離最近并且能夠有效處理請(qǐng)求的數(shù)據(jù)中心。選擇性路由使 Anycast 網(wǎng)絡(luò)能夠應(yīng)對(duì)高流量、網(wǎng)絡(luò)擁塞和 DDoS 攻擊。

ia_1000000029.png

Anycast 如何工作?

Anycast 網(wǎng)絡(luò)路由能夠跨多個(gè)數(shù)據(jù)中心路由傳入的連接請(qǐng)求。當(dāng)請(qǐng)求進(jìn)入與 Anycast 網(wǎng)絡(luò)關(guān)聯(lián)的單個(gè) IP 地址時(shí),網(wǎng)絡(luò)將根據(jù)某種優(yōu)先級(jí)排序方法分發(fā)數(shù)據(jù)。通常,通過(guò)選擇與請(qǐng)求方距離最短的數(shù)據(jù)中心來(lái)優(yōu)化選擇特定數(shù)據(jù)中心的選擇過(guò)程,從而縮短延遲。Anycast 的特征是許多關(guān)聯(lián)中的一對(duì)一,并且是 Internet 協(xié)議中使用的 5 種主要網(wǎng)絡(luò)協(xié)議方法之一。

為什么使用 Anycast 網(wǎng)絡(luò)?

如果同時(shí)向同一源站服務(wù)器發(fā)出許多請(qǐng)求,該服務(wù)器可能會(huì)不堪重負(fù),無(wú)法有效響應(yīng)其他傳入請(qǐng)求。在 Anycast 網(wǎng)絡(luò)中,主要流量不是由一臺(tái)源站服務(wù)器來(lái)承擔(dān),其負(fù)載可以分散到其他可用的數(shù)據(jù)中心,每個(gè)數(shù)據(jù)中心都具有能夠處理和響應(yīng)傳入請(qǐng)求的服務(wù)器。這種路由方法可以預(yù)防源站服務(wù)器擴(kuò)充容量,而且能避免向源站服務(wù)器請(qǐng)求內(nèi)容的客戶端遭遇服務(wù)中斷。

Anycast 和單播有什么區(qū)別?

大多數(shù) Internet 通過(guò)稱為“單播”的路由方案工作。在單播下,網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)都有一個(gè)唯一的 IP 地址。家庭和辦公室網(wǎng)絡(luò)使用單播;如果一臺(tái)計(jì)算機(jī)連接到無(wú)線網(wǎng)絡(luò)并收到一條消息,指出 IP 地址已被使用,這時(shí)發(fā)生了 IP 地址沖突,因?yàn)橥粏尾ゾW(wǎng)絡(luò)上的另一臺(tái)計(jì)算機(jī)已在使用同一個(gè) IP。在大多數(shù)情況下,這是不允許的。

ia_1000000030 (1).png

如果 CDN 使用單播地址,流量會(huì)直接路由到特定的節(jié)點(diǎn)。當(dāng)網(wǎng)絡(luò)遇到異常流量時(shí)(例如在 DDoS 攻擊期間),這會(huì)造成漏洞。由于流量直接路由到特定的數(shù)據(jù)中心,該位置或其周圍的基礎(chǔ)設(shè)施可能會(huì)被流量所壓垮,進(jìn)而可能導(dǎo)致合法請(qǐng)求遭受拒絕服務(wù)。

使用 Anycast 意味著網(wǎng)絡(luò)可以極有彈性。由于流量會(huì)找到最佳路徑,因此整個(gè)數(shù)據(jù)中心脫機(jī)也沒(méi)有關(guān)系,流量會(huì)自動(dòng)流向鄰近的數(shù)據(jù)中心。

Anycast 網(wǎng)絡(luò)如何緩解 DDoS 攻擊?

在其他 DDoS 緩解工具過(guò)濾掉一些攻擊流量后,Anycast 會(huì)將剩余的攻擊流量分散到多個(gè)數(shù)據(jù)中心,以防止任何一個(gè)位置被請(qǐng)求壓垮。如果 Anycast 網(wǎng)絡(luò)的容量大于攻擊流量,就可以有效緩解攻擊。在大多數(shù) DDoS 攻擊中,許多受損的“僵尸”或“機(jī)器人”計(jì)算機(jī)被用來(lái)組建成所謂的僵尸網(wǎng)絡(luò)。這些計(jì)算機(jī)可以在網(wǎng)絡(luò)上四處分散,產(chǎn)生大量流量,以致壓垮典型的單播連接機(jī)器。

ia_1000000031 (1).png

正確實(shí)施 Anycast 的 CDN 可以擴(kuò)大接收網(wǎng)絡(luò)的表面積,使得來(lái)自分布式僵尸網(wǎng)絡(luò)的未過(guò)濾拒絕服務(wù)流量能被 CDN 的各個(gè)數(shù)據(jù)中心吸收掉。因此,隨著網(wǎng)絡(luò)規(guī)模和容量的不斷擴(kuò)大,針對(duì)使用 CDN 的任何人發(fā)起有效 DDoS 的難度也越來(lái)越高。

設(shè)置一個(gè)真正的 Anycast 網(wǎng)絡(luò)并不容易。正確實(shí)現(xiàn)需要 CDN 提供商維護(hù)自己的網(wǎng)絡(luò)硬件,建立與上游運(yùn)營(yíng)商的直接關(guān)系,并調(diào)優(yōu)他們的網(wǎng)絡(luò)路由,以確保流量不會(huì)在多個(gè)位置之間“交替”。這篇 Cloudflare 博客文章闡述了 Cloudflare 如何在沒(méi)有負(fù)載均衡器的情況下使用 Anycast 來(lái)進(jìn)行負(fù)載均衡。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于Cloudflare,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家