Dig 常用參數 與 DNS 偵錯追蹤

Linux 要查詢 DNS 問題, 本機有幾個檔案要看, 如下述:

  1. /etc/hosts
  2. /etc/resolv.conf
  3. 再來就是往 Global DNS 來追蹤~

使用 Dig 來查詢 DNS 設定問題

往 Global DNS 來追蹤, 可以先從 NS、鄰近機器查詢, ex:

  1. $ dig NS 168.95.1.1 example.com # 查看 NS 是否有指到正確的 DNS Server
  2. $ dig example.com www.example.com # 查看機器是否可以抓的到其他機器的 DNS recode
  3. 以上完成後還是有問題, 可以再來往下追蹤, 這邊記錄幾個常用的追蹤方式.

dig 常用的幾個基本參數, USAGE 如下述:

dig [@global-server] ...
-x dot-notation  (shortcut for reverse lookups)
+[no]short  (Disable everything except short form of answer)
+[no]trace  (Trace delegation down from root)

常用 dig debug 的幾個參數說明

  • @global-server: 指定 DNS server 要用哪台
  • -x: 反向查詢
  • +trace: 查看 DN 從最上層 root 往下跑, 到底經過哪些節點
  • +short: 簡短輸出 (寫程式 追蹤方便使用)

dig 使用操作範例

  • $ dig @ns1.google.com www.google.com # 指定 NS1 的 dns server
  • $ dig google.com @8.8.4.4 # 指定 dns server (結果省略, 請自行測試)
  • $ dig +trace google.com # 追蹤看經過哪些節點 (結果省略, 請自行測試)
  • $ dig +trace google.com @8.8.8.8 # 指定 dns server + 追蹤路徑經過 (結果省略, 請自行測試)
  • $ dig +short google.com @8.8.8.8 # 只看簡短結果, 如下述:
    74.125.31.100
    74.125.31.138
    74.125.31.101
    74.125.31.102
    74.125.31.139
    74.125.31.113
  • $ dig +trace +short google.com @8.8.8.8
    NS i.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS a.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS h.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS m.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS k.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS l.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS j.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS e.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS f.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS g.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS c.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS b.root-servers.net. from server 8.8.8.8 in 18 ms.
    NS d.root-servers.net. from server 8.8.8.8 in 18 ms.
    A 173.194.72.101 from server 216.239.32.10 in 18 ms.
    A 173.194.72.113 from server 216.239.32.10 in 18 ms.
    A 173.194.72.139 from server 216.239.32.10 in 18 ms.
    A 173.194.72.102 from server 216.239.32.10 in 18 ms.
    A 173.194.72.138 from server 216.239.32.10 in 18 ms.
    A 173.194.72.100 from server 216.239.32.10 in 18 ms.
  • $ dig -x 173.194.72.100 # 反查
    100.72.194.173.in-addr.arpa. 1879 IN    PTR     tf-in-f100.1e100.net.
  • $ dig -x 173.194.72.100 +short
    tf-in-f100.1e100.net.

Dig 查詢整個網段的反解

要查整個網段的反解, 可以使用下述程式(下述取自此網頁: DiG HOWTO):

#!/bin/bash
NET=18.7.22
for n in $(seq 1 254); do
    ADDR=${NET}.${n}
    echo -e "${ADDR}\t$(dig -x ${ADDR} +short)"
done

Dig 於 IPv6 的使用

Dig 於 IPv6 的使用, 可以參考下述幾篇文章:

在此記錄幾個會用到的指令:

  • $ dig aaaa http://www.l.google.com @8.8.8.8 +short
  • $ dig aaaa http://www.l.google.com @168.95.1.1 +short
  • $ dig aaaa http://www.l.google.com @2001:470:20::2 +short
  • $ dig aaaa ipv6.google.com @8.8.8.8 +short
  • $ dig aaaa cyberciti.biz @8.8.8.8 +short
  • $ dig @8.8.8.8 www.google.com.sixxs.org aaaa
  • $ dig @8.8.8.8 www.google.com.sixxs.org a # IPv4

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈Dig 常用參數 與 DNS 偵錯追蹤〉中有 4 則留言

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料