網路協議---DNS

yujin123456發表於2024-12-08

一、dns域名名稱解析

結構:域名是一個具有層次結構的名稱,從右到左依次為頂級域名(TLD)、二級域名、三級域名等。

域名命名規則:

  • 域名只能由字母(A - Z,a - z)、數字(0 - 9)和連字元(-)組成,且連字元不能作為域名的開頭或結尾。例如,“abc - 123.com” 是合法的域名,而 “-abc.com” 和 “abc.com-” 是不合法的。
  • 域名長度有一定限制,雖然不同的頂級域名序號產生器構可能會有細微差異,但總體上域名的總長度(包括所有級別域名和分隔點)一般不超過 253 個字元。這是為了確保域名系統能夠有效地處理和儲存域名資訊。

例如,在 “www.example.com” 這個域名中,“com” 是頂級域名,表示這是一個商業性質的域名;“example” 是二級域名,通常由域名所有者註冊並使用;“www” 是三級域名,一般用於指定特定的服務,如網站服務。

另,對www進一步解釋:“www” 通常是伺服器上的一個子域名。它可以被配置為指向伺服器上特定的目錄或者虛擬主機。這意味著網站管理員可以將與網頁相關的檔案(如 HTML、CSS、JavaScript 檔案等)放置在伺服器上 “www” 對應的目錄下,這樣當使用者透過 “www.example.com” 訪問時,伺服器就知道要從這個特定的目錄中獲取檔案並返回給使用者。

  • 頂級域名又分為通用頂級域名(gTLD)、國家及地區頂級域名(ccTLD)和新頂級域名(nTLD)。
    • 通用頂級域名:如 “.com”(用於商業公司)、“.org”(用於非營利組織)、“.net”(用於網路相關服務)、“.edu”(用於教育機構)等。這些域名在全球範圍內被廣泛使用,沒有特定的地域限制。例如,“google.com” 是商業公司谷歌的域名,“mozilla.org” 是非營利組織 Mozilla 基金會的域名。
    • 國家及地區頂級域名:每個國家或地區都有自己的程式碼作為頂級域名,如 “.cn” 代表中國、“.uk” 代表英國、“.de” 代表德國、“.us“代表美國等。這種域名主要用於與特定國家或地區相關的網站,有助於表明網站的地域關聯性。例如,“taobao.cn” 是中國的淘寶網站域名。
    • 新頂級域名:隨著網際網路的發展,出現了許多新的頂級域名,如 “.app”(用於移動應用相關網站)、“.blog”(用於部落格網站)、“.shop”(用於購物相關網站)等。這些新頂級域名為使用者提供了更多的選擇,可以根據網站的性質更精準地選擇域名,使域名更具針對性。

二、dns伺服器型別

1、根 DNS 伺服器

最高層級伺服器,儲存著頂級域名(如.com、.org、.net 等)伺服器的 IP 地址資訊。當使用者在瀏覽器中輸入一個網址時,DNS 查詢首先會訪問根 DNS 伺服器,以獲取能夠解析該域名所屬頂級域名的伺服器資訊。

全球共有13個IPV4根伺服器,中國有多個ipv4根伺服器映象,IPV6根伺服器全球共有25個,中國有4臺,包括 1 臺主根伺服器和 3 臺輔根伺服器

工作方式:當本地 DNS 伺服器(由網際網路服務提供商提供給使用者的 DNS 伺服器)無法從快取中獲取域名對應的 IP 地址時,它會首先向根 DNS 伺服器發起查詢。

2、頂級域名伺服器

頂級域名伺服器負責管理和維護特定頂級域名下的域名資訊。比如,.com 頂級域名伺服器管理所有以.com 結尾的域名相關資訊。它們儲存了所屬頂級域名下二級域名註冊商的 DNS 伺服器資訊,就像是圖書館中各個主要分類(頂級域名)下的子目錄,知道每個二級域名所屬的更詳細的位置(二級域名註冊商的 DNS 伺服器)。

