Home > Quản trị Linux > Thủ thuật Linux > Lệnh Dig trong Linux: Truy vấn thông tin DNS của Domain

Lệnh Dig trong Linux: Truy vấn thông tin DNS của Domain

Trong bài này mình sẽ giới thiệu lệnh Dig trong Linux, đây là lệnh dùng để kiểm tra thông tin tên miền cơ bản trong Linux như DNS và các Records.

DIG là viết tắt của Domain Information Groper, có nghĩa là công cụ tìm kiếm thông tin tên miền. Lệnh Dig có tác dụng để kiểm tra và xử lí sự cố DNS Server, tìm kiếm DNS và hiển thị nội dung được yêu cầu ra màn hình terminal. Lệnh Dig được sử dụng để thay thế cho những công cụ cũ trước đây như nslookup và host. Công cụ Dig là có sẵn trên các bản phân phối của Linux.

Bây giờ chúng ta sẽ xem cách sử dụng và hoạt động của lệnh Dig như thế nào nhé.

1. Truy vấn DNS cơ bản

Bây giờ chúng ta sẽ thử đi truy vấn thông tin tên miền của google.com. Các bạn thực hiện theo như ví dụ của mình nha.

[root@admin ~]# dig google.com

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21853
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.com.		271	IN	A	219.78.222.202

;; Query time: 36 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Mon Apr 15 15:01:53 +07 2020
;; MSG SIZE  rcvd: 55

Mình sẽ giải thích rõ hơn cho các bạn về những gì xuất hiện ở bên trên.

  • Các dòng bắt đầu bằng dấu ; là comment, nó không phải là phần thông tin
  • Dòng đầu tiên nói cho chúng ta biết version của dig là 9.9.4 .
  • Tiếp theo, dig sẽ hiển thị một cái response mà nó nhận được từ DNS Server
  • Tiếp theo là phần question đây là phần hiển thị nội dung truy vấn của chúng ta.
  • Tiếp theo nữa là phần answer đây là phần hiển thị cho chúng ta tên miền google.com trỏ đến địa chỉ IP 219.78.222.202 .
  • Phần cuối cùng là bao gồm những thông tin số liệu về thời gian kết nối bao lâu, thời gian thực hiện truy DNS, kích thước gói tin trả lời truy vấn DNS .

​2. Truy vấn DNS cơ bản với + short

Theo mặc định thì nội dung trả về của lệnh dig là khá dài. Vậy nên có một cách cắt ngắn đi nội dung đó là sử dụng option + short .

Mình sẽ làm ví dụ ở bên dưới các bạn theo dõi nha.

# dig yahoo.com +short

98.139.183.24
72.30.38.140
98.138.253.109

3. Truy vấn MX Record cho tên miền

MX Record (là viết tắt của Mail Exchanged Record) là kiểu truy vấn mà các bạn chỉ muốn truy vấn các tên miền dành riêng cho mail. Để làm được điều đó thì chúng ta thực hiện lệnh như sau.

# dig yahoo.com MX

; <> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <> yahoo.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31450
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 24

;; QUESTION SECTION:
;yahoo.com.                     IN      MX

;; ANSWER SECTION:
yahoo.com.              33      IN      MX      1 mta6.am0.yahoodns.net.
yahoo.com.              33      IN      MX      1 mta7.am0.yahoodns.net.
yahoo.com.              33      IN      MX      1 mta5.am0.yahoodns.net.

4. Truy vấn SOA Record cho tên miền

SOA Record (là viết tắt của Start of Authority) có nghĩa là thông tin xác nhận từ máy chủ tiếp nhận tên miền. Để thực hiện truy vấn SOA Record cho tên miền thì chúng thực hiện như sau.

# dig yahoo.com SOA

; <> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <> yahoo.com SOA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2197
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 7, ADDITIONAL: 7

;; QUESTION SECTION:
;yahoo.com.                     IN      SOA

;; ANSWER SECTION:
yahoo.com.              1800    IN      SOA     ns1.yahoo.com. hostmaster.yahoo-inc.com. 2012081409 3600 300 1814400 600

5. Truy vấn TTL Record cho tên miền

TTL Record (là viết tắt của time to live) là thời gian tồn tại của một bản ghi được ghi nhớ bởi một máy chủ DNS trung gian. Để truy vấn các loại bản ghi TTL cho tên miền, chúng ta thực hiện như sau.

