Làm thế nào để kiểm tra nếu thông tin DNS đã lan truyền?


16

Tôi đã thiết lập một mục nhập DNS mới cho một trong các tên miền phụ của mình (Tôi chưa thiết lập bất kỳ máy chủ ảo Apache nào hoặc bất cứ thứ gì tương tự). Làm cách nào để kiểm tra thông tin DNS đã lan truyền?

Tôi giả định rằng tôi có thể đơn giản ping my.subdomain.comvà cho rằng nếu nó có thể giải quyết, nó sẽ hiển thị địa chỉ IP tôi đã chỉ định trong bản ghi A. Tuy nhiên, tôi không biết nếu tôi giả định chính xác. Cách tốt nhất để kiểm tra thông tin này là gì?


3
Không phải là một câu hỏi ngớ ngẩn. Nó không phải là thẳng về phía trước để tìm ra loại điều này.
aseq

1
Tôi đồng ý với @aseq rằng đây không phải là một câu hỏi ngớ ngẩn , nhưng "hãy thử và xem" cũng sẽ cho bạn câu trả lời. Đó cũng là điều mà Google có thể trả lời dễ dàng chỉ với một chút nỗ lực (tìm kiếm How to test if DNS information has propagated- tiêu đề câu hỏi đẫm máu tạo ra kết quả tốt cho Google).
voretaq7

4
Tôi không nghĩ bạn lãng phí thời gian của mọi người. Câu hỏi của bạn gây ra một số câu trả lời có giá trị. Bạn không bao giờ biết làm thế nào một câu hỏi có vẻ đơn giản có thể "chỉ bị googled" có thể bật ra. Một trong những giá trị của diễn đàn này là câu trả lời và câu hỏi có thể được mở rộng rất dễ dàng.
aseq

1
@andrew không có gì sai khi hỏi những gì nhiều người trong chúng ta xem là những câu hỏi đơn giản - đây có thể sẽ là kết quả hàng đầu của google cho chuỗi đó trong vài ngày vì cách trang web được lập chỉ mục / xếp hạng. Nói chung, mặc dù Google là một nơi tốt hơn (nhanh hơn) để tìm kiếm: Nếu Google không biết thì hãy hỏi tại đây (và Google sẽ tìm hiểu) :-)
voretaq7

