Làm cách nào để tìm máy chủ tên có thẩm quyền cho tên miền?


317

Làm cách nào tôi có thể tìm thấy nguồn gốc của các bản ghi DNS xung đột?

Câu trả lời:


413

Bạn sẽ muốn bản ghi SOA (Bắt đầu quyền hạn) cho một tên miền nhất định và đây là cách bạn hoàn thành nó bằng cách sử dụng công cụ dòng lệnh nslookup có sẵn trên toàn cầu :

command line> nslookup
> set querytype=soa
> stackoverflow.com
Server:         217.30.180.230
Address:        217.30.180.230#53

Non-authoritative answer:
stackoverflow.com
        origin = ns51.domaincontrol.com # ("primary name server" on Windows)
        mail addr = dns.jomax.net       # ("responsible mail addr" on Windows)
        serial = 2008041300
        refresh = 28800
        retry = 7200
        expire = 604800
        minimum = 86400
Authoritative answers can be found from:
stackoverflow.com       nameserver = ns52.domaincontrol.com.
stackoverflow.com       nameserver = ns51.domaincontrol.com.

Dòng gốc (hoặc máy chủ tên chính trên Windows) cho bạn biết rằng ns51.domaincontrol là máy chủ tên chính cho stackoverflow.com .

Ở cuối đầu ra, tất cả các máy chủ có thẩm quyền, bao gồm các máy chủ dự phòng cho tên miền đã cho, được liệt kê.


158
nslookup -type = soa stackoverflow.com
Ben Amada

6
Tuy nhiên, dưới cửa sổ, tôi không thể thấy phản hồi "Câu trả lời có thẩm quyền". Tôi có Windows 8 và Ubuntu 12 cạnh nhau và sau đó cùng một lệnh cho cùng một tên miền hoạt động đúng với Ubuntu nhưng không phải trên Windows.
Mario Awad

1
lưu ý rằng chương trình này không nhất thiết phải hiển thị các thay đổi gần đây đối với cấu hình DNS, tuy nhiên, digdường như tôi sử dụng (xem câu trả lời bên dưới)
rogerdpack

6
Điều đó có nghĩa là gì nếu không có câu trả lời có thẩm quyền nhưng câu trả lời không có thẩm quyền vẫn ổn?
Overmind

6
Nếu bạn chạy nslookup -type=soa stackoverflow.comtrên linux ngày hôm nay (2019-tháng 2), phần có thẩm quyền sẽ trống.
đơn giản

174

Bạn đã sử dụng số ít trong câu hỏi của mình nhưng thường có một số máy chủ tên có thẩm quyền, RFC 1034 khuyến nghị ít nhất hai.

Trừ khi bạn có nghĩa là "máy chủ tên chính" chứ không phải "máy chủ tên có thẩm quyền". Các máy chủ tên phụ là có thẩm quyền.

Để tìm hiểu các máy chủ tên miền của Unix:

  % dig +short NS stackoverflow.com
 ns52.domaincontrol.com.
 ns51.domaincontrol.com.

Để tìm ra máy chủ được liệt kê là chính (khái niệm "chính" khá mờ trong những ngày này và thường không có câu trả lời hay):

% dig +short  SOA stackoverflow.com | cut -d' ' -f1
ns51.domaincontrol.com.

