一種防止dns緩存被染的方法、系統(tǒng)及本地dns服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)傳輸領(lǐng)域,尤其涉及一種防止DNS緩存被染的方法、系統(tǒng)及本地DNS服務(wù)器。
【背景技術(shù)】
[0002]DNS (Domain Name System,域名系統(tǒng))可以實現(xiàn)互聯(lián)網(wǎng)域名到IP (InternetProtocol,互聯(lián)網(wǎng)協(xié)議)地址的轉(zhuǎn)換。參考圖1,DNS域名解析流程為:客戶端執(zhí)行步驟101向本地DNS服務(wù)器發(fā)出DNS解析請求;若本地DNS服務(wù)器未存儲請求對應(yīng)的解析記錄,則執(zhí)行步驟102將請求發(fā)送給權(quán)威DNS服務(wù)器;權(quán)威DNS服務(wù)器執(zhí)行步驟103返回請求對應(yīng)的IP地址;本地DNS服務(wù)器執(zhí)行步驟104將IP地址作為解析記錄進(jìn)行存儲,并向客戶端返回IP地址,完成域名解析。
[0003]DNS劫持又稱域名劫持,是指攔截劫持范圍內(nèi)的DNS解析請求,返回錯誤的IP地址或者使請求失去響應(yīng)。例如:在圖2(a)所示的正常DNS解析流程中,通過步驟2011至2014客戶端獲得A網(wǎng)站的IP地址a.b.c.d,并通過a.b.c.d正常訪問A網(wǎng)站。而在圖2 (b)所示的發(fā)生DNS劫持的DNS解析流程中,客戶端通過步驟2021和步驟2022向權(quán)威DNS服務(wù)器請求A網(wǎng)站的IP地址;權(quán)威DNS服務(wù)器由于發(fā)生DNS劫持,因此執(zhí)行步驟2023向本地DNS服務(wù)器返回虛假的IP地址e.f.g.h ;本地DNS服務(wù)器執(zhí)行步驟2024告知客戶端A網(wǎng)站的IP地址e.f.g.h,由于IP地址錯誤,客戶端無法通過e.f.g.h正常訪問A網(wǎng)站。
[0004]DNS緩存延遲恢復(fù)時間(Time To Live, TTL)為DNS的一條解析記錄在本地DNS服務(wù)器緩存中的存留時間。當(dāng)本地DNS服務(wù)器緩存中存儲有錯誤的解析記錄時,由于TTL的緣故,會延長錯誤的解析記錄恢復(fù)時間,不利于系統(tǒng)穩(wěn)定。
【發(fā)明內(nèi)容】
[0005]有鑒于此,為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明實施例提供:
[0006]一種防止DNS緩存被染的方法,應(yīng)用于本地域名系統(tǒng)DNS服務(wù)器,該方法包括:
[0007]對本地緩存的DNS的所有解析記錄進(jìn)行分析,獲取第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量;
[0008]所述獲取的發(fā)生變化的解析記錄的數(shù)量滿足第一預(yù)設(shè)條件時,確定DNS緩存被染;并
[0009]在接收到DNS解析請求后,向容災(zāi)服務(wù)器轉(zhuǎn)發(fā)所述DNS解析請求,以獲得所述容災(zāi)服務(wù)器返回的所述DNS解析請求對應(yīng)的IP地址,并將所述IP地址作為解析記錄進(jìn)行存儲。
[0010]—具體實施例中,所述對本地緩存的DNS的所有解析記錄進(jìn)行分析,包括:
[0011 ] 周期性對本地緩存的DNS的所有解析記錄進(jìn)行分析,和/或,根據(jù)指示信息對本地緩存的DNS的所有解析記錄進(jìn)行分析。
[0012]一具體實施例中,所述方法還包括:
[0013]為緩存的DNS的每條解析記錄分別設(shè)置記錄變化標(biāo)識,所述記錄變化標(biāo)識在相應(yīng)的解析記錄發(fā)生變化時發(fā)生變化,
[0014]所述對本地緩存的DNS的所有解析記錄進(jìn)行分析,包括:
[0015]在本地緩存的DNS的所有解析記錄對應(yīng)的記錄變化標(biāo)識中確定第一預(yù)設(shè)時間內(nèi)發(fā)生變化的記錄變化標(biāo)識的數(shù)量;
[0016]所述獲取第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量,包括:
[0017]將所述第一預(yù)設(shè)時間內(nèi)發(fā)生變化的記錄變化標(biāo)識的數(shù)量確定為第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量。
[0018]一具體實施例中,所述確定DNS緩存被染之后,還包括:
[0019]進(jìn)行DNS緩存被染預(yù)警。
[0020]本發(fā)明實施例還提供一種本地DNS服務(wù)器,該DNS服務(wù)器包括:緩存模塊、獲取模塊、判斷模塊和執(zhí)行模塊;
[0021 ] 所述緩存模塊,用于緩存DNS的解析記錄;
[0022]所述獲取模塊,用于對緩存模塊緩存的DNS的所有解析記錄進(jìn)行分析,獲取第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量;
[0023]所述判斷模塊,用于判斷獲取模塊獲取的發(fā)生變化的解析記錄的數(shù)量是否滿足第一預(yù)設(shè)條件;
[0024]所述執(zhí)行模塊,用于在判斷模塊確定獲取的發(fā)生變化的解析記錄的數(shù)量滿足第一預(yù)設(shè)條件時,確定DNS緩存被染,并在接收到DNS解析請求后,向容災(zāi)服務(wù)器轉(zhuǎn)發(fā)所述DNS解析請求,以獲得所述容災(zāi)服務(wù)器返回的所述DNS解析請求對應(yīng)的IP地址,并通知緩存模塊將所述IP地址作為解析記錄進(jìn)行存儲。
[0025]一具體實施例中,所述獲取模塊,具體用于周期性對本地緩存的DNS的所有解析記錄進(jìn)行分析,和/或,根據(jù)指示信息對本地緩存的DNS的所有解析記錄進(jìn)行分析。
[0026]一具體實施例中,所述緩存模塊,還用于為緩存的DNS的每條解析記錄分別設(shè)置記錄變化標(biāo)識,所述記錄變化標(biāo)識在相應(yīng)的解析記錄發(fā)生變化時發(fā)生變化;
[0027]所述獲取模塊,具體用于在本地緩存的DNS的所有解析記錄對應(yīng)的記錄變化標(biāo)識中確定第一預(yù)設(shè)時間內(nèi)發(fā)生變化的記錄變化標(biāo)識的數(shù)量;以及將所述第一預(yù)設(shè)時間內(nèi)發(fā)生變化的記錄變化標(biāo)識的數(shù)量確定為第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量。
[0028]一具體實施例中,所述執(zhí)行模塊,還用于在判斷模塊確定DNS緩存被染后,進(jìn)行DNS緩存被染預(yù)警。
[0029]本發(fā)明實施例還提供一種防止DNS緩存被染的系統(tǒng),包括:本地DNS服務(wù)器、客戶端設(shè)備和權(quán)威DNS服務(wù)器;其中,
[0030]所述本地DNS服務(wù)器為權(quán)利要求5至8任一項所述的本地DNS服務(wù)器。
[0031 ] 一具體實施例中,該系統(tǒng)還包括容災(zāi)服務(wù)器,
[0032]所述容災(zāi)服務(wù)器,用于在DNS緩存被染后,向本地DNS服務(wù)器返回與DNS域名相應(yīng)的IP地址。
[0033]本發(fā)明實施例所述的一種防止DNS緩存被染的方法、系統(tǒng)及本地DNS服務(wù)器,對本地緩存的DNS的所有解析記錄進(jìn)行分析,獲取第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量;所述獲取的發(fā)生變化的解析記錄的數(shù)量滿足第一預(yù)設(shè)條件時,確定DNS緩存被染;并在接收到DNS解析請求后,向容災(zāi)服務(wù)器轉(zhuǎn)發(fā)所述DNS解析請求,以獲得所述容災(zāi)服務(wù)器返回的所述DNS解析請求對應(yīng)的IP地址,并將所述IP地址作為解析記錄進(jìn)行存儲。通過本發(fā)明實施例所述的防止DNS緩存被染的方法、系統(tǒng)及本地DNS服務(wù)器,當(dāng)出現(xiàn)非正常的DNS劫持時,能夠及時判斷,盡快恢復(fù),有利于提高系統(tǒng)穩(wěn)定性。
【附圖說明】
[0034]圖1為相關(guān)技術(shù)中域名解析系統(tǒng)結(jié)構(gòu)示意圖;
[0035]圖2 (a)為正常的DNS解析流程示意圖;
[0036]圖2 (b)為發(fā)生DNS劫持的DNS解析流程;
[0037]圖3為本發(fā)明實施例一種防止DNS緩存被染的方法流程示意圖;
[0038]圖4為本發(fā)明實施例一種本地DNS服務(wù)器結(jié)構(gòu)示意圖;
[0039]圖5為本發(fā)明實施例1所述的防止DNS緩存被染的方法流程示意圖。
【具體實施方式】
[0040]本發(fā)明實施例提出了一種防止DNS緩存被染的方法,應(yīng)用于本地域名系統(tǒng)DNS服務(wù)器,如圖3所示,該方法包括:
[0041]步驟31:對本地緩存的DNS的所有解析記錄進(jìn)行分析,獲取第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量;
[0042]步驟32:所述獲取的發(fā)生變化的解析記錄的數(shù)量滿足第一預(yù)設(shè)條件時,確定DNS緩存被染;并在接收到DNS解析請求后,向容災(zāi)服務(wù)器轉(zhuǎn)發(fā)所述DNS解析請求,以獲得所述容災(zāi)服務(wù)器返回的所述DNS解析請求對應(yīng)的IP地址,并將所述IP地址作為解析記錄進(jìn)行存儲。
[0043]本發(fā)明一實施例中,判斷獲取的發(fā)生變化的解析記錄的數(shù)量是否滿足第一預(yù)設(shè)條件主要為了確定記錄波動范圍是否超過設(shè)定的閾值(如預(yù)設(shè)的百分比,或者預(yù)設(shè)的數(shù)量)。
[0044]可選的,本發(fā)明一實施例中,所述對本地緩存的DNS的所有解析記錄進(jìn)行分析,包括:
[0045]周期性對本地緩存的DNS的所有解析記錄進(jìn)行分析,和/或,根據(jù)指示信息對本地緩存的的所有解析記錄進(jìn)行分析。
[0046]可選的,本發(fā)明一實施例中,所述方法還包括:
[0047]為緩存的DNS的每條解析記錄分別設(shè)置記錄變化標(biāo)識,所述記錄變化標(biāo)識在相應(yīng)的解析記錄發(fā)生變化時發(fā)生變化,
[0048]所述對本地緩存的DNS的所有解析記錄進(jìn)行分析,包括:
[0049]在本地緩存的DNS的所有解析記錄對應(yīng)的記錄變化標(biāo)識中確定第一預(yù)設(shè)時間內(nèi)發(fā)生變化的記錄變化標(biāo)識的數(shù)量;
[0050]所述獲取第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量,包括:
[0051]將所述第一預(yù)設(shè)時間內(nèi)發(fā)生變化的記錄變化標(biāo)識的數(shù)量確定為第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量。
[0052]可選的,本發(fā)明一實施例中,該方法還包括:
[0053]確定DNS緩存被染后,進(jìn)行DNS緩存被染預(yù)警。
[0054]本發(fā)明實施例還相應(yīng)地提出了一種本地DNS服務(wù)器,如圖4所示,該DNS服務(wù)器包括:緩存模塊41、獲取模塊42、判斷模塊43和執(zhí)行模塊44 ;
[0055]所述緩存模塊41,用于緩存DNS的解析記錄;
[0056]所述獲取模塊42,用于對緩存模塊41緩存的DNS的所有解析記錄進(jìn)行分析,獲取第一預(yù)設(shè)時間內(nèi)發(fā)生變化的解析記錄的數(shù)量;
[0057]所述判斷模塊43,用于判斷獲取模塊42獲取的發(fā)生變化的解析記錄的數(shù)量是否滿足第一預(yù)設(shè)條件;
[0058]所述執(zhí)行模塊44,用于在判斷模塊確定獲取的發(fā)生變化的解析記錄的數(shù)量滿足第一預(yù)設(shè)條件時,確定DNS緩存被染,并在接收到DNS解析請求后,向容災(zāi)服務(wù)器轉(zhuǎn)發(fā)所述DNS解析請求,以獲得所述容災(zāi)服務(wù)器返回的所述DNS解析請求對應(yīng)的IP地址,并通知緩存模塊將所述IP地址作為解析記錄進(jìn)行存儲。
[0059]可選的,本發(fā)明一實施例中