国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 建站知識 > Domain Name System(DNS)域名服務(wù)器

Domain Name System(DNS)域名服務(wù)器

時間:2023-02-13 04:57:01 | 來源:建站知識

時間:2023-02-13 04:57:01 來源:建站知識

域名查詢

在Internet中,DNS(Domain Name System)就好比一個電話本,記錄了域名和IP的對應(yīng)關(guān)系。當我們在瀏覽器中輸入域名http://google.com會發(fā)生什么呢?大概流程如下圖所示,首先在本地電腦上查看是否有緩存,緩存沒命中就訪問ISP的Local DNS Resolver或者所在網(wǎng)絡(luò)的Local name server,如果還沒命中,就訪問DNS服務(wù)獲取域名對應(yīng)的IP地址。

DNS中存儲了域名到IP地址的映射關(guān)系,我們將這類存儲有映射關(guān)系的數(shù)據(jù)叫做Resource records(RR)。為了降低查詢域名IP地址的響應(yīng)速度,通常在瀏覽器、操作系統(tǒng)、Local DNS resolver、Local name server(或者叫Local server)都會實現(xiàn)對數(shù)據(jù)的緩存。在OS中提供了一個local resolver library的entity來管理loacal DNS cache,應(yīng)用可以通過API訪問該庫。如果OS的cache失效,將訪問Local DNS resolver。

默認情況下,我們使用的Local DNS Resolver是ISPs的Local DNS Resolver。ISP記錄著分配給每個用戶的IP地址,甚至他們的DNS服務(wù)記錄了哪些用戶訪問過哪些IP地址,以及哪些用戶訪問過那些域名。因此ISP從技術(shù)上是可以記錄你訪問過的網(wǎng)站。當然,你可以把你訪問的Local DNS resolver替換成一些公共的DNS resolver,如 Google, Cloudflare, OpenDNS。

Local name server

當一臺主機發(fā)出 DNS 查詢請求時,這個查詢請求報文就會發(fā)送給本地域名服務(wù)器。每一個互聯(lián)網(wǎng)提供者,或者一個大學(xué),或者一個公司,都可以擁有一臺本地域名服務(wù)器,這種域名服務(wù)器也被稱為默認域名服務(wù)器。

Local DNS Resolver

Local DNS resolver可以簡單理解為DNS的客戶端Local DNS resolver會嵌入在Local name server中,通常。我們是如何通過Local DNS resolver知道域名的IP地址的呢?我們又是如何知道Local DNS resolver的IP地址的呢?Local DNS resolver可以通過DHCP協(xié)議動態(tài)配置,也可以通過自定義靜態(tài)配置。

在OS中,有個配置文件記錄Local DNS resolver的IP地址(Linux中的/etc/resolv.conf,Mac中也是這個文件)。終端請求Local DNS resolver進行域名查詢,Local DNS resolver安裝了特殊的軟件,可以通過DNS基礎(chǔ)設(shè)施查詢域名,通常一個名叫Berkeley Internet Name Domain (BIND)的軟件嵌入在Local DNS resolver中,這個軟件中記錄了根服務(wù)器的IP地址。最新的根服務(wù)器地址可通過InterNIC查詢,總共有13個。

我們在不同網(wǎng)絡(luò)下,查看Mac中的resolv.conf文件,其內(nèi)容如下:

鏈接WIFI時:

## macOS Notice## This file is not consulted for DNS hostname resolution, address# resolution, or the DNS query routing mechanism used by most# processes on this system.## To view the DNS configuration used by this system, use:# scutil --dns## SEE ALSO# dns-sd(1), scutil(8)## This file is automatically generated.#nameserver fe80::1%en0nameserver 192.168.1.1鏈接手機的熱點時:

## macOS Notice## This file is not consulted for DNS hostname resolution, address# resolution, or the DNS query routing mechanism used by most# processes on this system.## To view the DNS configuration used by this system, use:# scutil --dns## SEE ALSO# dns-sd(1), scutil(8)## This file is automatically generated.#nameserver fe80::f810:93ff:fe9b:164%en0nameserver 172.20.10.1使用代理時:

## macOS Notice## This file is not consulted for DNS hostname resolution, address# resolution, or the DNS query routing mechanism used by most# processes on this system.## To view the DNS configuration used by this system, use:# scutil --dns## SEE ALSO# dns-sd(1), scutil(8)## This file is automatically generated.#nameserver 10.12.2.3nameserver 10.12.2.4

DNS分層結(jié)構(gòu)

DNS為了保證服務(wù)的高可用,所以采用了分層級的應(yīng)用架構(gòu)。主要分為四部分:

  1. DNS resolver:可以簡單理解為域名服務(wù)器的客戶端。
  2. Root-leve name servers:負責(zé)處理來自local servers的請求,根域名服務(wù)器維護了最頂級的域名信息,root name servers從邏輯上分為13個,命名從A到M,但服務(wù)實例到目前為止有1000多個,可以在root-servers.org進行查看。這些服務(wù)分別由12個組織進行管理。
  3. Top-level domain(TLD) name servers:這些服務(wù)擁有權(quán)威域名服務(wù)的IP地址。通過他們可以拿二級/權(quán)威域名服務(wù)器IP列表。目前TLD由Internet Corporation for Assigned Names and Numbers (ICANN)進行管理。
  4. Authoritative name servers:這是被訪問組織的域名服務(wù),他們提供了被訪問的網(wǎng)站或應(yīng)用的IP地址。
