由臉書事件帶來的思考 - BGP、DNS和我們關(guān)鍵系統(tǒng)的脆弱性

來源: F5Networks
作者:F5
時間:2021-10-20
18156
2021年10月4日,臉書及其旗下軟件經(jīng)歷了六個小時的中斷,包括WhatsApp、Instagram和Oculus VR。鑒于此事件的嚴(yán)重性,我們認(rèn)為不妨深入挖掘一下我們所依賴的一些互聯(lián)網(wǎng)技術(shù),以及有必要剖析一下發(fā)生的原因。

BGP DNS和我們關(guān)鍵系統(tǒng)的脆弱性.png

2021年10月4日,臉書及其旗下軟件經(jīng)歷了六個小時的中斷,包括WhatsApp、Instagram和Oculus VR。鑒于此事件的嚴(yán)重性,我們認(rèn)為不妨深入挖掘一下我們所依賴的一些互聯(lián)網(wǎng)技術(shù),以及有必要剖析一下發(fā)生的原因。從而幫助廣大客戶進(jìn)行自我診斷,分析自身IT架構(gòu)目前是否能夠避免此類事件,或者我們應(yīng)該如何盡量避免此類事件的發(fā)生,以便更好的引以為鑒。

為何宕機時間長

首先,我們來分析一下為什么會中斷這么久,長達(dá)數(shù)小時?主要原因是事故不僅使全球用戶的服務(wù)受到影響,更嚴(yán)重的是涉及到全系統(tǒng)使用的帶外系統(tǒng)維護(hù)平臺的主DNS也在過程中被切斷了訪問。無法遠(yuǎn)程登錄自己數(shù)據(jù)中心內(nèi)相關(guān)設(shè)備的結(jié)果是,只能去機房現(xiàn)場進(jìn)行恢復(fù)。

引用來自事故報告:“Our primary and out-of-band network access was down,so we sent engineers onsite to the data centers to have them debug the issue and restart the systems.”

為何無法遠(yuǎn)程登錄

那為什么無法遠(yuǎn)程登錄呢?因為,除了BGP路由引起的骨干網(wǎng)故障以外,該服務(wù)提供商自己的權(quán)威DNS系統(tǒng)也“脫網(wǎng)”了。那權(quán)威DNS系統(tǒng)為什么會“脫網(wǎng)”呢?這是因為DNS系統(tǒng)主動注銷了自己的服務(wù)IP地址。那這又是為什么呢?結(jié)合公開資料的描述,我們分析此事件中的權(quán)威DNS估計是采用了IP anycast方式部署,該機制中通常會采用路由健康注入(Route Health Injection)方式,基于服務(wù)可用性,并利用BGP或OSPF動態(tài)路由主動發(fā)布和注銷服務(wù)IP地址的路由信息。因此,當(dāng)故障發(fā)生時,由于權(quán)威DNS與內(nèi)部骨干網(wǎng)到所有數(shù)據(jù)中心服務(wù)器之間的路由通信故障,導(dǎo)致觸發(fā)了動態(tài)路由更新,主動注銷了通過BGP公告的所有DNS服務(wù)IP地址,使該服務(wù)提供商的互聯(lián)網(wǎng)服務(wù)完全斷開。

DNS方案建設(shè)問題及建議

權(quán)威DNS作為互聯(lián)網(wǎng)基礎(chǔ)服務(wù)系統(tǒng),是一個企業(yè)機構(gòu)IT架構(gòu)中非常重要的一個環(huán)節(jié),無論是面向互聯(lián)網(wǎng)的外網(wǎng)DNS,還是面向內(nèi)部網(wǎng)絡(luò)的內(nèi)網(wǎng)DNS系統(tǒng),我們在設(shè)計和建設(shè)時一定要考慮如何提升其高可用性和安全性!通過此次事件,作為IT架構(gòu)的設(shè)計、決策和維護(hù)人員,我們需要思考以下幾個關(guān)鍵問題:

問題1:您的DNS系統(tǒng)是否單機房或單個云服務(wù)商部署?

