Thời gian chờ DNS được cho là hoạt động như thế nào?


9

Gần đây tôi đã gặp sự cố khi một dịch vụ từ xa yêu cầu địa chỉ IP cho máy chủ của tôi (với nhà cung cấp DNS được lưu trữ) đã phản hồi với:

DNS problem: SERVFAIL looking up A for mysql.xavamedia.nl

(Cập nhật: dịch vụ từ xa được đề cập ở đây là Let Encrypt; Tôi đã gửi một lỗi đối với trình theo dõi vấn đề của họ, điều này dẫn tôi đến con đường này.)

Khi thử nghiệm trên mạng cục bộ của mình, tôi có thể thấy rằng đôi khi tôi nhận được phản hồi DNS trống từ máy chủ DNS được lưu trữ. Rõ ràng điều này không liên tục vì nó chỉ xảy ra khi các bản ghi DNS không có trong bộ đệm và nó chỉ là vấn đề khi máy chủ DNS thực sự bận.

Dưới đây là mô tả của Wireshark về một thông báo phản hồi trống:

Ảnh chụp màn hình Wireshark của phản hồi trống

Tất nhiên, vì hầu hết các truy vấn và phản hồi DNS được gửi qua UDP, trình phân giải cục bộ sẽ chỉ chờ một lúc để nhận phản hồi và sau đó từ bỏ. Điều tôi đang băn khoăn là, có hướng dẫn nào về thời gian phản hồi DNS không? Bộ đệm DNS của tôi nhún vai và nói rằng bộ giải quyết cục bộ của tôi đã gửi phản hồi trống quá sớm. Tôi chưa bao giờ gặp vấn đề này trước đây, nhưng tôi ngạc nhiên về chế độ thất bại - phản hồi DNS trống mà không có mã lỗi.

Có ai đó biết một số hướng dẫn về cách thức hoạt động của tính năng này không và khi nào / làm thế nào tôi có thể chứng minh việc lưu trữ DNS của mình đang làm gì đó sai?


1
Bạn có thể vui lòng cập nhật câu hỏi để cung cấp thêm thông tin về câu trả lời trống không? Điều đó có thể có nghĩa là một số thứ tùy thuộc vào các cờ được đặt và phần quyền hạn trông như thế nào. Chúng ta cần phải xem đầu ra của dig/ nslookuphoặc mổ xẻ Wireshark. ( tcpdumpsẽ không đủ tốt) Nếu bạn đang sử dụng nslookup, hãy thực hiện set debugtrước.
Andrew B

Tôi có một pcap, nhưng không chắc làm thế nào tôi có thể hiển thị nó tốt nhất ở đây?
djc

1
Mở nó trong Wireshark, nhấp vào gói, sau đó mở rộng thông tin cho giao thức DNS. Mở rộng các danh mục con, sau đó đăng ảnh chụp màn hình trong câu hỏi của bạn bằng nút chèn hình ảnh. Bạn có thể cắt ảnh chụp màn hình thành công cụ giao thức DNS.
Andrew B

Câu trả lời:


6

Phản hồi trống mà bạn đang xem là một trạng thái tổng hợp được gọi là NODATA. NODATANXDOMAINcả hai chỉ ra rằng tên không tồn tại, nhưng NXDOMAINcũng áp dụng cho tất cả các tên bên dưới bản ghi được chỉ định. NODATAkhuyên rằng tên đó được liên kết với các bản ghi thuộc loại không được yêu cầu hoặc có các bản ghi khác nằm bên dưới những gì bạn yêu cầu. (tức là example.test.xavamedia.nl.)

Việc bạn đến từ NODATANXDOMAINthực sự giống nhau trong bối cảnh này: hồ sơ về tên và loại được yêu cầu không tồn tại. Một máy chủ tên có thẩm quyền đã được truy cập cho miền được yêu cầu nó trả lời lại cho biết rằng một bản ghi tên và loại đó không tồn tại. Đây không phải là một lỗi giao tiếp. Các máy chủ có thẩm quyền nói rằng nó không có dữ liệu. Nhiều khả năng máy chủ mà bạn đang nói chuyện đã xử lý yêu cầu này và lưu vào bộ đệm âm bản sự vắng mặt của bản ghi đó trong vòng bốn giờ qua. (14400 giây là khoảng thời gian bộ đệm âm được xác định bởi bản ghi SOA cho xavamedia.nl.)

