Tại sao các bản ghi DNS của chúng tôi không được truyền bá trên internet?


22

Chúng tôi chạy các máy chủ tên cho tên miền của chúng tôi trên mạng của chúng tôi. Chúng tôi sử dụng ràng buộc / được đặt tên. Hãy gọi ví dụ tên miền.com . Một điều tôi nhận thấy gần đây, khi tôi xem một trang web như http://network-tools.com và chạy các truy vấn trên các URL được xác định trên các máy chủ tên của chúng tôi, tôi thấy các thay đổi ngay lập tức.

Ví dụ: nếu tôi thêm một mục vào máy chủ DNS của chúng tôi cho url funny.example.com và sau đó tra cứu url đó trên http://network-tools.com , tôi thấy IP tĩnh bên ngoài thích hợp được liệt kê ngay lập tức.

Điều đó nói với tôi rằng mọi yêu cầu DNS liên quan đến example.com đều được gửi thẳng đến máy chủ DNS của chúng tôi mỗi lần.

Những nghi ngờ của tôi đã được xác nhận vào đầu tuần khi các máy chủ DNS của chúng tôi ngừng hoạt động trong một thời gian rất ngắn. Và trong khoảng thời gian đó, nếu tôi sử dụng http://network-tools.com để truy vấn example.com hoặc bất kỳ tên miền phụ nào của nó, tôi sẽ không nhận được kết quả nào. Rõ ràng là do các máy chủ DNS không hoạt động và không thể truy cập được.

Vì vậy, điều này mang lại cho tôi câu hỏi của tôi. Tôi nghĩ rằng các thay đổi đối với máy chủ DNS của chúng tôi sẽ được đưa lên internet tới các máy chủ DNS khác. Theo cách đó, nếu DNS của chúng tôi tạm thời ngừng hoạt động, các máy chủ khác trên internet vẫn biết địa chỉ IP example.com trỏ đến.

Tôi có hiểu nhầm công cụ DNS này không? Các máy chủ DNS do bên thứ 3 kiểm soát như của chúng tôi không được phép truyền thông tin DNS đến các máy chủ khác trên mạng?

Tôi nên bắt đầu điều tra xem tại sao những thay đổi không được thực hiện ở đó? Tôi có thể thấy trên tường lửa của chúng tôi rằng lưu lượng cổng 53 đang chuyển đến các máy chủ DNS của chúng tôi đúng cách.

CẬP NHẬT

  1. Tôi biết các bạn đang nói rằng không thể xuất bản cài đặt DNS của bạn ngay lập tức, nhưng tất cả những gì tôi biết là: Nếu tôi thực hiện thay đổi DNS trên (các) máy chủ DNS của chúng tôi và sau đó kiểm tra ngay trên http: // công cụ mạng. com , tôi thấy những thay đổi ngay lập tức.

  2. Nếu tôi tắt máy chủ DNS của chúng tôi và sau đó tôi cố kiểm tra bất kỳ URL nào bằng cách sử dụng http://network-tools.com , trang web không thể tìm thấy bất kỳ URL nào. Nhưng nếu tôi đưa máy chủ DNS trở lại trực tuyến, tất cả http://network-tools.com bất ngờ có thể tìm lại URL ... Điều này cho tôi biết rằng các máy chủ KHÔNG lưu trữ cài đặt DNS của chúng tôi. Tôi có lầm không? Ngoài ra, cài đặt TTL của chúng tôi được đặt thành 900 (15 phút) tại thời điểm này và các máy chủ DNS của chúng tôi đã chạy được hơn một năm. Vì vậy, nó không giống như các máy chủ DNS trên internet chưa có cơ hội để lưu trữ nó. Có phải lý do máy chủ không lưu bộ đệm trong cài đặt vì hiện tại quá thấp? Điều đó có ý nghĩa nếu đó là lý do.


7
Vì jokerville.com là tên miền đã đăng ký thực sự, trừ khi đó thực sự là tên miền của bạn, vui lòng sử dụng example.comthay thế - nó chính thức được dành riêng cho mục đích đó.
mattdm

9
Lý do mà network-tools.com đang thấy các thay đổi ngay lập tức là vì đó là một công cụ mạng và HOÀN TOÀN không lưu trữ kết quả. Đây là một công cụ để xem các máy chủ tên của bạn, không phải máy khách DNS bình thường, vì vậy nó tuân theo các quy tắc khác nhau.
Michael Kohne

Câu trả lời:


42

Vâng, bạn đang hiểu nhầm cách DNS hoạt động. Tôi sẽ sử dụng một số điểm nhấn ở đây, nhưng xin đừng xúc phạm vì không có ý định.

HỒ SƠ DNS KHÔNG ĐƯỢC ĐỀ XUẤT. HỌ LÀ BẮT ĐẦU.

Điều đó đang được nói, đây là một lời giải thích đơn giản về những gì xảy ra:

  1. Bạn tạo bản ghi DNS mới (A, CNAME, v.v.)

  2. Một người dùng từ xa (cụ thể hơn là một quá trình \ ứng dụng do người dùng khởi chạy) cố gắng truy cập một dịch vụ được truy cập thông qua bản ghi DNS đó (một trình duyệt web đang cố truy cập trang web đang chạy trên funny.example.com chẳng hạn)

  3. Máy khách DNS của người dùng gửi một truy vấn DNS đến máy chủ DNS của nó, máy chủ DNS sau đó tìm thấy các máy chủ tên của bạn (thường thông qua một loạt các truy vấn DNS đệ quy) và hỏi họ về thông tin liên quan đến funny.example.com

  4. Máy chủ tên của bạn trả lời với câu trả lời

  5. Sau đó, máy chủ DNS của người dùng sẽ gửi thông tin này đến người dùng (cụ thể hơn là trình phân giải máy khách DNS của người dùng), từ đó trả về thông tin cho process \ application. Thông tin này đi kèm với cái được gọi là TTL (Thời gian sống) cho biết trình phân giải máy khách DNS trong bao lâu thông tin này có thể được lưu trong bộ đệm DNS (trong bộ nhớ) và thông tin có thể được coi là hiện tại và chính xác trong bao lâu

  6. Trình phân giải máy khách DNS của người dùng sau đó xóa thông tin này khi hết hạn. Bất kỳ yêu cầu mới nào đối với (các) bản ghi DNS được đề cập đều yêu cầu tra cứu DNS mới và quá trình trên lặp lại.

Vì vậy, dài và ngắn của nó là:

Bản ghi DNS của bạn không tuyên truyền. Không có máy chủ DNS nào khác có bản sao các bản ghi hoặc vùng DNS của bạn. Máy khách hoặc máy chủ DNS có thể lưu trữ thông tin về các bản ghi hoặc vùng DNS của bạn (dựa trên các truy vấn DNS của bản ghi và vùng DNS của bạn) vào bộ đệm DNS của chúng. Thông tin này được lưu tạm thời và sẽ bị xóa khỏi bộ đệm DNS của họ khi hết hạn.

Nếu máy chủ tên của bạn không hoạt động, chỉ những máy khách DNS có bất kỳ bản ghi DNS nào trong bộ đệm của chúng mới có thể giải quyết các bản ghi DNS đó và chỉ cho đến khi hết hạn. Ngoài ra, khi hết hạn (hết hạn sử dụng DNS lokkup mới), các máy khách DNS đó sẽ không thể giải quyết các bản ghi DNS của bạn nữa.


Giải thích tốt và tôi có thể thêm một ví dụ về giao thức có sự lan truyền (không giống như DNS): BGP.
bortzmeyer

11

nó sẽ giúp ích rất nhiều nếu bạn nói với chúng tôi tên miền thực của bạn, sau đó chúng tôi có thể trả lời câu hỏi của bạn bằng cách tham khảo thiết lập thực tế của bạn và chỉ ra bất kỳ lỗi nào.

