溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

看這位“翻譯官-DNS”如何轉(zhuǎn)換域名和IP地址

發(fā)布時(shí)間:2020-08-08 16:33:05 來源:ITPUB博客 閱讀:164 作者:安全劍客 欄目:互聯(lián)網(wǎng)科技
DNS( Domain Name System)是“域名系統(tǒng)”的英文縮寫,是一種組織成域?qū)哟谓Y(jié)構(gòu)的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù)命名系統(tǒng),它用于TCP/IP網(wǎng)絡(luò),它所提供的服務(wù)是用來將主機(jī)名和域名轉(zhuǎn)換為IP地址的工作。你可以把它想象成一本巨大的電話簿。
一、什么是DNS?

DNS( Domain Name System)是“域名系統(tǒng)”的英文縮寫,是一種組織成域?qū)哟谓Y(jié)構(gòu)的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù)命名系統(tǒng),它用于TCP/IP網(wǎng)絡(luò),它所提供的服務(wù)是用來將主機(jī)名和域名轉(zhuǎn)換為IP地址的工作。你可以把它想象成一本巨大的電話簿。

舉例來說,如果你要訪問域名math.stackexchange.com,首先要通過DNS查出它的IP地址是151.101.129.69。

DNS就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示:
看這位“翻譯官-DNS”如何轉(zhuǎn)換域名和IP地址

二、DNS域名空間結(jié)構(gòu)

域名系統(tǒng)作為一個(gè)層次結(jié)構(gòu)和分布式數(shù)據(jù)庫,包含各種類型的數(shù)據(jù),包括主機(jī)名和域名。DNS數(shù)據(jù)庫中的名稱形成一個(gè)分層樹狀結(jié)構(gòu)稱為域命名空間。
看這位“翻譯官-DNS”如何轉(zhuǎn)換域名和IP地址
根域:DNS域名使用中規(guī)定由尾部句點(diǎn)'.'來指定名稱位于根或者更高層次的域?qū)哟谓Y(jié)構(gòu)。

頂級(jí)域:用來指示某個(gè)國家、地區(qū)或者組織。采用三個(gè)字符,如com -> 商業(yè)公司,edu -> 教育機(jī)構(gòu),net -> 網(wǎng)絡(luò)公司,gov -> 非軍事政府機(jī)構(gòu)等等。

二級(jí)域:個(gè)人或者組織在Internet使用的注冊(cè)名稱。采用兩個(gè)字符,如:cn -> 代表中國,jp -> 日本,uk -> 英國,hk -> 香港等等。

主機(jī):主機(jī)名處于域名空間結(jié)構(gòu)中的最底層,主機(jī)名和域名結(jié)合構(gòu)成FQDN,主機(jī)名是FQDN最左端的部分。

三、DNS的獲取流程

DNS是應(yīng)用層協(xié)議,事實(shí)上他是為其他應(yīng)用層協(xié)議工作的,包括不限于HTTP和SMTP以及FTP,用于將用戶提供的主機(jī)名解析為IP地址。

具體過程如下:

①用戶主機(jī)上運(yùn)行著DNS的客戶端,就是我們的PC機(jī)或者手機(jī)客戶端運(yùn)行著DNS客戶端了。

②瀏覽器將接收到的url中抽取出域名字段,就是訪問的主機(jī)名,比如http://www.baidu.com/,并將這個(gè)主機(jī)名傳送給DNS應(yīng)用的客戶端。

③DNS客戶機(jī)端向DNS服務(wù)器端發(fā)送一份查詢報(bào)文,報(bào)文中包含著要訪問的主機(jī)名字段(中間包括一些列緩存查詢以及分布式DNS集群的工作)。

④該DNS客戶機(jī)最終會(huì)收到一份回答報(bào)文,其中包含有該主機(jī)名對(duì)應(yīng)的IP地址。

⑤一旦該瀏覽器收到來自DNS的IP地址,就可以向該IP地址定位的HTTP服務(wù)器發(fā)起TCP連接。

四、DNS服務(wù)的體系架構(gòu)

DNS服務(wù)的作用:把域名解析為IP地址,將IP地址解析為域名。

