摘? 要:互聯(lián)網(wǎng)以席卷之勢(shì)影響著生活的方方面面,傳統(tǒng)電視行業(yè)在互聯(lián)網(wǎng)的沖擊下也開(kāi)始重新洗牌,機(jī)頂盒形式的智能電視已經(jīng)占據(jù)市場(chǎng)較大份額,相關(guān)軟件和運(yùn)用設(shè)備也正逐步完善中。受限于平臺(tái)的技術(shù)以及災(zāi)難事故處理機(jī)制的不成熟,已存在的省DNS平臺(tái)無(wú)法智能檢測(cè)平臺(tái)自身的情況且需要手動(dòng)切換。為了解決已有系統(tǒng)平臺(tái)存在的種種問(wèn)題,開(kāi)發(fā)了基于DNS智能解析組件實(shí)現(xiàn)災(zāi)備平臺(tái)自動(dòng)切換的軟件項(xiàng)目。
關(guān)鍵詞:DNS;平臺(tái);視頻;魔百盒
中圖分類號(hào):TP368? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)23-0073-04
Automatic Switching of Disaster Backup Platform Based on DNS Intelligent Resolution Component
YU Wenxiao
(Hunan Branch of China Mobile, Changsha? 410000, China)
Abstract: The Internet is sweeping all aspects of life. Under the impact of the Internet, the traditional TV industry also began to reshuffle. The smart TV in the form of set-top box has occupied a large market share, and the relevant software and application equipment are gradually improving. Limited by the immature of the platform technology and the disaster accident handling mechanism, the existing provincial DNS platform cannot intelligently detect the situation of the platform itself and need to be switched manually. In order to solve the problems existing in the existing system platform, we have developed a software project to realize the automatic switching of disaster backup platform based on DNS intelligent resolution component.
Keywords: DNS; platform; video; Magic box
0? 引? 言
原有的省DNS平臺(tái)已經(jīng)具備對(duì)IP進(jìn)行解析以及對(duì)來(lái)自用戶的業(yè)務(wù)請(qǐng)求進(jìn)行轉(zhuǎn)發(fā)處理的能力,只是在系統(tǒng)的健壯性以及故障檢測(cè)和處理方面做得不夠完善,極其容易收到干擾,并且當(dāng)問(wèn)題發(fā)生時(shí)無(wú)法有效解決。針對(duì)現(xiàn)有系統(tǒng)存在的問(wèn)題,項(xiàng)目組在開(kāi)源DNS解析軟件BIND的基礎(chǔ)上進(jìn)行二次開(kāi)發(fā),增加了智能監(jiān)控模塊,使用相關(guān)軟件技術(shù)對(duì)整個(gè)系統(tǒng)的解析能力進(jìn)行監(jiān)控,實(shí)現(xiàn)對(duì)IPTV平臺(tái)西片區(qū)機(jī)房和湘潭機(jī)房平臺(tái)主機(jī)和應(yīng)用的監(jiān)測(cè),當(dāng)檢測(cè)到相關(guān)功能異常時(shí),能夠及時(shí)做出反應(yīng),構(gòu)建整體DNS智能解析能力,實(shí)現(xiàn)IPTV災(zāi)備平臺(tái)的自動(dòng)切換。
經(jīng)過(guò)完善的系統(tǒng)平臺(tái)主要功能包括兩個(gè),一個(gè)是原有的也是最基本的DNS域名解析功能。盒端配置域名后,發(fā)起請(qǐng)求,DNS解析負(fù)責(zé)接收來(lái)自用戶端的針對(duì)系統(tǒng)平臺(tái)的訪問(wèn)請(qǐng)求并解析相關(guān)的IP地址,省DNS隨后向大視頻主F5節(jié)點(diǎn)轉(zhuǎn)發(fā)域名解析請(qǐng)求,主備F5轉(zhuǎn)發(fā)域名解析請(qǐng)求到大視頻主備DNS服務(wù)器進(jìn)行域名解析,大視頻主備DNS解析域名后,將域名解析成主業(yè)務(wù)系統(tǒng)IP,到主業(yè)務(wù)支撐系統(tǒng)業(yè)務(wù)請(qǐng)求。另一個(gè)功能是針對(duì)省DNS平臺(tái)的智能監(jiān)控以及災(zāi)備平臺(tái)的自動(dòng)切換。完善的項(xiàng)目使用軟件進(jìn)行相關(guān)功能的智能監(jiān)控,采取按時(shí)間頻率進(jìn)行自動(dòng)檢測(cè)的方式,測(cè)試系統(tǒng)主業(yè)務(wù)平臺(tái)是否聯(lián)通,是否能夠承擔(dān)完整的業(yè)務(wù)請(qǐng)求,當(dāng)檢測(cè)到主業(yè)務(wù)平臺(tái)故障時(shí),自動(dòng)切換災(zāi)備業(yè)務(wù)支撐系統(tǒng),將來(lái)自用戶的業(yè)務(wù)請(qǐng)求在大視頻主備DNS解析后轉(zhuǎn)發(fā)到備用系統(tǒng)進(jìn)行處理,既做到故障及時(shí)發(fā)現(xiàn),又做到問(wèn)題及時(shí)解決,大幅度提高系統(tǒng)健壯性以及公司集團(tuán)業(yè)務(wù)水平。具體的業(yè)務(wù)處理流程圖如圖1所示。
1? 項(xiàng)目開(kāi)發(fā)相關(guān)技術(shù)原理
1.1? DNS域名解析
每個(gè)用戶都可以在盒端通過(guò)互聯(lián)網(wǎng)連接到業(yè)務(wù)請(qǐng)求服務(wù)相對(duì)應(yīng)的網(wǎng)絡(luò)服務(wù)中心,網(wǎng)絡(luò)服務(wù)中心的省DNS平臺(tái)先進(jìn)行DNS智能解析組件的部署,相關(guān)的IP地址與域名的對(duì)應(yīng)關(guān)系已經(jīng)提前寫入到相關(guān)的組件中,所以部署完成后在相應(yīng)的DNS地址簿會(huì)保存有對(duì)應(yīng)的服務(wù)器IP地址與相關(guān)的域名對(duì)應(yīng)關(guān)系。當(dāng)用戶通過(guò)盒子向省DNS平臺(tái)發(fā)送對(duì)應(yīng)的服務(wù)請(qǐng)求時(shí),DNS將解析所請(qǐng)求的域名,先檢查一下自己的緩存中有沒(méi)有這個(gè)地址,有的話就直接返回。這個(gè)時(shí)候拿到的ip地址,會(huì)被標(biāo)記為非權(quán)威服務(wù)器的應(yīng)答,如果緩存中沒(méi)有的話,DNS平臺(tái)會(huì)從配置文件里面讀取根域名服務(wù)器的地址(這些地址是不變的,直接在BIND的配置文件中),如果查詢成功再將相關(guān)的請(qǐng)求轉(zhuǎn)發(fā)到對(duì)應(yīng)的IP地址,
1.2? 主機(jī)和業(yè)務(wù)監(jiān)控
省側(cè)DNS轉(zhuǎn)發(fā)的DNS解析請(qǐng)求由BIND承接解析,智能監(jiān)控模塊負(fù)責(zé)監(jiān)控多組業(yè)務(wù)主機(jī)、端口,通過(guò)ping、telnet等多種形式探測(cè)主機(jī)和業(yè)務(wù)運(yùn)行狀態(tài)。技術(shù)人員設(shè)置相關(guān)的監(jiān)控參數(shù)后,系統(tǒng)內(nèi)部時(shí)間將根據(jù)所設(shè)定的時(shí)間以及指定的檢測(cè)方式對(duì)系統(tǒng)內(nèi)部業(yè)務(wù)進(jìn)行檢測(cè),比如設(shè)定時(shí)間為一分鐘,那系統(tǒng)將在每分鐘的周期內(nèi)對(duì)內(nèi)部業(yè)務(wù)邏輯進(jìn)行連通性、邏輯性、功能性進(jìn)行檢測(cè),如果檢測(cè)發(fā)現(xiàn)一場(chǎng),則暫時(shí)將該主機(jī)業(yè)務(wù)終止,切換到其他的可用的災(zāi)備平臺(tái)。
目前該DNS智能解析組件已投入實(shí)際生產(chǎn)中,其承接的IPTV災(zāi)備平臺(tái)業(yè)務(wù)目前已上線,性能和可靠性已通過(guò)壓力測(cè)試和現(xiàn)網(wǎng)驗(yàn)證,后續(xù)將在OTT災(zāi)備平臺(tái)繼續(xù)使用該組件,同時(shí)省公司其余采用域名切換的平臺(tái)也可采用該組件。
2? 項(xiàng)目具體開(kāi)發(fā)實(shí)現(xiàn)
2.1? 自動(dòng)宕機(jī)檢測(cè)
自動(dòng)宕機(jī)檢測(cè)是指定期對(duì)域名解析的服務(wù)器進(jìn)行檢測(cè),如發(fā)現(xiàn)某個(gè)服務(wù)器無(wú)法訪問(wèn),則不再將域名解析到該服務(wù)器,實(shí)現(xiàn)故障的自動(dòng)遷移,并通知管理員,故障服務(wù)器修復(fù)后,則解析也自動(dòng)恢復(fù),如圖2所示。在實(shí)現(xiàn)過(guò)程中需要根據(jù)技術(shù)人員事先設(shè)定的參數(shù)進(jìn)行相應(yīng)的檢測(cè),首先讀取DNS平臺(tái)所固有的信息,并將這些信息以固定格式作為參數(shù)傳入檢測(cè)的外露接口,監(jiān)控檢測(cè)接口的內(nèi)部其實(shí)是一個(gè)python所編碼的監(jiān)控檢測(cè)方法,接收到參數(shù)后對(duì)相關(guān)信息進(jìn)行讀取,包括域名、活躍IP、備用IP、IP地址是否可用、字典信息等,獲得這些固定的DNS平臺(tái)信息之后,需要對(duì)相關(guān)的IP地址進(jìn)行檢測(cè)是否可用,具體的檢測(cè)過(guò)程需要調(diào)用事先指定的方法,比如最常用的ping方法,ping是網(wǎng)絡(luò)包探索器(Packet Internet Groper),用于探測(cè)網(wǎng)絡(luò)的程序,工作在TCP/IP的應(yīng)用層,向特定的遠(yuǎn)端或自己發(fā)送ICMP Echo請(qǐng)求報(bào)文,測(cè)試報(bào)文是否可達(dá),以此來(lái)檢測(cè)對(duì)應(yīng)的IP端口是否可以互相聯(lián)通。將ping方法包裝后測(cè)試對(duì)應(yīng)的節(jié)點(diǎn)是否可以聯(lián)通,并返回響應(yīng)值和未響應(yīng)值。如果返回的非響應(yīng)值為2,則說(shuō)明檢測(cè)的兩個(gè)節(jié)點(diǎn)均不聯(lián)通,則不將接收到的服務(wù)請(qǐng)求轉(zhuǎn)到未聯(lián)通的節(jié)點(diǎn)進(jìn)行處理,將節(jié)點(diǎn)的狀態(tài)更新到數(shù)據(jù)庫(kù)中并啟用災(zāi)備平臺(tái),同時(shí)更新各節(jié)點(diǎn)的使用狀態(tài);如果災(zāi)備平臺(tái)的IP不可用且現(xiàn)有的DNS平臺(tái)節(jié)點(diǎn)全部可用,那說(shuō)明可以將接收到的服務(wù)請(qǐng)求信號(hào)轉(zhuǎn)送到活躍可用的DNS平臺(tái)節(jié)點(diǎn)進(jìn)行處理。
2.2? 設(shè)置檢測(cè)的頻率和類型
可根據(jù)具體業(yè)務(wù)的需要,選擇需檢測(cè)類型、檢測(cè)端口、檢測(cè)頻率、指定頁(yè)面進(jìn)行檢測(cè)。檢測(cè)功能參數(shù)的選擇需要技術(shù)人員首先在系統(tǒng)內(nèi)部設(shè)置好相應(yīng)的可選項(xiàng),以網(wǎng)絡(luò)節(jié)點(diǎn)連通性檢測(cè)為例,可以使用不同的檢測(cè)方式或者檢測(cè)命令直接在系統(tǒng)內(nèi)部進(jìn)行檢測(cè),比如ipconfig命令,ipconfig實(shí)用程序可用于顯示當(dāng)前的TCP/IP配置的設(shè)置值,這些信息一般用來(lái)檢驗(yàn)人工配置的TCP/IP設(shè)置是否正確,如果計(jì)算機(jī)和所在的局域網(wǎng)使用了動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP),這個(gè)程序所顯示的信息也許更加實(shí)用。這時(shí),ipconfig可以讓我們了解到需要測(cè)試的服務(wù)器節(jié)點(diǎn)是否成功地獲得一個(gè)IP地址,如果已獲得則可以了解它目前分配到的是什么地址。了解計(jì)算機(jī)當(dāng)前的IP地址、子網(wǎng)掩碼和默認(rèn)網(wǎng)關(guān)實(shí)際上是進(jìn)行測(cè)試和故障分析的必要項(xiàng)目。如果使用ipconfig時(shí)就不能選擇其他的可選參數(shù),這是由程序本身決定的,它為每個(gè)已經(jīng)配置了的接口顯示IP地址、子網(wǎng)掩碼和默認(rèn)網(wǎng)關(guān)值。當(dāng)使用all選項(xiàng)時(shí)(輸入“ipconfig/all”),ipconfig能為DNS和WINS服務(wù)器顯示它已配置且所要使用的附加信息(如IP地址等),并且顯示內(nèi)置于本地網(wǎng)卡中的物理地址(MAC地址)。如果IP地址是從DHCP服務(wù)器獲得的,ipconfig將顯示DHCP服務(wù)器的IP地址和獲得地址預(yù)計(jì)失效的日期。
另外一個(gè)常用的是ping命令。Ping是在網(wǎng)絡(luò)簡(jiǎn)單診斷中使用頻率極高的實(shí)用程序??梢栽O(shè)置參數(shù),包括重復(fù)最大限制時(shí)間,如果在規(guī)定時(shí)間內(nèi)未接收到對(duì)應(yīng)的回復(fù)信息,則默認(rèn)節(jié)點(diǎn)不連通,當(dāng)節(jié)點(diǎn)信息報(bào)文傳輸失敗,還可以設(shè)置重視的次數(shù)以及是否忽略其中的查找錯(cuò)誤,進(jìn)一步確定節(jié)點(diǎn)服務(wù)器的狀態(tài)。最后可以根據(jù)返回的信息,推斷TCP/IP參數(shù)是否設(shè)置得正確以及運(yùn)行是否正常。
2.3? 平臺(tái)自動(dòng)切換以及實(shí)時(shí)消息通知
DNS智能解析地址切換后,通過(guò)短信接口實(shí)時(shí)通知相關(guān)責(zé)任人,及時(shí)恢復(fù)主平臺(tái)相關(guān)業(yè)務(wù);在系統(tǒng)內(nèi)部根據(jù)設(shè)定的參數(shù)進(jìn)行業(yè)務(wù)服務(wù)器進(jìn)行監(jiān)控時(shí),若監(jiān)控到了服務(wù)器節(jié)點(diǎn)不可用,則啟用備用的服務(wù)器對(duì)接收到的請(qǐng)求進(jìn)行處理并更新數(shù)據(jù)庫(kù)中的服務(wù)器狀態(tài)信息。這個(gè)過(guò)程涉及平臺(tái)的自動(dòng)切換,主要的實(shí)現(xiàn)手段就是利用數(shù)據(jù)庫(kù)記錄服務(wù)器節(jié)點(diǎn)的信息。在初始階段,原有固定節(jié)點(diǎn)服務(wù)器的狀態(tài)以及使用信息等屬性都被記錄在對(duì)應(yīng)的數(shù)據(jù)庫(kù)中,包括正在正常使用的節(jié)點(diǎn)服務(wù)器和災(zāi)備服務(wù)器節(jié)點(diǎn);監(jiān)控到故障發(fā)生之后,查看返回信息,并將節(jié)點(diǎn)以及節(jié)點(diǎn)的狀態(tài)信息等屬性以節(jié)點(diǎn)名作為主鍵的數(shù)據(jù)格式存到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)中的節(jié)點(diǎn)屬性信息被更新,同時(shí)備用節(jié)點(diǎn)服務(wù)器的相關(guān)狀態(tài)信息和使用信息等屬性也以同樣的方式存入到數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)根據(jù)監(jiān)控結(jié)果實(shí)時(shí)進(jìn)行更新,并直接用于用戶請(qǐng)求信息的處理。當(dāng)接收到來(lái)自用戶的服務(wù)請(qǐng)求信息,系統(tǒng)首先從數(shù)據(jù)庫(kù)中讀取各服務(wù)器節(jié)點(diǎn)的屬性信息,只有狀態(tài)活躍且未被使用的節(jié)點(diǎn)服務(wù)器才能用來(lái)處理接收到的服務(wù)請(qǐng)求。當(dāng)故障節(jié)點(diǎn)服務(wù)器信息被監(jiān)控模塊監(jiān)控后更改,則不會(huì)再參與到處理服務(wù)請(qǐng)求的任務(wù)中,同時(shí)備用節(jié)點(diǎn)的屬性也被更改,則在接受到來(lái)自用戶的服務(wù)請(qǐng)求之后可以正常工作,整個(gè)平臺(tái)切換過(guò)程通過(guò)對(duì)節(jié)點(diǎn)服務(wù)器狀態(tài)監(jiān)控、屬性信息更改這兩個(gè)過(guò)程,以數(shù)據(jù)庫(kù)作為控制器,來(lái)實(shí)現(xiàn)災(zāi)備平臺(tái)的自動(dòng)切換。
實(shí)時(shí)消息通知同樣可以以數(shù)據(jù)庫(kù)作為控制器,借助數(shù)據(jù)庫(kù)中的固有組件來(lái)實(shí)現(xiàn)。首先需要在數(shù)據(jù)庫(kù)中啟用相應(yīng)的事件監(jiān)聽(tīng)機(jī)制,當(dāng)節(jié)點(diǎn)服務(wù)器狀態(tài)信息等數(shù)據(jù)被更改時(shí),則觸發(fā)了相應(yīng)的事件監(jiān)聽(tīng),將被更改的節(jié)點(diǎn)信息以及更改后的節(jié)點(diǎn)信息一同以事件的信息格式發(fā)送給到前端顯示窗口或者以服務(wù)器發(fā)送短信的方式發(fā)送到固定的移動(dòng)設(shè)備,這樣就能夠?qū)崿F(xiàn)實(shí)時(shí)消息通知。
3? 系統(tǒng)性能以及優(yōu)勢(shì)
3.1? 系統(tǒng)高處理能力
使用行業(yè)內(nèi)常用的服務(wù)器性能檢測(cè)工具queryperf對(duì)IPTV單臺(tái)DNS服務(wù)進(jìn)行域名hniptv.itv.cmvideo.cn解析壓力測(cè)試,結(jié)果為單臺(tái)DNS處理能力值約為19 250 TPS,這只是單臺(tái)DNS的處理能力,等到DNS上線后同時(shí)有4臺(tái)服務(wù)器提供服,理論上合計(jì)能提供7 700 TPS的域名解析能力。根據(jù)測(cè)試能滿足規(guī)劃的6百萬(wàn)萬(wàn)用戶登錄(5 000 RPS)和鑒權(quán)(1 667 RPS)性能要求指標(biāo)。
3.2? 系統(tǒng)健壯性
該項(xiàng)目上線后,災(zāi)備平臺(tái)切換的時(shí)長(zhǎng)由十分鐘級(jí)別提升至三秒鐘,除部分切換時(shí)間登錄用戶短時(shí)間無(wú)法登錄外,其余用戶均可正常使用,保證了魔百和業(yè)務(wù)的連續(xù)性,滿足集團(tuán)公司、廣電的IPTV管控要求;
3.3? 投資節(jié)省
如該項(xiàng)目未采用自主實(shí)現(xiàn),在后續(xù)的擴(kuò)容優(yōu)化項(xiàng)目中需提交需求給相關(guān)廠商,且IPTV、OTT均需實(shí)現(xiàn)該部分功能,根據(jù)與廠商的溝通,工作量在每日一千人,按照每日每人一千元的單價(jià)計(jì)算,節(jié)省投資預(yù)計(jì)一百萬(wàn)左右。
4? 結(jié)? 論
原有的DNS平臺(tái)需要進(jìn)一步完善其中的業(yè)務(wù)邏輯,作為服務(wù)業(yè)公司集團(tuán),需要的不僅僅是向用戶提供服務(wù),更重要的是提供優(yōu)質(zhì)的服務(wù),并且能夠及時(shí)解決發(fā)生的問(wèn)題,給用戶最好的視頻觀看體驗(yàn)。整個(gè)DNS智能解析組件結(jié)構(gòu)清晰,可拓展性強(qiáng),能夠適用相同類型的多種不同場(chǎng)景,真正能夠做到以小的成本解決大的問(wèn)題。通過(guò)開(kāi)發(fā)DNS智能解析組件,使得原DNS平臺(tái)能夠在發(fā)揮作用的同時(shí)避免事故的發(fā)生,并且為這一類問(wèn)題的解決提供了思路和現(xiàn)成的方法,讓用戶和公司集團(tuán)實(shí)現(xiàn)雙贏。
參考文獻(xiàn):
[1] 孫玉闖,袁釗.廣電寬帶網(wǎng)絡(luò)資源智能調(diào)度的設(shè)計(jì)與實(shí)現(xiàn) [J].廣播與電視技術(shù),2021,48(11):57-60.
[2] 歐陽(yáng)帆.基于高性能域名服務(wù)器的分析 [J].中國(guó)信息化,2021(5):86-87.
[3] 汪漫,李建榮.基于Dig工具的域名解析過(guò)程研究 [J].電腦編程技巧與維護(hù),2019(7):170-171+176.
[4] 周東杰,彭堅(jiān),陸超逸,等.CERNET中權(quán)威域名服務(wù)器安全問(wèn)題的測(cè)量研究 [J].信息工程大學(xué)學(xué)報(bào),2019,20(4):467-472.
[5] 王亞魯.面向廣域網(wǎng)的Web服務(wù)器負(fù)載均衡算法的研究 [D].開(kāi)封:河南大學(xué),2019.
作者簡(jiǎn)介:于文曉(1980—),男,漢族,山東威海人,工程師,碩士,研究方向:高清視頻可靠傳輸。