Bỏ qua điều hướng

DNS là gì và hoạt động như thế nào?

DNS là hệ thống biên dịch tên miền thành địa chỉ IP qua Port 53, giúp máy tính kết nối và định tuyến tài nguyên chính xác trên hạ tầng Internet toàn cầu.

Tuan Tran Van
14 phút đọc
Mục lục (10 phần)
  1. DNS là gì?
  2. Tên miền được tổ chức phân cấp như thế nào?
  3. Bốn loại máy chủ tham gia vào một lượt phân giải
  4. Một truy vấn DNS đi qua tám bước nào?
  5. Bản ghi DNS và zone file: A, AAAA, CNAME, MX, TXT
  6. Cache, TTL và chuyện chờ DNS propagate
  7. DNS có những rủi ro bảo mật nào?
  8. Bạn chạm vào DNS ở đâu trong thực tế?
  9. TTL và zone file: hai thứ cần để mắt
  10. Tài liệu tham khảo

Hệ thống phân giải tên miền (DNS — Domain Name System) là thành phần hạ tầng thiết yếu trong bộ giao thức Internet, đảm nhận nhiệm vụ biên dịch các tên miền vốn dễ đọc với con người thành địa chỉ IP để máy tính định vị và kết nối được với nhau.

Không có DNS, trình duyệt không thể biết tài nguyên nó cần nạp đang nằm ở đâu trên mạng lưới toàn cầu.

Mọi thiết bị kết nối mạng đều được định danh bằng một địa chỉ IP duy nhất. Máy tính xử lý những dãy số như 192.168.1.1 (IPv4) hoặc chuỗi thập lục phân dài của IPv6 như 2400:cb00:2048:1::c629:d7a2 một cách dễ dàng. Còn con người thì không: ghi nhớ hàng nghìn địa chỉ như vậy vượt xa giới hạn của trí nhớ.

DNS tồn tại để giải quyết đúng bài toán đó — nó là lớp trung gian giữ cho mọi luồng truy cập tìm được đúng đích.

Minh hoạ DNS: một tên miền dễ đọc được chuyển thành địa chỉ IP bằng số để máy tính tìm được nhau

DNS là gì?

DNS (Domain Name System) là một hệ thống cơ sở dữ liệu phân cấp và phân tán, hoạt động chủ yếu trên Port 53 với giao thức UDP để đảm bảo tốc độ phản hồi nhanh nhất. Trong kỹ thuật hệ thống, DNS được coi là giao thức tầng ứng dụng chịu trách nhiệm ánh xạ tên miền vào các bản ghi tài nguyên (Resource Records). Hãy hình dung DNS như danh sách liên lạc trên smartphone: thay vì nhập thủ công từng con số, bạn chỉ cần tìm tên, hệ thống tự lo phần kết nối kỹ thuật bên dưới.

Về mặt vận hành, DNS không phải một cuốn danh bạ tĩnh. Nó là mạng lưới máy chủ chạy liên tục để phục vụ mọi thứ từ lướt web, gửi email (qua bản ghi MX), gọi video cho đến các phiên chơi game trực tuyến. Mọi hoạt động truyền gói tin trên Internet hiện nay đều bắt đầu bằng một truy vấn DNS. Nếu hệ thống này gặp sự cố hoặc bị cấu hình sai, lưu lượng mạng không xác định được đích đến, và hậu quả là mất kết nối cục bộ hoặc toàn phần.

Vì DNS dùng mô hình client-server, quy trình diễn ra hoàn toàn tự động và trong suốt với người dùng cuối. Khi bạn nhập một địa chỉ, một loạt truy vấn đệ quy (recursive) hoặc lặp (iterative) được kích hoạt giữa các máy chủ DNS trên toàn thế giới. Tốc độ của quá trình này thường chỉ tính bằng mili giây, nhờ các cơ chế tối ưu như bộ nhớ đệm (caching) và phân tán tải trọng trên những trung tâm dữ liệu toàn cầu.

Tên miền được tổ chức phân cấp như thế nào?

Không gian tên miền (domain namespace) được thiết kế theo cấu trúc cây ngược, và quy trình phân giải luôn chạy từ phải sang trái. Đỉnh cao nhất của hệ thống là Root Zone (.) — thường ẩn với người dùng nhưng là điểm bắt đầu cho mọi lượt tìm kiếm. Dưới Root là các Top-Level Domain (TLD), bao gồm những tên miền cấp cao nhất dùng chung như .com, .org, .net hoặc các ccTLD đại diện cho quốc gia như .vn, .uk, .jp.

Cấu trúc phân cấp tên miền dạng cây ngược: Root, TLD, Second-Level Domain và Subdomain

Phân cấp tiếp theo là Second-Level Domain (SLD) — phần tên miền định danh mà cá nhân hoặc tổ chức đăng ký, chẳng hạn google trong google.com. Cuối cùng là các Subdomain (tên miền phụ) như www, blog, mail, hoặc những hostname cụ thể dùng để phân loại dịch vụ nội bộ. Sự phân cấp này cho phép quản lý tài nguyên một cách phi tập trung: mỗi cấp có thể ủy quyền quản lý cho cấp thấp hơn thông qua các bản ghi NS (Nameserver).

Toàn bộ hệ thống phân cấp toàn cầu này do ICANN (Internet Corporation for Assigned Names and Numbers) điều phối kỹ thuật thông qua cơ quan IANA. ICANN đảm bảo tính duy nhất của tên miền và giữ cho Root Zone ổn định, đồng thời phân bổ các dải địa chỉ IP cho những nhà đăng ký và tổ chức quản lý TLD trên toàn thế giới.

Bốn loại máy chủ tham gia vào một lượt phân giải

Một lượt phân giải DNS tiêu chuẩn cần sự phối hợp của bốn loại máy chủ chuyên biệt. Đầu tiên là DNS Recursor (còn gọi là Recursive Resolver) — điểm dừng chân đầu tiên của truy vấn từ client. Nó là bên môi giới, có nhiệm vụ đi hỏi các máy chủ khác trong hệ thống để tìm ra kết quả cuối cùng. Nếu Recursor không có sẵn dữ liệu trong cache, nó bắt đầu chuỗi truy vấn lặp đi qua các cấp bậc cao hơn.

Bốn loại máy chủ trong một lượt phân giải DNS: Recursive Resolver, Root, TLD và Authoritative Nameserver

Loại thứ hai là Root Nameserver, điểm truy cập đầu tiên trong hệ thống phân cấp. Có 13 danh tính máy chủ gốc (từ A đến M) do các tổ chức khác nhau quản lý, nhưng nhờ công nghệ Anycast, chúng được triển khai tại hàng trăm địa điểm vật lý để giảm độ trễ. Root Server không chứa thông tin về địa chỉ IP cụ thể của website; nó chỉ trả về thông tin về máy chủ TLD chịu trách nhiệm cho phần mở rộng tương ứng (.com, .net, .vn…).

Tiếp đến là TLD Nameserver, nơi quản lý dữ liệu cho một phần mở rộng tên miền cụ thể. Khi nhận yêu cầu từ Recursor, TLD Server trả về địa chỉ của Authoritative Nameserver — máy chủ có thẩm quyền cuối cùng cho tên miền đó. Authoritative Nameserver chính là nơi lưu giữ các bản ghi gốc (source of truth). Nếu máy chủ này nắm giữ bản ghi A hoặc AAAA cho tên miền được hỏi, nó trả về địa chỉ IP đích để hoàn tất quy trình.

Sự khác biệt cốt lõi nằm ở chức năng: Recursive Resolver là máy chủ đi hỏi thay cho người dùng, còn Authoritative Server là máy chủ trả lời dựa trên tệp vùng (zone file) mà nó quản lý. Phân biệt được hai loại này giúp kỹ sư hệ thống khoanh đúng vị trí lỗi khi xảy ra sự cố không phân giải được tên miền.

Một truy vấn DNS đi qua tám bước nào?

Khi một thiết bị yêu cầu truy cập một tên miền mới mà chưa có dữ liệu cache, quy trình 8 bước bắt đầu: (1) Trình duyệt gửi yêu cầu đến Recursive Resolver của ISP hoặc Public DNS. (2) Resolver gửi truy vấn đến một trong các địa chỉ Anycast của Root Nameserver. (3) Root Server phản hồi địa chỉ của TLD Server tương ứng, ví dụ .com. (4) Resolver tiếp tục gửi yêu cầu đến .com TLD Server.

Hành trình tám bước của một truy vấn DNS, từ trình duyệt qua Resolver, Root, TLD, Authoritative rồi quay ngược lại

Giai đoạn tiếp theo diễn ra như sau: (5) TLD Server trả về địa chỉ IP của Authoritative Nameserver quản lý tên miền đó. (6) Resolver gửi truy vấn cuối cùng đến Authoritative Nameserver. (7) Authoritative Server tìm trong zone file và trả lại bản ghi chứa địa chỉ IP đích, ví dụ 192.0.2.1. (8) Resolver phản hồi địa chỉ IP này về cho trình duyệt của người dùng.