Tôi có xu hướng tin tưởng http://dns.squish.net/ để chẩn đoán sự cố DNS nhanh chóng. Điều đó sẽ cho bạn biết chắc chắn vấn đề của bạn nằm ở đâu sau khi bạn thực hiện thay đổi - về cơ bản nếu phái đoàn của bạn từ thượng nguồn là chính xác và tất cả 2-3 máy chủ tên của bạn đều đưa ra câu trả lời giống nhau và ai đó không nhìn thấy bản ghi mới, họ sẽ chỉ phải đợi mạng cục bộ của mình để xem các thay đổi. Nếu trình kiểm tra đó cho bạn biết một trong các máy chủ của bạn không đưa ra phản hồi giống như các máy chủ khác, bạn cần khắc phục sự cố đó.

Không có cách nào bạn có thể xuất bản các thay đổi DNS ngay lập tức - tốt, bạn có thể xuất bản chúng ngay lập tức, nhưng phần còn lại của thế giới sẽ bị tụt lại phía sau theo cài đặt TTL của mỗi bản ghi, ví dụ: nếu bạn đã đặt bản ghi TTL là 86400 giây ( một ngày nào đó) và bạn thực hiện thay đổi, những người khác sẽ thấy bản ghi cũ tối đa cả ngày, vì bộ nhớ cache cục bộ của họ sẽ không hỏi bạn cho đến khi bản sao của bản ghi hết hạn.

Tôi sẽ đề nghị rằng trước khi có bất kỳ thay đổi DNS lớn nào, bạn hãy giảm TTL xuống còn 600 (10 phút) để khuyến khích các bộ nhớ cache trên internet không giữ các bản ghi cũ quá lâu. Nhưng một số bộ đệm sẽ bỏ qua điều này, hoặc giả sử 1 ngày, hoặc thậm chí 1 tuần.

Một câu trả lời lan man cho một câu hỏi lan man, hy vọng có một cái gì đó hữu ích trong đó mặc dù.


1
+1. Để rõ ràng, chỉ những máy khách DNS đã có thông tin trong bộ đệm của họ, mà TTL chưa hết hạn, sẽ bị ảnh hưởng bởi một thay đổi. Bất kỳ yêu cầu mới nào không có dữ liệu trong bộ đệm sẽ giải quyết ngay lập tức.
joeqwerty

fyi: liên kết chết - squish.net/dnscheck
Aaron Esau

8

Có một câu ngạn ngữ cũ, "Thay đổi DNS có thể mất 24-48 giờ để truyền qua internet" sẽ chính xác hơn "Các thay đổi DNS có thể được lưu trong bộ nhớ cache trên bất kỳ máy chủ DNS nào đã truy vấn bản ghi này trong vòng 86400 giây."

Nếu bạn muốn đảm bảo dự phòng DNS của mình trong trường hợp máy chủ của bạn ngoại tuyến, bạn nên xem xét dịch vụ DNS dự phòng (như tại dyndns.com) hoặc tạo NS phụ của riêng bạn.


5

Tất cả các máy chủ DNS trên Internet là "do bên thứ 3 kiểm soát" (Tôi cho rằng bạn có thể coi máy chủ DNS gốc là "độc quyền" nào đó với Internet, nhưng cũng không có lý do kỹ thuật nào có thể đưa ra quyền riêng tư của riêng bạn).

Máy chủ DNS của bạn cung cấp "thời gian sống" được đề xuất (TTL) trong mỗi câu trả lời mà nó cung cấp. Bộ giải quyết từ xa (các máy chủ DNS khác thực hiện độ phân giải đệ quy cho máy khách, thư viện trình phân giải máy khách, v.v.) được cho là để lưu câu trả lời cho tối đa TTL đó trước khi loại bỏ nó khỏi bộ đệm.

Nếu bạn không thấy các thay đổi mà bạn đang thực hiện đối với các bản ghi hiện tại được phản ánh trong các truy vấn trong thế giới thực, điều đó có thể có nghĩa là các giá trị TTL của bạn đủ cao để bạn không chờ đợi đủ lâu để xem các câu trả lời hiện có trong độ phân giải lưu trữ xung quanh 'mạng.

Một số nền tảng từ Lỗi Máy chủ: Tại sao lại gọi là DNS "Tuyên truyền"?


2

Khi ai đó (hoặc một số máy tính) trên Internet, có thể nói, muốn kết nối với một trong các máy của bạn, họ sẽ hỏi máy chủ tên địa phương của họ để biết địa chỉ IP khớp với tên máy chủ mà họ quan tâm.

