Làm thế nào để máy chủ tên DNS hoạt động trở lại?


14

Chúng tôi có hai máy chủ DNS được liệt kê trong hồ sơ NS của chúng tôi. Đêm qua, một trong những máy chủ DNS của chúng tôi đã bị sập. Như mong đợi, một số máy chủ DNS không giải quyết được tên máy chủ của chúng tôi. Tôi cho rằng điều này sẽ là tạm thời và sẽ bắt đầu hoạt động sau khi các bản ghi NS của chúng tôi hết hạn (1 giờ).

Một giờ sau, tôi vẫn nhận được thời gian chờ DNS từ máy tính để bàn đang sử dụng các máy chủ Earthlink, Verizon và OpenDNS. Tôi đã kiểm tra xem máy chủ DNS khác có trả lời không:

dig @ns2.example.com www.example.com +short

Điều này đã làm việc.

Những câu hỏi của tôi:

  1. Có ai có câu trả lời về lý do tại sao các máy chủ DNS khác không tấn công máy chủ DNS khác của chúng tôi ngay cả khi hết hạn không?
  2. Các máy chủ DNS có thích máy chủ DNS chính của tên miền (từ SOAbản ghi) không?
  3. Có thuật toán nào được sử dụng để chọn một máy chủ tên từ các bản ghi NS có sẵn không? Tôi cho rằng đây là triển khai cụ thể nhưng có lẽ có một số tiêu chuẩn áp dụng ở đây.

Các TTL không có gì để làm với bất cứ điều gì. Vì không có hồ sơ đã được thay đổi, nó không có hiệu lực liên quan.
David Schwartz

Ah, tôi thấy điều đó bây giờ. Doh.
Belmin Fernandez

Câu trả lời:


17

Đây là một kích thích đáng tiếc. Nhiều máy chủ DNS được cho là để tăng độ tin cậy, nhưng trong thực tế, nó thường có tác dụng ngược.

Vấn đề là máy khách chỉ đợi quá lâu để có phản hồi và máy chủ đợi khoảng thời gian tương tự. Giả sử bạn có hai máy chủ DNS, A và B. Nói A đang hoạt động và B đã thất bại. Điều này xảy ra:

  1. Máy khách kết nối với máy chủ tên Z và yêu cầu thông tin. Z chọn B và gửi một truy vấn.

  2. Máy khách hết thời gian vì máy chủ tên Z không phản hồi.

  3. Máy khách thử tên máy chủ Y. Y chọn B và gửi truy vấn.

  4. Tên máy chủ Z hết lần và thử A. Nó nhận được câu trả lời đúng, nhưng khách hàng không chờ đợi thêm nữa.

  5. Máy khách hết thời gian vì máy chủ tên Y không phản hồi.

  6. Máy khách bỏ cuộc, khiến cả hai máy chủ tên của nó không phản hồi.

  7. Tên máy chủ Y hết thời gian và thử A. Nó nhận được câu trả lời đúng, nhưng khách hàng không chờ đợi thêm nữa.

Và không có giải pháp tốt. Bạn chờ càng lâu để xem máy chủ tên trả lời, bạn càng phải chờ lâu hơn vì máy chủ tên mà bạn đang chờ đợi sẽ chờ lâu hơn. Có thể cho rằng, vấn đề là Y và Z đã không từ bỏ B đủ nhanh.

Về cơ bản, nếu bất kỳ máy chủ tên nào của bạn bị loại, một số khách hàng sẽ, thông qua sự xui xẻo, hết thời gian vì họ chỉ thử những máy chủ xấu.

Về mặt sáng sủa, nếu bạn có hai máy chủ tên và một lỗi, khoảng 75% máy chủ tên sẽ nhận được câu trả lời, thay vì 0%.


Tôi hiểu ý bạn là gì. Eek. Vì vậy, máy chủ tên của máy khách ( Z) sẽ không lưu trữ máy chủ tên mà nó sử dụng lần cuối hoạt động?
Belmin Fernandez

1
Một số máy chủ tên làm điều đó và đôi khi điều đó giúp. Nó thường phụ thuộc vào cách chính xác mà máy chủ tên thất bại. Bạn phải nhớ rằng đây là tất cả trên UDP, do đó, việc không nhận được trả lời (ngay cả sau khi truyền lại hoặc hai) không chứng minh được có gì sai với máy chủ tên.
David Schwartz

Tôi đã đọc trong bản sao DNS và BIND của mình (Paul Albitz và Cricket Lui, O'Rielly p278) rằng các máy chủ Bind 8.2.3 chọn máy chủ phản hồi nhanh nhất từ ​​danh sách các nhà chuyển tiếp của nó, điều đó có nghĩa là nếu máy chủ trong danh sách bị lỗi, thì đó là là khá nhiều tự động giảm. Bind 9 chưa thực hiện điều này, nó truy vấn các máy chủ chuyển tiếp theo thứ tự danh sách. Có ai biết nếu điều này đã thay đổi?
Jaydee

Để làm rõ, đối với những người ít thành thạo trong thiết lập DNS (tôi phải mất một thời gian để hiểu điều này), các máy chủ tên Z và Y trong ví dụ này rất có thể là các máy chủ tên đệ quy dựa trên mạng của máy khách, ví dụ: máy chủ DNS mà ISP cung cấp cho khách hàng của mình thông qua DHCP. Và vấn đề phát sinh khi các máy chủ này có giá trị thời gian chờ dài hơn trình phân giải DNS của máy khách (ví dụ: hệ điều hành thiết bị.)
Jordan Rieger

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.