對話企業家陶利——做企業靠 19年前,他是一個程序員,初出茅廬,經驗不足,憑借一己之力闖世界;
省市領導蒞臨億恩科技推進電 12月22日上午,由河南省商務廳,鄭州市商務局有關領導蒞臨河南省億
怎樣選擇服務器托管商?如何 互聯網開展至今,服務器方面的受到越來越多人的注重,假如要停止服務器
BGP高防業務需求
1、業務需求描述
有業務能付得起高昂的高防IP費用么?
中國線上棋牌類游戲從98年的聯眾游戲、2003年的QQ游戲,到2008年德州撲克、2009年的捕魚,在到2016年的閑徠游戲,開拓了俗人線上棋牌游戲的模式。游戲行業掀起了腥風血雨的蔓延,到2017年6~7月期間全國大大小小的棋牌公司有上百家。
業務模式:熟人4個人可以通過手機打麻將,游戲公司收取的是桌臺費,通過總代的方式拉攏客源進入棋牌游戲群里,假設一場麻將10幾分鐘,收取6塊錢桌臺費,那么線下渠道拉客源可以給到4塊,通過病毒式的傳播后,省內Top棋牌類公司一天的營業額大約在10幾或者幾十萬不等。這樣競爭對手看到這么暴力的營收都坐不住了,紛紛研發棋牌游戲,但是一個省玩麻將的就這么些人,自然的相互攻擊的現象時有發生,如果你的App服務器訪問不了,大家都上其他家App玩了。
2、解決方案選擇
為什么要使用BGP高防?
游戲公司有錢支付抗D的費用,那么DDoS防御的需求就發展起來了。那么傳統的抗D解決方案能滿足需求么?答案是不行的,因為棋牌游戲的實時要求非常高,在高延時的情況下,會嚴重影響用戶體驗。所以需要,絕對好的線路,傳統的單線高防,在運營商之前切換延時無法滿足業務需求。
為啥用3線BGP高防?
傳統的BGP高防機房,都是使用自建BGP機房資源做,這種IDC也只有騰訊會有,而且費用昂貴。大家都知道BGP線路都是優先給公有云IAAS服務的,拿來做高防太浪費了(BGP線路是普通單線的至少3倍以上價格),而且這種BGP線路,一般都也只有100G左右,不會有更大的帶寬。這種針對棋牌類的攻擊一般都在200G~300G左右,當時和閑徠聊過,他們業務高峰的時候攻擊量是平均500G~700G。這么大的帶寬存BGP機房是無法承受的。
CDN與三線BGP高防聯營
如果直接和運營商談這個機房只做高防機房,其實這是非常虧的,因為高防的流量很大,攻擊時間也不確定,那么,如果我們使用CDN網絡中的其中一個節點做高防機房,CDN使用出口帶寬,高防使用入口帶寬。這樣帶寬利用率會上升很多。如果按照出入向1:5的比例,80G CDN流量可以換400G入口流量。如果按照平均8元/Mbps.月, CDN的運營費用:160萬。如果你量用到了,其實高防是免費用的。當然,你要集中這個省的幾個節點,一般一個CDN節點按照20G規劃。
有了以上論證,我們有了三線BGP高防,那么,下一步要做什么呢?大家都知道高防切換是使用cname的方式做切換。其實如果你在游戲終端安裝一個安全sdk,切換這就完全擺脫cname的方式,可以使用WebDNS切換。也就是阿里云的游戲盾模式。游戲盾相關的介紹可以參考我以前的文章。本節主要是講我們三線BGP高防如何工作。
一、高防系統架構
BGP高防系統架構
二、轉發模塊
模塊作用
轉發模塊在整個高防系統中起到至關重要的作用,把用戶的真實IP隱藏到轉發系統后面,配合用戶通過cname方式切換現有業務系統到高防機房,同時把清洗后的正常流量轉發給真正的用戶業務系統。
功能描述
轉發系統分為4層轉發和7層轉發,針對棋牌類App業務數據使用4層轉發,升級等系統使用7層轉發(一般都是掛在CDN上的一個url下載地址)
原理
4層轉發
高防機房一般會分配幾個C段高防IP端,這些IP就是給轉發模塊用的,我們假定它為IP1
realIP1是用戶業務源站IP地址
graph LR
A[clientIP:TCP:2004]
A--> |正常訪問| B[IP1:TCP:2004]
B--> |4層轉發| C[realIP1:TCP:10000]
C--> |4層轉發| D[用戶業務源站]
7層轉發
graph LR
A[clientIP:TCP:80]
A--> |正常訪問| B[IP1:TCP:80]
B--> |4層轉發| C[realIP1:TCP:80]
C--> |7層轉發| D[用戶業務源站]
業務流程
1、用戶在控制臺創建高防IP,系統會在剩余的高防IP列表中隨機選一個IP地址。
2、然后通知lvs系統建立pool,通過pool建立虛擬IP,然后建立對應member IP(回源IP)
BGP高防系統
3、設置完以上參數,需要等待用戶把我們產生的隨機域名設置到他們生產網站別名。
4、啟動BGP高防,借助CDN的DNS系統,當聯通用戶,根據不同線路解析到對應的聯通高防機房,電信、移動也一樣。
5、不使用的時候可以切換到回源IP上。
返回VIP是否分配成功。
三、清洗系統
BGP高防清洗系統
模塊組成
一般清洗模塊要配合檢測模塊配合使用,我們先把檢查模塊使用NTA標識,清洗模塊使用ADS標識。
檢查模塊負責:需要統計各個高防IP對進入高防機房的流量,傳統檢測手段,例如綠盟的NTA使用netflow和交換機配合,主要是準確性差一些。建議還是使用大數據方式計算其流量(spark streaming 統計各種包的數量,聚合計算檢測),一旦出現流量超出通知核心交換丟棄目的IP所有流量。
清洗模塊負責:需要在用戶購買的黑洞閾值內對攻擊流量做清洗。針對4層DDoS攻擊流量,比如:Syn Flood PPS達到8000的時候,啟動清洗,這就需要流量學習的技術。動態設定PPS。清洗模塊是由集群組成,單臺處理能力能達到40G,小包20G能力,一般一個高防機房需要400G,一個機架柜搞定。針對7層的攻擊流量,要測量一下 nginx服務器大小,一臺服務器http處理能力大約8萬QPS,4臺4層轉發lvs+8臺7層轉發nginx。兩個機架柜。如果是https處理能力大約在7000~8000QPS,一般加SSL加速卡。提升其單臺服務器處理能力。一個集群處理7層流量大約60萬QPS,4層清洗能力大約400G。
業務流程
1、分線路解析
2、流量檢測發布黑洞路由=>對應套餐上限
3、經過4層流量清洗。
4、經過lvs+nginx做4/7層轉發CC清洗。
5、清洗完成后把干凈數據轉發給用戶源站。
四、管控中臺
功能
主要是完成用戶購買高防套餐,對高防IP的自動分配,設置DNS分線路解析。
同時要采集攻擊流量圖,連接數,攻擊告警,顯示給用戶。
五、調度系統
網絡狀況感知
主要是通過CDN撥測系統,了解目標用戶的網絡狀況,通過延時和丟包率統計上來,作為調度系統決策手段,一般延時不能大于100ms,丟包率一般不要大于5%,BGP線路一般都是2%左右。監控準確性取決于CDN撥測點數和反饋數據準確性。后臺可以通過tsdb存儲。
調度
一般通過手工調度,調度功能有:
@1、調度算法,根據網絡狀況感知模塊決定,降級/升級調度(取決于機房的延時和丟包率定義升降),
@2、調度管理:調度首先要明確你的調度對象,針對哪個用戶,哪個線路進行調度。還是整個機房調度。如果整個機房由于特殊的原因無法使用,需要把這個機房所有用戶調度到其他可用機房,如果我們有單線機房,我們可以在BGP機房單個線路調度到相應的機房
@3、資產管理:管理我們現有的高防機房,管理我們高防機房中有高防IP資產。
@4、超賣率統計:高防如何想賺錢必須達到3~5倍的超賣率。超賣率=當前銷售的總帶寬/高防機房現有帶寬。
六、監控系統
日常監控
主要監控高防機房所有的設備監控狀態,例如:CPU、memory、DISK、network、process、socket。
性能監控
需要了解4、7層性能。ip_port連接的pps,http連接的cps。
未來發展
BGP高防體系也在不斷的演變,運營商也看上了這塊市場,包括電信云堤,聯通也在全國部署了相應的清洗服務。再加上運營商可以自己控制路由器,所有IP anycast也是有可能實現的。