Vai trò của các bản ghi NS ở đỉnh của một tên miền DNS là gì?


21
$ORIGIN example.com. ; not necessary, using this to self-document

$TTL 3600
@        IN     SOA   ns1.example.com. admin.example.com. (
                      1970010100 7200 1800 1209600 300)

@        IN     NS   ns1.example.com.
@        IN     NS   ns2.example.com.

@        IN     A    198.51.100.1
ns1      IN     A    198.51.100.2
ns2      IN     A    198.51.100.3

sub1     IN     NS   ns1.example.edu.

sub2     IN     NS   ns1.sub2
ns1.sub2 IN     A    203.0.113.1 ; inline glue record

Vai trò của một bản ghi NS bên dưới đỉnh của một miền được hiểu rõ; chúng tồn tại để ủy quyền cho một tên miền phụ cho một máy chủ tên khác. Ví dụ về điều này ở trên sẽ bao gồm các hồ sơ NS cho sub1sub2. Điều này cho phép máy chủ tên phân phát các lượt giới thiệu cho các phần của miền mà nó không cho rằng chính nó có thẩm quyền.

Mục đích của các bản ghi NS ở đỉnh của một tên miền, ns1ns2trong trường hợp này, dường như ít được hiểu bởi internet. Sự hiểu biết của tôi (có thể không toàn diện) như sau:

  1. Chúng không được sử dụng bởi bộ đệm máy chủ DNS để xác định máy chủ có thẩm quyền cho tên miền. Điều này được xử lý bằng keo máy chủ tên , được xác định ở cấp đăng ký. Nhà đăng ký không bao giờ sử dụng thông tin này để tạo hồ sơ keo.
  2. Chúng không được sử dụng để ủy quyền cho toàn bộ miền cho các máy chủ tên khác. Cố gắng làm như vậy với phần mềm như ISC BIND sẽ không dẫn đến hành vi giới thiệu "mong đợi", vì máy chủ tên sẽ tiếp tục coi chính nó có thẩm quyền cho khu vực.
  3. Chúng không được sử dụng bởi máy chủ tên để xác định xem nó có trả về các phản hồi có thẩm quyền ( AAbộ cờ) hay không; hành vi đó được xác định bằng việc phần mềm được bảo là chủ hay nô lệ cho khu vực đó. Hầu hết các phần mềm máy chủ tên sẽ khá vui vẻ phục vụ các bản ghi NS apex không đồng ý với thông tin chứa trong các bản ghi keo ngược dòng, điều này sẽ khiến các trang web xác thực DNS nổi tiếng tạo ra các cảnh báo cho miền.

Với trường hợp này, chúng ta còn lại gì? Tại sao chúng ta xác định thông tin này nếu nó dường như không được sử dụng bởi bộ đệm DNS trên internet?

Câu trả lời:


21

Nhận dạng cấp dưới

Các bản ghi NS cấp Apex được sử dụng bởi một máy chủ chính để xác định cấp dưới của nó. Khi dữ liệu trên một máy chủ tên có thẩm quyền thay đổi, nó sẽ quảng cáo thông DNS NOTIFYtin này qua tin nhắn ( RFC 1996 ) cho tất cả các đồng nghiệp của nó trong danh sách đó. Những máy chủ đó sẽ lần lượt gọi lại với một yêu cầu cho SOAbản ghi (chứa số sê-ri) và đưa ra quyết định về việc có nên kéo xuống một bản sao gần đây hơn của vùng đó hay không.

  • Có thể gửi các tin nhắn này đến các máy chủ không được liệt kê trong NSphần này, nhưng điều này đòi hỏi các chỉ thị cấu hình cụ thể của máy chủ (chẳng hạn như also-notifychỉ thị của ISC BIND ). Các bản ghi NS apex bao gồm danh sách các máy chủ cơ bản để thông báo theo cấu hình mặc định.
  • Điều đáng chú ý là các máy chủ thứ cấp cũng sẽ gửi tin nhắn THÔNG BÁO cho nhau dựa trên những NShồ sơ này , thường dẫn đến việc từ chối đăng nhập. Điều này có thể bị vô hiệu hóa bằng cách hướng dẫn các máy chủ chỉ gửi thông báo cho các vùng mà họ là chủ nhân cho (BIND notify master;:) hoặc bỏ qua NSthông báo dựa trên hoàn toàn có lợi cho thông báo được xác định rõ ràng trong cấu hình. (BIND notify explicit;:)

Định nghĩa có thẩm quyền

Câu hỏi trên có một sai lầm:

