Skip to content
BigDargon edited this page Jul 13, 2023 · 12 revisions

Bài viết dưới đây giải thích DNS là gì, hoạt động của DNS ra sao và những khái niệm cơ bản khác. Bài viết có tham khảo, sử dụng nguồn từ các bài viết trên internet.

Với trình độ tiếng Anh ít ỏi và kiến thức hạn hẹp nên bài viết sẽ không thể tránh khỏi nhiều thiếu sót. Nếu có vấn đề gì sai sót trong quá trình viết bài, vui lòng cho mình biết để chỉnh sửa. Cám ơn!

DNS là gì?

DNS là viết tắt của cụm từ Domain Name System, mang ý nghĩa đầy đủ là hệ thống phân giải tên miền. DNS được phát minh vào năm 1984 cho Internet, là hệ thống cho phép thiết lập/tra cứu tương ứng giữa địa chỉ IP và tên miền.

DNS được ví như cuốn danh bạ của Internet. Chúng ta truy cập thông tin trên Internet thông qua các tên miền, còn các trình duyệt web tương tác thông qua địa chỉ Giao thức Internet (Internet Protocol - IP). DNS dịch tên miền thành địa chỉ IP để trình duyệt có thể tải tài nguyên Internet và ngược lại.

Nguồn: Cloudflare

Các loại bản ghi DNS

Bản ghi DNS (DNS records) là các hướng dẫn nằm trong máy chủ DNS có thẩm quyền (Authoritative DNS servers) và cung cấp thông tin về tên miền bao gồm địa chỉ IP nào được liên kết với tên miền đó và cách xử lý các yêu cầu cho tên miền đó. Các bản ghi này bao gồm một loạt các tệp văn bản được viết bằng cú pháp DNS. Cú pháp DNS chỉ là một chuỗi ký tự được sử dụng làm lệnh cho máy chủ DNS phải làm gì.

  • A Record: Bản ghi lưu giữ địa chỉ IPv4 của một tên miền.
  • AAAA Record: Bản ghi lưu giữ địa chỉ IPv6 của một tên miền.
  • CNAME Record: Chuyển tiếp một tên miền hoặc miền con (subdomain) sang tên miền khác, KHÔNG cung cấp địa chỉ IP.
  • MX Record: Hướng thư đến máy chủ email.
  • TXT Record: Cho phép quản trị viên lưu trữ các ghi chú văn bản trong bản ghi.
  • NS Record: Lưu trữ máy chủ định danh cho mục nhập DNS.
  • SOA Record: Lưu trữ thông tin quản trị về một tên miền.
  • SRV Record: Chỉ định một cổng cho các dịch vụ cụ thể.
  • PTR Record: Cung cấp tên tên miền trong tra cứu ngược.

Ngoài ra, còn rất nhiều bản ghi khác ít thông dụng mà không được liệt kê ở trên. Tham khảo thêm tại Wikipedia

Các bước trong tra cứu DNS

Bạn cần biết một số thuật ngữ về các loại máy chủ DNS. Xem tại DNS Server Types

Thông thường, quá trình tra cứu DNS cơ bản và đầy đủ được thực hiện qua 8 bước dưới đây:

  1. Người dùng nhập tên miền example.com vào trình duyệt web, truy vấn sẽ truyền vào Internet và được nhận bởi trình phân giải đệ quy DNS
  2. Trình phân giải sẽ truy vấn một máy chủ định danh gốc DNS (.)
  3. Máy chủ gốc sẽ phản hồi trình phân giải bằng địa chỉ của máy chủ DNS của tên miền cấp cao nhất (TLD) (chẳng hạn như .com hoặc .net), nơi lưu trữ thông tin cho các miền của nó. Khi tìm kiếm example.com, yêu cầu được hướng tới tên miền cấp cao nhất (TLD) chứa .com
  4. Trình phân giải thực hiện một yêu cầu tới máy chủ TLD chứa .com
  5. Máy chủ TLD sẽ phản hồi bằng địa chỉ IP của máy chủ định danh của tên miền example.com, nơi chỉ lưu trữ thông tin tổ chức quản lý
  6. Cuối cùng, trình phân giải đệ quy gửi một truy vấn đến máy chủ định danh của tên miền example.com
  7. Địa chỉ IP cho tên miền example.com sau đó được trả về trình phân giải từ máy chủ định danh
  8. Sau đó, trình phân giải DNS phản hồi trình duyệt web bằng địa chỉ IP của tên miền được yêu cầu ban đầu

Sau khi 8 bước tra cứu DNS đã trả lại địa chỉ IP cho example.com, trình duyệt có thể thực hiện yêu cầu cho trang web:

  1. Trình duyệt thực hiện một yêu cầu HTTP đến địa chỉ IP
  2. Máy chủ tại IP đó trả về trang web sẽ được hiển thị trong trình duyệt
  • Nếu trình duyệt web tiếp tục truy vấn tên miền www.example.com do quản lý của máy chủ định danh example.com quản lý thì quá trình bắt đầu ở bước 6.
  • Nhưng nếu trình duyệt web truy vấn tên miền github.com không được mảy chủ định danh example.com quản lý thì quá trình bắt đầu ở bước 4.
  • Và nếu trình duyệt web truy vấn tền miền example.net thì quá trình này bắt đầu ở bước 2.