F5建議:DNS系統(tǒng)要多中心或混合云部署,不把雞蛋放在一個籃子里

問題2:您的DNS系統(tǒng)是否內(nèi)外網(wǎng)隔離和獨立分域部署?

F5建議:內(nèi)外網(wǎng)DNS系統(tǒng)一定要分開獨立部署;同時業(yè)務(wù)面DNS與維護(hù)管理面DNS也一定要分開獨立部署;以免相互影響

問題3:您的DNS系統(tǒng)前端是否有專門針對DNS協(xié)議的安全防護(hù)體系?

F5建議:DNS系統(tǒng)一定要專門設(shè)計和部署針對DNS協(xié)議的安全防護(hù)設(shè)備,例如F5的高級防火墻AFM模塊(Advanced Firewall Manager)

問題4:您的DNS系統(tǒng)是否全部通過BGP或OSPF的路由健康注入方式進(jìn)行自我主動發(fā)布和注銷?

F5建議:DNS系統(tǒng)作為一個公司的對外提供服務(wù)的核心基礎(chǔ)設(shè)施,應(yīng)考慮對多個Name Server(后簡稱NS)地址采用組合的方式進(jìn)行對外公告,除了動態(tài)發(fā)布的NS外,也考慮保留部分傳統(tǒng)方式公告的NS IP地址(DNS注冊機制允許在上級域名管理機構(gòu)注冊多個NS服務(wù)地址),避免此類事件發(fā)生時所有權(quán)威DNS,甚至帶外管理的DNS都不能提供服務(wù)。

問題5:您的DNS系統(tǒng)如何處理當(dāng)內(nèi)部骨干網(wǎng)絡(luò)出現(xiàn)部分或全部故障時對外部發(fā)起的域名解析請求的響應(yīng)?

F5建議:采用WideIP智能解析算法優(yōu)化DNS域名解析請求,為用戶返回最佳路徑的應(yīng)用服務(wù)器IP地址,對不能正常提供服務(wù)的服務(wù)器進(jìn)行篩選屏蔽。當(dāng)DNS認(rèn)為某一應(yīng)用的所有服務(wù)器IP地址均處于無法工作的狀態(tài)時,可以選擇返回所有可能的服務(wù)器地址作為響應(yīng)結(jié)果給Local DNS或客戶端,允許客戶端自行嘗試連接目標(biāo)服務(wù),以規(guī)避由于權(quán)威DNS自身與內(nèi)部骨干網(wǎng)之間的故障導(dǎo)致的錯誤判斷。(F5的DNS分布式集群解決方案還可以通過集群間的交叉健康檢查探測來進(jìn)一步篩選您部署在多中心、混合云內(nèi)的不同服務(wù)資源以及連接所有這些資源的多條線路間的健康情況,并通過智能解析算法提供最優(yōu)解,最大限度避免由于基礎(chǔ)設(shè)施的故障導(dǎo)致的整體服務(wù)故障)

問題6:您的DNS系統(tǒng)是否具有除路由與IP地址可用檢測手段以外的業(yè)務(wù)系統(tǒng)健康檢查能力?

F5建議:結(jié)合F5 DNS的分布式集群部署與LTM的豐富應(yīng)用負(fù)載及應(yīng)用級健康檢查能力實現(xiàn)多級且獨立的業(yè)務(wù)能力監(jiān)控與判斷糾錯系統(tǒng),實現(xiàn)真正的DNS智能化,與業(yè)務(wù)實時服務(wù)能力的深度判斷。

如果以上幾個問題,您都有了比較放心滿意的答案,那就可以最大程度的避免此類事件的發(fā)生。讓我們一起構(gòu)建一個高可用、高可靠的IT架構(gòu)系統(tǒng)吧!

事件故障詳情參考資料:

1.https://engineering.fb.com/2021/10/04/networking-traffic/outage/

2.https://engineering.fb.com/2021/10/05/networking-traffic/outage-details/

3.https://blog.cloudflare.com/october-2021-facebook-outage/

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于F5Networks,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
個人VIP