域名解析類型及dig,nslookup進行Dns解析過程查看


本文為博主原創,未經允許不得轉載:

  通常我們在windows系統下查看域名是不是可以正常訪問,是通過cmd命令打開dos窗口,使用ping 命令來查看域名是不是可以正常訪問,使用 ping 命令正常訪問時,若域名能正常訪問,則會返回一段數據包的統計信息, 如果接收的數據包與發送的包數量完全相同,則表示域名正常。示例如下:

C:\Users\zenjian>ping baidu.com

正在 Ping baidu.com [220.181.38.148] 具有 32 字節的數據
來自 220.181.38.148 的回復: 字節=32 時間=23ms TTL=52
來自 220.181.38.148 的回復: 字節=32 時間=24ms TTL=52
來自 220.181.38.148 的回復: 字節=32 時間=24ms TTL=52
來自 220.181.38.148 的回復: 字節=32 時間=27ms TTL=52

220.181.38.148 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
    最短 = 23ms,最長 = 27ms,平均 = 24ms

 

如果 ping 一個不存在的域名或非公網域名,則會 提示請求找不到主機,
C:\Users\zenjian>ping ts.baidu.com
Ping 請求找不到主機 ts.baidu.com。請檢查該名稱,然后重試。
 
        

除了使用 ping 命令來查看域名是否正常訪問,或查看域名的訪問ip時,還可以使用 nslookup 來查看。nslookup是一種網絡管理命令行工具,可用於查詢DNS域名和IP地址,在網絡故障的時候用來診斷網絡問題。其最簡單的使用方法與 ping 命令方法相同,直接使用 nslookup 域名即可。示例如下:

C:\Users\zenjian>nslookup baidu.com
服務器:  192.168.1.1
Address:  192.168.1.1

DNS request timed out.
    timeout was 2 seconds.
名稱:    baidu.com
Addresses:  220.181.38.148
          39.156.69.79

 

其中192.168.1.1是本機對應的 ip 段,這個命令在Linux環境上也可以使用,通過執行 nslookup 命令我們發現他會返回兩個對應的 ip,這個ip就是baidu.com配置的訪問的ip地址。通常一個域名會配置多個解析 ip,防止同時有大並發的請求到一台服務器,導致服務奔潰不可用,這種域名解析配置的方式稱為 A 記錄。

域名解析的配置方式有很多種,主要由以下幾種:

(1)A記錄,Address

A記錄用於描述域名到ip地址的映射關系。對同一個域名,可以有多條A記錄。也就是說,一次DNS查找可以返回多個地址。

(2)NS記錄,Name Server

NS記錄是域名服務器記錄,用於指定該域名由那個DNS服務器來進行解析。每個區域可以有多個域名服務器,因此可以有多條NS記錄。

(3)SOA記錄,Start Of Authority

SOA記錄用於指定該區域的權威域名服務器。每個區域允許且只允許有一個SOA記錄,它是資源記錄的第一個條目。

(4)CNAME記錄

CNAME記錄用於描述別名與域名的對應關系,這種記錄允許您將多個名字映射到同一台計算機。例如,有一台計算機名為host.mydomain.com(A記錄)。它同時提供www和mail服務,為了便於用戶訪問服務,可以為該計算機設置兩個別名(CNAME):www和mail。這兩個別名的全稱就是www.mydomain.com和mail.mydomain.com。實際上它們都指向host.mydomain.com。當域名服務器查找一個域名時,找到一條CNAME記錄,它會用記錄中的規范名來替換這個域名別名,然后再查這個規范名的A記錄,從而找到與規范名對應的ip地址,這樣,就實現了對請求查找域名的ip地址響應。

(5)MX

如果需要設置郵箱,讓郵箱能夠收到郵件,需要添加MX記錄。

(6)SOA

SOA這種記錄是所有區域性文件中的強制性記錄。它必須是一個文件中的第一個記錄。

(7)TXT

可以寫任何東西,長度限制為255。絕大多數的TXT記錄是用來做SPF記錄(反垃圾郵件)。

通過ping 命令是無法解析域名的解析類型,只能ping域名是否正常訪問,獲取域名的對應ip。若需要解析域名的類型可以使用nslookup。

