Làm thế nào để đào + dấu vết thực sự hoạt động?


19

Khi tôi nhìn vào trang người đàn ông để đào, tôi nhận được như sau:

+[no]trace
  Toggle tracing of the delegation path from the root name servers for the name
  being looked up. Tracing is disabled by default. When tracing is enabled, dig
  makes iterative queries to resolve the name being looked up. It will follow
  referrals from the root servers, showing the answer from each server that was
  used to resolve the lookup.

Vì vậy, làm thế nào để làm việc này, trong thực tế? Điều gì sẽ là chuỗi diglệnh tương đương (không có + dấu vết) sẽ tương đương về chức năng?

Câu trả lời:


37

dig +trace hoạt động bằng cách giả vờ đó là một máy chủ tên và làm việc với cây không gian tên bằng cách sử dụng các truy vấn lặp lại bắt đầu từ gốc của cây, theo các tham chiếu trên đường đi.

Điều đầu tiên nó làm là yêu cầu máy chủ DNS hệ thống bình thường cho các bản ghi NS cho "."

Sau khi nhận được phản hồi, đây sẽ là danh sách máy chủ tên gốc hiện tại, nó sẽ chọn một máy chủ và sau đó yêu cầu bản ghi A cho tên đó nếu nó không nhận được nó trong phần bản ghi bổ sung lần đầu tiên để nó có một địa chỉ IP để gửi truy vấn tiếp theo. Giả sử nó chọn f.root-servers.net có địa chỉ IP là 192.5.5.241.

Tại thời điểm này, hãy sử dụng dig +trace www.google.co.uk.làm lệnh của chúng tôi với một tên miền mà chúng tôi muốn theo dõi đường dẫn giải quyết.

Truy vấn hậu trường tiếp theo sẽ là:

$ dig +norecurse @192.5.5.241 www.google.co.uk

   ; <<>> DiG 9.9.4 <<>> +norecurse @192.5.5.241 www.google.co.uk
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8962
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 11, ADDITIONAL: 15

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.co.uk.              IN      A

;; AUTHORITY SECTION:
uk.                     172800  IN      NS      ns5.nic.uk.
uk.                     172800  IN      NS      ns6.nic.uk.
uk.                     172800  IN      NS      ns4.nic.uk.
uk.                     172800  IN      NS      nsc.nic.uk.
uk.                     172800  IN      NS      ns2.nic.uk.
uk.                     172800  IN      NS      ns3.nic.uk.
uk.                     172800  IN      NS      nsd.nic.uk.
uk.                     172800  IN      NS      nsa.nic.uk.
uk.                     172800  IN      NS      ns7.nic.uk.
uk.                     172800  IN      NS      nsb.nic.uk.
uk.                     172800  IN      NS      ns1.nic.uk.

;; ADDITIONAL SECTION:
ns1.nic.uk.             172800  IN      A       195.66.240.130
ns2.nic.uk.             172800  IN      A       217.79.164.131
ns3.nic.uk.             172800  IN      A       213.219.13.131
ns4.nic.uk.             172800  IN      A       194.83.244.131
ns5.nic.uk.             172800  IN      A       213.246.167.131
ns6.nic.uk.             172800  IN      A       213.248.254.130
ns7.nic.uk.             172800  IN      A       212.121.40.130
nsa.nic.uk.             172800  IN      A       156.154.100.3
nsb.nic.uk.             172800  IN      A       156.154.101.3
nsc.nic.uk.             172800  IN      A       156.154.102.3
nsd.nic.uk.             172800  IN      A       156.154.103.3
ns1.nic.uk.             172800  IN      AAAA    2a01:40:1001:35::2
ns4.nic.uk.             172800  IN      AAAA    2001:630:181:35::83
nsa.nic.uk.             172800  IN      AAAA    2001:502:ad09::3

;; Query time: 45 msec
;; SERVER: 192.5.5.241#53(192.5.5.241)
;; WHEN: Tue Feb 11 19:19:14 MST 2014
;; MSG SIZE  rcvd: 507

Ồ, vậy bây giờ chúng tôi biết rằng có máy chủ tên ukvà đó là điều duy nhất mà máy chủ gốc biết. Đây là một giới thiệu , bởi vì chúng tôi đã không yêu cầu đệ quy ( +norecursetắt nó đi).

Tuyệt vời, chúng tôi rửa sạch và lặp lại. Lần này chúng tôi chọn một trong những ukmáy chủ tên và hỏi nó cùng một câu hỏi .

$ dig +norecurse @195.66.240.130 www.google.co.uk

; <<>> DiG 9.9.4 <<>> +norecurse @195.66.240.130 www.google.co.uk
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 618
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.co.uk.              IN      A

;; AUTHORITY SECTION:
google.co.uk.           172800  IN      NS      ns1.google.com.
google.co.uk.           172800  IN      NS      ns3.google.com.
google.co.uk.           172800  IN      NS      ns2.google.com.
google.co.uk.           172800  IN      NS      ns4.google.com.

;; Query time: 354 msec
;; SERVER: 195.66.240.130#53(195.66.240.130)
;; WHEN: Tue Feb 11 19:22:47 MST 2014
;; MSG SIZE  rcvd: 127

Thật tuyệt vời, bây giờ chúng tôi đã phát hiện ra rằng ukmáy chủ tên cấp cao nhất biết có một khu vực được gọi google.co.ukvà bảo chúng tôi đi hỏi những người đặt tên cho câu hỏi của chúng tôi. Đây là một giới thiệu khác.

Rửa sạch, lặp lại.