Sau khi hoàn tất 8 bước DNS, quy trình chuyển sang bước 9 và 10 để hiển thị nội dung: trình duyệt gửi một HTTP/HTTPS request đến địa chỉ IP vừa nhận, và máy chủ web trả về dữ liệu trang. Toàn bộ chuỗi thao tác này, từ lúc gõ URL đến khi thấy nội dung, thường nhanh đến mức người dùng không kịp nhận ra có bao nhiêu bước trung gian.

Bản ghi DNS và zone file: A, AAAA, CNAME, MX, TXT

Dữ liệu của một tên miền được lưu trong một tệp văn bản thuần gọi là zone file. Mỗi dòng trong tệp này đại diện cho một Resource Record (RR), cấu thành bản đồ kỹ thuật cho tên miền đó. Bản ghi A (Address) ánh xạ tên miền sang IPv4, còn AAAA dùng cho IPv6. Bản ghi CNAME (Canonical Name) dùng để tạo alias, trỏ một tên miền sang một tên miền khác thay vì trỏ thẳng vào IP — nhờ vậy quản trị viên đổi được hạ tầng phía sau mà không phải cập nhật quá nhiều bản ghi.

Các loại bản ghi DNS và đích mà mỗi loại trỏ tới: A, AAAA, CNAME, MX và TXT

Bản ghi MX (Mail Exchanger) là thành phần sống còn cho hệ thống email, chỉ định máy chủ nào chịu trách nhiệm nhận thư cho tên miền. Bản ghi TXT thì đa năng hơn, thường dùng để chứa các cấu hình bảo mật như SPF (Sender Policy Framework) hoặc DKIM nhằm xác thực nguồn gốc email, ngăn chặn spoofing. Kiểm soát chặt các bản ghi này trong zone file là việc bắt buộc nếu bạn muốn đảm bảo cả hiệu suất lẫn an ninh mạng.

Một zone file tối giản trông như thế này:

text
$ORIGIN example.com.
$TTL 3600
@    IN  SOA   ns1.example.com. admin.example.com. (2023101001 7200 3600 1209600 3600)
@    IN  A     192.0.2.1
@    IN  AAAA  2400:cb00:2048:1::c629:d7a2
@    IN  MX 10 mailserver.example.com.
www  IN  CNAME example.com.
@    IN  TXT   "v=spf1 include:_spf.google.com ~all"

Cache, TTL và chuyện chờ DNS propagate

Để giảm tải cho hệ thống DNS toàn cầu và tăng tốc độ truy cập, cơ chế caching được triển khai ở mọi cấp độ: trình duyệt, hệ điều hành (thông qua stub resolver) và máy chủ của ISP. Khi một bản ghi được phân giải lần đầu, nó được lưu lại trong cache. Thời gian lưu trữ này do chỉ số TTL (Time-to-Live) kiểm soát, tính bằng giây. TTL thấp giúp việc đổi IP có hiệu lực nhanh hơn nhưng gây tải lớn cho máy chủ; TTL cao thì tăng tốc độ truy cập nhưng làm chậm việc cập nhật dữ liệu mới.

Các tầng cache DNS — trình duyệt, hệ điều hành và Resolver của ISP — cùng đồng hồ TTL đếm ngược

Các Resolver còn dùng một cơ chế đáng chú ý: short-circuit (đi đường tắt). Nếu Resolver đã có bản ghi NS cho một vùng (zone) trong cache nhưng chưa có bản ghi A cụ thể, nó bỏ qua việc hỏi Root và TLD, đi thẳng tới Authoritative Nameserver để truy vấn. Cách này tối ưu đáng kể thời gian phân giải cho các truy vấn lặp lại với những tên miền thuộc cùng một hệ thống quản lý.

Hiện tượng DNS propagation (lan tỏa DNS) là khoảng thời gian cần thiết để các thay đổi trên Authoritative Server được cập nhật trên toàn thế giới. Do các ISP giữ cache bản ghi cũ cho đến khi TTL hết hạn, quá trình này có thể mất tới 48–72 giờ. Trên thực tế, với hạ tầng hiện đại việc cập nhật thường xong trong vài phút đến vài giờ, trừ khi các node trung gian cấu hình cache quá cứng nhắc.

DNS có những rủi ro bảo mật nào?

