Phân tích quy trình phân giải DNS trong trình duyệt

Giới thiệu

Hệ thống tên miền DNS (Domain Name System) đóng vai trò quan trọng trong việc ánh xạ từ tên miền sang địa chỉ IP, vì máy tính chỉ có thể giao tiếp thông qua địa chỉ IP.

Quy trình phân giải

Lấy ví dụ khi truy cập địa chỉ mail.baidu.com trên trình duyệt Chrome:

  1. Kiểm tra bộ nhớ đệm của trình duyệt xem đã tồn tại bản ghi IP tương ứng với tên miền chưa. Nếu có thì dừng lại, ngược lại tiếp tục bước tiếp theo.
  2. Kiểm tra tập tin hosts của hệ điều hành. Trên Windows thường nằm ở đường dẫn C:\\Windows\\System32\\drivers\\etc. Có kết quả thì dừng, không thì chuyển sang bước sau.
  3. Kiểm tra cache DNS của hệ điều hành. Với Windows, sử dụng các lệnh sau:
ipconfig /displaydns                    # Hiển thị cache DNS
ipconfig /displaydns > dns_cache.txt   # Xuất cache ra file
ipconfig /flushdns                     # Xóa cache DNS

Ví dụ về định dạng bản ghi tìm được cho tên miền www.cnblogs.com:

Tên bản ghi...........: www.cnblogs.com
Loại..................: 1
Thời gian sống.........: 229
Độ dài dữ liệu..........: 4
Phần trả lời............: 
Bản ghi A (Host).......: 101.37.113.127
  1. Gửi yêu cầu tới máy chủ DNS cục bộ. Nếu tìm thấy thì dừng, nếu không thì tiếp tục.
  2. Máy chủ DNS cục bộ gửi yêu cầu lên máy chủ root DNS (toàn thế giới chỉ có 13 máy). Kết quả nhận được sẽ là địa chỉ của máy chủ cấp cao hơn (TLD server).
  3. Máy chủ DNS cục bộ tiếp tục truy vấn máy chủ TLD (.com), nhận được địa chỉ máy chủ cấp hai.
  4. Máy chủ DNS cục bộ tiếp tục truy vấn máy chủ baidu.com để lấy địa chỉ máy chủ cấp ba.
  5. Cuối cùng truy vấn đến máy chủ mail.baidu.com. Đây là bước cuối cùng, nếu thành công sẽ lưu kết quả vào cache và phản hồi lại trình duyệt. Nếu thất bại, trình duyệt sẽ hiển thị lỗi.

Bốn bước đầu tiên (1–4) thuộc kiểu truy vấn đệ quy, còn bốn bước sau (5–8) thuộc kiểu truy vấn lặp.

Xem và xóa cache DNS trong trình duyệt

Xóa cache DNS

Sử dụng trình duyệt Chrome, truy cập chrome://chrome-urls/ để xem danh sách các trang cấu hình.

Trang chrome://net-internals/#dns cho phép thực hiện thao tác xóa cache DNS.

Xem cache DNS

Truy cập chrome://net-internals/#events để xem sự kiện mạng.

Hoặc mở chrome://net-export/:

  • Nhấn nút Start Logging to Disk để lưu trạng thái hiện tại vào tệp.
  • Sau đó nhấn Stop Logging.
  • Dùng công cụ netlog_viewer (cần truy cập quốc tế) nhập tệp đã lưu để xem thông tin chi tiết về DNS.

Phân giải DNS trong Java

import java.net.InetAddress;
import java.net.UnknownHostException;

public class NetworkClient {

    public static void main(String[] args) {
        try {
            InetAddress[] addresses = InetAddress.getAllByName("www.baidu.com");
            for (InetAddress addr : addresses) {
                System.out.println(addr.getHostAddress());
            }
            // Output mẫu:
            // 36.152.44.96
            // 36.152.44.95
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

Thẻ: dns Networking Java Chrome browser

Đăng vào ngày 27 tháng 9 lúc 12:23