Để kiểm tra sự khác biệt giữa các máy chủ tên, tùy chọn của tôi chuyển đến check_soacông cụ cũ , được mô tả trong sách "DNS & BIND" của Liu & Albitz (biên tập viên O'Reilly). Mã nguồn có sẵn trong http://examples.oreilly.com/dns5/

% check_soa stackoverflow.com
ns51.domaincontrol.com has serial number 2008041300
ns52.domaincontrol.com has serial number 2008041300

Ở đây, hai máy chủ tên có thẩm quyền có cùng số sê-ri. Tốt


5
đào + ngắn không phải lúc nào cũng đưa ra câu trả lời tôi mong đợi. Chẳng hạn, một trang web được định nghĩa www.pressero.comlà CNAME cho một trang web khác - dig + short SOA chỉ trả về mục tiêu CNAME.
Ross Presser

Làm thế nào để bạn thực hiện một NS có thẩm quyền?
Overmind

1
@Overmind bạn không làm cho NS "có thẩm quyền". Nếu một máy chủ tên được cấu hình là có thẩm quyền đối với một số tên miền, điều đó có nghĩa là nó có các tệp vùng cục bộ (thường là các tệp văn bản phẳng, nhưng cũng có thể được thực hiện khác nhau) cho các miền này và nó đáp ứng truy vấn cho chúng. Để có ích, chúng cần được liệt kê dưới dạng bản ghi NS trong vùng cha mẹ cho mỗi tên miền mà chúng có thẩm quyền, nếu không sẽ không có ai truy vấn chúng theo mặc định.
Patrick Mevzek

@RossPresser câu trả lời đã nói về các bản ghi NS / SOA và tôi nghi ngờ rằng bạn làm điều đó vì www.pressero.comcó lẽ bạn đã nghĩ về các bản ghi A (đây là loại bản ghi mặc định dignếu bạn không chỉ định nó). Nhưng nếu cần, chỉ cần thêm một tail -1để lấy kết quả cuối cùng.
Patrick Mevzek

@PatrickMevzek Như tôi đã nêu trong nhận xét của mình, tôi đã sử dụng dig +short SOA www.pressero.com. Điều này chỉ trả về mục tiêu CNAME - không phải là bản ghi SOA cho pressero.comtên miền, đó là những gì tôi mong đợi. tail -1không giúp đỡ vấn đề; dig +short SOAchỉ phát ra một dòng.
Ross Presser

40

Trên * nix:

$ dig -t ns <domain name>

3
Anh ta yêu cầu các máy chủ tên, không phải cho địa chỉ IPv4. Vì vậy, loại (-t) phải là NS, không phải A.
bortzmeyer

1
Tại sao không gõ SOA @bortzmeyer?
Randy L

Uh, bởi vì điều đó trả về SOA thay vì kết quả NS?
tripleee

17

Tôi có một công cụ truyền bá DNS được thiết kế để trả lời các loại câu hỏi này.

Nguồn được phát hành theo AGPLv3.

(Vâng, giao diện khá cơ bản tại thời điểm này :))

Bạn cũng có thể tìm ra máy chủ tên cho một tên miền bằng lệnh "host":

[davidp @ supernova: ~] $ host -t ns stackoverflow.com
máy chủ tên stackoverflow.com ns51.domaincontrol.com.
máy chủ tên stackoverflow.com ns52.domaincontrol.com.

@cacho Điều đó đúng; Tôi cũng có thể thêm rằng, nếu tôi có cơ hội.
David Precious

1
Nó bị hỏng, nó hiển thị "502 Cổng xấu nginx / 1.14.2"
Marco Demaio

8

Tôi thấy rằng cách tốt nhất để thêm luôn tùy chọn + dấu vết:

dig SOA +trace stackoverflow.com

Nó cũng hoạt động với CNAME đệ quy được lưu trữ trong nhà cung cấp khác nhau. + dấu vết dấu vết ngụ ý + norecurse vì vậy kết quả chỉ dành cho tên miền bạn chỉ định.


Lưu ý nếu bạn đang chạy một máy chủ NS cục bộ như dnsmasq + dấu vết sẽ không trả lại bất cứ điều gì ...
Daniel Sokolowski

Lệnh này cung cấp 53 dòng, 3652 byte đầu ra, phần lớn là các giá trị ngẫu nhiên. Làm thế nào một người nào đó nên giải thích đầu ra để xác định máy chủ tên có thẩm quyền là gì?
theferrit32

Tôi đọc nó từ dưới lên trên. Bản ghi SOA là những gì bạn tìm kiếm. Bạn có thể grep để SOA có ít dữ liệu hơn.
Alex

6

Thuật ngữ bạn nên googling là "có thẩm quyền", không "dứt khoát".

Trên Linux hoặc Mac mà bạn có thể sử dụng các lệnh whois, dig, host, nslookuphoặc một số người khác. nslookupcũng có thể hoạt động trên Windows.

Một ví dụ:

$ whois stackoverflow.com
[...]
   Domain servers in listed order:
      NS51.DOMAINCONTROL.COM
      NS52.DOMAINCONTROL.COM

Đối với tín dụng thêm: Có, nó có thể.


aryeh chắc chắn là sai, vì đề nghị của anh ấy thường sẽ chỉ cung cấp cho bạn địa chỉ IP cho tên máy chủ. Nếu bạn sử dụng dig, bạn phải tìm bản ghi NS, như vậy:

dig ns stackoverflow.com

Hãy nhớ rằng điều này có thể yêu cầu máy chủ DNS cục bộ của bạn và do đó có thể đưa ra câu trả lời sai hoặc lỗi thời mà nó có trong bộ đệm.


6
Các lệnh này không tương đương. Không có gì nói rằng thông tin được cung cấp bởi whois là cập nhật. Thông thường, không phải vì mọi người cập nhật các bản ghi NS trong tệp vùng mà không thông báo cho cơ quan đăng ký hoặc nhà đăng ký.
bortzmeyer

