Kiểm tra DNS: các lệnh nslookup
, dig
1. Giới thiệu về DNS
Hãy tưởng tượng khoảnh khắc này: bạn muốn truy cập vào trang web yêu thích của mình - ví dụ như google.com. Nhưng trình duyệt của bạn không hiểu từ "google", nó cần địa chỉ IP (ví dụ: 142.250.74.206). Việc chuyển đổi tên miền thành địa chỉ IP được thực hiện bằng DNS (Domain Name System). Nếu quá trình này bị lỗi, bạn sẽ thấy thông báo từ trình duyệt: "Không thể tìm thấy máy chủ". Bạn, với tư cách là một người sắp trở thành chuyên gia mạng Linux, cần phải biết cách chẩn đoán và giải quyết các vấn đề liên quan đến DNS.
DNS giống như danh bạ điện thoại của internet. Thay vì phải ghi nhớ các địa chỉ IP phức tạp, chúng ta có thể sử dụng các tên thân thiện, được chuyển đổi bởi hệ thống DNS. Dưới đây là một vài khái niệm chính:
Bản ghi DNS:
- Bản ghi A (Address Record): liên kết tên miền với địa chỉ IPv4.
- Bản ghi AAAA: liên kết tên miền với địa chỉ IPv6.
- Bản ghi CNAME (Canonical Name): chỉ định biệt danh của một miền.
- Bản ghi MX (Mail Exchange): chỉ định các máy chủ xử lý email.
Máy chủ DNS:
- Người dùng thông thường chủ yếu sử dụng máy chủ DNS của nhà cung cấp.
- Các lựa chọn thay thế: máy chủ DNS công khai của Google (8.8.8.8), Cloudflare (1.1.1.1).
Phân giải tên miền:
- Khi bạn nhập tên miền vào trình duyệt, nó sẽ gửi yêu cầu đến máy chủ DNS để lấy địa chỉ IP.
Với những kiến thức này, bạn sẵn sàng thực hành để hiểu rõ hơn về “phép thuật” DNS thông qua các lệnh nslookup
và dig
.
2. Lệnh nslookup
nslookup
— đây là một tiện ích giúp chúng ta kiểm tra hoạt động của DNS. Nó có sẵn trên hầu hết các bản phân phối Linux và các hệ điều hành khác.
Cú pháp chính:
nslookup [tùy chọn] [tên miền hoặc địa chỉ IP]
Ví dụ đơn giản:
Kiểm tra địa chỉ IP cho trang web google.com:
nslookup google.com
Kết quả:
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.com
Address: 142.250.74.206
Ghi chú về kết quả:
Server
: Máy chủ DNS đã xử lý yêu cầu.Non-authoritative answer
: nghĩa là thông tin được lấy từ bộ đệm của một máy chủ khác chứ không phải từ máy chủ DNS gốc.
Kiểm tra máy chủ DNS
Nếu bạn muốn sử dụng một máy chủ DNS cụ thể, bạn có thể chỉ định nó khi gọi lệnh:
nslookup google.com 8.8.8.8
Ở đây, chúng ta đã chỉ định rõ sử dụng máy chủ DNS của Google (8.8.8.8).
Thực hành: Tìm IP cho trang học tập
Hãy thử chạy lệnh:
nslookup linux.org
Hãy xem kết quả — đó là các địa chỉ IP được liên kết với máy chủ của trang web.
3. Lệnh dig
dig
(Domain Information Groper) — đây là một tiện ích tiên tiến hơn để làm việc với DNS. Nó cung cấp thông tin chi tiết về các truy vấn và phản hồi DNS.
Cú pháp chính:
dig [domen] [tuỳ chọn]
Ví dụ truy vấn:
dig google.com
Đầu ra (những điểm chính):
;; Question section:
;google.com. IN A
;; ANSWER SECTION:
google.com. 300 IN A 142.250.74.206
;; Query time: 35 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Oct 19 10:00:00 UTC 2023
;; MSG SIZE rcvd: 68
Các phần của đầu ra:
ANSWER SECTION
: Địa chỉ IP liên kết với tên miền.Query time
: Thời gian xử lý truy vấn.SERVER
: Máy chủ DNS đã xử lý truy vấn.
4. Các bản ghi DNS chính và cách kiểm tra
Bản ghi A (IPv4)
dig linux.org A
Kết quả sẽ hiển thị địa chỉ IPv4 cho domain.
Bản ghi AAAA (IPv6)
dig linux.org AAAA
Output sẽ chứa các địa chỉ IPv6. Rất hữu ích nếu bạn làm việc với các mạng hiện đại.
Bản ghi MX (máy chủ thư)
dig linux.org MX
Dùng để kiểm tra máy chủ nào xử lý thư tín cho domain.
5. Thực hành chuyên sâu: dig
vs nslookup
Bây giờ bạn có thể so sánh kết quả của hai lệnh:
Thực hiện lệnh:
nslookup linux.org
Sau đó:
dig linux.org
Lưu ý, dig
cung cấp nhiều chi tiết hơn. Ví dụ, bạn có thể xem thời gian thực hiện truy vấn, cũng như thông tin về server đã trả lời truy vấn.
6. Kiểm tra DNS server của Google
Bài tập:
Sử dụng
nslookup
, kiểm tra xem DNS server công cộng của Google có hoạt động hay không:nslookup github.com 8.8.8.8
Bây giờ làm tương tự với
dig
:dig @8.8.8.8 github.com
Kiểm tra xem trang web có địa chỉ IPv6 không:
dig github.com AAAA
7. Lỗi thường gặp và đặc điểm
Việc làm việc với DNS gần như luôn gặp các vấn đề sau:
- Cấu hình DNS server sai: Nếu DNS server của bạn không hoạt động hoặc được cấu hình sai, bạn có thể không nhận được phản hồi. Hãy kiểm tra tính khả dụng của server bằng cách chỉ định IP của nó thủ công khi sử dụng
nslookup
hoặcdig
. Bộ nhớ cache DNS: Đôi khi, các thay đổi trong DNS có thể mất thời gian vì bộ nhớ cache. Ví dụ, bạn có thể thấy thông tin cũ nếu bản ghi DNS mới được thay đổi gần đây.
DNS server không khả dụng: Nếu bạn thấy lỗi như
connection timed out; no servers could be reached
, điều này có thể có nghĩa là server không khả dụng hoặc bị chặn.Các lệnh thay thế:
nslookup
không phải lúc nào cũng có sẵn trong các cài đặt tối thiểu của Linux, trong khidig
thường là một phần của bộ công cụ tiêu chuẩn.
Ứng dụng thực tế của kiến thức: Tại sao cần biết điều này?
- Chẩn đoán sự cố DNS. Bạn sẽ nhanh chóng hiểu được tại sao trình duyệt không "thấy" được một trang web.
- Cấu hình server. Khi bạn cấu hình server trên đám mây, bạn cần kiểm tra xem các bản ghi DNS đã được cấu hình chính xác chưa.
- An ninh mạng. Việc biết làm việc với các bản ghi DNS giúp phân tích các trang web lừa đảo (phishing).
- Tại các cuộc phỏng vấn. Kiến thức về các lệnh
dig
vànslookup
là một trong những câu hỏi tiêu chuẩn dành cho các chuyên gia Linux/DevOps.
Bây giờ bạn đã được trang bị tất cả những kiến thức cần thiết để hiểu sâu và chẩn đoán DNS. Hãy mở terminal, thử các lệnh, và không để bất kỳ "sự cố DNS" nào làm khó bạn.
GO TO FULL VERSION