DNS協議分析


    DNS(Domain Name System,域名系統), DNS通過域名和IP地址相互映射的一個分布式數據庫,使易記的域名替代了枯燥的IP地址。在因特網中向主機提供域名解析服務的機器即為DNS服務器。DNS是基於IP協議中的UDP協議,端口號為53。目前,DNS分布式查詢方式一般采用遞歸或遞歸迭代相結合的方法獲得域名和對應的IP。

    首先通過nslookup命令進行DNS查詢工作:

    

    這里可以看到,我的本地DNS服務器為ns.jxncppt.net.cn(江西南昌電信),IP地址為202.101.224.69。我所搜索的百度(www.baidu.com)真實域名為www.a.shifen.com(但這一域名地址無法ping通,也不能直接訪問),IP地址有119.75.217.56和119.75.218.77,別名仍為www.baidu.com。

    通過Wireshark獲得的DNS數據包如下:

    

    其中有幾個幀完成了DNS工作:

    (1)我向本地DNS服務器發送了一個請求幀,

            

 

    源端口:64459,我電腦上的端口號;

    目的端口:domain(53),DNS默認端口哈號;

    請求:69.224.101.202.in-addr.arpa:type PTR,class IN,反向域名解析,請求獲得本地DNS服務器域名;

    (2)本地DNS服務器返回一個響應幀,

            

    響應:最后一行數據即顯示了響應幀的回復內容,本地DNS服務器域名為:ns.jxncppt.net.cn。

    (3)我向服務器請求獲得www.baidu.com的IP地址,

            

    請求:請求獲得www.baidu.com的主機IP地址;

    (4)本地DNS服務器返回一個響應幀,

            

    此時,本地DNS服務器並未直接返回www.baidu.com的地址,而是回復了一個“Authoritative nameservers(權威域名服務器?)”,這是一個SOA(原始權威服務器)類型的內容,其中包含了Time to live(生命周期),Data length(數據長度),Primary name server(主域名服務器),Responsible authority‘s mailbox(負責的授權郵箱?),Serial number(版本號),Refresh interval(刷新間隔),Retry interval(重試間隔),Expiration limit(超時限制),Minimum TTL(最小生命周期)。

    於是,我再次發送請求幀,並最終得到了我想要的IP地址,

            

    百度(www.baidu.com)別名:www.a.shifen.com,盡管由於安全問題,這一域名並不能成功登陸百度;

    百度IP地址:119.75.217.56和119.75.218.77,IP地址均為北京,我使用的百度的服務器在北京啊~

 

    記得當年鍵入的百度超長域名“媽媽說就算你注冊的域名再長百度都能搜索出來”(http://www.mamashuojiusuannizhucedeyumingzaichangbaidudounengsousuochulai.cn/),於是便也nslookup了一下,探探究竟。

    

   百度超長域名的IP地址:49.247.252.57(韓國),這個IP並不能登陸,應該是非官方作為了。

 

    DNS協議看似簡單,其中卻包括了大量的信息,對各種TYPE,CLASS的了解還有待時日~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM