DynamicDNS hoạt động ngay lập tức như thế nào?


16

Sự hiểu biết của tôi về chức năng cốt lõi của DNS là cung cấp dịch vụ đặt tên / ánh xạ giữa các tên miền (ví dụ blah-whatever.com) và địa chỉ IP (ví dụ 100.2.3.4 ).

Hơn nữa, sự hiểu biết của tôi về cách thức hoạt động của các máy chủ DNS Internet là khi thay đổi bản ghi ánh xạ tên miền / IP (giả sử thay đổi blah-whatever.comthành 105.2.3.4 , v.v.), thay đổi này cần được phổ biến trên mọi máy chủ DNS trên thế giới trước khi thay đổi có thể nói là "hoàn thành". Thời gian nhân giống này đôi khi có thể kéo dài đến 24 giờ.

Vì vậy, để bắt đầu, nếu bất cứ điều gì tôi đã nói cho đến nay là sai lầm hoặc không chính xác, xin vui lòng bắt đầu bằng cách sửa chữa cho tôi!

Giả sử tôi ít nhiều đúng, tôi không hiểu làm thế nào các công ty như CloudFlare hoặc DynamicDNS có thể cung cấp dịch vụ "tái đầu tư tức thời", theo đó bạn thay đổi bản ghi DNS của mình với họ và - bùng nổ - thay đổi sẽ ảnh hưởng ngay lập tức.

Tôi hiểu rằng có một thứ gọi là "TTL" (thời gian để sống, tôi đoán là?!?) Đóng vai trò trong khả năng tái đầu tư tức thời này, nhưng vì tôi đã mờ nhạt về khả năng bắt đầu với điều đó thật khó hiểu TTL này là hoặc mục đích của nó phục vụ.

Vì vậy, tôi hỏi: điều gì về Dynamic DNS và các đối thủ cạnh tranh cho phép họ thay đổi ánh xạ DNS ngay lập tức (không mất 24 giờ để truyền các thay đổi DNS như mọi người khác) và làm thế nào để phù hợp với quy trình này? Cảm ơn trước.

Câu trả lời:


3

Câu trả lời trước của tôi chứa thông tin sai vì tôi có một vài hiểu lầm về cách thay đổi DNS được lan truyền. Vì vậy, đây là một nỗ lực thứ hai. Để giải thích chi tiết, tôi khuyến khích bạn đọc câu trả lời của Alex .

Theo hiểu biết của tôi, có 2 yếu tố liên quan đến việc thay đổi DNS lan truyền nhanh như thế nào:

  1. Chuyển vùng giữa các máy chủ DNS có thẩm quyền cho một vùng.
  2. Các thiết lập TTL cho các bản ghi duy nhất trong khu vực đó.

Chuyển vùng

Cho rằng bạn cần hai máy chủ tên riêng biệt để quản lý một vùng, bạn muốn các máy chủ này nhanh chóng có sẵn phiên bản mới nhất của vùng đó cho chúng.

Đây là một trong hai đạt được bằng cách kéo phiên bản mới nhất của khu vực tại một khoảng thời gian cố định, hoặc chờ đợi một THÔNG BÁO từ một máy chủ tên có thẩm quyền.

Cho rằng cơ chế này nằm dưới sự kiểm soát hoàn toàn của bất kỳ ai chạy máy chủ tên, mọi sự chậm trễ trong lĩnh vực này đều có thể được kiểm soát hoàn toàn.

TTL

Các TTL là một thời gian chờ quy định cho mỗi bản ghi tài nguyên duy nhất trong một khu vực. Giá trị này xác định khoảng thời gian bản ghi sẽ được lưu trữ bởi các nhà cung cấp DNS không có thẩm quyền.

Xin lưu ý rằng giá trị này chỉ phát huy tác dụng nếu một bản ghi hiện có bị thay đổi. Hồ sơ mới chưa thể được lưu trữ.

Cho rằng TTL cũng chịu toàn quyền kiểm soát bất cứ ai kiểm soát khu vực, độ trễ cũng có thể được kiểm soát hoàn toàn.


Cảm ơn @Oliver (+1) - Vì vậy, nó có vẻ như "tái đầu tư tức thời" là một huyền thoại đô thị! Tôi đoán câu hỏi tiếp theo của tôi sẽ là: tại sao không tự chỉnh sửa bản ghi DNS của tôi? Có phải vì các công ty này cung cấp API để thay đổi DNS có thể được tự động hóa khi một số sự kiện nhất định kích hoạt? Tôi đoán tôi đang tìm kiếm mục đích gì họ phục vụ ở nơi đầu tiên!
pnongrata

1
@zharvey: Tất nhiên, bạn có thể tự chạy máy chủ DNS của mình và tự chỉnh sửa các vùng của mình. Nhưng bạn cần cung cấp ít nhất 2 máy chủ DNS riêng biệt có thẩm quyền cho vùng của bạn để được các máy chủ gốc chấp nhận. Mọi người thường không có sẵn loại cơ sở hạ tầng đó.
Der Hochstapler