Nguồn: Cloudflare

Trình phân giải DNS

Trình phân giải DNS là điểm dừng đầu tiên trong quá trình tra cứu DNS và nó chịu trách nhiệm xử lý ứng dụng khách đã đưa ra yêu cầu ban đầu. Trình phân giải bắt đầu chuỗi truy vấn cuối cùng dẫn đến một URL được dịch thành địa chỉ IP cần thiết. Có thể kể đến trình phân giải đệ quy như Bind, Unbound,...

Điều quan trọng là phải phân biệt giữa truy vấn DNS đệ quy (a recursive DNS query) và trình phân giải DNS đệ quy (a recursive DNS resolver). Truy vấn đề cập đến yêu cầu được thực hiện tới trình phân giải DNS yêu cầu giải quyết truy vấn được gọi là truy vấn DNS đệ quy. Máy phân giải đệ quy DNS là máy tính chấp nhận truy vấn đệ quy và xử lý phản hồi bằng cách đưa ra các yêu cầu cần thiết.

Nguồn: Cloudflare

Các loại truy vấn DNS

Trong một tra cứu DNS cơ bản có 3 loại truy vấn xảy ra. Bằng cách sử dụng kết hợp các truy vấn này, một quy trình được tối ưu hóa để phân giải DNS có thể giúp giảm thời gian phản hồi các truy vấn. Trong tình huống lý tưởng, dữ liệu bản ghi đã lưu trong bộ nhớ cache sẽ có sẵn, cho phép máy chủ định danh DNS trả về một truy vấn không đệ quy (a non-recursive query).

  1. Truy vấn đệ quy (Recursive query) - Trong truy vấn đệ quy, máy khách DNS yêu cầu máy chủ DNS sẽ trả lời máy khách bằng bản ghi tài nguyên được yêu cầu hoặc thông báo lỗi nếu trình phân giải không thể tìm thấy bản ghi.
  2. Truy vấn lặp lại (Iterative query) - Trong trường hợp này, máy khách DNS sẽ cho phép máy chủ DNS trả lại câu trả lời tốt nhất có thể. Nếu máy chủ DNS được truy vấn không khớp với tên truy vấn, nó sẽ trả về giới thiệu đến máy chủ DNS có thẩm quyền cho cấp thấp hơn của không gian tên miền. Máy khách DNS sau đó sẽ thực hiện một truy vấn đến địa chỉ giới thiệu. Quá trình này tiếp tục với các máy chủ DNS bổ sung trong chuỗi truy vấn cho đến khi xảy ra lỗi hoặc hết thời gian.
  3. Truy vấn không đệ quy (Non-recursive query) - thường điều này sẽ xảy ra khi máy khách trình phân giải DNS truy vấn máy chủ DNS về bản ghi mà nó có quyền truy cập vì nó có thẩm quyền đối với bản ghi hoặc bản ghi tồn tại bên trong bộ nhớ cache của nó. Thông thường, một máy chủ DNS sẽ lưu trữ các bản ghi DNS để ngăn chặn việc tốn thêm băng thông và tải từ các máy chủ ngược dòng.

Các loại máy chủ DNS

Tất cả các máy chủ DNS thuộc một trong bốn loại sau: Trình phân giải đệ quy (Recursive resolvers), máy chủ định danh gốc (Root nameservers), máy chủ miền cấp cao nhất (TLD nameserver hay The top level domain server) và máy chủ định danh có thẩm quyền (Authoritative nameservers). Trong tra cứu DNS điển hình (khi không có bộ nhớ đệm đang chạy), bốn máy chủ DNS này làm việc cùng nhau một cách hài hòa để hoàn thành nhiệm vụ cung cấp địa chỉ IP cho một tên miền cụ thể cho máy khách (máy khách thường là một trình phân giải sơ khai (a stub resolver) - một cách đơn giản trình giải quyết được xây dựng trong một hệ điều hành).

  • Trình phân giải đệ quy (Recursive resolvers)
  • Máy chủ định danh gốc (Root nameservers)
  • Máy chủ miền cấp cao nhất (TLD nameserver hay The top level domain server)
  • Máy chủ định danh có thẩm quyền (Authoritative nameservers)

Bộ nhớ đệm DNS

Mục đích của bộ nhớ đệm là để dữ liệu được lưu trữ tạm thời ở một vị trí giúp cải thiện hiệu suất và độ tin cậy cho các yêu cầu dữ liệu. Bộ nhớ đệm DNS liên quan đến việc lưu trữ dữ liệu gần hơn với máy khách yêu cầu để truy vấn DNS có thể được giải quyết sớm hơn và có thể tránh được các truy vấn bổ sung trong chuỗi tra cứu DNS, do đó cải thiện thời gian tải và giảm tiêu thụ băng thông hay CPU. Dữ liệu DNS có thể được lưu vào bộ nhớ đệm ở nhiều vị trí khác nhau, mỗi vị trí sẽ lưu trữ các bản ghi DNS trong một khoảng thời gian nhất định được xác định theo thời gian tồn tại (TTL hay time-to-live).

Tham khảo

Clone this wiki locally