Danh sách tên miền trên máy chủ DNS?


8

Có cách nào để có được danh sách đầy đủ các bản ghi A và CNAME trên máy chủ BIND DNS của tôi không?

Tôi có quyền truy cập vào các tập tin khu vực. Nhưng trên máy chủ của tôi có rất nhiều tệp vùng và sẽ mất quá nhiều thời gian để xử lý tất cả chúng bằng tay. Có một lệnh liệt kê thông tin này hay tôi sẽ phải tự viết một kịch bản?


Ôi không! Không phải là một kịch bản!
womble

Câu trả lời:


9

Thay vì sử dụng greptrên tất cả các tệp vùng, hãy sử dụng:

% rndc dumpdb -zones

Điều này sẽ tạo ra một bãi chứa dữ liệu có thẩm quyền của máy chủ được gọi là named_dump.db, có thể bằng /var/named/data(hoặc tương tự).

Tệp này dễ phân tích cú pháp hơn các tệp vùng ban đầu vì mỗi dòng bắt đầu bằng tên miền được áp dụng. Các tập tin vùng thô có thể được viết tắt.


2
Hoàn hảo, đó chính xác là những gì tôi cần! Mặc dù tập tin được đặt tên là tên_dump.db trong trường hợp của tôi. Cảm ơn :)
chroder

4
Trên Ubuntu, nó dường như kết thúc vào/var/cache/bind/named_dump.db
m01

1

Từ var/named/datagrep (hoặc thư mục tương đương) của bạn thông qua các tệp db. * Với một biểu thức chính quy thích hợp, đại loại như:

grep '\(.  *A   *[0-9][0-9]*\)\|\(..*CNAME..*\)' db.*

Lưu ý rằng 'db. * `Cuối cùng tất cả các tệp db. Lặp lại cho mọi thư mục bạn có tập tin vùng.


1
Đó là những gì lệnh find là dành cho! tìm / var / tên / data -name 'db. *' -print0 | xargs -0 grep '...'
Chris Jester-Young

-2

cho tôi trong danh sách tên miền của tôi; làm đào -t axfr $ i @localhost; làm xong

Phải cho phép chuyển vùng từ localhost trước.

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.