Lệnh dig trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh dig mạnh mẽ để thực hiện các truy vấn DNS (Domain Name System - Hệ thống tên miền) và khắc phục sự cố mạng. Lệnh dig là một công cụ quản trị mạng linh hoạt cho phép bạn lấy ánh xạ từ tên miền sang địa chỉ IP và các bản ghi DNS khác. Bạn sẽ bắt đầu bằng cách hiểu mục đích và cú pháp cơ bản của lệnh dig, sau đó khám phá cách thực hiện các tra cứu DNS cơ bản và đi sâu vào các tùy chọn dig nâng cao để có được thông tin DNS chi tiết hơn.

Lab này bao gồm các bước chính sau:

  1. Hiểu Mục đích và Cú pháp của Lệnh dig: Bạn sẽ tìm hiểu về mục đích của lệnh dig và cú pháp cơ bản của nó, bao gồm các tùy chọn có sẵn có thể sửa đổi hành vi của lệnh.

  2. Thực hiện Tra cứu DNS Cơ bản bằng dig: Bạn sẽ thực hành sử dụng lệnh dig để thực hiện các tra cứu DNS đơn giản, chẳng hạn như tìm địa chỉ IP được liên kết với một tên miền.

  3. Khám phá các Tùy chọn dig Nâng cao để có Thông tin DNS Chi tiết: Bạn sẽ khám phá cách tận dụng các tùy chọn dig nâng cao để có được thông tin DNS chi tiết hơn, chẳng hạn như theo dõi chuỗi chuyển tiếp hoặc thực hiện các truy vấn không đệ quy.

Hiểu Mục đích và Cú pháp của Lệnh dig

Trong bước này, bạn sẽ tìm hiểu về mục đích và cú pháp cơ bản của lệnh dig, một công cụ mạnh mẽ để thực hiện các truy vấn DNS (Domain Name System) và khắc phục sự cố mạng.

Lệnh dig là một công cụ quản trị mạng được sử dụng để truy vấn Hệ thống tên miền (DNS) để lấy ánh xạ từ tên miền sang địa chỉ IP và các bản ghi DNS khác. Nó là một công cụ linh hoạt có thể được sử dụng để chẩn đoán các sự cố liên quan đến DNS, cũng như để thực hiện các truy vấn DNS nâng cao.

Hãy bắt đầu bằng cách hiểu cú pháp cơ bản của lệnh dig:

dig [options] [domain]

Cấu trúc cơ bản của lệnh dig bao gồm các thành phần sau:

  • dig: Tên lệnh.
  • [options]: Các cờ hoặc tham số tùy chọn để sửa đổi hành vi của lệnh dig.
  • [domain]: Tên miền hoặc địa chỉ IP bạn muốn tra cứu.

Một số tùy chọn phổ biến cho lệnh dig bao gồm:

  • @server: Chỉ định máy chủ DNS để sử dụng cho truy vấn.
  • +trace: Thực hiện một truy vấn đệ quy, theo dõi chuỗi chuyển tiếp đến đích cuối cùng.
  • +norecurse: Thực hiện một truy vấn không đệ quy, chỉ truy vấn máy chủ được chỉ định.
  • +short: Hiển thị phiên bản rút gọn của đầu ra.

Hãy thử một lệnh dig cơ bản để tra cứu địa chỉ IP cho miền example.com:

dig example.com

Ví dụ đầu ra:

; <<>> DiG 9.16.1-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57911
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
example.com.             185     IN      A       93.184.216.34

;; Query time: 14 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Apr 14 10:02:47 UTC 2023
;; MSG SIZE  rcvd: 59

Đầu ra này hiển thị địa chỉ IP (93.184.216.34) được liên kết với miền example.com.

Trong bước tiếp theo, bạn sẽ học cách thực hiện các truy vấn DNS nâng cao hơn bằng lệnh dig.

Thực hiện Tra cứu DNS Cơ bản bằng dig

Trong bước này, bạn sẽ học cách thực hiện các tra cứu DNS cơ bản bằng lệnh dig.

Hãy bắt đầu bằng cách tra cứu địa chỉ IP cho miền google.com:

dig google.com

Ví dụ đầu ra:

