中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

DNS域名解析過程

2021-01-30    分類: 網(wǎng)站建設(shè)

DNS域名解析

我們知道互聯(lián)網(wǎng)都是通過URL來發(fā)布和請求資源的,而URL中的域名需要解析成IP地址才能與遠程主機建立連接,如何將域名解析成IP地址就屬于DNS解析的工作范疇。

可以毫不夸張地說,雖然我們平時上網(wǎng)感受不到DNS解析的存在,但是一旦DNS解析出錯,可能會導致非常嚴重的互聯(lián)網(wǎng)災難。目前世界上的整個互聯(lián)網(wǎng)有幾個DNS根域名服務(wù)器,任何一臺根服務(wù)器壞掉,后果都非常嚴重。

DNS域名解析過程

當我們在瀏覽器中輸入www.abc.com時,DNS解析將會有將近10個步驟,這個過程大體大體由一張圖可以表示:


整個過程大體描述如下,其中前兩個步驟是在本機完成的,后8個步驟涉及到真正的域名解析服務(wù)器:

1、瀏覽器會檢查緩存中有沒有這個域名對應的解析過的IP地址,如果緩存中有,這個解析過程就結(jié)束。瀏覽器緩存域名也是有限制的,不僅瀏覽器緩存大小有限制,而且緩存的時間也有限制,通常情況下為幾分鐘到幾小時不等,域名被緩存的時間限制可以通過TTL屬性來設(shè)置。這個緩存時間太長和太短都不太好,如果時間太長,一旦域名被解析到的IP有變化,會導致被客戶端緩存的域名無法解析到變化后的IP地址,以致該域名不能正常解析,這段時間內(nèi)有一部分用戶無法訪問網(wǎng)站。如果設(shè)置時間太短,會導致用戶每次訪問網(wǎng)站都要重新解析一次域名。

2、如果用戶瀏覽器緩存中沒有數(shù)據(jù),瀏覽器會查找操作系統(tǒng)緩存中是否有這個域名對應的DNS解析結(jié)果。其實操作系統(tǒng)也有一個域名解析的過程,在Windows中可以通過C:WindowsSystem32driversetchosts文件來設(shè)置,在Linux中可以通過/etc/hosts文件來設(shè)置,用戶可以將任何域名解析到任何能夠訪問的IP地址。例如,我們在測試時可以將一個域名解析到一臺測試服務(wù)器上,這樣不用修改任何代碼就能測試到單獨服務(wù)器上的代碼的業(yè)務(wù)邏輯是否正確。正是因為有這種本地DNS解析的規(guī)程,所以有黑客就可能通過修改用戶的域名來把特定的域名解析到他指定的IP地址上,導致這些域名被劫持。

3、前兩個過程無法解析時,就要用到我們網(wǎng)絡(luò)配置中的"DNS服務(wù)器地址"了。操作系統(tǒng)會把這個域名發(fā)送給這個LDNS,也就是本地區(qū)的域名服務(wù)器。這個DNS通常都提供給用戶本地互聯(lián)網(wǎng)接入的一個DNS解析服務(wù),例如用戶是在學校接入互聯(lián)網(wǎng),那么用戶的DNS服務(wù)器肯定在學校;如果用戶是在小區(qū)接入互聯(lián)網(wǎng),那么用戶的DNS就是再提供接入互聯(lián)網(wǎng)的應用提供商,即電信或聯(lián)通,也就是通常說的SPA,那么這個DNS通常也會在用戶所在城市的某個角落,不會很遠。Windows環(huán)境下通過命令行輸入ipconfig,Linux環(huán)境下通過cat /etc/resolv.conf就可以查詢配置的DNS服務(wù)器了。這個專門的域名解析服務(wù)器性能都會很好,它們一般都會緩存域名解析結(jié)果,當然緩存時間是受到域名的失效時間控制的。大約80%的域名解析到這里就結(jié)束了,所以LDNS主要承擔了域名的解析工作。

4、如果LDNS仍然沒有命中,就直接到Root Server域名服務(wù)器請求解析

5、根域名服務(wù)器返回給本地域名服務(wù)器一個所查詢的主域名服務(wù)器(gTLD Server)地址。gTLD是國際頂級域名服務(wù)器,如.com、.cn、.org等,全球只有13臺左右

6、本地域名服務(wù)器LDNS再向上一步返回的gTLD服務(wù)器發(fā)送請求

7、接受請求的gTLD服務(wù)器查找并返回此域名對應的Name Server域名服務(wù)器的地址,這個Name Server通常就是用戶注冊的域名服務(wù)器,例如用戶在某個域名服務(wù)提供商申請的域名,那么這個域名解析任務(wù)就由這個域名提供商的服務(wù)器來完成