Không NXDOMAINhoặc NODATA tự chúng sẽ dẫn đến thời gian chờ khi gặp phải trong trường hợp này, nhưng thư viện trình phân giải của bạn có thể sẽ chuyển từ đây để nối thêm hậu tố tìm kiếm DNS, điều này có thể kích hoạt thời gian chờ cho các máy chủ DNS có thẩm quyền của miền tìm kiếm.

Cần lưu ý rằng không ai trong số này giải thích lý do tại sao bạn gặp phải SERVFAILphản hồi khi tìm kiếm mysql.xavamedia.nl.. Điều đó chỉ ra một vấn đề với máy chủ đệ quy nhận được câu trả lời từ các máy chủ có thẩm quyền. Máy chủ có thẩm quyền đã trả lời SERVFAIL, máy chủ đệ quy không thể truy cập bất kỳ máy chủ có thẩm quyền nào hoặc máy chủ đệ quy xác định rằng dữ liệu được trả về là không hợp lệ. Không ai trong số này có thể được chứng minh bằng thông tin mà bạn đã cung cấp.


Cảm ơn câu trả lời chi tiết của bạn! Một số điều vẫn chưa rõ ràng: nếu phản hồi NODATA được khởi tạo bởi máy chủ có thẩm quyền bằng cách nào đó, thì lưu trữ DNS của tôi có vấn đề, bởi vì các tên miền này đã tồn tại trong một thời gian dài (nhờ bản ghi A thẻ hoang dã). Vì vậy, câu hỏi khác của tôi là, làm thế nào tôi có thể chứng minh liệu máy chủ có thẩm quyền đã làm gì sai?
djc

Việc NODATAchụp gói tin của bạn là bằng chứng. Câu hỏi thích hợp là "tại sao một máy chủ có thẩm quyền trả lời và nói rằng không có hồ sơ như vậy tồn tại?" . Thật không may, đó là một vấn đề khó để nhấn trừ khi bạn có thể chứng minh điều đó bằng cách tra cứu trực tiếp các máy chủ có thẩm quyền (loại bỏ khả năng nhún vai và đổ lỗi cho các nhà khai thác của các máy chủ đệ quy), hãy nhớ rằng chỉ một trong ba người có thể thỉnh thoảng làm sai.
Andrew B

NODATAcó nghĩa là tên không tồn tại, nhưng nó không có một kỷ lục của các loại yêu cầu. Ví dụ, bạn yêu cầu Ahồ sơ, nhưng nó chỉ có MXhồ sơ. Nó cũng có thể xảy ra nếu tên dành cho một nút trung gian trong hệ thống phân cấp DNS và không có bản ghi riêng.
Barmar

@Barmar Vâng, điều đang được nói ở đây là máy chủ có thẩm quyền đang báo cáo sự vắng mặt của tên bản ghi + cặp loại đó và djc đang thể hiện sự nhầm lẫn về điều này do bản ghi ký tự đại diện đã xuất hiện một thời gian.
Andrew B

Nhận xét của tôi được gửi đến điểm đầu tiên của bạn "NODATA và NXDOMAIN đều chỉ ra rằng tên đó không tồn tại". NXDOMAINcó nghĩa là tên không tồn tại, NODATAcó nghĩa là tên tồn tại nhưng loại bản ghi được yêu cầu thì không.
Barmar

2

Tôi không biết bất kỳ hướng dẫn cụ thể nào ngoại trừ những hướng dẫn được xác định trong phần "6.1.3.3 Sử dụng tài nguyên hiệu quả" của RFC 1123 http://tools.ietf.org/rfcmarkup?rfc=1123#page-77

Có một giá trị thời gian chờ là "không ít hơn 5 giây" được chỉ định. RFC cũng nói rằng các lỗi tạm thời nên được lưu trữ. Điều này là để ngăn chặn quá nhiều yêu cầu DNS nếu khách hàng vi phạm mục 2.2 của RFC. Phần đó nói rằng khách hàng nên đợi một khoảng thời gian "hợp lý" giữa các lần thử lại trong trường hợp thất bại mềm.

Ngoài ra còn có một chủ đề Stackoverflow về chủ đề này, nhưng nó không chứa nhiều thông tin hơn ngoại trừ một số quan sát trong thế giới thực. /programming/3036054/ideal-timeout-apse-for-dns-lookup

Đó là tất cả những gì tôi có thể nói về chủ đề này. Nếu ai đó có nhiều thứ để thêm, tôi cũng sẽ quan tâm.

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.