Tôi chưa bao giờ nói chúng là;) Bạn có thể thay đổi các bản ghi NS trong vùng của bạn theo ý muốn, miễn là vùng cha mẹ không được cập nhật, sẽ không có gì thay đổi. Và một bản cập nhật của vùng cha mẹ thường đi đôi với việc cập nhật dữ liệu whois (ít nhất là với các nhà cung cấp của tôi).

5

Chúng tôi đã xây dựng một công cụ tra cứu dns cung cấp cho bạn các máy chủ tên có thẩm quyền của tên miền và các bản ghi dns chung của nó trong một yêu cầu.

Ví dụ: https://www.misk.com/tools/#dns/stackoverflow.com

Công cụ của chúng tôi tìm thấy các máy chủ tên có thẩm quyền bằng cách thực hiện tra cứu dns thời gian thực (không bị chặn) tại các máy chủ tên gốc và sau đó theo các giới thiệu máy chủ tên cho đến khi chúng tôi tiếp cận các máy chủ tên có thẩm quyền. Đây là logic tương tự mà các trình phân giải dns sử dụng để có được câu trả lời có thẩm quyền. Một máy chủ tên có thẩm quyền ngẫu nhiên được chọn (và được xác định) trên mỗi truy vấn cho phép bạn tìm các bản ghi dns xung đột bằng cách thực hiện nhiều yêu cầu.

Bạn cũng có thể xem đường dẫn ủy nhiệm máy chủ tên bằng cách nhấp vào "Máy chủ tên có thẩm quyền" ở cuối kết quả tra cứu dns từ ví dụ trên.

Ví dụ: https://www.misk.com/tools/#dns/stackoverflow.com@f.root-servers.net


2

Bạn có thể sử dụng dịch vụ whois. Trên hệ điều hành UNIX giống như bạn sẽ thực hiện lệnh sau. Ngoài ra, bạn có thể làm điều đó trên web tại http: //www.i INTERNic.net/whois.html .

whois stackoverflow.com

Bạn sẽ nhận được phản hồi sau đây.

... văn bản bị xóa ở đây ...

Máy chủ tên miền theo thứ tự được liệt kê: NS51.DOMAINCONTROL.COM NS52.DOMAINCONTROL.COM

Bạn có thể sử dụng nslookup hoặc đào để tìm hiểu thêm thông tin về các bản ghi cho một tên miền nhất định. Điều này có thể giúp bạn giải quyết các xung đột bạn đã mô tả.


2
Không có gì nói rằng thông tin được cung cấp bởi whois là cập nhật. Thông thường, không phải vì mọi người cập nhật các bản ghi NS trong tệp vùng mà không thông báo cho cơ quan đăng ký hoặc nhà đăng ký.
bortzmeyer

Mặc dù không phải là câu trả lời trực tiếp cho câu hỏi, "whois" rất hữu ích vì nó cho bạn biết ai được cho là máy chủ tên cho một nơi nào đó (ngay cả khi vì bất kỳ lý do gì mà hiện tại họ không có).
Ai đóElse

1

Thật không may, hầu hết các công cụ này chỉ trả về bản ghi NS như được cung cấp bởi chính máy chủ tên thực tế. Để chính xác hơn trong việc xác định máy chủ tên nào thực sự chịu trách nhiệm cho một tên miền, bạn phải sử dụng "whois" và kiểm tra các tên miền được liệt kê ở đó HOẶC sử dụng "dig [domain] NS @ [máy chủ tên gốc]" và chạy nó đệ quy cho đến khi bạn nhận được danh sách máy chủ tên ...

Tôi ước có một dòng lệnh đơn giản mà bạn có thể chạy để có được kết quả THAT một cách đáng tin cậy và trong một định dạng nhất quán, không chỉ là kết quả được đưa ra từ chính máy chủ tên. Mục đích của việc này đối với tôi là có thể truy vấn khoảng 330 tên miền mà tôi quản lý để tôi có thể xác định chính xác máy chủ tên mà mỗi tên miền đang trỏ tới (theo cài đặt đăng ký của chúng).

Bất cứ ai cũng biết một lệnh sử dụng "đào" hoặc "máy chủ" hoặc một cái gì đó khác trên * nix?


2
Đơn giản. Giả sử tên miền là example.org. Trước tiên, bạn cần tìm máy chủ tên của ".org" với 'dig + short NS org.'. Sau đó, bạn truy vấn một trong số họ (bất cứ ai, tất cả họ đều có thẩm quyền). Hãy chọn d0.org.afilias-nst.org. Bạn truy vấn với 'dig @ d0.org.afilias-nst.org NS example.org.'.
bortzmeyer