DNS được thiết kế từ thời kỳ sơ khai của Internet nên thiếu các cơ chế xác thực mạnh, và hệ quả là nhiều lỗ hổng nghiêm trọng. Phổ biến nhất là DNS Spoofing (hay Cache Poisoning), khi kẻ tấn công chèn dữ liệu giả vào cache của Resolver để điều hướng người dùng đến các trang web độc hại. DNS Amplification là một kiểu tấn công DDoS nguy hiểm khác, lợi dụng tính chất không trạng thái (stateless) của UDP để gửi các truy vấn nhỏ với IP giả mạo của nạn nhân, khiến DNS Server phản hồi lượng dữ liệu khổng lồ làm tê liệt mục tiêu.

Bốn rủi ro bảo mật của DNS: Spoofing, Amplification, Tunneling và Subdomain Takeover

Các rủi ro khác gồm DNS Tunneling — kỹ thuật đóng gói lưu lượng non-DNS (như HTTP hoặc dữ liệu nhạy cảm) vào trong các truy vấn DNS để vượt qua tường lửa. Subdomain Takeover cũng là một vấn đề nhức nhối: các bản ghi CNAME vẫn trỏ về một dịch vụ đám mây đã bị hủy bỏ, cho phép kẻ tấn công đăng ký lại dịch vụ đó và chiếm quyền kiểm soát tên miền phụ của doanh nghiệp.

Để phòng chống, DNSSEC (DNS Security Extensions) là tuyến phòng thủ quan trọng nhất: nó dùng chữ ký số để xác thực tính toàn vẹn của dữ liệu, đảm bảo phản hồi đến từ đúng nguồn tin cậy. Ngoài ra, kỹ sư mạng nên áp dụng Rate Limiting trên các máy chủ DNS, bật xác thực hai lớp (2FA) cho tài khoản quản lý tên miền, và flush cache định kỳ để loại bỏ những bản ghi nghi ngờ bị nhiễm độc.

Bạn chạm vào DNS ở đâu trong thực tế?

Trong mạng gia đình hoặc doanh nghiệp nhỏ, các thiết bị thường nhận cấu hình DNS tự động từ router qua giao thức DHCP. Nhưng để tối ưu hiệu suất, nhiều kỹ sư chọn Public DNS như Google (8.8.8.8) hoặc Cloudflare (1.1.1.1), vì chúng có hạ tầng Anycast mạnh và tốc độ phân giải nhanh hơn DNS mặc định của ISP. Việc tùy chỉnh này không chỉ tăng tốc độ mà còn giúp lọc bỏ các tên miền chứa mã độc ngay từ lớp hạ tầng.

Với môi trường doanh nghiệp lớn, cấu hình Split-horizon DNS (hay Split-brain) là một tiêu chuẩn kỹ thuật. Hệ thống này trả về địa chỉ IP nội bộ, ví dụ dải 10.x.x.x, nếu truy vấn đến từ mạng văn phòng, và trả về IP công cộng nếu truy vấn đến từ ngoài Internet. Cách tiếp cận này vừa bảo mật hạ tầng nội bộ vừa tối ưu đường đi của gói tin. Việc dùng các tên miền nội bộ như .local cũng giúp quản lý thiết bị trong LAN hiệu quả mà không xung đột với không gian tên miền toàn cầu.

Xu hướng hiện đại đang dịch chuyển sang mã hóa các truy vấn thông qua DNS over HTTPS (DoH) và DNS over TLS (DoT). DoH gửi truy vấn qua Port 443 để lẫn vào lưu lượng web thông thường, giúp vượt qua các kiểm duyệt và bảo mật thông tin người dùng. DoT hoạt động chuyên biệt hơn ở tầng vận chuyển để đảm bảo tính riêng tư. Cả hai giao thức đều nhằm che dấu vết duyệt web của người dùng, ngăn ISP hoặc bên thứ ba theo dõi lịch sử truy cập qua các truy vấn DNS thuần túy.

TTL và zone file: hai thứ cần để mắt

DNS là lớp hạ tầng thầm lặng nhưng thiết yếu của Internet. Nắm được vai trò của Port 53, sự khác biệt giữa Recursive và Authoritative, cùng các giao thức bảo mật hiện đại là kỹ năng bắt buộc của một kỹ sư hệ thống mạng. Một cấu hình DNS chuẩn xác vừa giúp hệ thống vận hành trơn tru, vừa là lớp phòng ngự đầu tiên trước các cuộc tấn công mạng tinh vi.

Trong thực tế vận hành, hãy luôn để mắt đến chỉ số TTL và tính toàn vẹn của zone file. Chọn dịch vụ Managed DNS hoặc Premium DNS uy tín sẽ cho bạn thêm các tính năng nâng cao như Load Balancing, Failover và khả năng chống DDoS.

Tài liệu tham khảo

Chia sẻ bài viết

X / TwitterFacebookLinkedIn