Điều tôi không hiểu là tại sao tôi cần cả trình phân giải DNS VÀ máy chủ DNS?
Đây không phải là sự khác biệt bạn nên nắm giữ.
Sự khác biệt quan trọng trong máy chủ DNS là giữa:
- một máy chủ tên có thẩm quyền
- một máy chủ tên đệ quy
(và bạn có thể tìm thấy những thứ khác như trình phân giải "sơ khai" và kết hợp; tham khảo RFC 8499 để biết định nghĩa đầy đủ).
Máy chủ định danh có thẩm quyền có đầy đủ dữ liệu trên một hoặc nhiều vùng (và các vùng thường có hai và đôi khi nhiều máy chủ định danh có thẩm quyền hơn để cân bằng tải/khử lỗi).
Máy chủ định danh đệ quy về cơ bản không có dữ liệu (khi bắt đầu) và sẽ thực hiện truy vấn thay mặt cho khách hàng, đồng thời lặp lại để theo dõi tất cả các ủy quyền và bản ghi CNAME cho đến khi gặp lỗi hoặc câu trả lời cho truy vấn của khách hàng.
Máy chủ định danh đệ quy mà bạn sử dụng (trên hộp của bạn hoặc ISP của bạn hoặc một số máy chủ từ xa như Google Public DNS hoặc Cloudflare hoặc những người khác) biết về máy chủ định danh gốc và sẽ liên hệ với họ để lấy dữ liệu về máy chủ định danh TLD, v.v. và cứ thế để cuối cùng giải quyết tên bạn cần.
Mỗi máy chủ tên có thẩm quyền chỉ có dữ liệu cho các vùng mà nó quản lý. Nếu bạn truy vấn nó về bất kỳ điều gì khác, nó có thể từ chối trả lời (trả lời ở cấp DNS bằng mã TỪ CHỐI) hoặc trả lời với một ủy quyền để cho bạn biết bạn (bạn ở đây là máy chủ định danh đệ quy đang thực hiện truy vấn) nên liên hệ với người khác máy chủ tên có thẩm quyền.
"Trình phân giải DNS" và "máy chủ DNS" không rõ ràng. "Trình phân giải DNS" cũng là "máy chủ DNS" theo nghĩa là nó chạy phần mềm "DNS" hoạt động như một máy chủ (chấp nhận truy vấn và phản hồi). DNS được thiết kế sao cho cùng một cổng (53) được sử dụng cho cả hoạt động có thẩm quyền và đệ quy, điều này dẫn đến một số nhầm lẫn (trong việc đặt tên, không có vấn đề gì đối với máy tính).
Một số phần mềm máy chủ tên chỉ có thẩm quyền theo thiết kế (ví dụ: NSD, Yadifa, KnotDNS), một số chỉ đệ quy (ví dụ: Không liên kết) và một số có thể được định cấu hình ở một trong hai chế độ (ví dụ: Bind, PowerDNS), ngay cả khi không nên kết hợp cả hai chế độ hoạt động bên trong cùng một quy trình.
RFC 8499 thực sự là một kho thông tin và là một tài liệu nên đọc.