Chúng không được sử dụng bởi bộ đệm máy chủ DNS để xác định máy chủ có thẩm quyền cho tên miền. Điều này được xử lý bằng keo máy chủ tên, được xác định ở cấp đăng ký. Nhà đăng ký không bao giờ sử dụng thông tin này để tạo hồ sơ keo.

Đây là một kết luận dễ dàng để đi đến, nhưng không chính xác. Các NShồ sơ và dữ liệu hồ sơ keo (như được xác định trong tài khoản đăng ký của bạn) không có thẩm quyền. Lý do là họ không thể được coi là "có thẩm quyền" hơn dữ liệu cư trú trên các máy chủ mà cơ quan có thẩm quyền đang được ủy quyền. Điều này được nhấn mạnh bởi thực tế là các giới thiệu không có aacờ (Câu trả lời có thẩm quyền) được đặt.

Để minh họa:

$ dig @a.gtld-servers.net +norecurse +nocmd example.com. NS
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14021
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.                   IN      NS

;; AUTHORITY SECTION:
example.com.            172800  IN      NS      a.iana-servers.net.
example.com.            172800  IN      NS      b.iana-servers.net.

;; ADDITIONAL SECTION:
a.iana-servers.net.     172800  IN      A       199.43.135.53
a.iana-servers.net.     172800  IN      AAAA    2001:500:8f::53
b.iana-servers.net.     172800  IN      A       199.43.133.53
b.iana-servers.net.     172800  IN      AAAA    2001:500:8d::53

Lưu ý thiếu aatrong các cờ cho câu trả lời ở trên. Bản thân người giới thiệu không có thẩm quyền. Mặt khác, dữ liệu trên máy chủ được đề cập là có thẩm quyền.

$ dig @a.iana-servers.net +norecurse +nocmd example.com. NS
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2349
;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.                   IN      NS

;; ANSWER SECTION:
example.com.            86400   IN      NS      a.iana-servers.net.
example.com.            86400   IN      NS      b.iana-servers.net.

Điều đó nói rằng, mối quan hệ này có thể trở nên rất khó hiểu vì không thể tìm hiểu về các phiên bản có thẩm quyền của các NShồ sơ này mà không có hồ sơ không có thẩm quyền NSđược xác định ở phía phụ huynh của giới thiệu. Điều gì xảy ra nếu họ không đồng ý?

  • Câu trả lời ngắn gọn là "hành vi không nhất quán".
  • Câu trả lời dài là máy chủ tên ban đầu sẽ còn sơ khai tất cả mọi thứ ra khỏi giới thiệu (và keo) trên một bộ nhớ cache trống rỗng, nhưng những người NS, AAAAAhồ sơ có thể cuối cùng sẽ được thay thế khi họ được làm mới. Việc làm mới xảy ra khi các TTL trên các hồ sơ tạm thời đó hết hạn hoặc khi ai đó yêu cầu rõ ràng câu trả lời cho các hồ sơ đó.
    • AAAAAcác bản ghi cho dữ liệu ngoài vùng (tức là commáy chủ tên xác định keo cho dữ liệu ngoài comvùng, như thế example.net) chắc chắn sẽ được làm mới, vì đó là một khái niệm dễ hiểu rằng máy chủ tên không nên được coi là nguồn có thẩm quyền của thông tin đó . (RFC 2181)
    • Khi các giá trị của các NSbản ghi khác nhau giữa các phụ huynh và con của giới thiệu (chẳng hạn như các máy chủ tên được nhập vào bảng điều khiển đăng ký khác với các NSbản ghi sống trên cùng các máy chủ đó), các hành vi có kinh nghiệm sẽ không nhất quán, bao gồm và bao gồm cả trẻ em NShồ sơ bị bỏ qua hoàn toàn. Điều này là do hành vi không được xác định rõ bởi các tiêu chuẩn và việc triển khai khác nhau giữa các lần triển khai máy chủ đệ quy khác nhau. Nói cách khác, hành vi nhất quán trên internet chỉ có thể được dự kiến ​​nếu các định nghĩa máy chủ tên miền cho một miền nhất quán giữa phía cha và con của một giới thiệu .