域名結(jié)構(gòu)如下:

域名服務(wù)器如何查詢域名?

在域名服務(wù)器中有兩種方式查詢域名的IP地址:

  1. 迭代式(Iterative):local server 分別請求root、TLD和權(quán)威服務(wù)器來獲得IP地址。
  2. 遞歸式(Recursive):local server請求root,root請求TLD,TLD請求權(quán)威服務(wù)器,最后逐層返回IP地址。

Resource records(RR)

前面提到過RR包含了域名與IP的信息。RR是從域名服務(wù)器獲得數(shù)據(jù)的最小信息單元,將其分為四類。RR中主要由三部分組成:type,name和value。

TypeDescriptionNameValueExample (Type, Name, Value)
AProvides the hostname to IP address mappingHostnameIP address(A, relay1.main.educative.io,104.18.2.119)
NSProvides the hostname that is the authoritative DNS for a domain nameDomain nameHostname(NS, educative.io, http://dns.educative.io)
CNAMEProvides the mapping from alias to canonical hostnameHostnameCanonical name(CNAME, educative.io, http://server1.primary.educative.io)
MXProvides the mapping of mail server from alias to canonical hostnameHostnameCanonical name(MX, mail.educative.io, http://mailserver1.backup.educative.io)

分布式問題

DNS作為一個分布式基礎(chǔ)服務(wù)是如何解決擴展性、可靠性和一致性的呢?

由于DNS的分層結(jié)構(gòu),很容易解決應(yīng)用的擴展性問題。對于可靠性,主要通過一下三個手段實現(xiàn):

  1. Caching:瀏覽器、操作系統(tǒng)、local name srver和Local DNS resolver會維護經(jīng)常訪問的域名的緩存。在chrome中可通過chrome://net-internals/#dns查看緩存情況。如果DNS 服務(wù)掛掉,緩存還能起作用。
  2. 服務(wù)多副本:DNS有每個邏輯服務(wù)器的副本,系統(tǒng)地分布在全球各地,以低延遲的方式滿足用戶請求。冗余的服務(wù)器提高了整個系統(tǒng)的可靠性。
  3. 使用UPD協(xié)議:UDP的速度更快,因此提高了DNS的性能。此外,互聯(lián)網(wǎng)服務(wù)的可靠性自成立以來已得到改善,因此UDP通常比TCP更受青睞。如果DNS解析器沒有收到對先前請求的答復(fù),它可以重新發(fā)送UDP請求。這種請求-回復(fù)只需要一次往返,與TCP相比,延遲更短,因為TCP在數(shù)據(jù)交換前需要進行三次握手。雖然在通常情況下,DNS使用UDP協(xié)議。然而,當DNS的信息大小超過原始數(shù)據(jù)包大小512字節(jié)時,可以使用TCP。這是因為大尺寸的數(shù)據(jù)包在擁擠的網(wǎng)絡(luò)中更容易被損壞。DNS總是使用TCP進行區(qū)域傳輸。除此之外,一些客戶出于隱私的考慮,更喜歡在TCP上使用DNS,以采用傳輸層安全協(xié)議。
DNS為了保證服務(wù)的高可用,所以犧牲強一致性而采用最終一致性。我們可以更改cache的TTL來減少達到最終一致所花費的時間。

簡單實驗

我們來簡單看下幾個常用的命令。

nslookup

$ nslookup www.google.comServer:10.12.2.3Address:10.12.2.3#53?Non-authoritative answer:Name:www.google.comAddress: 142.251.12.103Name:www.google.comAddress: 142.251.12.104Name:www.google.comAddress: 142.251.12.105Name:www.google.comAddress: 142.251.12.147Name:www.google.comAddress: 142.251.12.99Name:www.google.comAddress: 142.251.12.106Non-authoritative answer表示緩存響應(yīng)。

$ dig www.google.com?; <<>> DiG 9.10.6 <<>> www.google.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18750;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1?;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4000;; QUESTION SECTION:;www.google.com.INA?;; ANSWER SECTION:www.google.com.195INA142.251.12.103www.google.com.195INA142.251.12.106www.google.com.195INA142.251.12.104www.google.com.195INA142.251.12.147www.google.com.195INA142.251.12.105www.google.com.195INA142.251.12.99?;; Query time: 43 msec;; SERVER: 10.12.2.3#53(10.12.2.3);; WHEN: Mon Aug 15 00:57:16 CST 2022;; MSG SIZE rcvd: 139195表示TTL,單位為秒。如果想追蹤 www.google.com 域名對應(yīng) IP 地址是如何被解析出來的,可以使用命令dig +trace www.google.com

host

host命令是dig的簡化版。

host github.comhost facebook.github.comhost 172.253.118.100 # 逆向



關(guān)鍵詞:服務(wù)

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