專利名稱:域名查詢的實(shí)現(xiàn)方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種域名查詢的實(shí)現(xiàn)方法和系統(tǒng)。
背景技術(shù):
通常,互聯(lián)網(wǎng)的網(wǎng)站都是以服務(wù)器的形式而存在的,如果要實(shí)現(xiàn)用戶對(duì)這些網(wǎng)站的服務(wù)器的方位,就需要給每一臺(tái)服務(wù)器分配IP地址,然而,互聯(lián)網(wǎng)上網(wǎng)站的數(shù)量是非常多的,并且其數(shù)量仍舊在不斷增加,所以,在用戶登錄網(wǎng)站服務(wù)器時(shí),不可能記住每個(gè)網(wǎng)站的IP地址。為了方便記憶,就產(chǎn)生了域名管理系統(tǒng)(Domain Name System,簡(jiǎn)稱為DNS),DNS 可以將用戶輸入的方便用戶記憶的域名轉(zhuǎn)換成為要訪問的服務(wù)器的IP地址,例如,當(dāng)用戶在瀏覽器輸入www. XXXX. com. yy的域名時(shí),DNS會(huì)將該域名轉(zhuǎn)換為相應(yīng)的IP地址AA. BBB. CCC. DDD。通常,在進(jìn)行DNS解析時(shí),采用的流程如下一般用戶在瀏覽器輸入域名時(shí),本地DNS系統(tǒng)會(huì)根據(jù)不同類型域名對(duì)應(yīng)以下三種不同的解析策略(策略一)本域查詢?nèi)羰遣樵儽镜赜蛎?,DNS服務(wù)器會(huì)直接返回網(wǎng)站服務(wù)器的IP 地址,例如,運(yùn)營(yíng)商1在A城市下的接入用戶訪問運(yùn)營(yíng)商1在A城市的網(wǎng)站時(shí),由于該網(wǎng)站歸屬于A城市本地DNS服務(wù)器解析,因此,該本地DNS服務(wù)器會(huì)將運(yùn)營(yíng)商1在城市A的網(wǎng)站 IP地址返回給用戶;(策略二)緩存查詢用戶查詢的域名為非本地域名,如果在DNS服務(wù)器的緩存中有相關(guān)域名的解析記錄(例如,在最近一段時(shí)間內(nèi),DNS服務(wù)器解析過此域名的IP后,會(huì)將相關(guān)記錄保存在緩存中,且該記錄還沒有被刪除),則DNS服務(wù)器會(huì)到緩存中提取域名所對(duì)應(yīng)的解析IP地址返回給用戶;(策略三)迭代查詢用戶查詢的域名為非本地域名,且需要查詢的域名在DNS 的緩存中也沒有相關(guān)記錄,則需要通過迭代過程查詢?cè)撚蛎麑?duì)應(yīng)的IP地址,以查詢www. XXXX. com. yy為例,其迭代查詢過程如下步驟1,用戶主機(jī)將域名查詢請(qǐng)求發(fā)給本地DNS服務(wù)器;步驟2,本地DNS服務(wù)器收到請(qǐng)求后在本地域名數(shù)據(jù)庫(kù)及緩存中查找;步驟3,若DNS服務(wù)器在本地域名數(shù)據(jù)庫(kù)及緩存中未查詢到相關(guān)記錄,本地DNS服務(wù)器向自己的根域服務(wù)器發(fā)出解析請(qǐng)求;步驟4,若根域DNS服務(wù)器無法解析,則返回管理yy域的DNS服務(wù)器的IP地址;步驟5,本地DNS服務(wù)器再將請(qǐng)求交給管理yy域的DNS服務(wù)器;步驟6,若管理yy域的DNS服務(wù)器無法解析,則返回管理com. yy域的DNS服務(wù)器的地址;步驟7,本地DNS服務(wù)器再次將請(qǐng)求交給管理com. yy域的DNS服務(wù)器,管理com. yy域的DNS服務(wù)器再返回XXXX. com. yy域名服務(wù)器的地址;步驟8,最終,本地DNS服務(wù)器從XXXX. com. yy域名服務(wù)器獲得www. XXXX. com. yy網(wǎng)站服務(wù)器的IP地址結(jié)果,并將結(jié)果返回給接入用戶;通過以上策略以及解析過程可以看出,在現(xiàn)有DNS技術(shù)體制中,用戶發(fā)出DNS域名解析請(qǐng)求,運(yùn)營(yíng)商DNS接收用戶的DNS請(qǐng)求后,首先會(huì)查看自己的緩存中是否存在所請(qǐng)求的解析記錄,若存在則直接回復(fù)該解析記錄,若不存在則需要通過迭代查詢從互聯(lián)網(wǎng)內(nèi)容提供商(Internet Content Provider,簡(jiǎn)稱為ICP)的DNS處獲得解析結(jié)果,而在整個(gè)DNS的解析過程中,運(yùn)營(yíng)商的DNS完全是一個(gè)通道,不會(huì)對(duì)ICP DNS所答復(fù)的DNS響應(yīng)中的TTL值做任何修改,僅僅是將DNS響應(yīng)轉(zhuǎn)發(fā)給用戶。在上述處理過程中,迭代查詢的過程有可能由多個(gè)服務(wù)器進(jìn)行參與,這些服務(wù)器之間需要進(jìn)行消息的交互,并且每個(gè)參與的服務(wù)器都需要進(jìn)行本地的判斷,因此,迭代查詢的處理延遲較長(zhǎng),網(wǎng)絡(luò)中的消息開銷也較大。通常情況下,部分DNS解析報(bào)文到達(dá)用戶本地DNS服務(wù)器后,其報(bào)文生命周期(該周期的長(zhǎng)度可以通過報(bào)文中的TTL(Time To Live)值標(biāo)識(shí))較短,例如,DNS服務(wù)器可以將 TTL配置為17時(shí),表示該報(bào)文只在該DNS服務(wù)器的緩存中保留17秒,一旦超過17秒后就將該報(bào)文刪除,也就是說,在該DNS服務(wù)器保存該報(bào)文的17秒之內(nèi),如果有用戶請(qǐng)求同一個(gè)域名解析時(shí),就可以采用緩存查詢;一旦17秒的生命周期超時(shí)后,DNS服務(wù)器就會(huì)將該報(bào)文刪除,此時(shí),如果有用戶請(qǐng)求該域名的解析時(shí),該DNS服務(wù)器就必須采用迭代查詢;對(duì)于有些報(bào)文,其TTL值會(huì)被配置為0,也就是說,DNS服務(wù)器不會(huì)保存該報(bào)文,只要用戶請(qǐng)求該報(bào)文對(duì)應(yīng)域名的解析,就一定會(huì)觸發(fā)迭代查詢。另外,在傳統(tǒng)的DNS解析流程中,緩存查詢及迭代查詢?cè)谝粋€(gè)物理系統(tǒng)中實(shí)現(xiàn),其彼此之間的實(shí)現(xiàn)邏輯順序是,當(dāng)之前DNS解析結(jié)果的生命周期為0時(shí),解析記錄在緩存中刪除,若再有用戶請(qǐng)求該域名,運(yùn)營(yíng)商DNS發(fā)起迭代查詢,迭代查詢的用時(shí)通常會(huì)比較長(zhǎng)(秒級(jí)),但是,如果在迭代查詢過程中,出現(xiàn)了針對(duì)相同DNS域名的解析請(qǐng)求,則運(yùn)營(yíng)商DNS會(huì)發(fā)起同樣的域名解析請(qǐng)求以進(jìn)行迭代查詢,也就是說,在此時(shí)間段內(nèi),相同的域名解析請(qǐng)求被發(fā)送多次,因此會(huì)同時(shí)掛起多個(gè)針對(duì)同一個(gè)域名的解析請(qǐng)求,浪費(fèi)進(jìn)程資源及系統(tǒng)資源, 并且每個(gè)查詢流程都需要執(zhí)行數(shù)秒才能完成。因此,通過以上描述可以看出,目前的DNS域名解析過程中,由于TTL值設(shè)置固定、 服務(wù)器不會(huì)修改器查詢得到的域名解析結(jié)果中的TTL等原因,不論用戶查詢相同或不同的域名,都會(huì)導(dǎo)致迭代查詢被頻繁觸發(fā),甚至使得DNS系統(tǒng)在短期內(nèi)重復(fù)迭代查詢同一個(gè)域名的IP地址,降低整個(gè)DNS系統(tǒng)的解析效率,增加服務(wù)器的處理負(fù)擔(dān),并且會(huì)增加查詢的延遲,影響用戶體驗(yàn)。目前,針對(duì)相關(guān)技術(shù)中DNS系統(tǒng)的解析效率差、服務(wù)器的處理負(fù)擔(dān)大、解析延遲高、用戶體驗(yàn)低的問題,尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對(duì)相關(guān)技術(shù)中的問題,本發(fā)明提出一種域名查詢的實(shí)現(xiàn)方法和系統(tǒng),能夠有效避免頻繁觸發(fā)迭代查詢,提高查詢效率,降低網(wǎng)絡(luò)負(fù)擔(dān),提高用戶體驗(yàn)。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的根據(jù)本發(fā)明的一個(gè)方面,提供了一種域名查詢的實(shí)現(xiàn)方法,該方法用于借助邏輯上先后排列的多個(gè)緩存處理裝置實(shí)現(xiàn)域名解析結(jié)果的查詢,其中,直接從用戶側(cè)接收域名解析請(qǐng)求的緩存處理裝置為最前一級(jí)緩存處理裝置。具體地,根據(jù)本發(fā)明的域名查詢的實(shí)現(xiàn)方法包括多個(gè)緩存處理裝置中的每一個(gè)接收到域名解析請(qǐng)求后,在各自的緩存區(qū)中查找與域名解析請(qǐng)求對(duì)應(yīng)的域名解析結(jié)果;如果一個(gè)緩存處理裝置查到域名解析結(jié)果,則將查找到的域名解析結(jié)果發(fā)送給前一個(gè)緩存處理裝置,如果一個(gè)緩存處理裝置未查到域名解析結(jié)果,則將域名解析請(qǐng)求發(fā)送給下一個(gè)緩存處理裝置,其中,如果多個(gè)緩存處理裝置中的第一個(gè)緩存處理裝置接收或查找到域名解析結(jié)果,則發(fā)送給域名解析請(qǐng)求的請(qǐng)求方;其中,多個(gè)緩存處理裝置中除第一個(gè)緩存處理裝置之外的每個(gè)緩存處理裝置查找或接收到域名解析結(jié)果后,將查找或接收的域名解析結(jié)果的生命周期設(shè)置為預(yù)定的時(shí)間長(zhǎng)度值后發(fā)送給前一個(gè)緩存處理裝置;并且,多個(gè)緩存處理裝置中除最后一個(gè)緩存處理裝置之外的每個(gè)緩存處理裝置在接收到來自其后的緩存處理裝置的域名解析結(jié)果后,根據(jù)該域名解析結(jié)果的生命周期緩存該域名解析結(jié)果。其中,如果多個(gè)緩存處理裝置中的最后一個(gè)緩存處理裝置未查找到域名解析結(jié)果,則方法還包括最后一個(gè)緩存處理裝置通過根據(jù)域名解析請(qǐng)求發(fā)起迭代查詢,來獲取與域名解析請(qǐng)求對(duì)應(yīng)的域名解析結(jié)果。該方法還可以包括如果最后一個(gè)緩存處理裝置中緩存的域名解析結(jié)果的生命周期結(jié)束,則最后一個(gè)緩存處理裝置通過觸發(fā)迭代查詢來獲取域名解析結(jié)果;在最后一個(gè)緩存處理裝置接收到通過迭代查詢的域名解析結(jié)果后,將域名解析結(jié)果的生命周期設(shè)置為預(yù)定的時(shí)間長(zhǎng)度值。并且,最后一個(gè)緩存處理裝置通過迭代查詢得到域名解析結(jié)果后,將域名解析結(jié)果的生命周期設(shè)置為一時(shí)間長(zhǎng)度值,且該時(shí)間長(zhǎng)度值不等于最后一個(gè)緩存處理裝置將域名解析結(jié)果發(fā)送給其前一個(gè)緩存處理裝置時(shí)對(duì)該域名解析結(jié)果設(shè)置的預(yù)定時(shí)間長(zhǎng)度值??蛇x地,多個(gè)緩存處理裝置的數(shù)量為兩個(gè),其中,一個(gè)為前端緩存處理裝置,另一個(gè)為后端緩存處理裝置,且前端緩存處理裝置在邏輯上位于后端緩存處理裝置之前。在后端緩存處理裝置通過迭代查詢查找到域名解析結(jié)果后,從第三門限值與第四門限值之間選擇一隨機(jī)值作為后端緩存處理裝置緩存的域名解析結(jié)果的生命周期;在后端緩存處理裝置將域名解析結(jié)果發(fā)送給前端緩存處理裝置時(shí),從第一門限值與第二門限值之間選擇一隨機(jī)值作為發(fā)送的解析結(jié)果的生命周期,其中,第二門限值大于第一門限值,第四門限值大于第三門限值。優(yōu)選地,第一門限值大于第四門限值,第二門限值小于二倍的第三門限值。此外,其特征在于,每個(gè)緩存處理裝置通過修改域名解析結(jié)果的生存時(shí)間值來設(shè)置域名解析結(jié)果的生命周期。根據(jù)本發(fā)明的另一方面,提供了一種域名查詢的實(shí)現(xiàn)系統(tǒng),包括邏輯上先后排列的多個(gè)緩存處理裝置,其中,直接從用戶側(cè)接收域名解析請(qǐng)求的緩存處理裝置為最前一級(jí)緩存處理裝置。具體地,多個(gè)緩存處理裝置中的每個(gè)緩存處理裝置包括緩存區(qū);處理模塊,用于在該緩存處理裝置中的每一個(gè)接收到域名解析請(qǐng)求后,在各自的緩存區(qū)中查找與域名解析請(qǐng)求對(duì)應(yīng)的域名解析結(jié)果;發(fā)送模塊,用于在所在緩存處理裝置查到域名解析結(jié)果的情況下,將查找到的域名解析結(jié)果發(fā)送給前一個(gè)緩存處理裝置;以及,用于在所在的緩存處理裝置未查到域名解析結(jié)果的情況下,將域名解析請(qǐng)求發(fā)送給下一個(gè)緩存處理裝置,并且,如果發(fā)送模塊所在的緩存處理裝置為第一個(gè)緩存處理裝置,則發(fā)送模塊還用于將第一個(gè)緩存處理裝置接收或查找到的域名解析結(jié)果發(fā)送給域名解析請(qǐng)求的請(qǐng)求方;設(shè)置模塊,設(shè)置于第一個(gè)緩存處理裝置之外的每個(gè)緩存處理裝置中,用于在所在的緩存處理裝置查找或接收到緩存處理結(jié)果后,將查找或接收的域名解析結(jié)果的生命周期設(shè)置為預(yù)定的時(shí)間長(zhǎng)度值后發(fā)送給前一個(gè)緩存處理裝置,以便接收到該域名解析結(jié)果的緩存處理裝置根據(jù)該域名解析結(jié)果的生命周期緩存該域名解析結(jié)果。該系統(tǒng)中還可以包括迭代查詢模塊,設(shè)置在最后一個(gè)緩存處理裝置中,用于在最后一個(gè)緩存處理裝置的處理模塊未查找到域名解析結(jié)果的情況下,通過根據(jù)域名解析請(qǐng)求發(fā)起迭代查詢,來獲取與域名解析結(jié)果。該系統(tǒng)還可以包括控制模塊,用于在判斷最后一個(gè)緩存處理裝置中緩存的域名解析結(jié)果的生命周期是否結(jié)束,并在判斷結(jié)果為是的情況下控制迭代查詢模塊根據(jù)域名解析請(qǐng)求發(fā)起迭代查詢。本發(fā)明通過多級(jí)緩存處理進(jìn)行域名解析結(jié)果的保存,能夠有效避免相關(guān)技術(shù)中單級(jí)緩存情況下頻繁觸發(fā)迭代查詢的問題,盡可能通過毫秒級(jí)的本地緩存查詢得到所需的解析結(jié)果,并且,通過對(duì)TTL值的修改,能夠合理配置域名解析結(jié)果的生命周期,達(dá)到提高解析效率、降低服務(wù)器的處理負(fù)擔(dān)、減少解析延遲、提升用戶體驗(yàn)低的目的。
圖1是根據(jù)本發(fā)明實(shí)施例的域名查詢的實(shí)現(xiàn)方法的流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的域名查詢的實(shí)現(xiàn)系統(tǒng)的框圖。
具體實(shí)施例方式針對(duì)相關(guān)技術(shù)中DNS系統(tǒng)的解析效率差、服務(wù)器的處理負(fù)擔(dān)大、解析延遲高、用戶體驗(yàn)低的問題,本發(fā)明提出,利用邏輯上排序的多級(jí)緩存查詢的方式來緩存域名解析結(jié)果, 并且,在多級(jí)緩存處理裝置中,每個(gè)緩存處理裝置均能夠在本地進(jìn)行域名解析結(jié)果的查詢, 排序靠后的緩存處理裝置可以將其查詢到或接收到或通過其他方式得到的域名解析結(jié)果發(fā)送給前一個(gè)緩存處理裝置,每個(gè)緩存處理裝置對(duì)其通過非本地查詢方式得到的域名解析結(jié)果進(jìn)行保存,并修改該結(jié)果中的生命周期(TTL值)。通過本發(fā)明的技術(shù)方案,借助多級(jí)緩存處理進(jìn)行域名解析結(jié)果的保存,能夠有效避免相關(guān)技術(shù)中單級(jí)緩存情況下頻繁觸發(fā)迭代查詢的問題,提高解析效率、降低服務(wù)器的處理負(fù)擔(dān)、減少解析延遲、提升用戶體驗(yàn)低。下面將結(jié)合附圖,詳細(xì)描述本發(fā)明的實(shí)施例。根據(jù)本發(fā)明的實(shí)施例,提供了一種域名查詢的實(shí)現(xiàn)方法,用于借助邏輯上先后排列的多個(gè)緩存處理裝置實(shí)現(xiàn)域名解析結(jié)果的查詢,其中,邏輯上排序是指多個(gè)緩存處理裝置經(jīng)過排序的,并且在查詢時(shí),需要根據(jù)該排序進(jìn)行一一查詢。如圖1所示,根據(jù)本發(fā)明實(shí)施例的域名查詢的實(shí)現(xiàn)方法包括步驟S101,多個(gè)緩存處理裝置中的每一個(gè)接收到域名解析請(qǐng)求后,在各自的緩存區(qū)中查找與域名解析請(qǐng)求對(duì)應(yīng)的域名解析結(jié)果;步驟S102,如果一個(gè)緩存處理裝置查到域名解析結(jié)果,則將查找到的域名解析結(jié)果發(fā)送給前一個(gè)緩存處理裝置,如果一個(gè)緩存處理裝置(第一個(gè)和最后一個(gè)緩存處理裝置之外的緩存處理裝置)未查到域名解析結(jié)果,則將域名解析請(qǐng)求發(fā)送給下一個(gè)緩存處理裝置,其中,如果多個(gè)緩存處理裝置中的第一個(gè)緩存處理裝置接收或查找到域名解析結(jié)果,則發(fā)送給域名解析請(qǐng)求的發(fā)送方;其中,多個(gè)緩存處理裝置中除第一個(gè)緩存處理裝置之外的每個(gè)緩存處理裝置查找或接收到域名解析結(jié)果后,將查找或接收的域名解析結(jié)果的生命周期設(shè)置為預(yù)定的時(shí)間長(zhǎng)度值后發(fā)送給前一個(gè)緩存處理裝置;并且,多個(gè)緩存處理裝置中除最后一個(gè)緩存處理裝置之外的每個(gè)緩存處理裝置在接收到來自其后的緩存處理裝置的域名解析結(jié)果后,根據(jù)該域名解析結(jié)果的生命周期緩存該域名解析結(jié)果。也就是說,對(duì)于一個(gè)緩存處理裝置,其保存的域名解析結(jié)果的生命周期長(zhǎng)度的設(shè)置工作,可以由其下一級(jí)緩存處理裝置來進(jìn)行,也可以自行決定,例如,緩存處理裝置M可以將緩存的域名解析結(jié)果的生命周期設(shè)置為1小時(shí),且緩存處理裝置M將該域名解析結(jié)果發(fā)送給緩存處理裝置N(緩存處理裝置M的前一個(gè)緩存處理裝置)時(shí),可以將發(fā)送的域名解析結(jié)果的生命周期設(shè)置為45分鐘,緩存處理裝置N接收到該域名解析結(jié)果后,可以根據(jù)緩存處理裝置M設(shè)置的生命周期進(jìn)行緩存(即,將緩存處理裝置M配置的45分鐘作為緩存處理裝置N緩存的域名解析結(jié)果的生命周期);或者,也可以不采用45分鐘,而選擇其他時(shí)間長(zhǎng)度(例如,40分鐘)作為緩存處理裝置緩存的域名解析結(jié)果的生命周期,而在緩存處理裝置N將該域名解析結(jié)果發(fā)送給其前一個(gè)緩存處理裝置、以及前一個(gè)緩存處理裝置收到緩存處理裝置N發(fā)送的域名解析結(jié)果后,同樣可以采用類似的方式,優(yōu)選地,不論一個(gè)緩存處理裝置自行設(shè)置其緩存的結(jié)果的生命周期,還是接受前一個(gè)緩存處理裝置的設(shè)置,多個(gè)緩存處理裝置保存的域名解析結(jié)果的生命周期都應(yīng)當(dāng)滿足以下條件在多個(gè)緩存處理裝置在某一時(shí)刻保存的某個(gè)解析結(jié)果不會(huì)在之后的同一時(shí)刻到期。也就是說,假設(shè)存在第一、第二、第三、第四緩存處理裝置(即,上述的多個(gè)緩存處理裝置),這些緩存處理裝置均設(shè)置在同一地域范圍內(nèi)(例如,這四個(gè)緩存處理裝置可以設(shè)置在同一DNS服務(wù)器中,也可以設(shè)置在同一區(qū)域中的四臺(tái)DNS服務(wù)器中),也就是說,這四個(gè)緩存處理裝置在進(jìn)行本地緩存的查詢以及在彼此間傳輸域名解析結(jié)果的過程屬于本地緩存查詢而不是迭代查詢,每個(gè)緩存處理裝置都具有緩存和在緩存中進(jìn)行查找的功能。具體地,這四個(gè)緩存裝置在進(jìn)行查詢時(shí)的邏輯順序如下域名解析請(qǐng)求會(huì)首先發(fā)送至第一緩存處理裝置(即,第一個(gè)緩存處理裝置),如果第一緩存處理裝置在其本地的緩存中沒有查找到相應(yīng)的域名解析結(jié)果,則第一緩存處理裝置會(huì)將該域名解析請(qǐng)求發(fā)送給第二緩存處理裝置;如果第二緩存處理裝置在其本地的緩存中沒有查找到相應(yīng)的域名解析結(jié)果,則第二緩存處理裝置會(huì)將該域名解析請(qǐng)求發(fā)送給第三緩存處理裝置;如果第三緩存處理裝置在其本地的緩存中沒有查找到相應(yīng)的域名解析結(jié)果,則第三緩存處理裝置會(huì)將該域名解析請(qǐng)求發(fā)送給第四緩存處理裝置(即,最后一個(gè)緩存處理裝置);如果第四緩存處理裝置在其本地的緩存中沒有查找到相應(yīng)的域名解析結(jié)果,則第四緩存處理裝置會(huì)根據(jù)該域名解析請(qǐng)求觸發(fā)迭代查詢。如果第三緩存處理裝置查詢到所需的域名解析結(jié)果,則第三緩存處理裝置將該域名解析結(jié)果發(fā)送給第二緩存處理裝置,之后,第二緩存處理裝置將該域名解析結(jié)果發(fā)送給第一緩存處理裝置;最后,第一緩存處理裝置將該域名解析結(jié)果發(fā)送給用戶。如果在一次查詢當(dāng)中,第一至第四緩存處理裝置均沒有查找到所需的域名解析結(jié)果,則第四緩存處理裝置需要觸發(fā)迭代查詢,在查找到域名解析結(jié)果后,第四緩存處理裝置需要將該域名解析結(jié)果依次經(jīng)由第三、第二、第一緩存處理裝置發(fā)送給用戶,此時(shí),第四緩存處理裝置需要在本地的緩存區(qū)中緩存該域名解析結(jié)果,如果第四緩存處理裝置通過迭代查詢得到該域名解析結(jié)果,還需要對(duì)緩存的域名解析結(jié)果的生命周期(TTL值)進(jìn)行設(shè)置; 另外,在將該域名解析結(jié)果發(fā)送給第三緩存處理裝置時(shí),還需要將發(fā)送的域名解析結(jié)果修改為另一時(shí)間長(zhǎng)度,而第三緩存處理裝置則可以選擇根據(jù)第四緩存處理裝置在發(fā)送的域名解析結(jié)果中設(shè)置的生命周期緩存該域名解析結(jié)果,并在將域名解析結(jié)果發(fā)送給第二緩存處理裝置時(shí)對(duì)發(fā)送的域名解析結(jié)果的生命周期進(jìn)行修改。借助于上述處理,能夠通過多級(jí)緩存處理進(jìn)行域名解析結(jié)果的保存,有效避免相關(guān)技術(shù)中單級(jí)緩存情況下頻繁觸發(fā)迭代查詢的問題,并且,通過對(duì)TTL值的修改,能夠合理配置域名解析結(jié)果的生命周期,達(dá)到提高解析效率、降低服務(wù)器的處理負(fù)擔(dān)、減少解析延遲、提升用戶體驗(yàn)低的目的。此外,對(duì)于很多較為常用的域名,需要網(wǎng)絡(luò)對(duì)其域名解析結(jié)果一直進(jìn)行保存,因此,在上述的第一至第四緩存處理裝置中,一旦第四緩存處理裝置(即,最后一個(gè)緩存處理裝置)發(fā)現(xiàn)其本地保存的該域名解析結(jié)果的生命周期結(jié)束,則可以自動(dòng)觸發(fā)迭代查詢,之后緩存迭代查詢得到的域名解析結(jié)果,并將該域名解析結(jié)果的TTL值修改為預(yù)定值。在相關(guān)技術(shù)中,部分域名解析結(jié)果到達(dá)用戶本地DNS服務(wù)器后,其報(bào)文生命周期 (通過報(bào)文中的TTL值表示)會(huì)很長(zhǎng),例如,TTL = 1年等,也就是說,在1年的時(shí)間里,只要有針對(duì)同一域名的DNS解析請(qǐng)求,運(yùn)營(yíng)商DNS系統(tǒng)都不會(huì)再進(jìn)行迭代查詢而直接回復(fù)緩存結(jié)果,但是,由于ICP自身的調(diào)整,其提供服務(wù)的服務(wù)器IP地址必然會(huì)發(fā)生變化,也就是說, 此時(shí)其DNS解析結(jié)果中的應(yīng)用層信息A記錄發(fā)生了變化,若將之前的DNS結(jié)果返回給用戶將導(dǎo)致用戶無法進(jìn)行業(yè)務(wù)訪問及應(yīng)用,出現(xiàn)DNS中毒的情況。然而,通過最后一個(gè)緩存處理裝置在其保存的域名解析結(jié)果生命結(jié)束時(shí)自動(dòng)觸發(fā)迭代查詢,即使之前的緩存處理裝置保存的域名解析結(jié)果無法有效使用,在這些域名解析結(jié)果到期后,也能夠通過本發(fā)明的上述機(jī)制從最后一個(gè)緩存處理裝置獲取正確的域名解析結(jié)果,從而避免DNS中毒的問題。另外,為了進(jìn)一步克服該問題,還可以將每個(gè)緩存處理裝置的修改TTL值設(shè)置為較小的值,這樣不僅能夠?qū)崿F(xiàn)正確解析結(jié)果的及時(shí)更新,還能夠通過多級(jí)緩存處理裝置的配合,保證至少一個(gè)緩存處理裝置中保存了該域名解析結(jié)果,從而不免進(jìn)行迭代查詢。另外,一旦某個(gè)緩存處理裝置被惡意攻擊,也可以將該緩存處理裝置直接斷開,而維持其他緩存處理裝置正常工作,增加整個(gè)系統(tǒng)的可靠性。通常,考慮到部署的成本,可以通過設(shè)置兩個(gè)緩存處理裝置(即,前端緩存處理裝置和后端緩存處理裝置,也可以稱為運(yùn)營(yíng)商的前端DNS服務(wù)器和后端DNS服務(wù)器,還可以稱為運(yùn)營(yíng)商DNS系統(tǒng)的前端模塊和后端模塊)來進(jìn)行上述處理,并且同樣能夠達(dá)到避免迭代查詢、提高系統(tǒng)可靠性的目的。在前端和后端緩存處理裝置的部署情況下,其具體的查詢實(shí)現(xiàn)過程如下
步驟1 用戶發(fā)送DNS Request請(qǐng)求(即,域名解析請(qǐng)求)給前端緩存處理裝置;步驟2 前端緩存處理裝置在收到DNS域名解析請(qǐng)求后,查詢自己緩存中是否有相應(yīng)的域名解析結(jié)果;步驟3 若有,則不對(duì)緩存中的域名解析結(jié)果做任何修改,而直接將域名解析結(jié)果返回給用戶;步驟4 若沒有,將該DNS域名解析請(qǐng)求轉(zhuǎn)發(fā)給后端緩存處理裝置;步驟5 后端緩存處理裝置在收到域名解析請(qǐng)求后,查詢自己緩存中是否有相應(yīng)的域名解析結(jié)果;步驟6 若有,則從后端緩存處理裝置中提取該域名解析結(jié)果,并將其中的TTL值改寫為[tl,t2]之間的一個(gè)隨機(jī)值,報(bào)文重新封裝后返回給前端緩存處理裝置;步驟7 =DNS前端模塊對(duì)該報(bào)文(域名解析結(jié)果)進(jìn)行緩存;步驟8 =DNS前端模塊將該報(bào)文(域名解析結(jié)果)返回給用戶;步驟9 若DNS后端模塊沒有緩存記錄,則DNS后端服務(wù)器進(jìn)行迭代查詢,直至ICP 的DNS域名解析服務(wù)器將域名解析結(jié)果返回給運(yùn)營(yíng)商DNS后端模塊;步驟10 :DNS后端模塊將收到的解析記錄進(jìn)行改寫,將其中的TTL值給寫為[t3, t4]之間的一個(gè)隨機(jī)值;步驟11 =DNS后端模塊將該改寫后的解析結(jié)果進(jìn)行本地緩存;步驟12 后端DNS模塊將該解析結(jié)果進(jìn)行進(jìn)一步改寫,將解析記錄的TTL值改寫為[tl,t2]之間的一個(gè)隨機(jī)值,報(bào)文重新封裝后返回給DNS前端模塊;步驟13 =DNS前端模塊收到解析記錄后,將解析記錄緩存在本地;步驟14 前端DNS模塊將解析結(jié)果返回給用戶;類似地,對(duì)于四個(gè)緩存處理裝置的情況,同樣能夠采用類似的在某一范圍內(nèi)隨機(jī)選擇生命周期值的方式來配置TTL值。優(yōu)選地,在上述過程中,可以進(jìn)一步配置如下tl > t4,且t2 < 2*t3,從而保證前端和后端緩存處理裝置的解析結(jié)果不會(huì)同時(shí)到期。在具體的設(shè)置過程中,例如,假設(shè)前端對(duì)應(yīng)的解析結(jié)果的生命周期為16小時(shí),后端對(duì)應(yīng)的解析結(jié)果的生命周期為9小時(shí);在前端和后端同時(shí)保存一個(gè)解析結(jié)果的情況下, 如果保存后經(jīng)過9小時(shí),此時(shí),前端緩存的該結(jié)果的剩余生命周期長(zhǎng)度為7小時(shí),后端自動(dòng)觸發(fā)迭代查詢后,該解析結(jié)果的TTL依然為9小時(shí),再過7小時(shí)后,前端查詢后端后TTL變更為16小時(shí),后端為2小時(shí),再過2小時(shí)后,前端為14小時(shí),后端為9小時(shí),如此反復(fù)能夠保證在任何時(shí)候,用戶進(jìn)行DNS請(qǐng)求時(shí),都最大程度規(guī)避在該時(shí)刻執(zhí)行迭代查詢,降低查詢的延遲和網(wǎng)絡(luò)負(fù)擔(dān)。通過上述前端和后端的部署方式,能夠智能修改并將二級(jí)緩存的TTL值設(shè)置一定的時(shí)間差值,以保證能對(duì)ICP返回的不合理TTL值進(jìn)行智能修改,并且,由于時(shí)間差的存在, 完全規(guī)避了在用戶發(fā)起DNS請(qǐng)求時(shí)進(jìn)行DNS迭代查詢的可行性,大大提高DNS解析效率、設(shè)備性能及安全性。另外,該系統(tǒng)在硬件實(shí)現(xiàn)方式上靈活多樣,可通過對(duì)傳統(tǒng)DNS服務(wù)器的修改使得傳統(tǒng)DNS服務(wù)器具備前端DNS服務(wù)模塊和后端DNS服務(wù)模塊的功能;可以通過兩臺(tái)硬件服務(wù)器分別實(shí)現(xiàn)前端DNS服務(wù)模塊和后端DNS服務(wù)模塊功能;也可以通過多臺(tái)前端DNS服務(wù)器(每臺(tái)服務(wù)器服務(wù)一個(gè)區(qū)域),一臺(tái)后端DNS服務(wù)器為多臺(tái)前端DNS服務(wù)器服務(wù)的硬件架構(gòu),有助于進(jìn)行網(wǎng)絡(luò)部署。根據(jù)本發(fā)明的另一實(shí)施例,提供了一種域名查詢的實(shí)現(xiàn)系統(tǒng)。如圖2所示,根據(jù)本發(fā)明實(shí)施例的域名查詢的實(shí)現(xiàn)系統(tǒng)包括邏輯上先后排列的多個(gè)緩存處理裝置21至2η。其中,多個(gè)緩存處理裝置中的每個(gè)緩存處理裝置包括緩存區(qū)201 ;處理模塊202,用于在該緩存處理裝置中的每一個(gè)接收到域名解析請(qǐng)求后,在各自的緩存區(qū)中查找與域名解析請(qǐng)求對(duì)應(yīng)的域名解析結(jié)果;發(fā)送模塊203,用于在所在緩存處理裝置查到域名解析結(jié)果的情況下,將查找到的域名解析結(jié)果發(fā)送給前一個(gè)緩存處理裝置;以及,用于在所在的緩存處理裝置未查到域名解析結(jié)果的情況下,將域名解析請(qǐng)求發(fā)送給下一個(gè)緩存處理裝置,并且,如果發(fā)送模塊所在的緩存處理裝置為第一個(gè)緩存處理裝置,則發(fā)送模塊還用于將第一個(gè)緩存處理裝置接收或查找到的域名解析結(jié)果發(fā)送給域名解析請(qǐng)求的請(qǐng)求方;設(shè)置模塊204,可以設(shè)置于第一個(gè)緩存處理裝置之外的每個(gè)緩存處理裝置中,用于在所在的緩存處理裝置查找或接收到緩存處理結(jié)果后,將查找或接收的域名解析結(jié)果的生命周期設(shè)置為預(yù)定的時(shí)間長(zhǎng)度值后發(fā)送給前一個(gè)緩存處理裝置,以便接收到該域名解析結(jié)果的緩存處理裝置根據(jù)該域名解析結(jié)果的生命周期緩存該域名解析結(jié)果。另外,如圖所示,設(shè)置模塊204同樣可以設(shè)置在第一個(gè)緩存處理裝置21中,此時(shí), 第一個(gè)緩存處理裝置21可以不接受其后的緩存處理裝置發(fā)送的域名解析結(jié)果中的生命周期,而由設(shè)置模塊進(jìn)行設(shè)置。該系統(tǒng)中還可以包括迭代查詢模塊(未示出),設(shè)置在最后一個(gè)緩存處理裝置中,用于在最后一個(gè)緩存處理裝置的處理模塊未查找到域名解析結(jié)果的情況下,通過根據(jù)域名解析請(qǐng)求發(fā)起迭代查詢,來獲取與域名解析結(jié)果。該系統(tǒng)還可以包括控制模塊(未示出),用于在判斷最后一個(gè)緩存處理裝置中保存的域名解析結(jié)果的生命周期是否結(jié)束,并在判斷結(jié)果為是的情況下控制迭代查詢模塊根據(jù)域名解析請(qǐng)求發(fā)起迭代查詢。該系統(tǒng)同樣能夠執(zhí)行方法實(shí)施例中所描述的處理,且該系統(tǒng)及其中每個(gè)緩存處理裝置的處理細(xì)節(jié)也可以參照方法實(shí)施例中相應(yīng)地方的所給出的方式,這里不再重復(fù)。綜上所述,借助于本發(fā)明的上述技術(shù)方案,能夠通過多級(jí)緩存處理進(jìn)行域名解析結(jié)果的保存,有效避免相關(guān)技術(shù)中單級(jí)緩存情況下頻繁觸發(fā)迭代查詢的問題,并且,通過對(duì) TTL值的修改,能夠合理配置域名解析結(jié)果的生命周期,達(dá)到提高解析效率、降低服務(wù)器的處理負(fù)擔(dān)、減少解析延遲、提升用戶體驗(yàn)低的目的;同時(shí),還能夠借助多級(jí)緩存的架構(gòu)提高整個(gè)系統(tǒng)的可靠性和安全性,通過最后一個(gè)緩存處理裝置及時(shí)進(jìn)行解析結(jié)果的更新,還能夠有效避免相關(guān)技術(shù)中DNS中毒的問題。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種域名查詢的實(shí)現(xiàn)方法,用于借助邏輯上先后排列的多個(gè)緩存處理裝置實(shí)現(xiàn)域名解析結(jié)果的查詢,其中,直接從用戶側(cè)接收域名解析請(qǐng)求的緩存處理裝置為最前一級(jí)緩存處理裝置,其特征在于,所述方法包括所述多個(gè)緩存處理裝置中的每一個(gè)接收到域名解析請(qǐng)求后,在各自的緩存區(qū)中查找與所述域名解析請(qǐng)求對(duì)應(yīng)的域名解析結(jié)果;如果一個(gè)緩存處理裝置查到所述域名解析結(jié)果,則將查找到的所述域名解析結(jié)果發(fā)送給前一個(gè)緩存處理裝置,如果一個(gè)緩存處理裝置未查到所述域名解析結(jié)果,則將所述域名解析請(qǐng)求發(fā)送給下一個(gè)緩存處理裝置,其中,如果所述多個(gè)緩存處理裝置中的第一個(gè)緩存處理裝置接收或查找到所述域名解析結(jié)果,則發(fā)送給所述域名解析請(qǐng)求的請(qǐng)求方;其中,所述多個(gè)緩存處理裝置中除第一個(gè)緩存處理裝置之外的每個(gè)緩存處理裝置查找或接收到所述域名解析結(jié)果后,將查找或接收的所述域名解析結(jié)果的生命周期設(shè)置為預(yù)定的時(shí)間長(zhǎng)度值后發(fā)送給前一個(gè)緩存處理裝置;并且,所述多個(gè)緩存處理裝置中除最后一個(gè)緩存處理裝置之外的每個(gè)緩存處理裝置在接收到來自其后的緩存處理裝置的域名解析結(jié)果后,根據(jù)該域名解析結(jié)果的生命周期緩存該域名解析結(jié)果。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)方法,其特征在于,如果所述多個(gè)緩存處理裝置中的最后一個(gè)緩存處理裝置未查找到所述域名解析結(jié)果,則所述方法還包括所述最后一個(gè)緩存處理裝置通過根據(jù)所述域名解析請(qǐng)求發(fā)起迭代查詢,來獲取與所述域名解析請(qǐng)求對(duì)應(yīng)的域名解析結(jié)果。
3.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)方法,其特征在于,還包括如果所述最后一個(gè)緩存處理裝置中緩存的域名解析結(jié)果的生命周期結(jié)束,則所述最后一個(gè)緩存處理裝置通過觸發(fā)迭代查詢來獲取所述域名解析結(jié)果;在所述最后一個(gè)緩存處理裝置接收到通過迭代查詢的所述域名解析結(jié)果后,將所述域名解析結(jié)果的生命周期設(shè)置為預(yù)定的時(shí)間長(zhǎng)度值。
4.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)方法,其特征在于,所述最后一個(gè)緩存處理裝置通過迭代查詢得到域名解析結(jié)果后,將所述域名解析結(jié)果的生命周期設(shè)置為一時(shí)間長(zhǎng)度值,且該時(shí)間長(zhǎng)度值不等于所述最后一個(gè)緩存處理裝置將所述域名解析結(jié)果發(fā)送給其前一個(gè)緩存處理裝置時(shí)對(duì)該域名解析結(jié)果設(shè)置的預(yù)定時(shí)間長(zhǎng)度值。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的實(shí)現(xiàn)方法,其特征在于,所述多個(gè)緩存處理裝置的數(shù)量為兩個(gè),其中,一個(gè)為前端緩存處理裝置,另一個(gè)為后端緩存處理裝置,且所述前端緩存處理裝置在邏輯上位于所述后端緩存處理裝置之前。
6.根據(jù)權(quán)利要求5所述的實(shí)現(xiàn)方法,其特征在于,在所述后端緩存處理裝置通過迭代查詢查找到域名解析結(jié)果后,從第三門限值與第四門限值之間選擇一隨機(jī)值作為所述后端緩存處理裝置緩存的域名解析結(jié)果的生命周期;在所述后端緩存處理裝置將域名解析結(jié)果發(fā)送給所述前端緩存處理裝置時(shí),從第一門限值與第二門限值之間選擇一隨機(jī)值作為發(fā)送的解析結(jié)果的生命周期,其中,所述第二門限值大于所述第一門限值,所述第四門限值大于所述第三門限值。
7.根據(jù)權(quán)利要求6所述的實(shí)現(xiàn)方法,其特征在于,所述第一門限值大于所述第四門限值,所述第二門限值小于二倍的所述第三門限值。
8.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的實(shí)現(xiàn)方法,其特征在于,每個(gè)緩存處理裝置通過修改所述域名解析結(jié)果的生存時(shí)間值來設(shè)置所述域名解析結(jié)果的生命周期。
9.一種域名查詢的實(shí)現(xiàn)系統(tǒng),包括邏輯上先后排列的多個(gè)緩存處理裝置,其中,直接從用戶側(cè)接收域名解析請(qǐng)求的緩存處理裝置為最前一級(jí)緩存處理裝置,其特征在于,所述多個(gè)緩存處理裝置中的每個(gè)緩存處理裝置包括緩存區(qū);處理模塊,用于在該緩存處理裝置中的每一個(gè)接收到域名解析請(qǐng)求后,在各自的緩存區(qū)中查找與所述域名解析請(qǐng)求對(duì)應(yīng)的域名解析結(jié)果;發(fā)送模塊,用于在所在緩存處理裝置查到所述域名解析結(jié)果的情況下,將查找到的所述域名解析結(jié)果發(fā)送給前一個(gè)緩存處理裝置;以及,用于在所在的緩存處理裝置未查到所述域名解析結(jié)果的情況下,將所述域名解析請(qǐng)求發(fā)送給下一個(gè)緩存處理裝置,并且,如果發(fā)送模塊所在的緩存處理裝置為第一個(gè)緩存處理裝置,則所述發(fā)送模塊還用于將所述第一個(gè)緩存處理裝置接收或查找到的域名解析結(jié)果發(fā)送給所述域名解析請(qǐng)求的請(qǐng)求方;所述第一個(gè)緩存處理裝置之外的每個(gè)緩存處理裝置中進(jìn)一步包括設(shè)置模塊,用于在所在的緩存處理裝置查找或接收到緩存處理結(jié)果后,將查找或接收的所述域名解析結(jié)果的生命周期設(shè)置為預(yù)定的時(shí)間長(zhǎng)度值后發(fā)送給前一個(gè)緩存處理裝置, 以便接收到該域名解析結(jié)果的緩存處理裝置根據(jù)該域名解析結(jié)果的生命周期緩存該域名解析結(jié)果。
10.根據(jù)權(quán)利要求9所述的實(shí)現(xiàn)系統(tǒng),其特征在于,還包括迭代查詢模塊,設(shè)置在所述最后一個(gè)緩存處理裝置中,用于在所述最后一個(gè)緩存處理裝置的處理模塊未查找到所述域名解析結(jié)果的情況下,通過根據(jù)所述域名解析請(qǐng)求發(fā)起迭代查詢,來獲取與所述域名解析結(jié)果。
11.根據(jù)權(quán)利要求9所述的實(shí)現(xiàn)系統(tǒng),其特征在于,還包括控制模塊,用于在判斷所述最后一個(gè)緩存處理裝置中緩存的所述域名解析結(jié)果的生命周期是否結(jié)束,并在判斷結(jié)果為是的情況下控制所述迭代查詢模塊根據(jù)所述域名解析請(qǐng)求發(fā)起迭代查詢。
全文摘要
一種域名查詢的實(shí)現(xiàn)方法和系統(tǒng),該方法包括每個(gè)緩存處理裝置接收到域名解析請(qǐng)求后,在各自的緩存區(qū)中查找對(duì)應(yīng)的域名解析結(jié)果;如果一緩存處理裝置查到域名解析結(jié)果,則將該結(jié)果發(fā)送給前一緩存處理裝置,如果一緩存處理裝置未查到域名解析結(jié)果,則將域名解析請(qǐng)求發(fā)送給下一緩存處理裝置,其中,如果第一個(gè)緩存處理裝置接收或查找到結(jié)果,則發(fā)送給域名解析請(qǐng)求的請(qǐng)求方;第一個(gè)緩存處理裝置之外的其他裝置查找或接收到解析結(jié)果后,將查找或接收的結(jié)果的生命周期設(shè)置為預(yù)定的時(shí)間長(zhǎng)度值后發(fā)送給前一緩存處理裝置;且最后一個(gè)緩存處理裝置之外的其他裝置在接收到來自其后的緩存處理裝置的域名解析結(jié)果后,根據(jù)該域名解析結(jié)果的生命周期進(jìn)行緩存。
文檔編號(hào)H04L29/12GK102469167SQ20101053278
公開日2012年5月23日 申請(qǐng)日期2010年11月1日 優(yōu)先權(quán)日2010年11月1日
發(fā)明者姜欣, 杜建鳳, 白愛軍 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)北京有限公司