1
Tôi đã tìm ra lý do tại sao không có gì tôi đang cố gắng làm việc. Rõ ràng, mạng của chúng tôi được cấu hình theo cách mà một tên miền phụ mới cũng phải được thêm vào DNS cục bộ của chúng tôi. Vì vậy, tên miền phụ có thể truy cập được từ thế giới bên ngoài, không phải trong mạng của chúng tôi nơi tôi đang thử nghiệm. = [Nhưng việc sử dụng nslookupdigtrong khi chỉ định một máy chủ bên ngoài đã tạo ra nó để tôi có thể xác minh thông tin DNS bên ngoài.
Andrew

Câu trả lời:


15

Bạn có thể sử dụng dig hoặc nslookup, giả sử máy chủ tên của bạn (hoặc nhà cung cấp của bạn nếu bạn không chạy máy chủ tên của riêng bạn) là ns1.example.com.

Sử dụng nslookup:

nslookup - ns1.example.com

Tại loại dấu nhắc:

my.example.com

Nếu nó giải quyết được những gì bạn mong đợi thì nó hoạt động. Nó sẽ cung cấp cho bạn một cái gì đó như:

Name:   example.com
Address: 192.0.43.10

Có thể vẫn cần một thời gian để truyền bá đến phần còn lại của internet, điều đó nằm ngoài tầm kiểm soát của bạn.

Sử dụng đào:

dig@ns1.example.com my.example.com

Bạn sẽ thấy một cái gì đó như:

;; ANSWER SECTION:
example.com.        172800  IN  A   192.0.43.10

Chỉ sử dụng ping có thể cho bạn một ý tưởng, nhưng chỉ khi nó được truyền bá (được lưu trữ bởi các máy chủ tên từ xa có thể là một cách tốt hơn để mô tả nó) và bộ đệm dns cục bộ của bạn có thể cần phải được xóa. Mặc dù trong trường hợp của bạn, điều này không áp dụng vì đây là một bản ghi mới. Trong trường hợp đó, nó sẽ có sẵn ngay lập tức. Cách trên là chính xác hơn trong việc cung cấp cho bạn một ý tưởng trái ngược với chỉ ping nó.

Nếu bạn sử dụng windows thì các lệnh và cú pháp có thể hơi khác nhau, nhưng khá giống nhau.


3
+1 Nếu bạn đang làm bất cứ điều gì với DNS, hãy lấy một bản sao dig(* nix hệ thống đã có sẵn, có nhiều phiên bản khác nhau cho Windows).
Chris S

3
-1. Tôi xin lỗi. Tôi thực sự là vậy, nhưng câu trả lời này "truyền bá" huyền thoại mà bản ghi DNS truyền bá, điều mà họ chắc chắn nhất là KHÔNG. Thuật ngữ bạn đang tìm kiếm là "bộ nhớ đệm", đó là những gì xảy ra với các bản ghi DNS, dựa trên TTL của bản ghi. Vì OP đang đề cập đến một bản ghi DNS mới, không có bộ nhớ đệm nào có thể xảy ra, do đó, bất kỳ ứng dụng khách DNS nào đang tìm cách giải quyết bản ghi trong câu hỏi sẽ nhận được câu trả lời ... ngay lập tức ... vì khách hàng đó không thể lưu vào bộ nhớ cache ... hoặc máy chủ DNS của máy khách đó ... hoặc bất kỳ máy chủ DNS nào khác. Bản ghi DNS không truyền tới "phần còn lại của internet".
joeqwerty

1
joeqwerty hoàn toàn chính xác. máy chủ dns sẽ lưu trữ một cú đánh tích cực hoặc tiêu cực trong một thời gian được xác định trước. Tuy nhiên, ngoài bài đăng gốc, có một số máy chủ tên công khai mà bạn có thể kiểm tra bao gồm GTE cũ (4.2.2.1, 4.2.2.2, 4.2.2.3 và 4.2.2.4) và google (8.8.8.8, 8.8. 4.4). Quy tắc đơn giản, những thay đổi mới có thể mất đến thời gian của ttl cho lượt truy cập tích cực hoặc tiêu cực. Tuy nhiên, có những trường hợp ứng dụng triển khai các câu trả lời logic và bộ đệm xấu trong một khoảng thời gian dài hơn.
bangdang

2
Tôi không nghĩ rằng bạn thực sự phải tuân theo định nghĩa chính xác để có được một điểm. Bên cạnh đó tôi nghĩ rằng tuyên truyền không phải là một từ xấu để sử dụng. Nó bao quát chủ đề theo nghĩa là bộ nhớ đệm của bản ghi DNS sẽ lan ra một phạm vi rộng hơn của các máy chủ. Điều đó lan ra là những gì tuyên truyền đề cập đến. Tôi đã cập nhật câu trả lời của mình để phản ánh thực tế một bản ghi mới có sẵn ngay lập tức.
aseq

1
@aseq, đó là một thuật ngữ sai lệch. Và nó chủ yếu chỉ ra rằng những người nghĩ / nói về DNS như là "sự truyền bá" không biết DNS hoạt động như thế nào. Họ thường tuyên bố một câu chuyện tào lao như "phải mất 2 ngày 3 thông tin DNS của bạn để được truyền bá trên Internet / Trái đất", v.v.
poige

7

Bạn không thể kiểm tra lan truyền bản ghi DNS vì việc lan truyền DNS không xảy ra. Những gì bạn có thể kiểm tra là liệu máy khách hoặc máy chủ DNS có bản ghi DNS cụ thể được lưu trong bộ nhớ cache hay không.

Vì đây là bản ghi DNS mới, không có bộ nhớ đệm nào có thể xảy ra. Giả sử rằng máy chủ tên của bạn được đăng ký chính xác tại máy chủ mẹ và máy chủ tên của bạn đang hoạt động chính xác, bản ghi DNS này sẽ có sẵn ngay lập tức cho bất kỳ và mọi máy khách hoặc máy chủ DNS.


Vui mừng được giúp đỡ ...
joeqwerty

Có cách nào để kiểm tra xem tôi đã nhập IP hợp lệ không? Tôi chỉ muốn chắc chắn rằng địa chỉ IP tôi đã sử dụng là đúng. Một người mà tôi đã nói chuyện dường như nghĩ rằng ping sẽ thất bại nếu tôi chưa cài đặt Apache Vhost.
Andrew

Ping không phải là một công cụ kiểm tra DNS. Dig và Nslookup là các công cụ kiểm tra DNS. Sử dụng Dig hoặc Nslookup để kiểm tra bản ghi DNS mới. Truy vấn bản ghi đối với máy chủ tên của bạn và sau đó truy vấn bản ghi đối với các máy chủ tên khác để đảm bảo rằng họ đang tìm thấy máy chủ tên của bạn và máy chủ tên của bạn phản hồi với câu trả lời đúng.
joeqwerty

1
"Tuyên truyền" là một khái niệm được tạo thành trong trường hợp mọi người không thể hiểu được tình hình thực tế, đó là sự lão hóa và hết hạn bộ đệm. Điều cần thiết để nói bởi các nhà cung cấp DNS là "dữ liệu của bạn có thể không được nhìn thấy cho đến sau XX giờ". Một lời giải thích về lý do cần thiết để nó không giống như nhà cung cấp DNS là sự chậm trễ. Quá nhiều người "không thể xử lý sự thật". "Tuyên truyền" tạo thành là một câu chuyện trang bìa hiệu quả. Những người đam mê DNS thực sự biết những gì thực sự xảy ra bởi vì họ đọc các chi tiết kỹ thuật.
Skaperen

Đúng như vậy ... Tôi chỉ ghét sử dụng một thuật ngữ "truyền bá" một quan niệm sai lầm về cách thức hoạt động của DNS.
joeqwerty

5

Mặc dù các câu trả lời khác khá hay, hãy nhớ rằng những gì được truyền cho bạn có thể không được truyền cho tôi. thay vì sử dụng DIG hoặc NSlookup và dành một giờ để kiểm tra các máy chủ DNS trên toàn thế giới, tôi thường sử dụng http://www.whatsmydns.net/ để xem việc truyền bá đang diễn ra như thế nào.


Không có sự lan truyền trong DNS, thuật ngữ này khá dễ gây hiểu lầm cho tất cả các loại người than phiền, những người sẽ không thấy mình đọc RFC, vì vậy đừng <strike> tuyên truyền </ strike> sử dụng thuật ngữ này. ;-D
poige

1
Tất nhiên, có sự lan truyền trong DNS, RFC cho rằng người đọc hiểu rằng thông tin có thể lan truyền khi máy chủ thực hiện tra cứu và lưu trữ. Điều này đặc biệt rõ ràng khi những người than thở đọc RFC sau đó tự hỏi tại sao một bản ghi trên máy chủ của họ không khớp với kết quả tra cứu từ một máy chủ khác. Họ phát hiện ra rằng tuyên truyền có định nghĩa "lan truyền rộng rãi" (đó chính xác là những gì cần kiểm tra - phân phối các hồ sơ cập nhật)
Jim B

Không phân phối, cũng không truyền bá (trừ chủ đến nô lệ).
poige

Đây có lẽ là một di tích từ khi đôi khi phải mất gần một ngày để nhận được các thay đổi được thực hiện trong các tên miền .com được tải trên máy chủ tên gốc (cách trở lại khi .com ở trên rễ!)
Cakemox

@ poige- cảm ơn bạn đã xác minh sự thiếu hiểu biết của bạn về cách thức hoạt động của bộ đệm ẩn DNS. Tôi sẽ đề nghị đọc RFC về cách DNS hoạt động và có lẽ kiểm tra trang web tôi liên kết với các ví dụ trong thế giới thực.
Jim B

3

Cách dễ nhất để đảm bảo các máy chủ DNS có thẩm quyền của bạn trong đường dẫn ủy nhiệm của bạn đang trả lời đúng là sử dụng dig +trace:

; <<>> DiG 9.7.3 <<>> +trace www.google.com a
;; global options: +cmd
.           80050   IN  NS  m.root-servers.net.
.           80050   IN  NS  f.root-servers.net.
.           80050   IN  NS  i.root-servers.net.
.           80050   IN  NS  h.root-servers.net.
.           80050   IN  NS  c.root-servers.net.
.           80050   IN  NS  k.root-servers.net.
.           80050   IN  NS  d.root-servers.net.
.           80050   IN  NS  g.root-servers.net.
.           80050   IN  NS  a.root-servers.net.
.           80050   IN  NS  b.root-servers.net.
.           80050   IN  NS  e.root-servers.net.
.           80050   IN  NS  l.root-servers.net.
.           80050   IN  NS  j.root-servers.net.
;; Received 509 bytes from 192.168.1.1#53(192.168.1.1) in 0 ms

com.            172800  IN  NS  c.gtld-servers.net.
com.            172800  IN  NS  k.gtld-servers.net.
com.            172800  IN  NS  g.gtld-servers.net.
com.            172800  IN  NS  d.gtld-servers.net.
com.            172800  IN  NS  j.gtld-servers.net.
com.            172800  IN  NS  f.gtld-servers.net.
com.            172800  IN  NS  i.gtld-servers.net.
com.            172800  IN  NS  m.gtld-servers.net.
com.            172800  IN  NS  e.gtld-servers.net.
com.            172800  IN  NS  a.gtld-servers.net.
com.            172800  IN  NS  l.gtld-servers.net.
com.            172800  IN  NS  h.gtld-servers.net.
com.            172800  IN  NS  b.gtld-servers.net.
;; Received 504 bytes from 198.41.0.4#53(a.root-servers.net) in 127 ms

google.com.     172800  IN  NS  ns2.google.com.
google.com.     172800  IN  NS  ns1.google.com.
google.com.     172800  IN  NS  ns3.google.com.
google.com.     172800  IN  NS  ns4.google.com.
;; Received 168 bytes from 192.43.172.30#53(i.gtld-servers.net) in 20 ms

www.google.com.     604800  IN  CNAME   www.l.google.com.
www.l.google.com.   300 IN  A   173.194.35.180
www.l.google.com.   300 IN  A   173.194.35.178
www.l.google.com.   300 IN  A   173.194.35.176
www.l.google.com.   300 IN  A   173.194.35.177
www.l.google.com.   300 IN  A   173.194.35.179
;; Received 132 bytes from 216.239.34.10#53(ns2.google.com) in 27 ms

Điều này sẽ theo các phái đoàn đến máy chủ tên có thẩm quyền cho truy vấn của bạn. Câu trả lời cuối cùng thường là câu bạn quan tâm nhất, nhưng dấu vết rất hữu ích ở chỗ nó sẽ cho biết ai đang trả lời cho mỗi đoàn. Nếu bạn đang thay đổi máy chủ tên, tuy nhiên, điều này có thể rất hữu ích.

Hãy nhớ rằng theo dõi sẽ truy vấn trực tiếp các máy chủ có thẩm quyền, do đó không có bộ đệm. Đây là dấu hiệu tốt nhất cho thấy các câu trả lời đang được trả lại như mong đợi, nhưng nó không phải là dấu hiệu tốt về những gì người dùng cuối có thể trải nghiệm. Tuy nhiên, vì dù sao bạn thường không có quyền kiểm soát đối với các máy chủ bộ nhớ đệm của người khác (ngoài tầm nhìn xa để hạ thấp TTL của bạn, hãy đợi TTL ban đầu, thực hiện thay đổi, sau đó khôi phục lại TTL), thực tế thường không đáng để kiểm tra.


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.