查詢域名對應的ip地址經常使用兩種方式:文件和dns服務器緩存
除了上面兩種方式外,還有不經常使用的方式,實際上能夠控制ip地址的查詢順序,在/etx/nsswitch.conf文件中,默認是以下配置;服務器
hosts: files mdns4_minimal [NOTFOUND=return] dns
有兩種常見的命令查看DNS查詢過程:dig和host。使用這兩個命令時會自動跳過hosts文件。負載均衡
host www.baidu.com dig www.baidu.com
如今,將域名進行分解,以www.baidu.com
爲例:3d
實際上後面還有一個'.'+根DNS服務器,默認不寫,查詢時從後往前查詢。
使用'+trace'參數顯示完整查詢路徑。
查詢的方式有兩種:迭代查詢和遞歸查詢。指針
在迭代查詢中,首先發起請求的主機會請求本地DNS服務器,當沒法解析域名是,本地DNS服務器請求根服務器。當根服務器也沒法解析是,根服務器會把其它能夠解析此域名的DNS服務器的ip地址返回給本地DNS服務器。本地DNS服務器再請求剛纔返回的服務器,若是仍是沒法解析,則請求的服務器也會返回其它的服務器ip地址。當有服務器將解析的結果返回給本地DNS服務器,本地DNS服務器再將結果返回給發起請求的主機。code
與迭代查詢不一樣的地方在於遞歸查詢在DNS服務器沒法解析域名時不會返回其它服務器的ip地址,而是本身向其它服務器發起請求。直到有主機能夠解析該域名,而後逐級返回。server
在DNS服務器上,DNS信息經過一個叫做資源記錄的格式進行保存。
經常使用的屬性有:blog
NAME | CLASS | TYPE | DATA |
---|---|---|---|
www | IN | A | 192.168.1.1 |
IN | A | 192.168.1.2 | |
serverl | IN | CNAME | www |
serverl | IN | MX | mail.qq.com |
其中,CLASS主要是IN,表示Internet。
資源記錄類型TYPE有多種類型,以下:遞歸
資源記錄類型 | 表示內容 |
---|---|
A | IPv4地址 |
AAAA | IPv6地址 |
MX | 郵件記錄 |
CNAME | 別名 |
PTR | 指針(逆向解析) |
SRV | 服務資源 |
一個域經過一個zone文件保存該域的相關信息。
經常使用以下幾個命令獲取相關信息:dns
// 查詢對應的郵件服務器 dig -t MX mail.qq.com // 逆向解析 dig -x mail.qq.com // 獲取soa信息 dig -t soa mail.qq.com