阮曉龍
摘要:本文通過對DNS協(xié)議和DNS系統(tǒng)的業(yè)務流程進行分析,以及目前現(xiàn)有的DNS協(xié)議測試軟件進行分析,設計并實現(xiàn)了一種對DNS協(xié)議狀態(tài)進行測試的軟件。軟件可以實現(xiàn)不同類型記錄的檢測,并對響應數(shù)據分析得到DNS服務器的訪問狀態(tài)以及訪問性能情況。實例證明,該軟件能很好地完成檢測與分析任務,方便對DNS服務器的運行情況進行正確評估。
關鍵詞:DNS協(xié)議;DNS報文;Whois信息查詢
引言
隨著互聯(lián)網的高速發(fā)展,Web業(yè)務的訪問量大大增加,幾何級數(shù)增長的Web訪問量對DNS服務器的解析性能提出了更高要求。域名服務是網絡中比較重要的基礎服務之一,DNS的解析服務性能影響著網絡訪問的服務質量。
本文首先分析了DNS協(xié)議的業(yè)務流程,繼而引出一些常見的DNS協(xié)議測試軟件,通過這些測試軟件的對比得到新的需求,基于新的需求進行軟件的設計與實現(xiàn),并將開發(fā)的軟件投入各種場景的應用,最后對軟件的測試結果進行分析。研究表明,該軟件能很好地完成檢測與分析任務,為用戶在自主評估DNS服務器方面提供了較大的幫助和便利。
1DNS基本信息
1.1DNS概念
所謂DNS,是Domain Name System的英文縮寫,又稱域名系統(tǒng)。它在互聯(lián)網的作用是:把域名轉換成為網絡可以識別的IP地址。當一臺主機訪問網絡上的另一臺主機時,就需要知道對方的IP地址,而用戶只記得另一臺主機的域名,此時,用戶輸入域名后,本機就需要找到該域名對應的IP地址是什么,這個過程,就叫做域名解析。
1.2DNS報文
DNS報文是DNS協(xié)議的具體實現(xiàn),作為DNS協(xié)議的通信基礎,熟悉DNS的報文格式有助于理解DNS的工作原理。DNS報文分報頭和正文段兩部分,其中正文段分四類:查詢段、應答段、授權段和附加段。其具體結構如圖1所示:
DNS正文段中的查詢段用于主機向DNS服務器發(fā)送域名地址解析請求,應答段、授權段和附加段用于DNS服務器返回域名地址解析的結果。
1.3DNS工作過程
DNS是一個分布式系統(tǒng),它的管理與控制也是分布式的。當一個用戶在訪問一個域名地址時,DNS系統(tǒng)的業(yè)務流程如圖2所示:
當DNS客戶端向域名服務器發(fā)出域名解析請求時,因為被請求的DNS都會有自己的資料庫,所以域名服務器會通過查找自己的資料庫來回應此域名的真正IP地址。如果在自己的資料庫中沒有找到,DNS服務器則會向根域服務器請求協(xié)同尋找。
2 DNS測試軟件
2.1DNS測試軟件介紹
DNS測試軟件能夠幫助用戶方便的評估出某臺DNS服務器域名解析服務是否正常與高效。
2.2DNS測試軟件分類
在這里,將DNS測試軟件劃分為兩類,一種是在線DNS測試軟件,另一種是可單機運行的DNS測試客戶端軟件。
在線版DNS測試軟件:只需在瀏覽器中輸入測試軟件的域名,即可實現(xiàn)DNS解析檢測,主要查詢公網中DNS服務的狀態(tài);
客戶端版DNS測試軟件:線上可檢測公網DNS服務狀態(tài),線下還能實現(xiàn)私網中DNS服務狀態(tài)的檢測。
2.3功能對比
兩種DNS測試軟件的功能對比如表1所示:
2.4DNS測試軟件的不足
對于在線版DNS測試軟件來說,依賴互聯(lián)網既是優(yōu)勢,也是不足,它只能檢測公網上已有的DNS服務器,而不能對校園網等類型的內部DNS服務器進行檢測??蛻舳税鍰NS測試軟件又大多是國外產品,在國內的易用性較差,且軟件太大,且需要安裝。
3DNS測試軟件的需求
3.1定位
DNS測試軟件是一種客戶端軟件,功能多易用性強,支持中文。
3.2功能需求
DNS測試軟件的功能需求如下:
(1)軟件的界面友好,簡明,易用,使用戶能夠輕松的進行操作。
(2)軟件的可靠性高,能夠充分保證檢測結果的準確性和有效性,以便準確的判斷出DNS服務器的狀態(tài)特征。
(3)能夠實現(xiàn)對指定記錄在本地DNS服務器、公共DNS服務器和指定DNS服務器下的解析測試。
(4)能夠對域名所屬的注冊信息等進行查詢,并保證查詢結果實時準確。
3.3軟件的價值
DNS測試軟件可方便快捷的實現(xiàn)DNS服務檢測,即使在公網斷開的情況下,也能準確的分析本地DNS服務器的內網解析能力,可幫助用戶在網絡出現(xiàn)故障時,檢測DNS服務器的生存狀態(tài),為故障排除提供依據。
4DNS測試軟件的實現(xiàn)
4.1結構設計
4.1.1技術路線
軟件結構采用單機客戶端模式,使用WPF開發(fā)。
4.1.2邏輯結構
該軟件通過互聯(lián)網/路由器向目標DNS服務器發(fā)送解析請求,DNS服務器進行響應并將請求數(shù)據通過互聯(lián)網/路由器返回給DNS協(xié)議分析軟件。結構圖如圖3所示:
4.2功能設計
4.2.1功能層次結構
HTTP協(xié)議分析軟件功能結構層次圖如圖4所示:
4.2.2原型設計
DNS協(xié)議分析軟件的原型設計圖如5-圖8所示:
4.3軟件關鍵功能實現(xiàn)
DNS測試軟件的記錄測試功能關鍵代碼摘錄如下:
//判斷是否為本機首選DNS服務器
if(cbDNSserver.SelectedIndex=0)
//得到描述本地計算機上的網絡接口的對象
N etworkIntertacell adapters=NetworkIntertace.GetAllNetworkInterfaces();
//得到描述此網絡接口的配置的對象
IPInterfaceProperties adapterProperties=adapt-ers[0】.GetlPProperties();
//獲取此接口的域名系統(tǒng)(DNS)服務器的首個地址
dnsname—adapterProperties.DnsAddresses[0].ToString();
//從選中的下拉列表值中查找出公共域名系統(tǒng)(DNs)服務器地址的開始位置
int m—ebDNSserver.SelectedValue.ToString().Indexof(”(”);
//從選中的下拉列表值中查找出公共域名系統(tǒng)(DNs)服務器地址的結束位置
int n—cbDNSserver.SelectedValue.ToString().Indexof(”)”);
//篩選出公共域名系統(tǒng)(DNS)服務器地址
dnsname—cbDNSserver.SelectedValue.ToString().Substring(m+1,n-m-1);
//添加DNS記錄測試結果列表的表頭
dt.Rows.Add("DNs記錄","記錄類型","解析結果","TTL");
//聲明一個自定義的DNS對象
MyDns mydns=new MyDns();
//查詢A類型的DNS記錄
if(!mydns.Search(host,QueryType.A,dnsname,null))
//不存在時,提示服務器返回碼
Message-Box.Show(mydns.headeERCODE.ToString());
4.4軟件交互設計
DNS協(xié)議分析軟件包含軟件主頁、DNS記錄測試、Whois信息查詢三個部分,其交互設計為:
1.軟件主頁
DNS協(xié)議分析軟件的軟件主頁,介紹了DNS協(xié)議分析軟件的功能詳情,如圖9所示:
2.DNS記錄測試
DNS協(xié)議分析軟件的DNS記錄測試,在輸入DNS記錄并選擇指定DNS服務器后,將會使用指定的DNS服務器對輸入的DNS記錄進行解析測試,并以將測試結果以列表方式展示出來,交互界面如圖10-圖12所示:
3.Whois信息查詢
Whois信息查詢,輸入域名后,可對該域名的公共Whois信息進行查詢,并對查詢結果進行展示,交互界面圖13所示:
4.5軟件測試
DNS協(xié)議分析軟件的軟件測試為功能確認測試,具體方法如下:
1.雙擊軟件運行,出現(xiàn)歡迎界面;
2.點擊“DNS記錄測試”,輸入DNS記錄,這里以www.baidu.com為例,測試結果如圖14所示:
3.點擊“Whois信息查詢”,輸入域名信息,進行域名公共Whois信息查詢,這里以sina.com.cn為例,測試結果如圖15所示:
5軟件應用與分析
5.1典型應用一:檢測本地DNS服務器的可用
性
應用場景:校園網中,一般用戶若要上網,需要使用校園網的DNS服務器提供服務,此時,可使用DNS協(xié)議測試軟件檢測本地校園網DNS服務器的名稱和可用性。
操作方法:
第一步:在電腦上上雙擊DNS協(xié)議測試軟件運行,出現(xiàn)軟件主頁后;
第二步:選擇DNS記錄測試,之后在DNS記錄的輸入框中填寫一個域名(最好是知名網站的域名信息,如“www.baidu.com”);
第三步:選擇默認的DNS服務器地址,即本機首選DNS服務器;
第四步:點擊“開始測試”按鈕,等待測試結果;
第五步:查看DNS記錄解析結果,其中,軟件的中間左側部分顯示DNS解析服務器信息,即本機首選DNS服務器地址;中間右側部分顯示DNS記錄測試結果,呈列表形式,若解析成功,會出現(xiàn)該DNS記錄相應的解析結果,說明本機首選DNS服務器狀態(tài)為可用,測試結果包含該條記錄的名稱、記錄類型、解析結果和TTL,其中TTL值越小,說明本機首先DNS服務器解析效率越高;若解析失敗,說明本機首先DNS服務器狀態(tài)不可用。
最后,還可以重新輸入其他DNS記錄,重復二、三、四、五步來進行排他性測試,測試中使用的DNS記錄數(shù)越多,知名度越高,測試的結果就越準確。
操作截圖:
使用價值:軟件操作簡單,結果分析明了,可以簡單直接的查看到本機首選DNS服務器的信息和狀態(tài),并可對測試結果進行分析得到本機首選DNS服務器解析的準確度和性能。
5.2典型應用二:本地DNS服務器故障,選擇
最優(yōu)的公共DNS服務器使用
應用場景:在我們的日常生活中,當遇到上網高峰期時,因同時上網用戶量過多,本地DNS服務器承擔的壓力較大,會造成相應的解析效率下降或不穩(wěn)定等故障,此時可適時選擇其他公共DNS服務器來保證本機上網的正常。
操作方法.
第一步:在電腦上雙擊DNS協(xié)議測試軟件運行,出現(xiàn)軟件主頁后;
第二步:選擇DNS記錄測試,之后在DNS記錄的輸入框中填寫一個域名(最好是知名網站的域名信息,如“www.baidu.com”);
第三步:選擇一條軟件收錄的公共DNS服務器地址;
第四步:點擊“開始測試”按鈕,等待測試結果;
第五步:查看DNS記錄解析結果,其中,軟件的中間左側部分顯示DNS解析服務器信息,即所選的公共DNS服務器地址;中間右側部分顯示DNS記錄測試結果,呈列表形式,若解析成功,會出現(xiàn)該DNS記錄相應的解析結果,說明該公共DNS服務器狀態(tài)為可用,測試結果包含該條記錄的名稱、記錄類型、解析結果和TTL,其中TTL值越小,說明此公共DNS服務器解析效率越高;若解析失敗,說明所選公共DNS服務器狀態(tài)不可用。
之后,依次選擇其他公共DNS服務器進行測試,重復三、四、五步來進行對比性測試,最后根據對比測試結果,選擇一條解析效率最高的公共DNS服務器使用。
操作截圖:
使用價值:軟件收錄的有知名的公共DNS服務器,通過簡單的對比性測試,即可選擇出最優(yōu)的DNS服務器來使用。
5.3典型應用三:自定義DNS服務器的檢測
應用場景:在實驗室中,內網中的某臺DNS服務器,需對其進行可用性檢測,因無法連接公共網絡,此時就可選用DNS測試軟件來進行檢測。
操作方法:
第一步:在電腦上上雙擊DNS協(xié)議測試軟件運行,出現(xiàn)軟件主頁;
第二步:選擇DNS記錄測試,之后在DNS記錄的輸入框中填寫一個實驗室域名(需另行配置);
第三步:選擇指定DNS服務器地址,即將復選框選中后,輸入自定義DNS服務器地址;
第四步:點擊“開始測試”按鈕,等待測試結果;
第五步:查看DNS記錄解析結果,其中,軟件的中間左側部分顯示DNS解析服務器信息,即本機首選DNS服務器地址;中間右側部分顯示DNS記錄測試結果,呈列表形式,若解析成功,會出現(xiàn)該DNS記錄相應的解析結果,說明白定義的DNS服務器狀態(tài)為可用,測試結果包含該條記錄的名稱、記錄類型、解析結果和TTL,其中TTL值越小,說明白定義的DNS服務器解析效率越高;若解析失敗,說明白定義的DNS服務器狀態(tài)不可用。
操作截圖:
使用價值:在離線的局域網中,只需簡單的操作,即可實現(xiàn)內部DNS服務器的可用性檢測。
5.4典型應用四:域名Whois信息查詢
應用場景:域名Whois信息作為域名的身份簡介,要對其進行精確查詢時,就可選用DNS測試軟件來進行檢測。
操作方法:
第一步:在電腦上上雙擊DNS協(xié)議測試軟件運行,出現(xiàn)軟件主頁后;
第二步:選擇Whois信息查詢,之后在域名信息的輸入框中填寫一個域名;
第三步:選擇指定DNS服務器地址,即將復選框選中后,輸入自定義DNS服務器地址;
第四步:點擊“開始測試”按鈕,等待測試結果;
第五步:查看DNS記錄解析結果,其中,軟件的中間左側部分顯示DNS解析服務器信息,即本機首選DNS服務器地址;中間右側部分顯示DNS記錄測試結果,呈列表形式,若解析成功,會出現(xiàn)該DNS記錄相應的解析結果,說明白定義的DNS服務器狀態(tài)為可用,測試結果包含該條記錄的名稱、記錄類型、解析結果和TTL,其中TTL值越小,說明白定義的DNS服務器解析效率越高;若解析失敗,說明白定義的DNS服務器狀態(tài)不可用。
操作截圖:使用價值:在離線的局域網中,只需簡單的操作,即可實現(xiàn)內部DNS服務器的可用性檢測。
6結論
6.1成果
通過對常用DNS測試軟件的對比分析,指出這些工具的優(yōu)缺點,進行需求分析設計出軟件的功能框架,然后對需求進行細化處理并實現(xiàn)功能,最后進行uI設計、軟件開發(fā)、軟件測試并將軟件投入使用。
軟件完成之后面對互聯(lián)網提供服務,在互聯(lián)網上提供免費下載。為互聯(lián)網上的用戶提供一個操作簡單,體驗良好的DNS協(xié)議分析軟件。
通過對DNS協(xié)議分析軟件應用舉例,將用戶在日常網絡使用和管理中遇到的DNS服務相關的問題進行闡述和分析,并說明如何使用該軟件進行解決,為用戶提供了較大的幫助和便利,提高了用戶在DNS協(xié)議方面的知識和技能。
6.2進一步完善計劃
1.現(xiàn)有功能優(yōu)化。對軟件現(xiàn)有的功能進行優(yōu)化,修正使用過程中可能出現(xiàn)的功能錯誤,并對原有功能的性能進行優(yōu)化,確保軟件在運行過程中更加高效、快速。
2.新功能擴展。對軟件原有的功能進行豐富性擴展,增加公共DNS服務器的智能對比分析,幫助用戶更加快捷的選擇使用;增加DNS記錄測試的性能測試方法,實現(xiàn)指定DNS服務器的性能測試。
3.現(xiàn)有功能深化。對DNS協(xié)議進行更加深入的研究與探索,剖析DNS協(xié)議的解析原理,以進一步提高DNS協(xié)議測試軟件功能的健壯性,智能性與高效性,以適應IPv6普及和應用的大勢所趨。