1
Bạn có thể tự chỉnh sửa bản ghi DNS. Bạn chỉ cần chạy một cặp máy chủ tên (trong các mạng con khác nhau). DynDNS tuy nhiên không phù hợp với bạn và cho phép cập nhật tương đối dễ dàng. Về cơ bản bạn đang thuê ngoài một số công việc.
Hennes

@zharvey tất nhiên bạn có thể có một "cuộn qua ngay lập tức". Nếu bạn có nghĩa là theo nghĩa đen, chỉ cần để cả hai máy chuyển đổi IP của họ (điều này không phải lúc nào cũng có thể). Ngoài ra, bạn sẽ luôn có một độ trễ nhất định. Thông thường, nếu các dịch vụ được chuyển đến các máy chủ khác nhau, quản trị viên sẽ thay đổi TTL trước (ví dụ: hạ thấp nó xuống khoảng 1h) - vì vậy khi thay đổi diễn ra, độ trễ sẽ là tối thiểu. Sau khi hoàn thành, TTL sẽ được tăng lại (ví dụ: 24h trở lên) để cho phép bộ đệm tốt hơn và phản hồi nhanh hơn trên các truy vấn DNS. Nhưng điều đó thường không liên quan đến DynDNS;)
Izzy

2
Xin lỗi vì đã thô lỗ, nhưng câu trả lời này là sai bởi hầu hết mọi điểm.
Alex

18

Bạn có một số quan niệm sai lầm, vì vậy tôi sẽ cố gắng giải thích toàn bộ quá trình. (Tôi rất tốt với các chi tiết vì tôi tham gia vận hành dịch vụ DNS động công cộng).

Giả sử tên miền của bạn là example.com và giả sử tên miền example.com được lưu trữ với một số công ty DNS động, hãy gọi nó là lightfastdns.net (tên giả tưởng). Tên miền của bạn chứa bản ghi DNS - somehost.example.com , hiện đang trỏ đến 1.1.1.1 .

  1. Khi bạn thực hiện thay đổi đối với bản ghi DNS của mình, thay đổi này trước tiên được gửi đến một số máy chủ trung gian, được vận hành bởi lightfastdns.net, ví dụ: Updates.lightfastdns.net . Điều này xảy ra gần như ngay lập tức (trong một phần của giây). Bạn có thể gửi cập nhật của mình qua giao diện web hoặc với ứng dụng khách cập nhật động hoặc thông qua một số API. Điều đó không thành vấn đề, trong mọi trường hợp, bản cập nhật này sẽ đến trên một số máy chủ xử lý các bản cập nhật DNS.

  2. Máy chủ cập nhật này đẩy bản ghi cập nhật của bạn (giả sử, 1.2.3.4 ) sang máy chủ DNS " chính chủ " cho miền của bạn. Máy chủ DNS này cũng được điều hành bởi lightfastdns.net . Điều đó xảy ra nhanh như thế nào: phụ thuộc vào cách nhà cung cấp DNS thiết kế phần mềm của họ. (Nó có thể ngay lập tức, và có thể mỗi 24 giờ. Ví dụ gandi.net cập nhật push DNS một lần mỗi giờ.) Dĩ nhiên, chúng tôi lightfastdns.net sẽ làm điều đó ngay lập tức.

  3. Máy chủ DNS chính này sẽ đẩy các bản cập nhật lên các máy chủ DNS nô lệ cho tên miền example.com . Máy chủ này cũng được vận hành bởi cùng một công ty lightfastdns.net . Việc này diễn ra nhanh như thế nào: với chủ phần mềm hiện đại sẽ ngay lập tức gửi tin nhắn THÔNG BÁO đến các nô lệ và họ sẽ ngay lập tức nhận được bản ghi cập nhật từ chủ. với phần mềm cũ hơn, chúng tôi đã có các giá trị REFRESH và RETRY trong bản ghi SOA, nhưng ngày nay nó hiếm khi có liên quan. Tất nhiên, lightfastdns.net của chúng tôi thực hiện THÔNG BÁO và cập nhật lan truyền ngay lập tức.

