骨干網(wǎng)(Internet Backbone Network)是連接國與國、城市與城市之間的高速互聯(lián)網(wǎng)絡(luò)。如下圖所示,它通過海纜和路纜,將分布在世界各地的數(shù)據(jù)中心連接起來,是互聯(lián)網(wǎng)服務(wù)提供商和云計(jì)算服務(wù)提供商的重要基礎(chǔ)設(shè)施,肩負(fù)著滿足全球范圍內(nèi)網(wǎng)絡(luò)數(shù)據(jù)通信需求的重任。
全球骨干網(wǎng)示意圖
骨干網(wǎng)的角色如此重要,以至于與此有關(guān)的話題,常常會引起業(yè)界的關(guān)注和討論。作為云計(jì)算的基礎(chǔ),國內(nèi)的云計(jì)算服務(wù)提供商是如何運(yùn)維自己的骨干網(wǎng)的?又是如何實(shí)現(xiàn)自動化運(yùn)維的?有哪些值得分享、思考的經(jīng)驗(yàn)和做法?作為一名從業(yè)10年的網(wǎng)絡(luò)架構(gòu)師,我向大家介紹一下金山云骨干網(wǎng)的現(xiàn)況,希望對大家有所幫助。
如何快速發(fā)現(xiàn)骨干網(wǎng)級別故障?
首先簡要介紹一下建設(shè)進(jìn)展。金山云目前在北京和上海兩地之間租用專線搭建起了骨干網(wǎng)絡(luò),按照計(jì)劃,今年金山云會在廣州部署節(jié)點(diǎn),將進(jìn)一步擴(kuò)大環(huán)網(wǎng)規(guī)模,搭建北上廣骨干環(huán)網(wǎng),大幅提升金山云公有云服務(wù)的網(wǎng)絡(luò)質(zhì)量SLA。
當(dāng)然,這并不是說建設(shè)骨干環(huán)網(wǎng)后就不會出故障了,對于互聯(lián)網(wǎng)公司和云計(jì)算服務(wù)商來說,運(yùn)營商的骨干網(wǎng)絡(luò)故障是很讓人頭痛的,因?yàn)樵谕ǔG闆r下,這種故障會影響到多個省份用戶網(wǎng)絡(luò)的訪問質(zhì)量。
例如,2016年11月19日晚8點(diǎn),包括華南、西南、華中等在內(nèi)的國內(nèi)多個地區(qū),超過10個省份的用戶,在訪問華北地區(qū)的服務(wù)節(jié)點(diǎn)時,均出現(xiàn)了問題。測試結(jié)果顯示,ICMP丟包率高達(dá)30%,延遲增大了約100ms,這種級別的丟包率和延遲情況,如果不及時處理,將導(dǎo)致用戶的業(yè)務(wù)嚴(yán)重受損。
那么,對于這種骨干網(wǎng)級別的故障,云服務(wù)商能否做到快速發(fā)現(xiàn)定位呢?當(dāng)然是可以的。
金山云的做法是,通過自研開源監(jiān)控的方式,研發(fā)出服務(wù)于金山云整個骨干網(wǎng)的網(wǎng)絡(luò)質(zhì)量監(jiān)控系統(tǒng)(Netbench)。
金山云網(wǎng)絡(luò)質(zhì)量監(jiān)控系統(tǒng)監(jiān)控圖
如上圖所示,金山云的這套系統(tǒng)支持多地區(qū)、多ISP監(jiān)控,可在運(yùn)營商發(fā)生骨干網(wǎng)故障時,快速發(fā)現(xiàn)并準(zhǔn)確定位故障,同時采用電子地圖這種直觀形式,顯示出各省份各地級市的網(wǎng)絡(luò)質(zhì)量(延遲、丟包等數(shù)據(jù)),如果某地出現(xiàn)問題,地圖上相應(yīng)位置的顏色就會變得不同。
金山云網(wǎng)絡(luò)質(zhì)量監(jiān)控系統(tǒng)架構(gòu)圖
金山云這套網(wǎng)絡(luò)質(zhì)量監(jiān)控系統(tǒng)的主要特點(diǎn),分為定位策略、主要功能、應(yīng)用場景三部分:
一、定位策略
抓取訪問客戶服務(wù)的用戶IP作為監(jiān)控目的IP;
多對多的監(jiān)控模式,多個源IP監(jiān)控全國各個省市的用戶IP(保證數(shù)據(jù)的準(zhǔn)確性避免路由ecmp不均勻的問題);
通過對抓取到的IP進(jìn)行篩選,排除掉一些不準(zhǔn)確的IP,最終篩選出每省份數(shù)百個有效IP進(jìn)行監(jiān)控;
商用的IP地址庫與BGP IP結(jié)合對抓取到的IP進(jìn)行區(qū)分(ISP、省、市等);
Master-Slave的部署模式,監(jiān)控周期可精確到分鐘級(每1分鐘)。
二、主要功能
提供短信、微信、郵件告警;
提供故障時的MTR數(shù)據(jù)(平均每省份多個MTR),可幫助判斷l(xiāng)oss節(jié)點(diǎn);
提供柱狀圖、歷史數(shù)據(jù)展示等功能,可追溯故障,查看故障時的丟包以及延遲情況;
可針對重要的IP進(jìn)行指定監(jiān)控。
三、應(yīng)用場景
可覆蓋CDN、靜態(tài)、BGP等多網(wǎng)絡(luò)類型;
目前可針對EIP(計(jì)算)、KS3(存儲)、KLS(視頻)等業(yè)務(wù)類型進(jìn)行監(jiān)控。
骨干網(wǎng)調(diào)度架構(gòu)圖
如何快速解決骨干網(wǎng)級別故障?
對于骨干網(wǎng)級別的故障,除了需要快速發(fā)現(xiàn),更需要快速解決。
有些互聯(lián)網(wǎng)和云計(jì)算服務(wù)提供商,會通過多線BGP切換故障ISP流量至其他的ISP的方式繞開故障點(diǎn),由于我國南北互通問題,跨網(wǎng)訪問的質(zhì)量很差,丟包和延遲都無法保證,而且在跨網(wǎng)切換時,會有較長時間的路由收斂,導(dǎo)致客戶長連接業(yè)務(wù)中斷。
金山云避免了這些問題。因?yàn)榻鹕皆频淖越ü歉删W(wǎng)絡(luò)擁有支持跨區(qū)域調(diào)度能力,當(dāng)出現(xiàn)故障時,能夠通過骨干網(wǎng)跨地區(qū)調(diào)度故障運(yùn)營商流量,這種調(diào)度只是在同ISP不同地區(qū)之間的調(diào)度,只增加地區(qū)間的延遲,對整體丟包并無影響,這樣一來,整體服務(wù)質(zhì)量就得到了保障,同ISP內(nèi)的路由切換收斂時間,可保證用戶無感知,在近幾次運(yùn)營商南北骨干網(wǎng)故障中,金山云均做到了故障的快速調(diào)度恢復(fù),客戶也不必再因?yàn)檫\(yùn)營商骨干網(wǎng)的故障而頭疼了。
骨干網(wǎng)絡(luò)調(diào)度前后對比圖
這里解釋一下原因。金山云可以做到以省市為單位的出口切換級別,比如目標(biāo)浙江省出現(xiàn)了故障,會優(yōu)先嘗試調(diào)度浙江省出向流量至正常地區(qū)節(jié)點(diǎn),在丟包恢復(fù)后將不會有下一步切換動作,不會導(dǎo)致全國切換而加大其它省份的延遲,只有在多省份同時異常而且調(diào)度出向無效后才會切全局入向流量。當(dāng)前已經(jīng)定義了一整套切換規(guī)則來判定什么情況下切換,什么情況下不切換。
骨干網(wǎng)運(yùn)維自動化
每當(dāng)出現(xiàn)骨干網(wǎng)級別的故障時,工程師很容易出現(xiàn)誤操作刷錯腳本等低級錯誤,導(dǎo)致業(yè)務(wù)受影響,故障處理速度上也得不到最有效的保障。
目前金山云上線的骨干網(wǎng)自動化運(yùn)維平臺,可實(shí)現(xiàn)對這種骨干網(wǎng)級別的故障的自動化判斷和處理等一系列自動化流程,減輕了工程師的壓力,它有著如下特點(diǎn):
首先,Netbench提供判斷依據(jù),給出當(dāng)前網(wǎng)絡(luò)的質(zhì)量情況,作為自動化腳本的觸發(fā)條件開始進(jìn)入自動化流程;
第二,通過Python腳本定義多個故障場景,當(dāng)出現(xiàn)不同類型的骨干網(wǎng)時可根據(jù)腳本庫調(diào)出對應(yīng)的腳本;
第三,通過Netconf下發(fā)所需要調(diào)用的腳本策略配置到對應(yīng)的核心網(wǎng)絡(luò)設(shè)備上;
第四,直接對接郵件系統(tǒng),從Netbench調(diào)用MTR發(fā)送給ISP進(jìn)行自動報障;
第五,對接微信、短信告警平臺,在故障時讓客戶能第一時間知道當(dāng)前故障狀態(tài)以及故障的處理進(jìn)度。
自動化調(diào)度架構(gòu)圖
在兩三個Region級別的骨干網(wǎng)通過“人”計(jì)算還是可以實(shí)現(xiàn)最優(yōu)調(diào)度的,但是隨著Region的增加,“人”計(jì)算的方式效率會越來越低,準(zhǔn)確度也會越來越差,那么如何解決多Region骨干網(wǎng)調(diào)度呢?我總結(jié)出了幾種方法:
1、通過Netbench的MTR功能定時定點(diǎn)采集每Region到每ISP的數(shù)據(jù),平均每省份保證10-20個IP即可(排除路由Ecmp hash不均的問題);
2、對采集到的數(shù)據(jù)進(jìn)行分層分級,區(qū)分到運(yùn)營商層面的超核、核心、省市等,并在這些層級的IP上保留MTR當(dāng)中的延遲值(運(yùn)營商的設(shè)備都會對ICMP有保護(hù)所以不采用丟包值);
3、通過腳本分析構(gòu)建ISP的邏輯IP網(wǎng)絡(luò)拓?fù)鋱D;
4、在運(yùn)營商骨干網(wǎng)故障時能夠清晰的描述到是哪個層級哪個核心節(jié)點(diǎn)出現(xiàn)的問題,能夠在拓?fù)渖锨逦乜吹絾栴}所在;
5、在故障時可通過構(gòu)建的邏輯IP拓?fù)溆?jì)算出調(diào)度的最優(yōu)RTT路徑;
6、結(jié)合自動化調(diào)度實(shí)現(xiàn)最優(yōu)調(diào)度。
隨著客戶對網(wǎng)絡(luò)問題的重視程度的增加,骨干網(wǎng)以及多Region骨干網(wǎng)結(jié)構(gòu)已經(jīng)是現(xiàn)在的互聯(lián)網(wǎng)服務(wù)提供商和云計(jì)算服務(wù)提供商不可或缺的重要環(huán)節(jié)。越來越多的重網(wǎng)絡(luò)業(yè)務(wù)的出現(xiàn),比如實(shí)施對戰(zhàn)類的手機(jī)游戲、視頻直播等對網(wǎng)絡(luò)質(zhì)量要求非常高的業(yè)務(wù),不能一而再再而三地把我們所謂的SLA推到運(yùn)營商的層面,站在客戶業(yè)務(wù)的角度去考慮這是極其不負(fù)責(zé)任的態(tài)度,我們要在有限的網(wǎng)絡(luò)環(huán)境中盡可能把客戶的問題合理解決,這樣客戶才能把重要的業(yè)務(wù)托付到你那里。
由于運(yùn)營、成本問題、運(yùn)維、網(wǎng)絡(luò)現(xiàn)狀受限等復(fù)雜的因素,金山云目前并沒有使用商用SDN的技術(shù)來實(shí)現(xiàn)骨干網(wǎng)自動化,,而是通過實(shí)踐,使用了BGP、Python、GO等網(wǎng)絡(luò)協(xié)議以及腳本工具配合Netconf來實(shí)現(xiàn)對于金山云骨干網(wǎng)的自動化。我希望通過介紹金山云在骨干網(wǎng)運(yùn)維方面的思路,能給大家?guī)硪恍﹩l(fā)和幫助。