dig命令曹阔,可以用來分析dns解析過程糙臼。最簡單的使用方式: dig your domain凑保。
例如使用dig www.baidu.com,會輸出如下信息:
dig www.baidu.com
; <<>> DiG 9.14.7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3296
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 131 IN CNAME www.a.shifen.com.
www.a.shifen.com. 84 IN A 61.135.169.121
www.a.shifen.com. 84 IN A 61.135.169.125
;; Query time: 6 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: 二 11月 05 23:35:03 CST 2019
;; MSG SIZE rcvd: 90
返回內容解析
- 第一部分
; <<>> DiG 9.14.7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3296
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
dig返回內容的第一部分,主要包括dig的版本信息巡社,以及本次命令執(zhí)行結果的摘要基茵。
>opcode:QUERY奋构,表示執(zhí)行查詢操作。
status:NOERROR拱层。解析成功弥臼。
- QUESTION SECTION
;; QUESTION SECTION:
;www.baidu.com. IN A
展示發(fā)起的DNS 請求參數(shù)。其中A表示我們默認查詢A類型的記錄根灯。
-
ANSWER SECTION
這一部分展示DNS服務的響應流程径缅。
;; ANSWER SECTION:
www.baidu.com. 131 IN CNAME www.a.shifen.com.
www.a.shifen.com. 84 IN A 61.135.169.121
www.a.shifen.com. 84 IN A 61.135.169.125
其格式解讀如下:
- 對應的域名,這里是baidu.com.烙肺,'.'代表根域名芥驳,com頂級域名,baidu二級域名
- TTL茬高,time to live,緩存時間假抄,單位秒怎栽。600丽猬,代表該記錄可以緩存的時間,超過改時間則需要重新獲取刷新熏瞄。
- class脚祟,要查詢信息的類別,IN代表類別為IP協(xié)議强饮,即Internet由桌。還有其它類別,比如chaos等邮丰,由于現(xiàn)在都是互聯(lián)網(wǎng)行您,所以其它基本不用。
- type剪廉,要查詢的記錄類型娃循,A記錄,代表要查詢ipv4地址斗蒋。后邊會專門解釋dns中記錄的類別捌斧。
- 域名對應的ip地址。
對于dns返回記錄的type泉沾,主要包括的類型如下:
type | 描述 | 說明 |
---|---|---|
A | Adress捞蚂,域名所對應的ipv4地址 | - |
AAAA | 域名所對應的ipv6地址 | - |
NS | name server,域名服務器跷究,代表該域名需要到哪個域名服務器去解析 | - |
SOA | SOA叫做起始授權機構姓迅。NS可能會記錄多臺域名解析服務器,而SOA則標識應該將哪一臺作為主解析服務器揭朝。同時SOA也記錄了域名服務器所有人的email聯(lián)系地址 | - |
CNAME | Canonical name record,該域名的別名队贱。通過CNAME,可以將多個域名映射到一個域名上潭袱,然后在將該域名和ip綁定起來柱嫌。這樣,如果服務器ip變更屯换,其他域名無需感知编丘,只需要該域名和ip進行重新映射即可 | - |
使用說明
使用 dig url +trace,可以看到更詳細的域名解析過程彤悔,便于更方便定位問題嘉抓。
nslookup也可以進行dns分析。
參考文獻
https://ns1.com/blog/decoding-dig-output
https://en.wikipedia.org/wiki/List_of_DNS_record_types