如何從不同層面綜合運(yùn)營(yíng),保證DNS服務(wù)安全高效的運(yùn)行?DNSPod工程師認(rèn)為,主要應(yīng)該從狀態(tài)監(jiān)控、信息告警、事件處理、數(shù)據(jù)記錄、綜合運(yùn)營(yíng)數(shù)據(jù)分析這五個(gè)方面入手。
眾所周知,DNS作為一項(xiàng)互聯(lián)網(wǎng)基礎(chǔ)業(yè)務(wù),對(duì)整個(gè)互聯(lián)網(wǎng)的正常運(yùn)行起著至關(guān)重要的作用。當(dāng)然,別有用心的攻擊者也同樣明白這個(gè)道理,總是希望通過(guò)各種各樣的攻擊手段破壞DNS解析服務(wù)的正常開(kāi)展。
如何從不同層面綜合運(yùn)營(yíng),保證DNS服務(wù)安全高效的運(yùn)行,一直以來(lái)都是DNSPod每一位工程師不斷思索的問(wèn)題。我們認(rèn)為,主要從應(yīng)該從以下幾個(gè)方面入手:
狀態(tài)監(jiān)控
DNS服務(wù)是一項(xiàng)實(shí)時(shí)性要求非常高的服務(wù),準(zhǔn)確全面的監(jiān)控系統(tǒng)是整個(gè)DNS服務(wù)的運(yùn)營(yíng)基礎(chǔ)。為此,我們?cè)O(shè)計(jì)了一整套的監(jiān)控體系,包括網(wǎng)絡(luò)流量監(jiān)控、服務(wù)器內(nèi)核監(jiān)控模塊、解析監(jiān)控、服務(wù)器集群監(jiān)控等等。從不同層面不同角度對(duì)DNS解析服務(wù)進(jìn)行監(jiān)控,保證工程師能第一時(shí)間了解其運(yùn)行狀態(tài)。在技術(shù)選型方面,我們一方面采用比較成熟的基于SNMP的nagios/cacti監(jiān)控,一方面針對(duì)DNS的特點(diǎn)開(kāi)發(fā)與解析服務(wù)緊密結(jié)合的監(jiān)控模塊,滿(mǎn)足不同監(jiān)控對(duì)象的需要。
信息告警
DNS服務(wù)運(yùn)行過(guò)程中總會(huì)有各種各樣的情況發(fā)生,同一個(gè)事件需要通知到不同的負(fù)責(zé)人,每個(gè)人需要知道的信息也不盡相同。例如在捕獲到域名攻擊事件后,會(huì)馬上向運(yùn)維工程師發(fā)出告警,提示各種層面的流量數(shù)據(jù)。向技術(shù)支持人員發(fā)送攻擊情況概要和受影響的程度,以便用戶(hù)詢(xún)問(wèn)情況時(shí)能得到最新信息。針對(duì)VIP客戶(hù),還會(huì)向相關(guān)的銷(xiāo)售人員發(fā)送攻擊相關(guān)數(shù)據(jù)和處理情況,由銷(xiāo)售人員直接與客戶(hù)取得聯(lián)系。特別重大的攻擊事件,還會(huì)向市場(chǎng)人員、開(kāi)發(fā)人員、技術(shù)負(fù)責(zé)人甚至總經(jīng)理發(fā)送,保證信息及時(shí)傳遞,事件能夠及時(shí)處理。為了滿(mǎn)足多樣化的信息發(fā)送需求,我們建立了專(zhuān)門(mén)的通知系統(tǒng)平臺(tái),提供了一致的API接口供各個(gè)程序調(diào)用,能夠提供郵件、微信、短信、語(yǔ)音等多種通知方式。
事件處理
為了及時(shí)響應(yīng)并處理各種事件,為用戶(hù)提供持續(xù)的優(yōu)質(zhì)服務(wù),我們實(shí)行24小時(shí)值班制度。任何時(shí)間都會(huì)有經(jīng)驗(yàn)豐富的技術(shù)人員準(zhǔn)備應(yīng)對(duì)突發(fā)情況。同時(shí),為了進(jìn)一步加強(qiáng)響應(yīng)效率,自動(dòng)化運(yùn)維處理必不可少。例如,我們對(duì)DNS攻擊做了長(zhǎng)期的研究,開(kāi)發(fā)了域名封禁/解封、防護(hù)算法、流量引導(dǎo)等多種防護(hù)手段,根據(jù)DNS攻擊的實(shí)際情況自動(dòng)開(kāi)啟,能在短時(shí)間內(nèi)化解大流量的DNS攻擊,將影響減到最小。
數(shù)據(jù)記錄
當(dāng)然,事件處理完成并不代表著結(jié)束,還需要做好各種記錄,保證可以回顧分析?;镜臄?shù)據(jù)包括交換機(jī)流量數(shù)據(jù)、網(wǎng)卡抓包數(shù)據(jù)、事件處理記錄等等,我們對(duì)這些數(shù)據(jù)都做了完整的記錄、備份、整理、歸檔,這樣不但任何問(wèn)題都有據(jù)可查,也為進(jìn)一步的統(tǒng)計(jì)分析做好了準(zhǔn)備。因?yàn)閿?shù)據(jù)量大、種類(lèi)多,我們比較多的使用了Redis和MongoDB,其存NoSQL的特點(diǎn)特別適用于這個(gè)情況。
綜合運(yùn)營(yíng)數(shù)據(jù)分析
除了短時(shí)間的針對(duì)單個(gè)事件的應(yīng)對(duì)策略,運(yùn)營(yíng)更需要長(zhǎng)期的數(shù)據(jù)記錄與分析。我們每天的運(yùn)營(yíng)情況都會(huì)以報(bào)表的形式呈現(xiàn)出來(lái),對(duì)域名解析量、用戶(hù)數(shù)量、攻擊情況等數(shù)據(jù)更有長(zhǎng)時(shí)間的追蹤和趨勢(shì)分析。如根據(jù)攻擊趨勢(shì)的分析加強(qiáng)防攻擊投入,根據(jù)用戶(hù)轉(zhuǎn)入/轉(zhuǎn)出情況聯(lián)系銷(xiāo)售人員跟進(jìn)。這里我們使用了Graphite用于繪圖,D3.js在繪制報(bào)表方面也有很好的表現(xiàn)。
總的來(lái)說(shuō),DNS服務(wù)有其復(fù)雜性和特殊性,DNSPod長(zhǎng)期專(zhuān)注于DNS解析業(yè)務(wù),在此領(lǐng)域有豐富的經(jīng)驗(yàn)和深厚的積累,希望上述分享能給每一位關(guān)心DNS領(lǐng)域的朋友帶來(lái)益處,共同創(chuàng)造更美好的互聯(lián)網(wǎng)環(huán)境。