假設(shè)運(yùn)行在用戶主機(jī)上的某些應(yīng)用程序(如Webl瀏覽器或者郵件閱讀器)需要將主機(jī)名轉(zhuǎn)換為IP地址。這些應(yīng)用程序?qū)⒄{(diào)用DNS的客戶機(jī)端,并指明需要被轉(zhuǎn)換的主機(jī)名。(在很多基于UNIX的機(jī)器上,應(yīng)用程序?yàn)榱藞?zhí)行這種轉(zhuǎn)換需要調(diào)用函數(shù)gethostbyname())。用戶主機(jī)的DNS客戶端接收到后,向網(wǎng)絡(luò)中發(fā)送一個(gè)DNS查詢報(bào)文。所有DNS請(qǐng)求和回答報(bào)文使用的UDP數(shù)據(jù)報(bào)經(jīng)過端口53發(fā)送(至于為什么使用UDP,請(qǐng)參看為什么域名根服務(wù)器只能有13臺(tái)呢? - 郭無心的回答)經(jīng)過若干ms到若干s的延時(shí)后,用戶主機(jī)上的DNS客戶端接收到一個(gè)提供所希望映射的DNS回答報(bào)文。這個(gè)查詢結(jié)果則被傳遞到調(diào)用DNS的應(yīng)用程序。因此,從用戶主機(jī)上調(diào)用應(yīng)用程序的角度看,DNS是一個(gè)提供簡單、直接的轉(zhuǎn)換服務(wù)的黑盒子。但事實(shí)上,實(shí)現(xiàn)這個(gè)服務(wù)的黑盒子非常復(fù)雜,它由分布于全球的大量DNS服務(wù)器以及定義了DNS服務(wù)器與查詢主機(jī)通信方式的應(yīng)用層協(xié)議組成。

五、DNS為什么不采用單點(diǎn)的集中式的設(shè)計(jì)方式,而是使用分布式集群的工作方式?

DNS的一種簡單的設(shè)計(jì)模式就是在因特網(wǎng)上只使用一個(gè)DNS服務(wù)器,該服務(wù)器包含所有的映射,在這種集中式的設(shè)計(jì)中,客戶機(jī)直接將所有查詢請(qǐng)求發(fā)往單一的DNS服務(wù)器,同時(shí)該DNS服務(wù)器直接對(duì)所有查詢客戶機(jī)做出響應(yīng)。盡管這種設(shè)計(jì)方式非常誘人,但它不適用當(dāng)前的互聯(lián)網(wǎng)。因?yàn)楫?dāng)今的因特網(wǎng)有著數(shù)量巨大并且在持續(xù)增長的主機(jī),這種集中式設(shè)計(jì)會(huì)有單點(diǎn)故障,通信容量(上億臺(tái)主機(jī)發(fā)送的查詢DNS報(bào)文請(qǐng)求,包括但不限于所有的HTTP請(qǐng)求,電子郵件報(bào)文服務(wù)器,TCP長連接服務(wù)),遠(yuǎn)距離的時(shí)間延遲(澳大利亞到紐約的舉例),維護(hù)開銷大(因?yàn)樗械闹鳈C(jī)名-IP映射都要在一個(gè)服務(wù)站點(diǎn)更新)等問題。

DNS服務(wù)器一般分三種,根DNS服務(wù)器,頂級(jí)DNS服務(wù)器,權(quán)威DNS服務(wù)器。

六、DNS服務(wù)的工作過程

當(dāng) DNS 客戶機(jī)需要查詢程序中使用的名稱時(shí),它會(huì)查詢本地DNS 服務(wù)器來解析該名稱??蛻魴C(jī)發(fā)送的每條查詢消息都包括3條信息,以指定服務(wù)器應(yīng)回答的問題。

指定的 DNS 域名,表示為完全合格的域名 (FQDN) 。
指定的查詢類型,它可根據(jù)類型指定資源記錄,或作為查詢操作的專門類型。
DNS域名的指定類別。
對(duì)于DNS 服務(wù)器,它始終應(yīng)指定為 Internet 類別。例如,指定的名稱可以是計(jì)算機(jī)的完全合格的域名,如im.qq.com,并且指定的查詢類型用于通過該名稱搜索地址資源記錄。