中國有.cn的頂級域名伺服器(包括.com.cn),沒有com的頂級域名

工作方式:在根 DNS 伺服器返回頂級域名伺服器的 IP 地址後,本地 DNS 伺服器會向頂級域名伺服器查詢。頂級域名伺服器根據請求域名中的二級域名部分,返回該域名對應的權威 DNS 伺服器(Authoritative DNS Server)的 IP 地址。

3、權威 DNS 伺服器

權威 DNS 伺服器是對特定域名具有最終解析權的伺服器。它由域名所有者或其託管服務提供商維護,儲存著域名對應的實際 IP 地址以及其他 DNS 記錄(如 MX 記錄用於郵件交換,CNAME 記錄用於別名等)。這就好比是圖書館中具體書籍所在的書架,包含了域名最準確的資訊。

中國的權威dns伺服器型別:1、CNNIC(中國網際網路絡資訊中心),維護著.cn 頂級域名的權威 DNS 伺服器,負責管理和解析所有以.cn 結尾的域名相關資訊;2、運營商提供的權威 DNS 伺服器,電信四川:

  • 202.98.96.68
  • 61.139.2.69

工作方式:本地 DNS 伺服器在收到頂級域名伺服器返回的權威 DNS 伺服器的 IP 地址後,會向權威 DNS 伺服器查詢。權威 DNS 伺服器根據域名查詢對應的 IP 地址(或其他相關的 DNS 記錄)並返回給本地 DNS 伺服器。本地 DNS 伺服器將這個資訊快取起來,以便後續相同域名的查詢,同時把 IP 地址返回給發出請求的客戶端(如使用者的計算機),使得客戶端能夠與目標伺服器建立連線。

4、本地 DNS 伺服器

本地 DNS 伺服器是使用者接入網際網路的入口 DNS 伺服器,通常由網際網路服務提供商(ISP)提供。它的主要作用是接收使用者的 DNS 查詢請求,並嘗試從自己的快取中獲取域名對應的 IP 地址

天翼雲成都3的本地dns伺服器IP地址為:100.125.108.51。成都4資源池內網dns伺服器ip地址為:100.95.0.1

工作方式:使用者在瀏覽器或其他網路應用中輸入域名後,計算機會首先向本地 DNS 伺服器傳送查詢請求。本地 DNS 伺服器先檢查自己的快取,若有匹配記錄則直接返回 IP 地址;若沒有,則開始遞迴查詢,即代替使用者依次向根 DNS 伺服器、頂級域名伺服器、權威 DNS 伺服器查詢,最後將獲取到的 IP 地址返回給使用者,並快取該記錄以備後續查詢。

三、DNS記錄型別

DNS 記錄是儲存在 DNS 伺服器上的一組文字指令,用於將域名與各種網路資源相關聯,是域名系統(DNS)中的核心資料,它就像是網際網路的地址簿,記錄著域名與 IP 地址、郵件伺服器等資源之間的對應關係,使得使用者能夠透過方便記憶的域名來訪問網路資源

1、A 記錄

功能:用於將域名對映到一個 IPv4 地址,是最常見和最常用的 DNS 記錄型別之一。當使用者在瀏覽器中輸入域名時,計算機透過查詢 DNS 伺服器的 A 記錄來獲取對應的 IPv4 地址,從而建立與伺服器的連線

2、AAAA 記錄

功能:與 A 記錄類似,但用於將域名解析到 IPv6 地址

3、CNAME 記錄

功能:用於建立域名別名,將一個域名(別名)指向另一個域名(真實名稱),而不是直接指向一個 IP 地址。當使用者訪問別名域名時,實際上是訪問了被指向的真實域名所對應的伺服器資源1.

應用場景:在網站更新、伺服器遷移或者需要多個域名指向同一資源的場景中非常有用,可以方便地對域名進行重定向和統一管理,避免因為伺服器變更而需要逐個更新域名的指向.

4、MX 記錄

功能:郵件交換記錄,用於指定負責接收郵件的郵件伺服器。當傳送郵件時,傳送方的郵件伺服器會查詢接收方域名的 MX 記錄,以確定將郵件傳送到哪個郵件伺服器

5、NS 記錄

功能:用於指定域名的權威 DNS 伺服器,一個域名的權威 DNS 伺服器是對該域名解析資訊具有最終決定權的伺服器。NS 記錄指向所有該域名持有的其他記錄,沒有 NS 記錄,使用者將無法訪問網站1.

應用場景:在域名註冊和管理過程中使用,當註冊一個域名時,需要指定該域名的權威 DNS 伺服器,透過設定 NS 記錄來實現。同時,在進行域名解析時,其他 DNS 伺服器會根據 NS 記錄找到權威 DNS 伺服器來獲取最準確的域名解析資訊.

6、PTR 記錄

功能:主要用於反向解析,即將 IP 地址解析為域名,與 A 記錄和 AAAA 記錄的作用相反。它可以實現透過 IP 地址訪問域名,在一些網路安全和驗證場景中很有用,比如檢查郵件伺服器的合法性等1.

應用場景:在網路安全領域,特別是郵件伺服器的反垃圾郵件驗證和一些網路訪問控制機制中應用,透過反向解析 IP 地址來驗證其對應的域名是否符合預期,有助於防止非法訪問和垃圾郵件的傳送.

四、dns正向解析過程

  1. 檢查本地快取:使用者在瀏覽器或其他應用程式中輸入域名後,裝置會首先檢查本地的 DNS 快取。如果在快取中找到該域名對應的 IP 地址,且該快取未過期,則直接使用快取中的 IP 地址,解析過程結束。這樣可以節省時間並減少網路流量,因為無需向外部 DNS 伺服器傳送查詢請求5.
  2. 查詢本地 DNS 伺服器:如果本地快取中沒有找到對應的 IP 地址,裝置會將 DNS 查詢請求傳送到本地配置的 DNS 伺服器,這個伺服器通常由網路服務提供商(ISP)提供,也可能是企業或組織內部的 DNS 伺服器5.
  3. 本地 DNS 伺服器查詢自身資料庫:本地 DNS 伺服器接收到查詢請求後,會先檢查自己的資料庫,看是否包含該域名的解析記錄。如果找到匹配的記錄,就直接將對應的 IP 地址返回給客戶端,完成解析35.
  4. 根 DNS 伺服器查詢:如果本地 DNS 伺服器在自身資料庫中沒有找到域名的解析記錄,它會向根 DNS 伺服器傳送查詢請求。根 DNS 伺服器是 DNS 系統中的最高層級,全球共有 13 組根 DNS 伺服器,它們儲存了頂級域名(TLD)的資訊,如.com、.org、.net 等的權威 DNS 伺服器地址.
  5. 頂級域名伺服器查詢:根 DNS 伺服器收到查詢請求後,會根據請求的域名中的頂級域名,返回負責該頂級域名的權威 DNS 伺服器地址給本地 DNS 伺服器。然後,本地 DNS 伺服器再向頂級域名伺服器傳送查詢請求,詢問有關二級域名的權威 DNS 伺服器地址.
  6. 權威 DNS 伺服器查詢:頂級域名伺服器收到請求後,會返回該二級域名對應的權威 DNS 伺服器地址。本地 DNS 伺服器接著向權威 DNS 伺服器傳送查詢請求,以獲取具體域名的 IP 地址.
  7. 獲取並返回 IP 地址:權威 DNS 伺服器收到查詢請求後,會在自己的資料庫中查詢對應的 IP 地址,並將其返回給本地 DNS 伺服器。本地 DNS 伺服器收到 IP 地址後,一方面將其返回給客戶端,另一方面將該域名和 IP 地址的對映關係儲存到本地快取中,以便下次查詢時能夠更快地響應5.
  8. 客戶端建立連線:客戶端收到 IP 地址後,就可以使用該 IP 地址與目標伺服器建立網路連線,從而實現對相應網站或服務的訪問.

五、dns反向解析過程

  1. 確定反向解析域:DNS 反向解析使用特殊的頂級域 “in-addr.arpa”。對於一個 IP 地址,如 117.78.61.19,其對應的反向域名是 19.61.78.117.in-addr.arpa。
  2. 查詢本地 DNS 快取:客戶端首先會檢查自己本地的 DNS 快取,看是否已經存在該 IP 地址的反向解析結果。如果快取中有對應的域名資訊,則直接返回結果,無需再向其他 DNS 伺服器查詢。
  3. 向本地 DNS 伺服器查詢:如果本地 DNS 快取中沒有找到結果,客戶端會向其配置的本地 DNS 伺服器傳送反向解析請求,請求查詢指定 IP 地址對應的域名。
  4. 本地 DNS 伺服器查詢:
    • 檢查自身快取:本地 DNS 伺服器收到請求後,先檢查自己的快取中是否有該 IP 地址的反向解析記錄。若有,則直接將結果返回給客戶端。
    • 遞迴查詢或迭代查詢:若本地 DNS 伺服器快取中無相應記錄,它會根據自身的配置進行遞迴查詢或迭代查詢。在遞迴查詢中,本地 DNS 伺服器會代替客戶端向其他 DNS 伺服器查詢,直到獲得最終結果並返回給客戶端;而在迭代查詢中,本地 DNS 伺服器會向根 DNS 伺服器或其他權威 DNS 伺服器傳送查詢請求,並根據收到的響應逐步查詢,直到找到負責該反向解析域的權威 DNS 伺服器7.
  5. 權威 DNS 伺服器查詢:最終,查詢請求會到達負責該反向解析域的權威 DNS 伺服器。權威 DNS 伺服器會查詢其配置的 PTR 記錄,PTR 記錄用於將 IP 地址對映到對應的域名,找到與請求的 IP 地址對應的域名後,將結果返回給查詢的 DNS 伺服器235.
  6. 結果返回:查詢結果沿著查詢路徑依次返回,最終由本地 DNS 伺服器將反向解析得到的域名返回給客戶端。

六、CDN

  1. DNS 與 CDN 的初始關聯
    • 在網站配置 CDN 服務時,需要透過 DNS 進行關聯。通常會使用一種叫做 CNAME(Canonical Name)的 DNS 記錄。例如,網站所有者會在 DNS 伺服器的配置中,將網站的域名(如www.example.com)的 CNAME 記錄指向 CDN 服務提供商提供的域名(如 cdn - provider.example - cdn.com)。這就相當於告訴 DNS 系統,當使用者查詢www.example.com這個域名時,應該去查詢 cdn - provider.example - cdn.com這個域名對應的 IP 地址相關資訊。
  2. 基於 DNS 的智慧解析和請求重定向
    • 當使用者在瀏覽器中輸入網站域名(如www.example.com)請求訪問時,瀏覽器首先會向本地 DNS 伺服器(通常由網際網路服務提供商提供)傳送 DNS 查詢請求。本地 DNS 伺服器如果沒有快取該域名的 IP 地址,就會向上一級 DNS 伺服器查詢,直到找到負責該域名的權威 DNS 伺服器。
    • CDN 服務提供商的權威 DNS 伺服器會根據使用者的地理位置、網路狀況等因素進行智慧解析。它會返回離使用者最近或者最適合的 CDN 邊緣伺服器的 IP 地址。例如,使用者位於亞洲,權威 DNS 伺服器會分析使用者的位置資訊,從眾多的 CDN 邊緣伺服器 IP 地址中選擇一個位於亞洲的伺服器 IP 地址返回給使用者的瀏覽器。這樣,使用者的請求就被重定向到了合適的 CDN 邊緣伺服器,而不是直接指向網站的源伺服器。
  3. DNS 快取與 CDN 服務的協同
    • DNS 伺服器會對查詢結果進行快取。當其他附近區域的使用者再次請求訪問同一個網站域名時,本地 DNS 伺服器如果已經快取了之前查詢到的 CDN 邊緣伺服器 IP 地址,就可以直接返回這個快取的 IP 地址,而不需要再次進行復雜的查詢過程。這可以加快後續使用者的訪問速度。
    • CDN 服務也依賴於 DNS 快取的有效期。在 DNS 快取有效期內,使用者的訪問請求會持續被導向之前確定的 CDN 邊緣伺服器。不過,當 DNS 快取過期或者需要更新(比如 CDN 網路進行了最佳化調整,更換了邊緣伺服器的 IP 地址)時,就會重新進行 DNS 查詢和智慧解析過程,以確保使用者總是被引導到最合適的 CDN 邊緣伺服器。
  4. CDN 對 DNS 的最佳化補充
    • CDN 有時也會利用自己的 DNS 伺服器或者與 DNS 服務提供商合作進行最佳化。例如,CDN 的 DNS 伺服器可以採用更先進的負載均衡演算法,在返回 IP 地址時不僅考慮地理位置和網路狀況,還考慮 CDN 邊緣伺服器的負載情況。這樣可以更好地分配使用者請求,避免某些邊緣伺服器過載,同時提高整體的服務效率。

