一、host指令
格式:host [-a] FQDN [server]
host -l domain [server]
選項:
-a :代表列出該主機所有的相關信息,包括 IP、TTL 與除錯訊息等等
-l :若后面接的那個 domain 設定允許 allow-transfer 時,則列出該domain所管理的所有主機名對應數據!
server:這個參數可有可無,當想要利用非 /etc/resolv.conf 內的 DNS 主機來查詢主機名與 IP 的對應時,就可以利用這個參數了!
# 1. 使用默認值來查出百度的IP
[root@lcl ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 14.215.177.38
www.a.shifen.com has address 14.215.177.37
# 2. 查出 百度的所有重要參數
[root@lcl ~]# host -a www.baidu.com
Trying "www.baidu.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51104
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.baidu.com. IN ANY
;; ANSWER SECTION:
www.baidu.com. 1022 IN CNAME www.a.shifen.com.
Received 58 bytes from 114.114.114.114#53 in 25 ms <--果然是從114.114.114.114服務器得到的資料
# 3. 強制以 139.175.10.20 這部 DNS 服務器來查詢
[root@www ~]# host linux.vbird.org 139.175.10.20
Using domain server:
Name: 139.175.10.20
Address: 139.175.10.20#53
Aliases:
linux.vbird.org has address 140.116.44.180
linux.vbird.org mail is handled by 10 linux.vbird.org.
# 4. 找出 sxjy.com領域的所有主機對應
[root@lcl ~]# host -l sxjy.com
; Transfer failed.
; Transfer failed.
Host sxjy.com.sxjy.com not found: 9(NOTAUTH)
; Transfer failed.
怎么會無法響應呢?這樣的響應是因為管理 vbird.org 領域的 DNS 並不許我們的領域查詢,畢竟我們不是 vbird.org 的系統管理員,當然沒有權限可以讀取整個vbird.org 的領域設定啰!這個『 host -l 』是用在自己的 DNS 服務器上,本章稍后談到服務器設定后,使用這個選項就能夠讀取相關的數據了。
二、nslookup
格式:nslookup [FQDN] [server]
選項與參數:
1. 可以直接在 nslookup 加上待查詢的主機名或者是 IP ,[server] 可有可無;
2. 如果在 nslookup 后面沒有加上任何主機名或 IP ,那將進入 nslookup的查詢功能,在 nslookup 的查詢功能當中,可以輸入其他參數來進行特殊查詢,
例如:
set type=any :列出所有的信息『正解方面配置文件』
set type=mx :列出與 mx 相關的信息!
例:
(1) 直接搜尋百度的IP信息
[root@lcl ~]# nslookup www.baidu.com
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 14.215.177.37 #百度的一個IP
Name: www.a.shifen.com
Address: 14.215.177.38 #百度的另一個IP
(2) 直接輸入nslookup,進入查詢界面
[root@www ~]# nslookup <==進入 nslookup 查詢畫面
> 120.114.100.20
<==執行反解的查詢
> www.ksu.edu.tw
<==執行正解的查詢
# 上面這兩個僅列出正反解的信息,沒有啥了不起的地方啦!
> set type=any
<==變更查詢,不是僅有 A,全部信息都列出來
> www.ksu.edu.tw
Server:
168.95.1.1
Address:
168.95.1.1#53
Non-authoritative answer:
Name:
www.ksu.edu.tw
Address: 120.114.100.101 <==這是答案
Authoritative answers can be found from: <==這是相關授權 DNS 說明
ksu.edu.tw
nameserver = dns2.ksu.edu.tw.
ksu.edu.tw
nameserver = dns1.ksu.edu.tw.
dns1.ksu.edu.tw internet address = 120.114.50.1
dns2.ksu.edu.tw internet address = 120.114.150.1
> exit <==離開吧!皮卡丘
三、dig
格式:dig [options] FQDN [@server]
選項與參數:
@server : 如果不以 /etc/resolv.conf 的設定來作為 DNS 查詢,可在此填
入其他的 IP
options: 相關的參數很多,主要有 +trace, -t type 以及 -x 三者最常用
+trace : 就是從 . 開始追蹤,在 19.1.2 里面談過了!回頭瞧瞧去!
-t type: 查詢的數據主要有 mx, ns, soa 等類型,
-x:查詢反解信息,非常重要的項目!
例:
(1) 來看看dns查詢過程
[root@lcl ~]# dig +trace www.baidu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> +trace www.baidu.com
;; global options: +cmd
. 253628 IN NS m.root-servers.net.
. 253628 IN NS d.root-servers.net.
. 253628 IN NS h.root-servers.net.
. 253628 IN NS e.root-servers.net.
. 253628 IN NS b.root-servers.net.
. 253628 IN NS k.root-servers.net.
. 253628 IN NS l.root-servers.net.
. 253628 IN NS f.root-servers.net.
. 253628 IN NS i.root-servers.net.
. 253628 IN NS g.root-servers.net.
. 253628 IN NS a.root-servers.net.
. 253628 IN NS c.root-servers.net.
. 253628 IN NS j.root-servers.net.
;; Received 228 bytes from 114.114.114.114#53(114.114.114.114) in 327 ms
# 上面的部分在追蹤 . 的服務器,可從 a ~ m.root-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
;; Received 491 bytes from 198.97.190.53#53(198.97.190.53) in 706 ms
# 上面的部分在追蹤 com. 的服務器,
baidu.com. 172800 IN NS dns.baidu.com.
baidu.com. 172800 IN NS ns2.baidu.com.
baidu.com. 172800 IN NS ns3.baidu.com.
baidu.com. 172800 IN NS ns4.baidu.com.
baidu.com. 172800 IN NS ns7.baidu.com.
;; Received 201 bytes from 192.33.14.30#53(192.33.14.30) in 316 ms
www.baidu.com. 1200 IN CNAME www.a.shifen.com.
a.shifen.com. 1200 IN NS ns1.a.shifen.com.
a.shifen.com. 1200 IN NS ns2.a.shifen.com.
a.shifen.com. 1200 IN NS ns5.a.shifen.com.
a.shifen.com. 1200 IN NS ns3.a.shifen.com.
a.shifen.com. 1200 IN NS ns4.a.shifen.com.
;; Received 228 bytes from 119.75.219.82#53(119.75.219.82) in 36 ms
讓大家瞧瞧整個 DNS 的搜尋過程!在 dig 加上 +trace 的選項后,就能夠達到這個目的。至於其他的都是服務器 (NS) 的設定值與追蹤過程喔!有沒有很清楚啊?
(2) 使用默認值查詢
[root@lcl ~]# dig www.baidu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45046
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.baidu.com. IN A <==提出的問題的部分,詢問百度的IP
;; ANSWER SECTION: <==主要的回答階段,回答百度的IP
www.baidu.com. 1064 IN CNAME www.a.shifen.com.
www.a.shifen.com. 39 IN A 14.215.177.37
www.a.shifen.com. 39 IN A 14.215.177.38
;; Query time: 19 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Sun Mar 6 21:16:03 2016
;; MSG SIZE rcvd: 90
QUESTION(問題):顯示所要查詢的內容,因為我們是查詢 linux.vbird.org的 IP,所以這里顯示 A (Address);
ANSWER(回答):依據剛剛的 QUESTION 去查詢所得到的結果,答案就是回答IP 啊!
(2) 查詢 linux.vbird.org 的 SOA 相關信息吧!
[root@www ~]# dig -t soa linux.vbird.org
; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6_0.1 <<>> -t soa linux.vbird.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57511
;; flags: qr rd ra
; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;linux.vbird.org. IN SOA
;; AUTHORITY SECTION:
vbird.org. 600 IN SOA dns.vbird.org. root.dns.vbird.org. 2007091402 28800 7200 720000 86400
;; Query time: 17 msec
;; SERVER: 168.95.1.1#53(168.95.1.1)
;; WHEN: Thu Aug 4 14:15:57 2011
由於 dig 的輸出信息實在是太豐富了,又分成多個部分去進行回報,因此很適合作為 DNS 追蹤回報的一個指令呢! 你可以透過這個指令來了解一下你所設定的 DNS 數據庫是否正確,並進行除錯喔! ^_^!此外,你也可以透過『 -t type 』 的功能去查詢其他服務器的設定值,可以方便你進行設定 DNS 服務器時的參考喔!正解查詢完畢,接下來玩一玩反解吧! # 3. 查詢 120.114.100.20 的反解信息結果
(3) 查詢112.80.248.73(百度)反解析
[root@localhost ~]# dig -x 112.80.248.73
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -x 112.80.248.73
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 20695
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;73.248.80.112.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
80.112.in-addr.arpa. 5 IN SOA ns1.jscnc.net. root.ns1.jscnc.net. 2010070723 10800 3600 604800 3600
;; Query time: 31 msec
;; SERVER: 192.168.122.2#53(192.168.122.2)
;; WHEN: Mon Mar 7 06:28:39 2016
;; MSG SIZE rcvd: 98
反解相當有趣!從上面的輸出結果來看,反解的查詢目標竟然從 112.80.248.73 變成了 80.112.in-addr.arpa. 這個模樣~這是啥鬼東西?不要怕,這等我們講到反解時再跟大家進一步解釋。 你現在要知道的是,反解的查詢領域名,跟正解不太一樣即可,尤其是那個怪異的 in-addr.arpa. 結尾的數據,可以先記下來。