Những gì chúng tôi có bây giờ là tất cả các máy chủ "có thẩm quyền" cho tên miền của bạn đã nhận được bản ghi cập nhật ( 1.2.3.4 ). Đối với lightfastdns.net , mất khoảng hai giây.

  1. Bây giờ, chúng tôi sẽ chuyển đến nhà của Ivan tại Nga và Ivan muốn mở " somehost.example.com " trong trình duyệt của anh ấy. Nếu anh ta chưa bao giờ mở nó trước đó, trình duyệt của anh ta không biết địa chỉ, vì vậy trình duyệt sẽ hỏi hệ điều hành của anh ta. Nhưng, nếu anh ấy truy cập trang web gần đây, địa chỉ vẫn có thể được lưu trữ bên trong trình duyệt và anh ấy sẽ sử dụng địa chỉ cũ (lỗi thời)! Trong bao lâu? - Tùy thuộc vào trình duyệt, Google Chrome chẳng hạn chỉ lưu trữ các bản ghi DNS trong tối đa 60 giây. Chúng tôi có độ trễ lên tới 60 giây . vì thực tế này, tôi muốn nói rằng sự thay đổi DNS chưa lan truyền đến trình duyệt này.

  2. Trong mọi trường hợp, sau 60 giây hoặc ngay lập tức, trình duyệt cuối cùng sẽ yêu cầu hệ điều hành lấy địa chỉ. Hệ điều hành có thể đã biết câu trả lời (cũ, lỗi thời) và trả lại, trong trường hợp này tôi nói rằng bản ghi mới không truyền tới HĐH của Ivan. Hệ điều hành sẽ lưu trữ giá trị cũ trong bao lâu - cho các hệ điều hành hiện đại này được điều khiển bởi tham số TTL . TTL trong DNS xác định thời gian lưu bản ghi trong bộ đệm. Lightfastdns.net của chúng tôi cho phép sử dụng TTL khá thấp - 30 giây, do đó, chúng tôi có độ trễ mới lên tới 30 giây, nói chung - 90 giây cho đến nay.

  3. Nếu HĐH không biết câu trả lời hoặc nếu câu trả lời mà nó biết đã lỗi thời bởi TTL, HĐH sẽ hỏi trình phân giải DNS (ISP của Ivan đã gán cho anh ta một trình phân giải DNS dns.moscow-telecom.ru ). Ở đây, bản ghi cũ có thể được lưu trong bộ nhớ cache lên đến TTL giây hoặc dns.moscow-telecom.ru có thể không biết địa chỉ. Chúng tôi nhận thêm 30 giây nữa, vì dns.moscow-telecom.ru cũng lưu trữ DNS không dài hơn giá trị TTL. Chúng tôi có độ trễ 120 giây . Đó là những gì được gọi là bản ghi DNS mới chưa được truyền tới các máy chủ DNS của Moscow-Telecom .

  4. Nếu máy chủ DNS của ISP không biết câu trả lời, hoặc nếu câu trả lời nó biết là đã lỗi thời vì nó TTL hết hạn - dns.moscow-telecom.ru sẽ hỏi một trong những thẩm quyền máy chủ DNS cho example.net (làm bạn nhớ họ?). Những người đã nhận được sự thay đổi khoảng 118 giây trước và họ sẽ trả lời câu trả lời mới, câu trả lời này sẽ được gửi ngay lập tức theo chuỗi tới trình phân giải DNS, tới HĐH và tới trình duyệt của Ivan.

Do đó, việc truyền bản ghi mất từ ​​2 đến 120 giây, tùy thuộc vào trạng thái của các bộ đệm khác nhau. TTL dài hơn - sự chậm trễ lâu hơn có thể diễn ra.

Để làm cho nó hoàn thành - một số ISP vi phạm các tiêu chuẩn và bản ghi bộ đệm trong thời gian dài. Một số HĐH cũ giữ kỷ lục cũ trong thời gian dài và các trình duyệt cũ cũng vậy. Nhưng đối với hầu hết người dùng, nó sẽ hoạt động như mong đợi.


Tôi rất xin lỗi vì nó đã xuất hiện dài dòng này . Có thể ai đó muốn tạo một biến thể ngắn hơn (như một câu trả lời riêng) - bạn được chào đón.
Alex

@zharvey Trên thực tế, bạn đã hỏi sự khác biệt giữa động và không động - đó là 1. Họ xử lý các bước (2) và (3) nhanh như thế nào.
Alex

3

Không. Thay đổi không cần truyền tới mọi máy chủ DNS trên thế giới .

Nếu bạn thay đổi điều gì đó và ai đó truy vấn bản ghi đã thay đổi trên máy chủ DNS của bạn thì kết quả là tức thời.

Vấn đề là nếu bạn truy vấn tên này trước đó và nó đã được lưu trữ. Sau đó, bạn sẽ nhận được IP cũ cho đến khi bộ nhớ cache hết hạn. Trong DNS, bạn có thể đặt thời gian truy vấn cũ hợp lệ và khoảng thời gian đó thường được đặt thành vài ngày. Đối với DynDNS, nó thường được đặt thấp hơn, nhưng không phải tất cả các trình phân giải DNS đều tôn trọng điều đó.


Cảm ơn @Hennes (+1) - vui lòng xem câu hỏi của tôi dưới câu trả lời của Oliver - Tôi có cùng câu hỏi với bạn!
pnongrata
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.