Điểm dài và ngắn của nó là các máy chủ DNS đệ quy trên internet sẽ bị trả lại giữa các điểm đến nếu các bản ghi được xác định ở phía phụ huynh của giới thiệu không đồng ý với các phiên bản có thẩm quyền của các bản ghi đó. Ban đầu, dữ liệu có trong thư giới thiệu sẽ được ưu tiên, chỉ được thay thế bằng các định nghĩa có thẩm quyền. Vì bộ nhớ cache liên tục được xây dựng lại từ đầu trên internet, nên internet không thể giải quyết trên một phiên bản thực tế duy nhất với cấu hình này. Nếu các bản ghi có thẩm quyền đang làm điều gì đó bất hợp pháp theo các tiêu chuẩn, chẳng hạn như NScác bản ghi trỏ vào các bí danh được xác định bởi mộtCNAME, điều này thậm chí còn khó khăn hơn để khắc phục sự cố; tên miền sẽ xen kẽ giữa làm việc và bị hỏng đối với phần mềm từ chối vi phạm. (tức là ISC BIND / được đặt tên)

RFC 2181 §5.4.1 cung cấp bảng xếp hạng về độ tin cậy của dữ liệu này và làm cho nó rõ ràng rằng dữ liệu bộ đệm được liên kết với các giới thiệu và keo dán có thể được trả về như một câu trả lời cho yêu cầu rõ ràng cho các bản ghi mà chúng tham chiếu.

5.4.1. Ranking data

   When considering whether to accept an RRSet in a reply, or retain an
   RRSet already in its cache instead, a server should consider the
   relative likely trustworthiness of the various data.  An
   authoritative answer from a reply should replace cached data that had
   been obtained from additional information in an earlier reply.
   However additional information from a reply will be ignored if the
   cache contains data from an authoritative answer or a zone file.

   The accuracy of data available is assumed from its source.
   Trustworthiness shall be, in order from most to least:

     + Data from a primary zone file, other than glue data,
     + Data from a zone transfer, other than glue,
     + The authoritative data included in the answer section of an
       authoritative reply.
     + Data from the authority section of an authoritative answer,
     + Glue from a primary zone, or glue from a zone transfer,
     + Data from the answer section of a non-authoritative answer, and
       non-authoritative data from the answer section of authoritative
       answers,
     + Additional information from an authoritative answer,
       Data from the authority section of a non-authoritative answer,
       Additional information from non-authoritative answers.

   <snip>

   Unauthenticated RRs received and cached from the least trustworthy of
   those groupings, that is data from the additional data section, and
   data from the authority section of a non-authoritative answer, should
   not be cached in such a way that they would ever be returned as
   answers to a received query.  They may be returned as additional
   information where appropriate.  Ignoring this would allow the
   trustworthiness of relatively untrustworthy data to be increased
   without cause or excuse.

Câu trả lời tốt bằng văn bản! Tôi không đồng ý với "dài và ngắn" câu trả lời của bạn. Việc sử dụng chính của DNS trên internet là về việc nhận IP máy chủ, do đó yêu cầu "A". Các trình phân giải DNS sẽ luôn chấp nhận và thay thế giới thiệu để nhận được Phản hồi "A" có thẩm quyền. Và anh ta sẽ "luôn luôn" chỉ lưu trữ hồ sơ giới thiệu. Lần duy nhất các bản ghi sẽ được thay thế là khi một yêu cầu rõ ràng xuất hiện cho một "example.com IN NS". Sau đó, người giải quyết sẽ yêu cầu máy chủ tại vị trí giới thiệu. Và phản hồi AR đó sẽ thay thế phản hồi giới thiệu được lưu trong bộ nhớ cache (chỉ dành cho TTL của bản ghi đó).
Wazed_Coder

Tôi có thể sai theo câu trả lời của @BillThor. Tôi dựa trên lý do của mình dựa trên thực tế rằng nếu một máy chủ DNS làm mới mục NS được lưu trong bộ nhớ cache cho example.com từ phản hồi NS có thẩm quyền (hiện đã hết hạn). Nó sẽ phá vỡ chuỗi DNS. Bởi vì hiện tại nó bị kẹt trong một vòng lặp trong khi máy chủ NS (cũ) tiếp tục trả lời, nó sẽ không tính đến các thay đổi trên máy chủ DNS apex ở trên (công ty đăng ký). Giống như trong trường hợp bạn di chuyển máy chủ DNS nhưng không cập nhật hoặc lấy máy chủ DNS cũ ngoại tuyến. Hay đây là "vấn đề" hoàn toàn là trường hợp ngày hôm nay?
Wazed_Coder

