一種優化DNS域名解析的實現方法與流程
2023-09-22 07:14:30 2

本發明涉及網際網路域名解析技術領域,尤其涉及一種優化dns域名解析的實現方法。
背景技術:
域名是一串由點分割的名字,代表網際網路上某一臺或者某一組計算機的名稱,形如:www.google.com。域名解析的作用就是將域名和ip(internetprotocol)地址進行相互映射,使人不用去記住晦澀的ip地址(形如:64.233.189.101),更方便快捷的訪問網際網路服務。
隨著網際網路技術的發展,大量的如圖片、音樂、視頻、文件下載等內容服務湧現,為給用戶提供高可靠性和高性能的服務,cdn(contentdeliverynetwork)技術應運而生。內容服務商(通俗稱網站)在使用cdn服務時,需要將本網站的域名在其域名託管商進行一次cname(如www.baidu.comcname到www.baidu.com.51cache.com),這樣cname後的域名請求便指向了cdn網絡中的dns伺服器。該dns伺服器負責為原來的域名解析ip地址,其中ip地址是cdn網絡的邊緣節點的地址,這些邊緣節點緩存了內容服務商的內容,從而用戶可享受到高質量的服務。
用戶在接入網際網路時,本地isp會自動分配一個ldns。ldns負責為用戶遞歸解析域名,因此cdn網絡中的dns伺服器利用ldns所在的地理位置,將內容服務商的用戶調度到與ldns地理位置相近的cdn邊緣節點。
標準ldns首先從緩存中獲取域名所對應的ip地址,如果緩存沒有命中,然後會逐級發起遞歸查詢,最終返回域名解析結果。然而一些較小的運營商可能只提供域名緩存服務,當訪問的域名在緩存中沒有命中時,將該查詢請求轉發給具備遞歸能力的伺服器,然而該遞歸伺服器的出口ip地址和網民所在的運營商可能不一致,這樣就導致權威dns為用戶在匹配邊緣節點伺服器時出現誤判。此種誤判在cdn網絡中的缺陷尤其明顯,例如,會造成不同地域的邊緣節點伺服器中的部分邊緣節點伺服器出現服務擁塞而另一些邊緣節點伺服器出現低負荷工作的情況,從而造成網絡資源的限制,且會造成用戶體驗的下降。
有鑑於此,有必要對現有技術中的dns域名解析的實現方法予以改進,以解決上述問題。
技術實現要素:
本發明的目的在於公開一種優化dns域名解析的實現方法,用以解決用戶的出口ip地址與ldns不在同一地理位置時,cdn伺服器無法為客戶端匹配到最合理的邊緣節點伺服器的問題,用以提高cdn伺服器的對邊緣節點伺服器調度的效率與調度準確性,提高用戶體驗,解決網絡擁塞與網絡資源無法均衡使用的問題。
為實現上述目的,本發明提供了一種優化dns域名解析的實現方法,包括以下步驟:
s1、用戶自瀏覽器發起向指定url的網站的訪問請求,瀏覽器向web伺服器發起封裝有uuid的web請求;
s2、ldns向權威dns發起遞歸查詢請求,解析封裝有uuid的url;
s3、web伺服器將http請求所對應的客戶端ip地址與uuid以第一日誌文件的形式保存至持久化存儲介質;
s4、權威dns將ldns的ip地址與uuid以第二日誌文件的形式保存至持久化存儲介質;
s5、採用數據分析工具分別對第一日誌文件與第二日誌文件中所包含的網民出口ip地址與ldns地域分布進行分析,分別作格式化以形成第一數據框與第二數據框,並以uuid作為公有鍵對所述第一數據框與第二數據框進行合併運算以形成第三數據框,並通過第三數據框對ldns在響應用戶在自瀏覽器發起web請求的過程中所形成的客戶端ip地址的標準差數據,以輸出優化後的ldns調度策略並發送至權威dns,所述權威dns根據優化後的ldns調度策略為用戶匹配出與用戶所屬地域距離最近的邊緣節點伺服器。
作為本發明的進一步改進,所述數據分析工具包括:pandas、mapreduce或者spark大數據分析平臺。
作為本發明的進一步改進,所述ldns調度策略以資料庫的形式保存至權威dns。
作為本發明的進一步改進,所述資料庫包括mysql資料庫或者oracle資料庫。
作為本發明的進一步改進,所述第一日誌文件與第二日誌文件被配置為txt文件、log文件或者交互式列表。
作為本發明的進一步改進,所述持久化存儲介質包括機械磁碟、固態硬碟、ceph存儲裝置、nas存儲裝置、san存儲裝置、nvdimm系統或者raid。
作為本發明的進一步改進,所述標準差數據的閾值設為0.3。
與現有技術相比,本發明的有益效果是:在本發明中,當用戶的出口ip地址與ldns不在同一地理位置時,可通過對ldns的歷史使用數據進行評價,從而為cdn伺服器為客戶端匹配到最合理的邊緣節點伺服器進行合理化調度提供了可靠的參考,從而提高了cdn伺服器的對邊緣節點伺服器調度的效率與調度準確性,提高了用戶體驗,解決了網絡擁塞與網絡資源無法均衡使用的問題。
附圖說明
圖1為本發明一種優化dns域名解析的實現方法在步驟s1中的時序圖;
圖2為本發明一種優化dns域名解析的實現方法的流程圖;
圖3為經權威dns轉換所得到的第一數據框;
圖4為經web伺服器轉換所得到的第二數據框;
圖5為合併運算所形成的第三數據框;
圖6為第三數據框對ldns在響應用戶自瀏覽器發起web請求的過程中分布相對集中的實例;
圖7為第三數據框對ldns在響應用戶自瀏覽器發起web請求的過程中分布相對分散的實例。
具體實施方式
下面結合附圖所示的各實施方式對本發明進行詳細說明,但應當說明的是,這些實施方式並非對本發明的限制,本領域普通技術人員根據這些實施方式所作的功能、方法、或者結構上的等效變換或替代,均屬於本發明的保護範圍之內。
請參圖1至圖7所示出的本發明一種優化dns域名解析的實現方法的一種具體實施方式。
在本實施方式中,該優化dns域名解析的實現方法,包括以下步驟:
首先,執行步驟s1、用戶自瀏覽器發起向指定url的網站的訪問請求,瀏覽器向web伺服器發起封裝有uuid的web請求。
此時,瀏覽器會在加載頁面後動態生成一個唯一標識,即uuid。此時,通過瀏覽器向web伺服器發起封裝有uuid的web請求。具體的,封裝有uuid的web請求的域名為:www.4651273791321.51cache.com,其中,該4651273791321是uuid。
具體的,結合圖1所示,用戶10在瀏覽器20輸入想要訪問的站點的url,例如,www.51cache.com。瀏覽器20向web伺服器30發起web請求。然後,web伺服器30向瀏覽器20返回包含javascript腳本的html頁面。javascript腳本生成uuid,並重新向web伺服器30發起封裝有uuid的web請求。接下來,由web伺服器30向瀏覽器20返回該用戶使用的ldns和出口ip地址,並最終通過瀏覽器20向用戶10作展示,並具體為將web頁面展示給用戶。
接下來,執行步驟s2、ldns向權威dns發起遞歸查詢請求,解析封裝有uuid的url。遞歸查詢是一種dns的查詢模式,並適用於ldns或者權威dns。在遞歸查詢的模式下dns伺服器接收到用戶10發起的域名請求後,必須使用一個準確的查詢結果回復用戶10。如果dns在本地沒有存儲待查詢dns信息,那麼該伺服器會詢問其他伺服器,並將返回的查詢結果提交給用戶10。
接下來,執行步驟s3、web伺服器30將http請求所對應的客戶端ip地址與uuid以第一日誌文件的形式保存至持久化存儲介質。該所述持久化存儲介質包括機械磁碟、固態硬碟、ceph存儲裝置、nas存儲裝置、san存儲裝置、nvdimm系統或者raid,並優選為nas存儲裝置。該第一日誌文件被配置為txt文件、log文件或者交互式列表,並最優選為txt文件。txt文件具有存儲空間佔用較小,數據交互能力較強的優點,有利於節約網絡資源。
接下來,執行步驟s4、權威dns將ldns的ip地址與uuid以第二日誌文件的形式保存至持久化存儲介質。同樣的,該與第二日誌文件也可被被配置為txt文件、log文件或者交互式列表,並同樣優選為txt文件。
結合圖4至圖7所示,最後,執行s5、採用數據分析工具分別對第一日誌文件與第二日誌文件中所包含的網民出口ip地址與ldns地域分布進行分析,分別作格式化以形成第一數據框(參圖3所示)與第二數據框(參圖4所示),並以uuid作為公有鍵對所述第一數據框與第二數據框進行合併運算以形成第三數據框(參圖5所示),並通過第三數據框對ldns在響應用戶在自瀏覽器發起web請求的過程中所形成的客戶端ip地址的標準差數據,以輸出優化後的ldns調度策略並發送至權威dns,所述權威dns根據優化後的ldns調度策略為用戶匹配出與用戶所屬地域距離最近的邊緣節點伺服器。其中,公有鍵是公有的列名。
在本實施方式中,該數據分析工具包括:pandas、mapreduce或者spark大數據分析平臺。該ldns調度策略以資料庫的形式保存至權威dns。進一步的,該資料庫包括mysql資料庫或者oracle資料庫,並優選為mysql資料庫。
藉助用戶10訪問該站點時,web伺服器30和權威dns的所形成的第一日誌文件與第二日誌文件,利用python的數據分析庫pandas對用戶10的出口ip地址和ldns的地域(即響應用戶10發起的對特定站點所提供http響應伺服器的ldns所在的地理位置)進行分析;當然,在本實施方式中,也可用hadoop的mapreduce框架或者使用spark大數據分析平臺分別對第一日誌文件與第二日誌文件中所包含的網民出口ip地址與ldns地域分布進行分析。在本說明書中,術語「網名」與術語「用戶」具有等同含義。pandas提供了能夠快速便捷地處理結構化數據的數據結構和函數,如數據框(dataframe)。在本實施方式中,所謂第一數據框、第二數據框與第三數據框都是一種表格型的數據結構,並被配置為具有計算功能的平臺、裝置或者終端所讀取、存儲與計算。
第三數據框以ldns的ip地址為公有鍵的值作分組運算,以計算出每個ldns的標準差。標準差能夠準確反映出ldns的來源離散情況。當離散值較高時,如果ldns的地理位置與來源比較集中的地理位置不一致時,則說明cdn伺服器為用戶10的客戶端所匹配到的邊緣節點伺服器不在同一個地理位置或者彼此的地理位置較遠,這樣就會導致ldns對用戶10的響應出現延遲與網絡擁塞,從而為cdn伺服器為客戶端匹配到最合理的邊緣節點伺服器進行合理化調度提供了可靠的參考,提高了對ldns進行調度的準確性和合理性。具體的,所述標準差數據的閾值設為0.3。
在本實施方式中,通過計算每個ldns所對應的標準差,挖掘出那些來源比較集中且與ldns所屬地域不一致的那些ldns。可生成優化的dns調度策略供權威dns使用,策略的數據組織形式為文件,如{ldns:tel-shanghai-shanghai;to:cnc-hangzhou-zhejiang},該策略表示將使用了上海電信的網民訪問調度到杭州聯通下的節點。其中,「tel」代表「電信」,「cnc」代表「聯通」。
參圖6所示,對該第三數據框中樣本個數佔比求解標準差(標準差能夠反映樣本個數的分散情況)。如圖6所示,北京聯通的樣本差為0.49,表示該樣本相對集中,而且佔比最多的樣本與ldns同屬一個地域以及運營商網絡,說明此ldns對用戶10的響應情況較優,因此不需要權威dns為用戶10重新調整ldns。
參圖7所示,同樣,對該第三數據框中樣本個數佔比求解標準差,上海電信的樣本標準差為0.36,表示該樣本相對集中;而且佔比最多的樣本與ldns不同屬一個地域及運營商網絡,說明此區域的ldns對用戶10作出響應的服務情況較差。由此可得,我們可以將來自上海電信的用戶對指定url的網站的訪問請求所產生的流量調度到杭州聯通的節點。
在實施過程中,不同地區可設定不同的標準差的閾值。當對第一日誌文件與第二日誌文件實時分析時,計算出的標準差超過該閾值時,觸發調度系統生成調度策略供權威dns使用,從而提高了cdn伺服器的對邊緣節點伺服器調度的效率與調度準確性,提高了用戶體驗,解決了網絡擁塞與網絡資源無法均衡使用的問題。
上文所列出的一系列的詳細說明僅僅是針對本發明的可行性實施方式的具體說明,它們並非用以限制本發明的保護範圍,凡未脫離本發明技藝精神所作的等效實施方式或變更均應包含在本發明的保護範圍之內。
對於本領域技術人員而言,顯然本發明不限於上述示範性實施例的細節,而且在不背離本發明的精神或基本特徵的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示範性的,而且是非限制性的,本發明的範圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和範圍內的所有變化囊括在本發明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。
此外,應當理解,雖然本說明書按照實施方式加以描述,但並非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施例中的技術方案也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。