Truy vấn DNS cho CNAME cho máy chủ


Câu trả lời:


6

Bạn đã không chỉ định môi trường của mình là gì nhưng nếu bạn đang sử dụng Unix tôi nghĩ rằng sự kết hợp giữa dig và grep sẽ hoạt động. ns.example.comphải là tên máy chủ của máy chủ tên của bạn, example.comlà tên miền mà máy chủ của bạn là một phần và HOST là máy chủ mà bạn muốn tìm tất cả các bản ghi CNAME. Đó thực sự là một ký tự tab trong lệnh grep, không phải theo nghĩa đen <TAB>(bạn có thể phải điều chỉnh chuỗi grep).

Ngoài ra máy chủ tên của bạn cần phải được cấu hình để cho phép chuyển vùng, các chi tiết sẽ phụ thuộc vào việc triển khai.

dig @ns.example.com example.com axfr |grep 'CNAME<tab>HOST$'

Hoặc nếu bạn đang ở trên Windows, bạn có thể sử dụng nslookup :

C:\> nslookup
> name ns.example.com
> ls -a example.com FILE

Nên sản lượng này tất cả các hồ sơ cho các tên miền example.comns.example.com"biết về" để FILE. Sau đó, bạn có thể sử dụng bất kỳ công cụ nào bạn muốn sắp xếp thông qua tệp văn bản đang tìm kiếm CNAMES tương ứng.

Hoặc với tập lệnh perl chưa được kiểm tra (nhưng có vẻ đúng) này :

#!/usr/bin/perl

use Net::DNS;

($target, $zone) = @ARGV;

$res = new Net::DNS::Resolver;
foreach $rr ($res->axfr($zone)) {
     print $rr->name."\n" if (($rr->type eq "CNAME") && ($rr->rdatastr eq $target."."));
}

Một vài điểm cho sự hoàn chỉnh:

  • Như @womble đã nêu, không có bản ghi PTR nào tương đương với CNAME. Bạn sẽ phải sử dụng một số nhận thức theo ngữ cảnh bằng cách sắp xếp tất cả các thông tin khu vực cho CNAMES tương ứng với hồ sơ A của máy chủ lưu trữ của bạn.
  • Điều này chỉ hoạt động cho máy chủ DNS của bạn (và nếu bạn có quyền xem thông tin vùng). Không có cách nào để "theo dõi" CNnam cho máy chủ của bạn thuộc các khu vực khác.
  • Như @BillThor tuyên bố, có nhiều cách khác để đặt bí danh cho một tên máy chủ ngoài CNnam. Một lần nữa, bạn sẽ cần một số nhận thức theo ngữ cảnh.

Câu hỏi được cập nhật, chúng tôi đang ở trên Windows.
PhilPursglove

4

Nếu bạn có quyền truy cập vào cấu hình DNS của mình, việc khám phá dữ liệu này là khá đơn giản. Tuy nhiên, bất cứ ai cũng có thể có một CNAME trỏ đến máy chủ của bạn. Bạn sẽ không thể theo dõi những thứ này.

Như @wombie đã chỉ ra rằng bạn không thể thực hiện tra cứu ngược cho CNnam. Không có PTR tương đương với CNnam và ngay cả khi có khả năng chỉ có một số hồ sơ tồn tại. Việc kiểm tra nhanh lựa chọn tên miền ngẫu nhiên sẽ hiển thị các bản ghi PTR thường không quay lại bản ghi A. Tương tự, thực hiện tra cứu ngược lại các bản ghi PTR cho các địa chỉ ngẫu nhiên thường không tìm thấy bản ghi A tương ứng.

EDIT: CNAME không phải là cách duy nhất để bí danh một hệ thống. DNS cho phép nhiều bản ghi A trỏ đến cùng một địa chỉ. Về mặt chức năng, điều này giống như thêm một CNAME nhưng phương thức thì khác. Các vấn đề tương tự áp dụng bên ngoài miền của bạn. Để tìm kiếm các bản ghi A khác nhau, bạn sẽ tìm kiếm (các) địa chỉ IP của hệ thống được đề cập.


3

Giao thức DNS không cho phép bạn thực hiện kiểu tra cứu "đảo ngược" đó. Bạn sẽ cần phải ra khỏi giao thức, chẳng hạn như sử dụng các đề xuất grep do kce cung cấp.


2

sử dụng powershell:

kiểm tra Tên chính trên Máy chủ DNS Microsoft của bạn:

Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Class MicrosoftDNS_AType -Filter "IPAddress = 'xx.xx.xx.xx (IP)'" -ComputerName myDNsservername

nhận tất cả tên cho máy chủ đó từ máy chủ Microsoft DNS của bạn:

Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Class MicrosoftDNS_CNAMEType -Filter "chínhname = 'tên chính từ truy vấn đầu tiên được kết thúc bằng dấu chấm.'" -ComputerName myDNsservername | chọn tên người dùng, tên chính


1
  1. Tìm tất cả các khu vực được phục vụ bởi máy của bạn.
  2. Đối với mỗi vùng, sử dụng dnscmdđể xuất dữ liệu vùng:
    dnscmd a.ns.example.com / zoneexport zone.example.com some-filename-for-this-zone
  3. Tìm kiếm các tệp đã xuất cho CNAMEcác bản ghi tài nguyên trỏ đến tên miền đích.
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.