# dig yahoo.com TTL

; <> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <> yahoo.com TTL
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56156
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;yahoo.com.                     IN      A

;; ANSWER SECTION:
yahoo.com.              3589    IN      A       98.138.253.109
yahoo.com.              3589    IN      A       98.139.183.24
yahoo.com.              3589    IN      A       72.30.38.140

6. Chỉ truy phần answer

Nếu chúng ta chỉ muốn truy vấn phần answer trong câu lệnh truy vấn thì thực hiện lệnh như sau.

# dig yahoo.com +nocomments +noquestion +noauthority +noadditional +nostats

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> yahoo.com +nocomments +noquestion +noauthority +noadditional +nostats
;; global options: +cmd
yahoo.com.              3442    IN      A       72.30.38.140
yahoo.com.              3442    IN      A       98.138.253.109
yahoo.com.              3442    IN      A       98.139.183.24

7. Truy vấn tất cả các loại DNS Record

Xem tất cả thông tin DNS Record của domain bằng lệnh Dig trong Linux.

# dig yahoo.com ANY +noall +answer

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> yahoo.com ANY +noall +answer
;; global options: +cmd
yahoo.com.              3509    IN      A       72.30.38.140
yahoo.com.              3509    IN      A       98.138.253.109
yahoo.com.              3509    IN      A       98.139.183.24
yahoo.com.              1709    IN      MX      1 mta5.am0.yahoodns.net.
yahoo.com.              1709    IN      MX      1 mta6.am0.yahoodns.net.
yahoo.com.              1709    IN      MX      1 mta7.am0.yahoodns.net.
yahoo.com.              43109   IN      NS      ns2.yahoo.com.
yahoo.com.              43109   IN      NS      ns8.yahoo.com.
yahoo.com.              43109   IN      NS      ns3.yahoo.com.
yahoo.com.              43109   IN      NS      ns1.yahoo.com.
yahoo.com.              43109   IN      NS      ns4.yahoo.com.
yahoo.com.              43109   IN      NS      ns5.yahoo.com.
yahoo.com.              43109   IN      NS      ns6.yahoo.com.

8. Truy vấn DNS ngược

Để truy vấn tên máy chủ được liên kết với một địa chỉ IP xác định, thì chúng ta sử dụng option -x.

Như hình bên dưới chúng ta muốn tra cứu từ địa chỉ IP 72.30.38.140 thành tên miền chúng ta thực hiện lệnh như sau.

# dig -x 72.30.38.140 +short

ir1.fp.vip.sp2.yahoo.com.

9. Truy vấn nhiều DNS Record

Ví như bên dưới chúng ta muốn truy vấn đến MX Record của yahoo.comredhat.com thì sử dụng lệnh như sau.

# dig yahoo.com mx +noall +answer redhat.com ns +noall +answer

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> yahoo.com mx +noall +answer redhat.com ns +noall +answer
;; global options: +cmd
yahoo.com.              1740    IN      MX      1 mta6.am0.yahoodns.net.
yahoo.com.              1740    IN      MX      1 mta7.am0.yahoodns.net.
yahoo.com.              1740    IN      MX      1 mta5.am0.yahoodns.net.
redhat.com.             132     IN      NS      ns1.redhat.com.
redhat.com.             132     IN      NS      ns4.redhat.com.
redhat.com.             132     IN      NS      ns3.redhat.com.
redhat.com.             132     IN      NS      ns2.redhat.com.

10. Tạo file .digrc

Tạo một file .digrc trong thư mục chính ~/.digrc để lưu trữ những option mà chúng ta muốn lệnh dig thực hiện.

Ví dụ như trong thư .digrc chúng lưu +short vào file ~/.digrc thì khi sử dụng lệnh dig thì chúng ta không cần phải gõ thêm lệnh +short vào màn hình terminal nữa.

[root@test1 ~]# cat .digrc
+short
[root@test1 ~]# dig amazon.com
176.32.98.166
176.32.103.205
205.251.242.103

Vậy là xong, bài ngày hôm nay chúng ta đã đi qua 10 ví dụ về sử dụng lệnh dig để thực hiện truy vấn DNS trên hệ điều hành Linux. Hi vọng là bài viết này giúp ích được cho các bạn. Chúc các bạn thành công.

Xem thêm

BÀI VIẾT

notice png LIST home png HOME hot gif BÁO
LỖI
top png TOP