8、Name Server域名服務(wù)器會查詢存儲的域名和IP的映射關(guān)系表,在正常情況下都根據(jù)域名得到目標IP地址,連同一個TTL值返回給DNS Server域名服務(wù)器

9、返回該域名對應的IP和TTL值,LDNS會緩存這個域名和IP的對應關(guān)系,緩存時間由TTL值控制

10、把解析的結(jié)果返回給用戶,用戶根據(jù)TTL值緩存在本地系統(tǒng)緩存中,域名解析過程結(jié)束

在實際的DNS解析過程中,可能還不止這10步,如Name Server可能有很多級,或者有一個GTM來負載均衡控制,這都有可能會影響域名解析過程。

清除緩存的域名

我們知道DNS域名解析后會緩存解析結(jié)果,其中主要在兩個地方緩存:

1、Local DNS Server

2、用戶的本地機器

這兩個緩存都是TTL值和本機緩存大小控制的,但是大緩存時間是TTL值,基本上Local DNS Server的緩存時間就是TTL控制的,很難人工介入,但是我們的本機緩存可以通過如下方式清除:

1、Windows環(huán)境下可以再命令行執(zhí)行ipconfig /flushdns命令來刷新緩存,如圖


2、Linux環(huán)境下可以通過/etc/init.d/nscd restart來清除緩存,因為我家里電腦裝的虛擬機比較卡,就不截圖了

重啟依然是解決很多問題的第一選擇。

在Java應用中JVM也會緩存DNS的解析結(jié)果,這個緩存是在InetAddress類中完成的,而且這個緩存時間還比較特殊,它有兩種緩存策略:

1、正確解析結(jié)果緩存

2、失敗解析結(jié)果緩存

這兩個緩存時間有兩個配置項控制,配置項在%JAVA_HOME%libsecurityjava.security文件中配置的,這兩個配置項分別是networkaddress.cache.ttl和networkaddress.cache.negative.ttl,它們的默認值分別是-1(永不失效)和10(緩存10秒),直接修改這兩個值就可以了,也可以通過在Java啟動參數(shù)中增加-Dsun.net.inetaddr.ttl=xxx來修改默認值,也可以通過InetAddress類動態(tài)修改。

幾種域名解析方式

域名解析記錄主要分為A記錄、MX記錄、CNAME記錄、NS記錄和TXT記錄:

1、A記錄

A代表Address,用來指定域名對應的IP地址,如將item.taobao.com指定到115.238.23.xxx,將switch.taobao.com指定到121.14.24.xxx。A記錄可以將多個域名解析到一個IP地址,但是不能將一個域名解析到多個IP地址

2、MX記錄

Mail Exchange,就是可以將某個域名下的郵件服務(wù)器指向自己的Mail Server,如taobao.com域名的A記錄IP地址是115.238.25.xxx,如果將MX記錄設(shè)置為115.238.25.xxx,即xxx@taobao.com的郵件路由,DNS會將郵件發(fā)送到115.238.25.xxx所在的服務(wù)器,而正常通過Web請求的話仍然解析到A記錄的IP地址

3、CNAME記錄

Canonical Name,即別名解析。所謂別名解析就是可以為一個域名設(shè)置一個或者多個別名,如將aaa.com解析到bbb.net、將ccc.com也解析到bbb.net,其中bbb.net分別是aaa.com和ccc.com的別名

4、NS記錄

為某個域名指定DNS解析服務(wù)器,也就是這個域名由指定的IP地址的DNS服務(wù)器取解析

5、TXT記錄

為某個主機名或域名設(shè)置說明,如可以為ddd.net設(shè)置TXT記錄為"這是XXX的博客"這樣的說明

分享標題:DNS域名解析過程
當前網(wǎng)址:http://m.rwnh.cn/news2/98152.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站建設(shè)、企業(yè)建站、面包屑導航、App開發(fā)、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
新平| 新乡县| 固镇县| 自治县| 棋牌| 邵东县| 安乡县| 永胜县| 哈巴河县| 麻城市| 遂川县| 延边| 耒阳市| 封丘县| 怀安县| 抚顺市| 龙里县| 积石山| 肃宁县| 哈巴河县| 绥中县| 夏河县| 柳河县| 巴林左旗| 仁化县| 玉山县| 抚远县| 新巴尔虎左旗| 蛟河市| 宣汉县| 武平县| 竹北市| 淄博市| 金昌市| 永丰县| 清徐县| 葫芦岛市| 儋州市| 宿松县| 贺州市| 奇台县|