@ Tôi cũng không đồng ý với nhận xét đầu tiên của bạn do nhiều giả định được đưa ra. Vì hành vi không được quy định rõ ràng theo tiêu chuẩn, nên nó thực sự cụ thể. Bài thuyết trình này đã 6 tuổi (bắt đầu từ slide # 11), nhưng vẫn nhận được điểm; cha mẹ so với sở thích máy chủ tên con sẽ khác nhau. Ngoài ra, bạn chỉ có thể tin tưởng vào các yêu cầu của RFC 2181.
Andrew B

Tôi nghĩ rằng mối quan tâm của tôi là xung quanh nếu các mục được lưu trong bộ nhớ cache NS của trình phân giải đạt tới TTL = 0, ví dụ.com. Và nó cần phải tra cứu một mục lưu trữ mới cũng chưa được lưu vào bộ nhớ cache, nói cho new.example.com. Bây giờ nó cần (các) máy chủ NS chẳng hạn.com và vì các bản sao được lưu trong bộ nhớ cache đã hết hạn, sẽ rất tệ nếu vẫn cố gắng truy cập máy chủ NS "hết hạn" đó để xem liệu nó có còn phản hồi không. Nó sẽ phải kiểm tra với tổ tiên tiếp theo, do đó, NS sẽ tìm hướng đi. Điều này có nghĩa là các bản ghi NS tổ tiên sẽ chiếm ưu thế hầu hết thời gian (cho đến khi yêu cầu NS được xử lý).
Wazed_Coder

@Wazed Bắt đầu từ slide # 11 và lưu ý ba mẫu: trung tâm con không dính ( PPPCCCPPPCCC...), dính trung tâm con ( PPPCCCCCC...) và dính cha mẹ ( PPPPPP...). Trẻ làm trung tâm không dính đến nay là phổ biến nhất, và con dính trung tâm thực sự là hơn phổ biến hơn dính mẹ. Khách hàng thực sự sẽ bị trả lại qua lại giữa hai phiên bản thực tế nếu dữ liệu NS trên trẻ và cha mẹ không được thỏa thuận trừ khi phần mềm trình giải quyết bị dính cha mẹ, đó là kết quả ít có khả năng nhất.
Andrew B

3

NS ghi lại vùng ủy nhiệm cung cấp tính đầy đủ của định nghĩa miền. Các máy chủ NS sẽ dựa vào tệp vùng. Họ không mong muốn tìm thấy chính mình bằng cách thực hiện một truy vấn đệ quy từ các máy chủ gốc. Các bản ghi NS trong tệp vùng cung cấp một số chức năng khác ..

Máy chủ bộ đệm có thể làm mới danh sách máy chủ tên bằng cách truy vấn máy chủ tên từ bộ đệm của nó. Miễn là một máy chủ lưu trữ biết địa chỉ của một máy chủ tên, nó sẽ sử dụng nó thay vì đệ quy tìm kiếm một bản ghi NS thích hợp.

Khi di chuyển máy chủ tên, điều quan trọng là phải cập nhật máy chủ tên cũ cũng như máy chủ tên mới. Điều này sẽ ngăn chặn sự ngừng hoạt động hoặc sự không nhất quán sẽ xảy ra khi hai định nghĩa vùng không đồng bộ. Các bản ghi được cập nhật cuối cùng sẽ được làm mới bởi bất kỳ máy chủ nào đã lưu các bản ghi NS. Điều này sẽ thay thế danh sách lưu trữ của các máy chủ tên.

Các bản ghi NS cũng hỗ trợ xác nhận tính chính xác của cấu hình DNS. Phần mềm xác nhận thường sẽ xác minh rằng các định nghĩa máy chủ tên của vùng ủy nhiệm khớp với các định nghĩa do vùng cung cấp. Kiểm tra này có thể được thực hiện trên tất cả các máy chủ tên. Bất kỳ sự không phù hợp có thể chỉ ra một cấu hình sai.

Có các bản ghi NS cho phép các vùng bị ngắt kết nối (cục bộ). Đây có thể là tên miền phụ của tên miền đã đăng ký hoặc tên miền hoàn toàn mới (không được đề xuất do thay đổi TLD). Các máy chủ sử dụng máy chủ tên làm máy chủ tên của họ sẽ có thể tìm thấy các vùng không thể truy cập bằng cách đệ quy từ máy chủ gốc. Các máy chủ tên khác có thể được cấu hình để tìm đến các máy chủ tên cho các khu vực địa phương.

Trong trường hợp phân tách DNS (nội bộ / bên ngoài), có thể có một bộ máy chủ DNS khác. Trong trường hợp này, danh sách NS (và có thể là dữ liệu khác) sẽ khác và các bản ghi NS trong tệp vùng sẽ liệt kê danh sách máy chủ tên thích hợp.

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.