七、dns應用於網路排障

1、nslookup

  1. 基本查詢(查詢域名對應的 IP 地址)
    • 格式:nslookup [域名]。例如,要查詢百度網站(www.baidu.com)對應的 IP 地址,在命令提示符(Windows)或終端(Linux、macOS)中輸入nslookup www.baidu.com
    • 結果解釋:執行命令後,會返回域名對應的 IP 地址資訊。通常會顯示伺服器名稱(Server)和 IP 地址(Address)。伺服器名稱是執行查詢的 DNS 伺服器的名稱,IP 地址是該 DNS 伺服器的 IP 地址。在其下方會顯示查詢域名對應的 IP 地址。如果一個域名有多個 IP 地址(如一些大型網站為了負載均衡會有多個伺服器),會全部列出。
  2.   查詢特定型別的 DNS 記錄(如 CNAME 記錄)
    •   格式:nslookup -type=[記錄型別] [域名]。例如,要查詢www.baidu.com的 CNAME 記錄,輸入nslookup -type=cname www.baidu.com
    • 記錄型別說明:
    • A 記錄:是最常見的記錄型別,用於將域名對映到 IP 地址,這是預設查詢的記錄型別。
    • CNAME 記錄:即別名記錄,用於將一個域名別名指向另一個域名。比如,www.example.com的 CNAME 記錄可能指向example.com,表示www.example.comexample.com的別名。
    • MX 記錄:用於指定郵件伺服器,用於電子郵件的傳送和接收。例如,查詢一個公司域名的 MX 記錄,可以知道該公司的郵件伺服器地址。
    • NS 記錄:即域名伺服器記錄,用於指定該域名的 DNS 伺服器。

  3. 指定 DNS 伺服器進行查詢

    •   格式:nslookup [域名] [DNS伺服器地址]。例如,你知道某個可靠的 DNS 伺服器(如谷歌的公共 DNS 伺服器8.8.8.8),想要使用它來查詢www.example.com的 IP 地址,可以輸入nslookup www.example.com 8.8.8.8

清除 DNS 快取

DNS 快取中儲存了之前查詢過的域名及其對應的 IP 地址等資訊,有時快取中的資料可能會出現錯誤或過時,進而引發網路故障。在 Windows 系統下,可以在命令提示符中輸入 “ipconfig /flushdns” 命令來清除 DNS 快取;在 Linux 系統中,可使用 “sudo systemctl restart NetworkManager” 或 “sudo /etc/init.d/networking restart” 等命令來重新整理 DNS 快取,使裝置重新獲取最新的域名解析資訊。

相關文章