其語法域名的某一解析類型如下:

--查詢域名的mx/txt/ns解析記錄
nslookup -type=mx/txt/ns 52robot.org

--還可以用 nslookup –qt=類型 目標域名。類型cname,txt,ns,mx
nslookup -qt=cname/mx/txt/ns 52robot.org

--查詢域名的所有類型解析記錄
nslookup -type=any 52robot.org

--從指定DNS服務器進行查詢
nslookup 52robot.org 223.5.5.5
 

使用nslookup查詢baidu.com的所有解析類型記錄:

C:\Users\zenjian>nslookup -type=any baidu.com
服務器:  192.168.1.1
Address:  192.168.1.1

非權威應答:
baidu.com       MX preference = 10, mail exchanger = mx.maillb.baidu.com
baidu.com       MX preference = 15, mail exchanger = mx.n.shifen.com
baidu.com       MX preference = 20, mail exchanger = mx1.baidu.com
baidu.com       MX preference = 20, mail exchanger = jpmx.baidu.com
baidu.com       MX preference = 20, mail exchanger = mx50.baidu.com
baidu.com       nameserver = ns2.baidu.com
baidu.com       nameserver = ns3.baidu.com
baidu.com       nameserver = ns7.baidu.com
baidu.com       nameserver = dns.baidu.com
baidu.com       nameserver = ns4.baidu.com
 

通過這個解析記錄可以看到直接訪問baidu.com可能會訪問到以上mx,ns等的dns服務器上。使用nslookup命令已經可以幫我們查看域名的解析配置,在實際的應用配置中,現在更多的用的是 dig 命令進行查看配置解析,因為使用dig命令可以幫我們看到域名解析的服務鏈路,解析的線路更清楚,而且可以查看請求的狀態和時長。

dig 也是查看域名dns解析的工具,使用dig命令需要安裝dig工具。在Linux環境只需要執行以下命令即可:

yum install bind-utils

dig命令的使用語法如下:

dig(選項)(參數)

其選項有以下:

@<服務器地址>:指定進行域名解析的域名服務器;
-b<ip地址>:當主機具有多個IP地址,指定使用本機的哪個IP地址向域名服務器發送域名查詢請求;
-f<文件名稱>:指定dig以批處理的方式運行,指定的文件中保存着需要批處理查詢的DNS任務信息;
-P:指定域名服務器所使用端口號;
-t<類型>:指定要查詢的DNS數據類型;
-x<IP地址>:執行逆向域名查詢;
-4:使用IPv4;
-6:使用IPv6;
-h:顯示指令幫助信息。
 

參數則有以下配置:

主機:指定要查詢域名主機;
查詢類型:指定DNS查詢的類型;
查詢類:指定查詢DNS的class;
查詢選項:指定查詢選項。

這里列舉一下dig常用的請求命令:

查詢域名
dig baidu.com

查詢mx記錄
dig -t mx baidu.com

查詢所有記錄
dig -t any baidu.com

追蹤所有解析,可以看到從客戶端指定的dns服務器一步一步將dns請求轉發到域名托管的dns服務器
DNS的解析是遞規解析,用trace參數,會顯示完整的,無緩存,遞規的查詢,顯示的是完整的trace記錄。
dig +trace baidu.com

從指定DNS服務器進行查詢
dig @8.8.8.8 baidu.com
 

另外常用的dns解析服務ip有兩個,一個是8.8.8.8,另一個是114.114.114.114。從8.8.8.8 dns服務器解析追蹤baidu.com的請求如下:

[root@Test ~]# dig @8.8.8.8 baidu.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> @8.8.8.8 baidu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43743
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;baidu.com.                     IN      A

;; ANSWER SECTION:
baidu.com.              461     IN      A       39.156.69.79
baidu.com.              461     IN      A       220.181.38.148

;; Query time: 51 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Oct 25 14:35:09 CST 2020
;; MSG SIZE  rcvd: 70

通過了解域名的解析類型,以及如何查看域名的解析類型記錄,希望對域名能有更進一步的了解。並列舉了nslookup和dig命令,在實際的應用時,可以根據不同的場景,正確快速的使用命令工具,幫助我們提供工作效率。


免責聲明!

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



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