DNS (Domain Name System)

DNS là gì?

  • DNS (Domain Name System) là hệ thống phân giải tên miền, chuyển đổi các hostname dễ nhớ cho con người thành địa chỉ IP của máy.
    • Ví dụ: www.google.com → 172.217.18.36
  • DNS là xương sống của Internet
  • DNS sử dụng cấu trúc đặt tên phân cấp
.com
example.com
www.example.com
api.example.com

Thuật ngữ trong DNS

  • Domain Registrar: Ví dụ như Amazon Route 53, GoDaddy, ...
  • DNS Records: Các bản ghi DNS như:
    • A: ánh xạ domain → IPv4
    • AAAA: ánh xạ domain → IPv6
    • CNAME: ánh xạ domain → domain khác
    • NS: định nghĩa Name Server
  • Zone File: File chứa tất cả bản ghi DNS của một domain cụ thể
  • Name Server: Máy chủ phân giải DNS (có thể là authoritative – có thẩm quyền, hoặc non-authoritative – không có thẩm quyền)
  • Top Level Domain (TLD): .com, .us, .in, .gov, .org, ...
  • Second Level Domain (SLD): amazon.com, google.com, example.com, ...

DNS hoạt động như thế nào ?

  • Web Browser
    • Người dùng muốn truy cập vào trang example.com, họ nhập URL này vào trình duyệt. Trình duyệt cần biết IP của server đang chứa website này (ví dụ: 9.10.11.12), vì HTTP hoạt động trên IP chứ không phải domain.
    • Đầu tiên, trình duyệt kiểm tra local cache của chính nó (browser DNS cache). Nếu không có, nó gửi truy vấn DNS đến Local DNS Server được cấu hình (thường do ISP cung cấp hoặc được thiết lập trong hệ thống nội bộ).
  • Local DNS Server
    • Local DNS Server là tầng trung gian, thường được quản lý bởi:
      • Doanh nghiệp (với DNS nội bộ)
      • Nhà mạng ISP (với IP tự động qua DHCP)
    • Nhiệm vụ:
      • Tra cứu cache nội bộ (TTL): Nếu có bản ghi trước đó cho example.com, trả về IP luôn.
      • Nếu không có cache, nó bắt đầu quy trình recursive DNS resolution.
  • Root DNS Server
    • Local DNS Server gửi truy vấn "example.com?" đến Root DNS Server (được ICANN quản lý).
    • Root server không biết IP của example.com, nhưng biết rằng tên miền này thuộc .com, nên nó trả lời:
      • "Tôi không biết IP của example.com, nhưng bạn nên hỏi TLD server quản lý .com, ví dụ: NS 1.2.3.4"
  • TLD DNS Server (.com)
    • Local DNS tiếp tục hỏi NS 1.2.3.4 (là máy chủ quản lý domain .com) câu hỏi:
      • "example.com là gì?"
    • TLD server kiểm tra và trả lời:
      • "Tôi cũng không chứa IP, nhưng example.com đang được quản lý bởi một name server khác, ví dụ: NS 5.6.7.8"
      • TLD server này do IANA (một nhánh của ICANN) quản lý.
  • SLD DNS Server (example.com)
    • Local DNS tiếp tục gửi truy vấn đến Name Server chính thức của example.com, ví dụ: 5.6.7.8 (được Domain Registrar thiết lập – như Route 53, GoDaddy, Cloudflare,...)
    • SLD DNS server này chứa các bản ghi DNS của example.com, bao gồm:
      • A Record → example.com trỏ tới IP 9.10.11.12
      • CNAME, MX, NS, TXT... tùy theo cấu hình
    • → Cuối cùng, nó trả lại:
      • "example.com có IP là 9.10.11.12"
  • Quay lại trình duyệt
    • Local DNS lưu kết quả này vào cache (TTL – time to live).
    • Sau đó trả IP về trình duyệt người dùng.
    • Trình duyệt dùng IP này để gửi HTTP/HTTPS request đến Web Server và lấy nội dung.
Bạn thấy bài này thế nào?