Vì vậy, nếu bạn nói với ai đó "này, hãy xem trang web tuyệt vời của tôi http://www.example.com ", máy tính của người kia sẽ hỏi máy chủ tên địa phương của nó "này, địa chỉ IP cho www.example.com là gì?"

Giả sử máy chủ tên cục bộ chưa bao giờ tra cứu câu trả lời cho câu hỏi đó trước đó, nó sẽ yêu cầu máy chủ tên gốc tìm ra (các) máy chủ nào xử lý tra cứu cho ".com". Khi nhận được câu trả lời đó, nó sẽ hỏi những máy chủ nào máy chủ xử lý tra cứu cho "example.com". Khi nhận được câu trả lời đó, nếu sẽ yêu cầu các máy chủ đó cung cấp địa chỉ IP cho "www.example.com".

Khi (các) máy chủ ví dụ.com trả lời bằng địa chỉ IP cho www.example.com, họ cũng sẽ cung cấp cho máy chủ tên yêu cầu một gợi ý về thời gian cần nhớ câu trả lời cho câu hỏi này. Gợi ý đó được gọi là "TTL" hoặc "thời gian để sống" và được đo bằng giây. Không có gì đảm bảo rằng bất kỳ máy chủ nào cũng sẽ chú ý đến TTL - một số máy chủ tên có thể được cấu hình để không bao giờ nhớ câu trả lời cho việc tra cứu và sẽ luôn lặp lại quy trình ngay cả khi được hỏi vài lần mỗi giây. Các máy chủ tên khác có thể được cấu hình để giữ câu trả lời trong một thời gian dài, ngay cả khi bạn đã gợi ý rằng dữ liệu chỉ được lưu trong một thời gian ngắn, có lẽ vì chúng muốn giảm thiểu lưu lượng mạng. TTL chỉ là một gợi ý, không phải là một yêu cầu hay bảo đảm.

Câu trả lời theo nghĩa đen cho câu hỏi của bạn - tại sao các bản ghi DNS của bạn không được truyền bá trên internet - là họ không làm điều đó bởi vì họ không được phép.

Ngoài ra, nếu bạn đang xem thông tin DNS của chính mình bằng một trang web được thiết kế để nghiên cứu hoặc gỡ lỗi thông tin DNS, thì rất có thể trang web đó sẽ không lưu trữ dữ liệu trong thời gian dài, hoặc bất kể đề xuất TTL của bạn là gì, bởi vì Mục tiêu của trang web có lẽ là cung cấp thông tin về những gì hệ thống DNS nói NGAY BÂY GIỜ, chứ không phải 5 hoặc 50 hoặc 500 giây trước. Đây là lý do tại sao các thay đổi của bạn được phản ánh ngay lập tức và tại sao dịch vụ ngừng hoạt động ngay khi bạn ngắt kết nối máy chủ tên.

Tôi nghi ngờ câu hỏi tiềm ẩn của bạn có thể là "làm cách nào tôi có thể thiết lập mọi thứ để nếu máy chủ DNS của tôi khởi động lại hoặc đĩa cứng của nó chết, những người khác trên internet vẫn có thể xem các trang web của tôi?"

Câu trả lời cho câu hỏi đó là thiết lập một số máy chủ tên miền cho tên miền của bạn và để chúng chạy trên các máy khác nhau - lý tưởng nhất là không chỉ các máy tính vật lý khác nhau, mà với các kết nối mạng khác nhau, thậm chí ở các thành phố hoặc quốc gia hoặc lục địa khác nhau. Hầu hết các máy chủ tên này sẽ được thiết lập là "nô lệ", có nghĩa là họ tìm đến một máy chủ tên "chính" để biết thông tin của họ và sau đó lặp lại thông tin đó cho bất kỳ ai hỏi họ về dữ liệu.

Vì vậy, trong dữ liệu WHOIS của bạn với công ty đăng ký tên miền, bạn có thể định cấu hình bốn máy chủ tên cho tên miền của mình:

ns1.example.com ns2.example.com ns1.otherguy.com ns2.otherguy.com