; <<>> DiG 9.16.1-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14703
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.com.              300     IN      A       142.250.179.78

;; Query time: 14 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Apr 14 10:10:12 UTC 2023
;; MSG SIZE  rcvd: 55

Đầu ra cho thấy địa chỉ IP cho google.com142.250.179.78.

Bạn cũng có thể thực hiện tra cứu DNS ngược để tìm tên miền được liên kết với một địa chỉ IP. Hãy tra cứu tên miền cho địa chỉ IP 8.8.8.8:

dig -x 8.8.8.8

Ví dụ đầu ra:

; <<>> DiG 9.16.1-Ubuntu <<>> -x 8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4852
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;8.8.8.8.in-addr.arpa.           IN      PTR

;; ANSWER SECTION:
8.8.8.8.in-addr.arpa.    14400   IN      PTR     dns.google.

;; Query time: 14 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Apr 14 10:10:33 UTC 2023
;; MSG SIZE  rcvd: 73

Đầu ra cho thấy tên miền được liên kết với địa chỉ IP 8.8.8.8dns.google..

Trong bước tiếp theo, bạn sẽ khám phá các tùy chọn dig nâng cao hơn để truy xuất thông tin DNS chi tiết.

Khám phá các Tùy chọn dig Nâng cao để có Thông tin DNS Chi tiết

Trong bước này, bạn sẽ học cách sử dụng các tùy chọn dig nâng cao để truy xuất thông tin DNS chi tiết hơn.

Hãy bắt đầu bằng cách thực hiện tra cứu DNS với tùy chọn +trace, tùy chọn này sẽ hiển thị toàn bộ chuỗi các máy chủ DNS được sử dụng để phân giải tên miền:

dig +trace google.com

Ví dụ đầu ra:

; <<>> DiG 9.16.1-Ubuntu <<>> +trace google.com
;; global options: +cmd
.                       518400  IN      NS      a.root-servers.net.
.                       518400  IN      NS      b.root-servers.net.
...
google.com.             300     IN      A       142.250.179.78

Đầu ra hiển thị quy trình từng bước để phân giải miền google.com, bắt đầu từ các máy chủ DNS gốc và theo dõi các chuyển tiếp đến địa chỉ IP cuối cùng.

Bạn cũng có thể sử dụng tùy chọn +norecurse để thực hiện tra cứu DNS không đệ quy, chỉ truy vấn máy chủ DNS được chỉ định mà không theo dõi bất kỳ chuyển tiếp nào:

dig +norecurse @8.8.8.8 google.com

Ví dụ đầu ra:

; <<>> DiG 9.16.1-Ubuntu <<>> +norecurse @8.8.8.8 google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48840
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.com.              300     IN      A       142.250.179.78

;; Query time: 33 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Apr 14 10:19:14 UTC 2023
;; MSG SIZE  rcvd: 55

Lệnh này truy vấn trực tiếp máy chủ Google DNS (8.8.8.8) cho miền google.com, mà không theo dõi bất kỳ chuyển tiếp nào.

Bạn cũng có thể sử dụng tùy chọn +short để nhận được đầu ra ngắn gọn hơn:

dig +short google.com

Ví dụ đầu ra:

142.250.179.78

Điều này sẽ chỉ hiển thị địa chỉ IP cuối cùng, mà không có thông tin bổ sung.

Trong bước tiếp theo, bạn sẽ đưa tất cả kiến thức bạn đã học về lệnh dig vào thực tế.

Tóm tắt

Trong lab này, bạn đã học về mục đích và cú pháp cơ bản của lệnh dig, một công cụ mạnh mẽ để thực hiện các truy vấn DNS (Domain Name System) và khắc phục sự cố mạng. Bạn đã thực hiện các tra cứu DNS cơ bản bằng dig để lấy ánh xạ từ tên miền sang địa chỉ IP và khám phá các tùy chọn dig nâng cao để có được thông tin DNS chi tiết, chẳng hạn như sử dụng tùy chọn @server để chỉ định máy chủ DNS để sử dụng cho truy vấn, tùy chọn +trace để thực hiện một truy vấn đệ quy và tùy chọn +short để hiển thị phiên bản rút gọn của đầu ra.

400+ câu lệnh phổ biến trong Linux