DNS 查詢以各種不同的方式進(jìn)行解析。客戶機(jī)有時(shí)也可通過使用從以前查詢獲得的緩存信息就地應(yīng)答查詢。DNS 服務(wù)器可使用其自身的資源記錄信息緩存來應(yīng)答查詢,也可代表請(qǐng)求客戶機(jī)來查詢或聯(lián)系其他 DNS 服務(wù)器,以完全解析該名稱,并隨后將應(yīng)答返回至客戶機(jī)。這個(gè)過程稱為遞歸。

另外,客戶機(jī)自己也可嘗試聯(lián)系其他的 DNS 服務(wù)器來解析名稱。如果客戶機(jī)這么做,它會(huì)使用基于服務(wù)器應(yīng)答的獨(dú)立和附加的查詢,該過程稱作迭代,即DNS服務(wù)器之間的交互查詢就是迭代查詢。

DNS的查詢過程如下所示:
看這位“翻譯官-DNS”如何轉(zhuǎn)換域名和IP地址
1、在瀏覽器中輸入www . qq .com 域名,操作系統(tǒng)會(huì)先檢查自己本地的hosts文件是否有這個(gè)網(wǎng)址映射關(guān)系,如果有,就先調(diào)用這個(gè)IP地址映射,完成域名解析。

2、如果hosts里沒有這個(gè)域名的映射,則查找本地DNS解析器緩存,是否有這個(gè)網(wǎng)址映射關(guān)系,如果有,直接返回,完成域名解析。

3、如果hosts與本地DNS解析器緩存都沒有相應(yīng)的網(wǎng)址映射關(guān)系,首先會(huì)找TCP/ip參數(shù)中設(shè)置的首選DNS服務(wù)器,在此我們叫它本地DNS服務(wù)器,此服務(wù)器收到查詢時(shí),如果要查詢的域名,包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機(jī),完成域名解析,此解析具有權(quán)威性。

4、如果要查詢的域名,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系,則調(diào)用這個(gè)IP地址映射,完成域名解析,此解析不具有權(quán)威性。

5、如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效,則根據(jù)本地DNS服務(wù)器的設(shè)置(是否設(shè)置轉(zhuǎn)發(fā)器)進(jìn)行查詢,如果未用轉(zhuǎn)發(fā)模式,本地DNS就把請(qǐng)求發(fā)至13臺(tái)根DNS,根DNS服務(wù)器收到請(qǐng)求后會(huì)判斷這個(gè)域名(.com)是誰來授權(quán)管理,并會(huì)返回一個(gè)負(fù)責(zé)該頂級(jí)域名服務(wù)器的一個(gè)IP。本地DNS服務(wù)器收到IP信息后,將會(huì)聯(lián)系負(fù)責(zé).com域的這臺(tái)服務(wù)器。這臺(tái)負(fù)責(zé).com域的服務(wù)器收到請(qǐng)求后,如果自己無法解析,它就會(huì)找一個(gè)管理.com域的下一級(jí)DNS服務(wù)器地址(http://qq.com)給本地DNS服務(wù)器。當(dāng)本地DNS服務(wù)器收到這個(gè)地址后,就會(huì)找http://qq.com域服務(wù)器,重復(fù)上面的動(dòng)作,進(jìn)行查詢,直至找到www . qq .com主機(jī)。

6、如果用的是轉(zhuǎn)發(fā)模式,此DNS服務(wù)器就會(huì)把請(qǐng)求轉(zhuǎn)發(fā)至上一級(jí)DNS服務(wù)器,由上一級(jí)服務(wù)器進(jìn)行解析,上一級(jí)服務(wù)器如果不能解析,或找根DNS或把轉(zhuǎn)請(qǐng)求轉(zhuǎn)至上上級(jí),以此循環(huán)。不管是本地DNS服務(wù)器用是是轉(zhuǎn)發(fā),還是根提示,最后都是把結(jié)果返回給本地DNS服務(wù)器,由此DNS服務(wù)器再返回給客戶機(jī)。

從客戶端到本地DNS服務(wù)器是屬于遞歸查詢,而DNS服務(wù)器之間就是的交互查詢就是迭代查詢。

原文地址: https://www.linuxprobe.com/dns-ip-work.html

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI