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.
Bài viết này được đăng tại [free tuts .net]
[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.com và redhat.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.