DNS là gì?
Mỗi khi bạn gõ một địa chỉ vào trình duyệt, có điều gì đó diễn ra phía sau mà hầu hết mọi người không bao giờ để ý. Máy tính của bạn không biết "google.com" ở đâu, nó chỉ hiểu địa chỉ IP, những dãy số như 142.250.74.46. DNS là hệ thống thực hiện việc dịch đó. Không có nó, bạn sẽ phải ghi nhớ hàng chục địa chỉ IP chỉ để lướt web.
Một danh bạ toàn cầu phân tán
DNS là viết tắt của Domain Name System, hay Hệ thống Tên miền. Đây là hệ thống phân cấp ánh xạ tên miền mà con người có thể đọc được sang địa chỉ IP mà máy tính hiểu được. Khi bạn gõ "wikipedia.org", một truy vấn DNS được gửi đi ngay lập tức để tìm địa chỉ IP tương ứng, tất cả diễn ra trong vài chục mili giây, trước khi trình duyệt bắt đầu tải trang.
Điều làm DNS đáng chú ý là quy mô của nó. Hệ thống xử lý hàng tỷ truy vấn mỗi ngày trên hàng nghìn máy chủ phân tán khắp thế giới, không có điểm lỗi đơn lẻ. Đây là một trong những cơ sở hạ tầng quan trọng nhất và ít được nhìn thấy nhất của internet.
Quá trình phân giải DNS hoạt động như thế nào
Khi bạn gõ một URL, đây là những gì thực sự xảy ra:
Thiết bị trước tiên kiểm tra bộ nhớ đệm cục bộ, nếu bạn đã truy cập trang đó gần đây, câu trả lời có thể đã được lưu. Nếu không, truy vấn đi đến máy chủ phân giải DNS của bạn, thường do nhà mạng cung cấp (VNPT, Viettel, FPT Telecom) hoặc dịch vụ bên thứ ba như Google (8.8.8.8) hay Cloudflare (1.1.1.1).
Nếu máy chủ phân giải không có câu trả lời trong bộ nhớ đệm, nó truy vấn máy chủ gốc, có 13 cụm máy chủ gốc trên thế giới, được vận hành bởi các tổ chức như ICANN, Verisign và VNNIC. Máy chủ gốc chỉ ra máy chủ TLD (Tên miền cấp cao nhất) nào cần truy vấn cho ".com", ".vn", ".org" v.v. Máy chủ TLD đó sau đó trỏ đến máy chủ tên miền có thẩm quyền của tên miền, nơi lưu trữ bản ghi DNS thực sự của trang web.
Toàn bộ chuỗi này thường mất từ 20 đến 120 mili giây. Các câu trả lời được lưu vào bộ nhớ đệm ở mỗi bước để tăng tốc các truy vấn trong tương lai.
Các loại bản ghi DNS
Một tên miền không chỉ phân giải thành một địa chỉ IP. Nó có thể chứa nhiều loại bản ghi tùy theo mục đích sử dụng:
- A: ánh xạ tên miền sang địa chỉ IPv4 (ví dụ: example.com sang 93.184.216.34)
- AAAA: tương tự cho IPv6
- CNAME: bí danh trỏ đến tên miền khác (www.example.com sang example.com)
- MX: chỉ định máy chủ thư của tên miền, thiếu bản ghi này thì email không đến được
- TXT: văn bản tự do, dùng để xác minh tên miền (Google Search Console, SPF, DKIM)
- NS: chỉ ra máy chủ DNS nào có thẩm quyền cho tên miền
- TTL: Time To Live, thời gian câu trả lời có thể được lưu trong bộ nhớ đệm, tính bằng giây
Khi DNS gây ra sự cố
Trang web không tải không nhất thiết là đang ngoại tuyến, thường là vấn đề DNS. Các nguyên nhân phổ biến nhất:
- TTL quá cao sau khi đổi nhà cung cấp hosting: địa chỉ IP cũ vẫn ở trong bộ nhớ đệm nhiều giờ, đôi khi 24 đến 48 giờ
- Máy chủ phân giải của nhà mạng chậm hoặc gặp sự cố: chuyển sang 1.1.1.1 (Cloudflare) hoặc 8.8.8.8 (Google) thường giải quyết ngay lập tức
- DNS spoofing (đầu độc bộ nhớ đệm DNS): kẻ tấn công thao túng phản hồi DNS để chuyển hướng bạn đến trang web giả, đó là lý do DNSSEC được tạo ra
Để chẩn đoán sự cố DNS trên Windows, lệnh nslookup example.com cho thấy phản hồi từ máy chủ phân giải hiện tại của bạn. Trên Linux và macOS, dig example.com chi tiết hơn và còn hiển thị thời gian phản hồi và máy chủ được truy vấn.
DNS và quyền riêng tư
Theo mặc định, các truy vấn DNS truyền qua mạng dưới dạng văn bản thuần, nhà mạng của bạn và bất kỳ ai giữa thiết bị và máy chủ phân giải đều có thể thấy bạn truy cập trang nào. Đây là rò rỉ quyền riêng tư đáng kể mà hầu hết mọi người không biết.
Có hai giao thức để mã hóa các truy vấn này: DNS over HTTPS (DoH) và DNS over TLS (DoT). Cả hai đều gói các truy vấn DNS trong các kết nối được mã hóa. Firefox bật DoH theo mặc định từ năm 2019, và Windows 11 hỗ trợ DoT gốc. Cloudflare (1.1.1.1), NextDNS và Quad9 đều cung cấp máy chủ phân giải hỗ trợ cả hai giao thức.
Đổi máy chủ phân giải DNS sang 1.1.1.1 (Cloudflare) hoặc 9.9.9.9 (Quad9) là một trong những thay đổi đơn giản nhất bạn có thể thực hiện để cải thiện cả tốc độ lẫn quyền riêng tư khi duyệt web, chỉ mất hai phút và hoàn toàn miễn phí.