Làm rõ lý do tại sao các tệp vùng DNS yêu cầu bản ghi NS


18

Câu hỏi này ban đầu được hỏi ở đây: Tại sao các tệp vùng DNS yêu cầu bản ghi NS?

Để tóm tắt: "Khi tôi đến công ty đăng ký và mua example.com, tôi sẽ nói với công ty đăng ký của mình rằng máy chủ tên của tôi là ns1.example.org và ns2.example.org".

Nhưng xin vui lòng ai đó có thể làm rõ những điều sau đây:

Sau khi đăng ký, sổ đăng ký .com sẽ có một bản ghi cho biết người giải quyết cần truy cập ns1.example.org hoặc ns2.example.org để tìm ra địa chỉ IP của example.com. Địa chỉ IP nằm trong một bản ghi A trong tệp vùng trên ns1.example.org và có một bản sao giống hệt trên ns2.example.org.

Tuy nhiên, bên trong tệp này, cũng phải có 2 bản ghi NS liệt kê ns1.example.org và ns2.example.org làm máy chủ tên. Nhưng vì chúng tôi đã ở trên một trong những máy chủ này, điều này dường như là thông tin trùng lặp.

Câu trả lời ban đầu cho câu hỏi cho biết các máy chủ tên được liệt kê trong tệp vùng là "có thẩm quyền". Nếu máy chủ tên không khớp, thì máy chủ tên có thẩm quyền sẽ được ưu tiên. Điều đó rất tốt và tốt, nhưng trình phân giải đã đến máy chủ tên bằng cách sử dụng máy chủ tên được liệt kê trong sổ đăng ký .com và nếu máy chủ tên không khớp, thì trình phân giải sẽ tìm tệp vùng trên máy chủ tên sai và sẽ ' t có thể tìm thấy nó.

Hoặc đó là một trường hợp đăng ký .com trích xuất thông tin máy chủ tên từ bản ghi ns tệp vùng? (Nhưng sau đó tôi cho rằng nếu bạn thay đổi ns ghi tệp vùng mà không báo cho cơ quan đăng ký, thì nó sẽ không có cách nào để biết nơi cần tìm.)

Cảm ơn

Câu trả lời:


23

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 commá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 digvà 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.combắt đầu tại: vd a.root-servers.net:

$ dig unix.stackexchange.com. A @a.root-servers.net. +norec

Nhìn kỹ vào flagscũng như số lượng mỗi phần. qrlà Phản hồi truy vấn và aalà câu trả lời có thẩm quyền. Lưu ý rằng bạn chỉ được ủy quyền cho các commá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ì aacờ đượ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 comtừ 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ó.


Cảm ơn bạn rất nhiều vì câu trả lời chi tiết này. Vì vậy, hãy tưởng tượng hồ sơ ủy nhiệm gửi trình phân giải đến ns4.serverfault.com. Điều này không được liệt kê trong hồ sơ NS của tập tin khu vực. Liệu trình giải quyết có nhận thấy sự không phù hợp và quay lui? (một đoàn què)? Tôi cho rằng sau đó đặt ra câu hỏi, tại sao ns4.serverfault.com. được liệt kê dưới dạng bản ghi ủy nhiệm nếu nó không được liệt kê trong tệp vùng?
Lars

@Lars Không, ns4.serverfault.com sẽ vẫn có thẩm quyền; quyền hạn (thậm chí là một từ?) không phụ thuộc vào việc máy chủ được đề cập có được đặt tên trong hồ sơ NS hay không, trong chính khu vực hoặc trong phái đoàn. Nó chỉ là một phái đoàn khập khiễng nếu một máy chủ được ủy quyền trả lời theo kiểu không có thẩm quyền (nghĩa là aacờ không được đặt trên phản hồi).
một CVn

1

Sổ đăng ký .com là "bản ghi keo" có vị trí của máy chủ tên của bạn dưới dạng địa chỉ IP. Trình phân giải không có cách nào biết được "danh tính" của máy chủ DNS của bạn để nó sử dụng bản ghi NS để đảm bảo các số khớp với nhau.

Yêu cầu DNS -> đăng ký .com (ip là xxxx) -> DNS (NS xxxx) khớp, giải quyết.

Nếu chúng không khớp hoặc tồn tại, thì đó là câu trả lời không có thẩm quyền cho tên miền.


Cảm ơn nhưng tôi vẫn hơi bối rối. Trình phân giải sử dụng địa chỉ IP trong bản ghi keo trong sổ đăng ký .com để đi đến tệp vùng được lưu trữ tại địa chỉ IP đó. Bây giờ nó có thể lấy bản ghi A. Tại sao cần kiểm tra xem IP máy chủ tên này có khớp với bản ghi NS trong tệp vùng không?
Lars

Vì vậy, nó biết nó đang tìm đúng nơi. Ví dụ: nếu bạn có một tên miền phụ có bản ghi A nằm trên một máy chủ khác , bản ghi NS sẽ cho người giải quyết biết nơi cần tìm. Kiểu như vụn bánh mì.
Nathan C
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.