Hãy phá vỡ nó một chút.
Các bản ghi NS trong vùng TLD (ví dụ: example.com NS ...
trong com
) là các bản ghi ủy nhiệm .
Các bản ghi A và AAAA trong vùng TLD (ví dụ: ns1.example.com A ...
trong com
) là các bản ghi keo .
Các hồ sơ NS trong khu vực chính nó (nghĩa là, example.com NS ...
trong example.com
) là hồ sơ thẩm quyền .
Các bản ghi A và AAAA trong chính khu vực ( ns1.example.com A ...
trong example.com
) là các bản ghi địa chỉ , đơn giản và đơn giản.
Khi một (recursive) resolver bắt đầu ra không có bộ nhớ cache dữ liệu của khu vực của bạn và chỉ có bộ nhớ cache vùng rễ (được sử dụng để bootstrap quá trình phân giải tên), đầu tiên nó sẽ đi đến .
, sau đó com.
. Các com
máy chủ sẽ phản hồi với phản hồi của bộ phận có thẩm quyền về cơ bản là "Tôi không biết, nhưng hãy tìm ở đây để biết ai đó biết", giống như các máy chủ .
thực hiện com
. Phản hồi truy vấn này không có thẩm quyền và không bao gồm phần trả lời dân cư. Nó cũng có thể bao gồm cái gọi là bổ sungphần cung cấp ánh xạ địa chỉ cho bất kỳ tên máy chủ nào mà máy chủ cụ thể biết (từ bản ghi keo hoặc, trong trường hợp bộ giải quyết đệ quy, từ dữ liệu được lưu trong bộ nhớ cache trước đó). Bộ giải quyết sẽ lấy phản hồi ủy nhiệm này, giải quyết tên máy chủ của bản ghi NS nếu cần và tiến hành truy vấn máy chủ DNS mà cơ quan được ủy quyền. Quá trình này có thể lặp lại một số lần nếu bạn có hệ thống phân cấp ủy nhiệm sâu, nhưng cuối cùng dẫn đến phản hồi truy vấn với cờ "câu trả lời có thẩm quyền" được đặt .
Điều quan trọng cần lưu ý là trình phân giải (nói chung, hy vọng) sẽ không cố gắng phá vỡ tên máy chủ đang được giải quyết để hỏi về từng mảnh một, nhưng sẽ chỉ gửi toàn bộ đến máy chủ "tốt nhất" mà nó biết. Vì máy chủ tên trung bình có thẩm quyền trên Internet là không có thẩm quyền đối với phần lớn các tên DNS hợp lệ, phản hồi sẽ là phản hồi ủy quyền không có thẩm quyền chỉ vào một số máy chủ DNS khác.
Bây giờ, một máy chủ không cần phải có tên trong hồ sơ ủy quyền hoặc quyền hạn ở bất cứ nơi nào có thẩm quyền cho một khu vực. Xem xét ví dụ như trường hợp của một máy chủ chính; trong trường hợp đó tồn tại một máy chủ DNS có thẩm quyền mà chỉ quản trị viên của các máy chủ DNS nô lệ cho vùng này mới biết. Một máy chủ DNS có thẩm quyền cho một vùng nếu, thông qua một số cơ chế, theo ý kiến của nó, nó có kiến thức đầy đủ và chính xác về vùng được đề cập. Ví dụ, một máy chủ DNS có thẩm quyền thông thường có thể trở thành không có thẩm quyền nếu (các) máy chủ chính được cấu hình không thể đạt được trong giới hạn thời gian được xác định là thời gian hết hạn trong bản ghi SOA.
Chỉ có câu trả lời có thẩm quyền nên được xem là câu trả lời thích hợp; tất cả mọi thứ khác là một phái đoàn, hoặc một lỗi nào đó. Một phái đoàn đến một máy chủ không có thẩm quyền được gọi là một phái đoàn "khập khiễng" và có nghĩa là trình giải quyết phải quay lại một bước và thử một số máy chủ DNS có tên khác. Nếu không có máy chủ tên có thể truy cập có thẩm quyền tồn tại trong đoàn, thì độ phân giải tên không thành công (nếu không, nó sẽ chậm hơn bình thường).
Điều này rất quan trọng vì dữ liệu không có thẩm quyền không được lưu vào bộ nhớ cache . Làm thế nào có thể, vì máy chủ không có thẩm quyền không có hình ảnh đầy đủ? Vì vậy, máy chủ có thẩm quyền phải, theo cách riêng của mình, có thể trả lời câu hỏi "ai được cho là có thẩm quyền, và để làm gì?". Đó là thông tin được cung cấp bởi các hồ sơ NS trong khu vực.
Có một số trường hợp cạnh trong đó điều này thực sự có thể tạo ra sự khác biệt nghiêm trọng, chủ yếu tập trung vào nhiều nhãn tên máy chủ trong một vùng (có thể khá phổ biến, ví dụ như với các vùng DNS đảo ngược đặc biệt cho dải IP động lớn) hoặc khi danh sách máy chủ tên khác nhau giữa vùng cha mẹ và vùng được đề cập (rất có thể là lỗi, nhưng cũng có thể được thực hiện có chủ ý).
Bạn có thể thấy cách thức hoạt động của chi tiết hơn một chút bằng cách sử dụng dig
và các tính năng của trình xác định máy chủ +norec
(không yêu cầu đệ quy) @
. Dưới đây là một minh họa về cách một máy chủ DNS giải quyết thực tế hoạt động. Truy vấn bản ghi A để unix.stackexchange.com
bắt đầu tại: vd a.root-servers.net
:
$ dig unix.stackexchange.com. A @a.root-servers.net. +norec
Nhìn kỹ vào flags
cũng như số lượng mỗi phần. qr
là Phản hồi truy vấn và aa
là câu trả lời có thẩm quyền. Lưu ý rằng bạn chỉ được ủy quyền cho các com
máy chủ. Theo dõi thủ công ủy nhiệm đó (trong thực tế, một trình phân giải đệ quy sẽ sử dụng địa chỉ IP từ phần bổ sung nếu được cung cấp hoặc khởi tạo một độ phân giải tên riêng của một trong các máy chủ tên được đặt tên nếu không có IP được cung cấp trong phản hồi của ủy nhiệm, nhưng chúng tôi sẽ bỏ qua phần đó và chỉ quay lại trình giải quyết bình thường của hệ điều hành để lấy ví dụ):
$ dig unix.stackexchange.com. A @a.gtld-servers.net. +norec
Bây giờ bạn thấy điều đó stackexchange.com
được ủy quyền (trong số những người khác) ns1.serverfault.com
, và bạn vẫn không nhận được câu trả lời có thẩm quyền. Một lần nữa đi theo đoàn:
$ dig unix.stackexchange.com. A @ns1.serverfault.com. +norec
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35713
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; QUESTION SECTION:
;unix.stackexchange.com. IN A
;; ANSWER SECTION:
unix.stackexchange.com. 300 IN A 198.252.206.16
Chơi lô tô! Chúng tôi đã có câu trả lời, vì aa
cờ được đặt và nó có chứa địa chỉ IP giống như chúng tôi mong muốn tìm thấy. Bên cạnh đó, đáng chú ý rằng ít nhất tại thời điểm tôi viết bài đăng này, các máy chủ tên được ủy quyền và được liệt kê khác nhau, cho thấy hai cái không cần phải giống hệt nhau. Những gì tôi đã minh họa ở trên về cơ bản là công việc được thực hiện bởi bất kỳ trình phân giải nào, ngoại trừ bất kỳ trình phân giải thực tế nào cũng sẽ lưu trữ các phản hồi trên đường đi để nó không phải truy cập máy chủ gốc mỗi lần.
Như bạn có thể thấy từ ví dụ trên, hồ sơ ủy quyền và hồ sơ phục vụ một mục đích khác biệt với hồ sơ thẩm quyền và địa chỉ trong chính khu vực.
Một bộ đệm tên, giải quyết máy chủ tên cũng thường sẽ thực hiện một số kiểm tra độ tỉnh táo trên dữ liệu được trả về để bảo vệ chống nhiễm độc bộ đệm. Ví dụ: nó có thể từ chối lưu trữ một câu trả lời đặt tên cho các máy chủ có thẩm quyền com
từ một nguồn không phải là nguồn đã được đặt tên theo vùng cha mẹ như là ủy quyền com
. Các chi tiết phụ thuộc vào máy chủ nhưng mục đích là lưu trữ bộ nhớ cache càng nhiều càng tốt trong khi không mở cửa kho cho phép bất kỳ máy chủ tên ngẫu nhiên nào trên Internet ghi đè lên hồ sơ ủy quyền cho bất kỳ điều gì không chính thức thuộc "quyền tài phán" của nó.