本發(fā)明屬于網絡技術、域名系統(tǒng)(DNS)技術領域,具體涉及一種基于DNS緩存駐留的域名解析方法及系統(tǒng)。
背景技術:
DNS是域名系統(tǒng),是因特網的一項核心服務,負責域名和IP地址之間映射記錄的解析,也是一個分布式數據庫。DNS緩存服務器主要的功能將來自權威服務器或者遞歸服務器的響應信息記錄暫存到其緩存中,當緩存服務器再次接收到用戶同樣的解析請求時,不必再次向權威服務器或者遞歸服務器發(fā)送查詢請求,就可以直接向用戶回應相應的記錄信息,從而可以有效地提高域名解析的效率并減少不必要的帶寬消耗。DNS緩存的高效運轉是保證遞歸域名服務乃至整個域名服務水平的一個關鍵因素。
權威域名服務系統(tǒng)其提供域名與IP地址的對應關系,為電子郵件、即時通訊、網頁瀏覽等提供尋找和定位服務。如果承載大量域名解析的權威服務器出現故障無法正常解析會導致遞歸服務器無法獲得正確的查詢結果,一旦故障持續(xù)到緩存服務器的緩存TTL過期,那么整個域名解析流程中斷,用戶正常上網服務陷入癱瘓。例如2009年5月19日“暴風影音”事件,因暴風影音網站權威域名解析異常,致使運營商遞歸服務器嚴重超負荷運行,從而影響全國23省互聯(lián)網用戶的上網服務。
為了保障用戶上網服務的安全與穩(wěn)定,各級權威域名系統(tǒng)在安全配置和運行維護上采取了很多措施,運營商也從遞歸層面針對提升遞歸解析可用性和可靠性的角度采取了很多策略。但是在重要權威域名系統(tǒng)解析異常時,從緩存層面駐留原有緩存成為一個新的研究方向。
傳統(tǒng)DNS緩存服務器緩存的功能實現是從權威服務器發(fā)來的響應信息記錄會根據某種特定的算法(如典型的LRU算法,Least RecentlyUsed)存儲到緩存隊列中,查詢頻率較高的域名會動態(tài)調整到緩存隊列的前端,查詢頻率較低的域名逐漸調整到緩存隊列的末端,直至該域名因為TTL到期或者緩存隊列長度超過閾值而被刪除。這種緩存策略可以基本保證查詢頻率較高的域名始終保留在緩存隊列中直至其TTL過期,因此被業(yè)內廣泛應用。
這種傳統(tǒng)緩存策略在權威服務器解析異?;蛘呱霞夁f歸服務器解析異常時,當該域名的TTL到期原有記錄已被刪除,該域名向權威域名服務器或者遞歸服務器的請求都不能得到正常的解析結果時,那么該域名的解析就無法正常解析,反映到用戶側就導致用戶無法正常上網。此狀況下,該域名大量的遞歸請求必將對權威服務器和遞歸服務器域名解析性能造成影響,甚至導致權威服務器和遞歸服務器故障地進一步惡化。
本專利提供了一種具有緩存駐留功能的DNS緩存方法及系統(tǒng)。
技術實現要素:
基于上述問題,本發(fā)明實現了一種具有緩存駐留功能的DNS緩存方法,當權威服務器或者遞歸服務器解析異常時,緩存服務器可以將緩存駐留,等待權威服務器或者遞歸服務器解析正常時再更新域名的記錄。
本發(fā)明解決上述技術問題所采取的技術方案如下:
一種基于DNS緩存駐留的域名解析方法,包括:
接收用戶發(fā)起的對某個域名的解析請求;
查詢緩存服務器中是否緩存有該域名的解析結果以及TTL是否到期;
如當前緩存服務器的緩存中已經緩存了該域名的解析結果,而且TTL未到期,緩存服務器直接給用戶返回響應。
優(yōu)選的是,如當前緩存服務器的緩存中并沒有該域名的解析結果;
緩存服務器將該請求透傳,發(fā)給遞歸服務器或者權威服務器;
遞歸服務器或者權威服務器解析該域名并返回響應,緩存服務器將響應中的域名記錄解析后保存在緩存中,同時把響應返回給用戶。
優(yōu)選的是,如當前緩存服務器的緩存中已經緩存了該域名的解析結果,但是,TTL已經到期;
緩存服務器先給用戶返回響應;
向遞歸服務器或者權威服務器發(fā)出請求,遞歸服務器或者權威服務器以正常解析該域名返回響應,緩存服務器將響應中的域名記錄解析后,更新原有緩存的記錄。
優(yōu)選的是,如遞歸服務器或者權威服務器不能正常解析該域名,返回無解析結果的響應,緩存服務器將緩存駐留內存暫時不改變原有緩存的記錄,以確保用戶的請求都可以得到相應的解析結果。
優(yōu)選的是,進一步包括:如當遞歸服務器或者權威服務器可以正常解析時,緩存再用響應的解析記錄更新原有緩存的記錄。
一種基于DNS緩存駐留的域名解析系統(tǒng),包括:
緩存服務器,用于接收用戶發(fā)起的對某個域名的解析請求;
查詢緩存服務器中是否緩存有該域名的解析結果以及TTL是否到期;
如當前緩存服務器的緩存中已經緩存了該域名的解析結果,而且TTL未到期,緩存服務器直接給用戶返回響應。
優(yōu)選的是,所述緩存服務器,用于當前緩存服務器的緩存中并沒有該域名的解析結果;
緩存服務器將該請求透傳,發(fā)給遞歸服務器或者權威服務器;
遞歸服務器或者權威服務器,用于解析該域名并返回響應,緩存服務器將響應中的域名記錄解析后保存在緩存中,同時把響應返回給用戶。
優(yōu)選的是,所述緩存服務器,用于當前緩存服務器的緩存中已經緩存了該域名的解析結果,但是,TTL已經到期;
緩存服務器先給用戶返回響應;向遞歸服務器或者權威服務器發(fā)出請求;
遞歸服務器或者權威服務器,用于以正常解析該域名返回響應,緩存服務器將響應中的域名記錄解析后,更新原有緩存的記錄。
優(yōu)選的是,如遞歸服務器或者權威服務器,用于當不能正常解析該域名,返回無解析結果的響應,緩存服務器將緩存駐留內存暫時不改變原有緩存的記錄,以確保用戶的請求都可以得到相應的解析結果。
優(yōu)選的是,進一步包括:如當遞歸服務器或者權威服務器可以正常解析時,緩存再用響應的解析記錄更新原有緩存的記錄。
本發(fā)明采取了上述方案以后,基于緩存服務器的DNS緩存,不僅提高了解析了的速度,而且當權威服務器或者遞歸服務器解析異常時,緩存服務器可以將緩存駐留,等待權威服務器或者遞歸服務器解析正常時再更新域名的記錄,具有較好的技術效果。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
附圖說明
下面結合附圖對本發(fā)明進行詳細的描述,以使得本發(fā)明的上述優(yōu)點更加明確。其中,
圖1是本發(fā)明基于DNS緩存駐留的域名解析方法的流程示意圖;
圖2是本發(fā)明基于DNS緩存駐留的域名解析方法的實施例的示意圖;
圖3是本發(fā)明基于DNS緩存駐留的域名解析方法的實施例的示意圖;
圖4是本發(fā)明基于DNS緩存駐留的域名解析方法的實施例的示意圖;
圖5是本發(fā)明基于DNS緩存駐留的域名解析方法的實施例的示意圖;
圖6是本發(fā)明基于DNS緩存駐留的域名解析方法的結構示意圖。
具體實施方式
以下將結合附圖及實施例來詳細說明本發(fā)明的實施方式,借此對本發(fā)明如何應用技術手段來解決技術問題,并達成技術效果的實現過程能充分理解并據以實施。需要說明的是,只要不構成沖突,本發(fā)明中的各個實施例以及各實施例中的各個特征可以相互結合,所形成的技術方案均在本發(fā)明的保護范圍之內。
另外,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
實施例一:
如圖1所示,一種基于DNS緩存駐留的域名解析方法,包括:
接收用戶發(fā)起的對某個域名的解析請求;
查詢緩存服務器中是否緩存有該域名的解析結果以及TTL是否到期;
如當前緩存服務器的緩存中已經緩存了該域名的解析結果,而且TTL未到期,緩存服務器直接給用戶返回響應。
本發(fā)明采取了上述方案以后,基于緩存服務器的DNS緩存,不僅提高了解析了的速度,而且當權威服務器或者遞歸服務器解析異常時,緩存服務器可以將緩存駐留,等待權威服務器或者遞歸服務器解析正常時再更新域名的記錄,具有較好的技術效果。
實施例二:
結合以下實施例對本發(fā)明進行進一步說明,具體來說,優(yōu)選的是,如當前緩存服務器的緩存中并沒有該域名的解析結果;
緩存服務器將該請求透傳,發(fā)給遞歸服務器或者權威服務器;
遞歸服務器或者權威服務器解析該域名并返回響應,緩存服務器將響應中的域名記錄解析后保存在緩存中,同時把響應返回給用戶。
優(yōu)選的是,如當前緩存服務器的緩存中已經緩存了該域名的解析結果,但是,TTL已經到期;
緩存服務器先給用戶返回響應;
向遞歸服務器或者權威服務器發(fā)出請求,遞歸服務器或者權威服務器以正常解析該域名返回響應,緩存服務器將響應中的域名記錄解析后,更新原有緩存的記錄。
優(yōu)選的是,如遞歸服務器或者權威服務器不能正常解析該域名,返回無解析結果的響應,緩存服務器將緩存駐留內存暫時不改變原有緩存的記錄,以確保用戶的請求都可以得到相應的解析結果。
優(yōu)選的是,進一步包括:如當遞歸服務器或者權威服務器可以正常解析時,緩存再用響應的解析記錄更新原有緩存的記錄。
實施例三:
結合圖2-5對本發(fā)明進行詳細的說明,具體來說,如圖1所示,為首次查詢過程,用戶發(fā)起對某個域名的解析請求,當前緩存服務器的緩存中并沒有該域名的解析結果,緩存服務器將該請求透傳,發(fā)給遞歸服務器或者權威服務器,遞歸服務器或者權威服務器可以正常解析該域名返回響應,緩存服務器將響應中的域名記錄解析后保存在緩存中,同時把響應返回給用戶,如圖1所示。
如圖2所示,再次查詢過程,其中,用戶發(fā)起對某個域名的解析請求,當前緩存服務器的緩存中已經緩存了該域名的解析結果,而且TTL未到期,緩存服務器直接給用戶返回響應,不再向遞歸服務器或者權威服務器發(fā)出請求,如圖2所示。
如圖3所示,為更新緩存過程,包括:
用戶發(fā)起對某個域名的解析請求,當前緩存服務器的緩存中已經緩存了該域名的解析結果,而且TTL已經到期,緩存服務器先給用戶返回響應,再向遞歸服務器或者權威服務器發(fā)出請求,遞歸服務器或者權威服務器可以正常解析該域名返回響應,緩存服務器將響應中的域名記錄解析后,更新原有緩存的記錄,如圖3所示。
如圖4所示,為緩存駐留過程,其中,用戶發(fā)起對某個域名的解析請求,當前緩存服務器的緩存中已經緩存了該域名的解析結果,而且TTL已經到期,緩存服務器先給用戶返回響應,再向遞歸服務器或者權威服務器發(fā)出請求,遞歸服務器或者權威服務器不能正常解析該域名,從而返回無解析結果的響應,緩存服務器將緩存駐留內存暫時不改變原有緩存的記錄,如圖4所示,以確保用戶的請求都可以得到相應的解析結果當遞歸服務器或者權威服務器可以正常解析時,緩存再用響應的解析記錄更新原有緩存的記錄,如圖3所示。
通過上面的描述可以看出,這種方案帶來的好處有下面幾點:
1、緩存服務器的緩存駐留功能在遞歸服務器或者權威服務器出現問題無法正常解析時,可以在緩存層面保證用戶的解析正常,不影響用戶的上網服務。
2、緩存服務器的緩存駐留功能在遞歸服務器或者權威服務器可以正常解析時,不會影響緩存記錄的更新,可以確保用戶得到最新最正確的解析記錄,保證用戶的上網服務。
實施例四:
與以上方法實施例相對應,本發(fā)明還提供了一種基于DNS緩存駐留的域名解析系統(tǒng),包括:
緩存服務器,用于接收用戶發(fā)起的對某個域名的解析請求;
查詢緩存服務器中是否緩存有該域名的解析結果以及TTL是否到期;
如當前緩存服務器的緩存中已經緩存了該域名的解析結果,而且TTL未到期,緩存服務器直接給用戶返回響應。
優(yōu)選的是,所述緩存服務器,用于當前緩存服務器的緩存中并沒有該域名的解析結果;
緩存服務器將該請求透傳,發(fā)給遞歸服務器或者權威服務器;
遞歸服務器或者權威服務器,用于解析該域名并返回響應,緩存服務器將響應中的域名記錄解析后保存在緩存中,同時把響應返回給用戶。
優(yōu)選的是,所述緩存服務器,用于當前緩存服務器的緩存中已經緩存了該域名的解析結果,但是,TTL已經到期;
緩存服務器先給用戶返回響應;向遞歸服務器或者權威服務器發(fā)出請求;
遞歸服務器或者權威服務器,用于以正常解析該域名返回響應,緩存服務器將響應中的域名記錄解析后,更新原有緩存的記錄。
優(yōu)選的是,如遞歸服務器或者權威服務器,用于當不能正常解析該域名,返回無解析結果的響應,緩存服務器將緩存駐留內存暫時不改變原有緩存的記錄,以確保用戶的請求都可以得到相應的解析結果。
優(yōu)選的是,進一步包括:如當遞歸服務器或者權威服務器可以正常解析時,緩存再用響應的解析記錄更新原有緩存的記錄。
本發(fā)明采取了上述方案以后,基于緩存服務器的DNS緩存,不僅提高了解析了的速度,而且當權威服務器或者遞歸服務器解析異常時,緩存服務器可以將緩存駐留,等待權威服務器或者遞歸服務器解析正常時再更新域名的記錄,具有較好的技術效果。
需要說明的是,對于上述方法實施例而言,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請并不受所描述的動作順序的限制,因為依據本申請,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本申請所必須的。
本領域內的技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。
而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
最后應說明的是:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領域的技術人員來說,其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。