Thực tế là trình giải quyết trả về, theo mặc định, các máy chủ tên được liệt kê bởi chính tên miền là một điều tốt. Đó là thông tin có thẩm quyền. Phái đoàn trong khu vực cha mẹ KHÔNG có thẩm quyền.
bortzmeyer

Và con trỏ đến whois là một cá trích đỏ. Thông tin máy chủ tên whois thường cũ. Tài nguyên có thẩm quyền là DNS.
tripleee

1
Whois là hoàn toàn tùy ý. Giá trị bạn thấy trong danh sách whois không có mối quan hệ kỹ thuật nào với DNS. Nó thường lỗi thời hoặc sai đúng. Tôi đã đi xa để nói rằng dữ liệu whois sẽ không bao giờ được tin cậy. Có đăng ký 'mỏng' và 'dày'. Hai đăng ký dày nổi tiếng là đăng ký .com và .net. Những đăng ký này chứa tất cả dữ liệu DNS và phục vụ các phản hồi whois có thể đáng tin cậy. Hầu hết các cơ quan đăng ký khác là 'điều' và điều hành đăng ký whois của riêng họ. Dữ liệu này thường xuyên sai.
Đánh dấu

1

Các bản ghi SOA hiện diện trên tất cả các máy chủ theo cấu trúc phân cấp, trong đó chủ sở hữu tên miền KHÔNG có quyền kiểm soát và tất cả chúng đều có hiệu lực đối với một máy chủ tên có thẩm quyền dưới sự kiểm soát của chủ sở hữu tên miền.

Mặt khác, bản ghi SOA trên máy chủ có thẩm quyền không thực sự cần thiết để giải quyết tên miền đó và có thể chứa thông tin không có thật (hoặc máy chủ chính bị ẩn hoặc các máy chủ bị hạn chế khác) và không nên dựa vào để xác định máy chủ tên có thẩm quyền cho một miền nhất định.

Bạn cần truy vấn máy chủ có thẩm quyền đối với miền cấp cao nhất để có được thông tin SOA đáng tin cậy cho một miền con nhất định.

(Thông tin về máy chủ nào có thẩm quyền mà TLD có thể được truy vấn từ các máy chủ tên gốc).

Khi bạn có thông tin đáng tin cậy về SOA từ máy chủ có thẩm quyền TLD, sau đó bạn có thể truy vấn chính máy chủ tên chính (máy chủ trong bản ghi SOA trên máy chủ tên gTLD!) Cho bất kỳ bản ghi NS nào khác, sau đó tiến hành kiểm tra tất cả những máy chủ tên mà bạn có được từ việc truy vấn các bản ghi NS, để xem liệu có bất kỳ sự không nhất quán nào đối với bất kỳ bản ghi cụ thể nào khác không, trên bất kỳ máy chủ nào trong số đó.

Tất cả điều này hoạt động tốt hơn / đáng tin cậy hơn với linux và đào hơn so với nslookup / windows.


0

Một cách dễ dàng là sử dụng một công cụ tên miền trực tuyến. Yêu thích của tôi là Công cụ miền (trước đây là whois.sc). Tôi không chắc liệu họ có thể giải quyết các bản ghi DNS xung đột hay không. Ví dụ: các máy chủ DNS cho stackoverflow.com là

  NS51.DOMAINCONTROL.COM
  NS52.DOMAINCONTROL.COM

0

Tôi đã thấy rằng đối với một số tên miền, các câu trả lời trên không hoạt động. Cách nhanh nhất tôi tìm thấy là trước tiên hãy kiểm tra bản ghi NS. Nếu điều đó không tồn tại, hãy kiểm tra bản ghi SOA. Nếu điều đó không tồn tại, giải quyết đệ quy tên bằng cách sử dụng dig và lấy bản ghi NS cuối cùng được trả về. Một ví dụ phù hợp với điều này làanalyticsdcs.ccs.mcafee.com.

  1. Kiểm tra hồ sơ NS

host -t NS analyticsdcs.ccs.mcafee.com.

  1. Nếu không tìm thấy NS, hãy kiểm tra bản ghi SOA

host -t SOA analyticsdcs.ccs.mcafee.com.

  1. Nếu không phải NS hoặc SOA, hãy thực hiện đệ quy đầy đủ và lấy lại NS cuối cùng

dig +trace analyticsdcs.ccs.mcafee.com. | grep -w 'IN[[:space:]]*NS' | tail -1

  1. Kiểm tra xem máy chủ tên có hoạt động không

host analyticsdcs.ccs.mcafee.com. gtm2.mcafee.com.

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.