trong đó ns1.example.com là máy chủ DNS hiện tại của bạn. ns2.example.com có ​​thể là một máy khác trong công ty / tổ chức của bạn - lý tưởng không phải trên cùng một mạng con và trong cùng một giá đỡ máy chủ (hoặc dưới cùng một bàn của anh chàng) như ns1.example.com.

ns1.example.com sẽ được coi là máy chủ "chính" và khi bạn muốn thay đổi DNS của mình, bạn sẽ thực hiện các thay đổi của mình trên máy đó.

ns2.example.com sẽ được cấu hình như một máy chủ "nô lệ", chỉ sao chép bất kỳ dữ liệu nào bạn đã thiết lập trên ns1.example.com - nhưng thế giới bên ngoài không quan tâm đến sự phân biệt chủ / nô lệ, ns2.example .com sẽ được coi là "chính thức" như ns1.example.com.

ns1.otherguy.com và ns2.otherguy.com là những máy được thiết lập ở một nơi khác - có thể bạn sắp xếp với một người bạn / đồng nghiệp tại một tổ chức khác để chạy máy chủ tên cho nhau hoặc có thể bạn được thiết lập với dyndns.com hoặc everydns.net hoặc bất kỳ nhà cung cấp DNS thương mại hoặc miễn phí nào khác. Tuy nhiên, bạn giải quyết được, bạn lấy các máy đó được cấu hình thành nô lệ để chúng lấy thông tin DNS cho example.com từ ns1.example.com ("chủ nhân" của bạn) và chúng sẽ cung cấp thông tin DNS đó cho bất kỳ máy nào trên Internet yêu cầu nó.

Khi nhà đăng ký tên miền của bạn xuất bản các bản ghi NS mới cho tên miền của bạn (sẽ gần như ngay lập tức), sau đó khi có ai đó trên internet hỏi máy chủ tên miền nào xử lý "example.com", họ sẽ nhận được bốn câu trả lời -

ns1.example.com, ns2.example.com, ns1.otherguy.com, ns2.otherguy.com

Tùy thuộc vào cách thiết lập máy chủ tên của người kia, họ có thể coi bốn người đó như một danh sách và hỏi họ một lúc làm thế nào để tiếp cận "www.example.com" - hoặc có thể hỏi cả bốn người trong số họ cùng một câu hỏi tại đồng thời, và chỉ cần lấy câu trả lời từ bất kỳ máy nào trả lời trước. Dù bằng cách nào, nếu ns1.example.com không hoạt động do đĩa cứng bị chết hoặc bạn quyết định khởi động lại hoặc bất cứ điều gì, thì 3 máy còn lại sẽ có sẵn để trả lời câu hỏi và trang web của bạn sẽ tiếp tục hiển thị.

Cách dễ nhất để giải quyết vấn đề này là đăng ký với nhà cung cấp dịch vụ DNS, người sẽ xử lý DNS cho tên miền của bạn - giá cho loại này dao động từ miễn phí đến hàng ngàn (thậm chí hàng chục hoặc hàng trăm nghìn) đô la mỗi tháng, tùy thuộc vào mức độ dịch vụ bạn muốn. Bạn có thể nhận được dịch vụ hợp lý đáng tin cậy với giá $ 30 / năm hoặc hơn. Các dịch vụ miễn phí không phải là khủng khiếp và do đó, có tỷ lệ kiếm tiền khá tốt, nhưng nếu bạn phụ thuộc vào trang web của mình để kiếm tiền, bạn sẽ có thể kiếm được 30 đô la cho DNS trị giá một năm .

Sau đó, làm theo hướng dẫn từ nhà cung cấp dịch vụ DNS để thay đổi bản ghi NS tại công ty đăng ký tên miền của bạn và bạn sẽ hoàn tất.


0

Bộ nhớ đệm được thực hiện bởi máy chủ DNS khác phụ thuộc vào TTL được chỉ định để ghi. Trong trường hợp của bạn có thể là TTL rất thấp hoặc cao. Bạn có thể cho chúng tôi biết thêm thông tin về cấu hình DNS của bạn không?

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.