Tuy nhiên, lần này, chúng tôi đã không nhận được các bản ghi A trong phần hồ sơ bổ sung của phản hồi, vì vậy chúng tôi chọn một bản ghi, nói ns2.google.com và chúng tôi phải đi tìm địa chỉ của nó. Chúng tôi khởi động lại một truy vấn (ở gốc một lần nữa) và đuổi theo cây để tìm địa chỉ IP cho ns2.google.com. Tôi sẽ bỏ qua phần đó cho ngắn gọn, nhưng chúng tôi biết rằng IP cho nó là 216.239.34.10.

Vì vậy, truy vấn tiếp theo của chúng tôi là:

$ dig +norecurse @216.239.34.10 www.google.co.uk

; <<>> DiG 9.9.4 <<>> +norecurse @216.239.34.10 www.google.co.uk
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33404
;; flags: qr aa; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.google.co.uk.              IN      A

;; ANSWER SECTION:
www.google.co.uk.       300     IN      A       74.125.225.216
www.google.co.uk.       300     IN      A       74.125.225.223
www.google.co.uk.       300     IN      A       74.125.225.215

;; Query time: 207 msec
;; SERVER: 216.239.34.10#53(216.239.34.10)
;; WHEN: Tue Feb 11 19:26:43 MST 2014
;; MSG SIZE  rcvd: 82

Và chúng ta đã hoàn thành! (cuối cùng) Làm thế nào để chúng ta biết chúng ta đã hoàn thành? Chúng tôi đã có câu trả lời cho truy vấn của mình, đó là hồ sơ A cho www.google.co.uk. Bạn cũng có thể nói vì đó không phải là giới thiệu nữa, aabit được đặt trong phản hồi cuối cùng có nghĩa đây là câu trả lời có thẩm quyền cho truy vấn của bạn.

Vì vậy, đó là những gì xảy ra mỗi bước trên đường đi khi bạn sử dụng dig +trace.

Lưu ý rằng nếu bạn có phiên bản đào nhận biết DNSSEC và bạn thêm +dnssecvào lệnh, bạn có thể thấy một loạt các bản ghi. Những gì các bản ghi thêm đó được để lại như một bài tập cho người đọc ... nhưng đi vào cách thức dig +sigchasehoạt động.


Một nghi ngờ: trong yêu cầu @ 192.5.5.241, các câu trả lời trong PHẦN BỔ SUNG, chúng có được gọi là hồ sơ keo không?
Jose Tomás Tocino

Có, vì tên của các bản ghi A tồn tại trong hoặc bên dưới vùng mà các bản ghi NS trong phần Cơ quan tham chiếu, vì vậy chúng cần thiết để tiếp tục quá trình giải quyết.
milli

1

Hãy nói rằng bạn đang tìm kiếm

www.domain.co.uk

DNS là một người thừa kế, bắt đầu với các máy chủ gốc biết máy chủ nào có thẩm quyền cho TLD (phần cuối của tên miền). Vì vậy, tương đương với

dig subdomain.domain.co.uk

Từng bước sẽ là:

dig SOA @g.root-servers.net uk

(nghĩa là truy vấn một trong các máy chủ gốc để tìm ai có thẩm quyền cho .uk)

Điều này đáp ứng với một loạt các máy chủ uk có thẩm quyền, vì vậy chúng tôi hỏi họ ai có co.uk

dig SOA @ns6.nic.uk co.uk

Và chúng ta được bảo là SOA (cơ quan) ở cùng một máy chủ

Vì vậy, hãy cho phép truy vấn ns1.nic.uk để xem ai có domain.co.uk

dig SOA @ns1.nic.uk domain.co.uk

Điều này quay trở lại và cho biết thẩm quyền cho tên miền là tại dns.dns1.de (cộng với các bản sao lưu);

Vì vậy, bây giờ chúng ta có thể yêu cầu bản ghi A:

dig  A @dns.dns2.de www.domain.co.uk

;; QUESTION SECTION:
;www.domain.co.uk.              IN      A

;; ANSWER SECTION:
www.domain.co.uk.       86400   IN      CNAME   domain.co.uk.
domain.co.uk.           86400   IN      A       95.130.17.36

Làm thế nào để tôi giải quyết chủ đề của đoàn? Giả sử quyền hạn cho domain.co.uk là dns.dns1.de, nhưng thành viên.domain.co.uk đã được ủy quyền cho dns.dns2.com và tôi đang tìm kiếm joe.members.domain.co.uk. Làm thế nào để tôi biết khi nào "an toàn" để thoát khỏi vòng quay vui vẻ và truy vấn các bản ghi khác?
Doktor J

Quá trình thực tế yêu cầu Ahồ sơ tất cả cùng. Không có phép thuật chuyển sang SOAtruy vấn. (Không thể có, vì một proxy giải quyết sẽ không biết khi nào nên quay lại.) Không có sửa đổi kỳ diệu nào cho tên miền trong câu hỏi. Đó là www.domain.co.uk.tất cả các cách thông qua. Điều này rất quan trọng để nhớ, bởi vì điều đó có nghĩa là bất kỳ máy chủ nội dung nào được truy vấn đều có thể cung cấp câu trả lời hoàn chỉnh .
JdeBP

@DoktorJ Yep, đây là lỗi của tôi JdeBP là đúng. Tôi đã cố gắng tạo ra một điểm với SOA, nhưng nó đã bị vướng vào câu trả lời. Câu trả lời khác chính xác hơn.
Paul

@Paul cảm ơn đã theo dõi; Tôi đã đánh dấu câu trả lời khác là câu trả lời đúng để giúp đỡ bất kỳ ai khác có thể kết thúc tại đây (không xúc phạm bạn!) :)
Doktor J

@doktorj Hoàn toàn không, đó chính xác là điều cần thiết :)
Paul
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.