Tôi đang cố gắng thiết lập BIND để nó nắm bắt bất kỳ và tất cả các yêu cầu được thực hiện, và trỏ chúng đến một bộ máy chủ NS cụ thể và một bản ghi A cụ thể.
Tôi có khoảng 500 tên miền và tôi đang thêm những tên miền mới với tốc độ 10-15 mỗi ngày, vì vậy tôi không muốn thêm một vùng rõ ràng cho mỗi tên miền.
Thiết lập hiện tại của tôi là: trong tên của tôi. Tôi có một chế độ xem (được đặt tên bên ngoài) với vùng sau:
zone "." {
type master;
file "ext.zone";
};
Điều này phù hợp với tất cả các yêu cầu.
ext.zone là:
$ 3600 @ TRONG MẠNG. root.nsdomain.com. ( 1; Nối tiếp 3600; Làm tươi 300; Thử lại 3600; Hết hiệu lực 300); Bộ nhớ cache âm tính TTL IN NS ns1.example.com IN NS ns2.example.com ns1 TRONG A 192.0.2.4 ns2 VÀO 192.0.2.5 *. TRONG MỘT 192.0.2.6
vì vậy, mục tiêu là: cho tất cả các yêu cầu NS, trả lại ns1.example.com
và ns2.example.com
cho tất cả các yêu cầu A, ngoại trừ nơi nó là ns1.example.com
hoặc ns2.example.com
, trả lại 192.0.2.6
. Để ns1.example.com
trả lại 192.0.2.4
, cho ns2.example.com
trả lại 192.0.2.5
.
Điều này gần như hoạt động, vấn đề duy nhất là khi tôi đào, tôi nhận được:
đào @localhost somedomain.example ; > DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3> @localhost somedomain.example ; (Đã tìm thấy 1 máy chủ) ;; tùy chọn toàn cầu: printcmd ;; Có câu trả lời: ;; opcode: QUERY, trạng thái: NOERROR, id: 37733 ;; cờ: qr aard; CÂU HỎI: 1, TRẢ LỜI: 1, QUYỀN: 2, BỔ SUNG: 2 ;; PHẦN CÂU HỎI: ; somedomain.example. Ở A ;; TRẢ LỜI somedomain.example. 3600 IN A 192.0.2.6 // như mong đợi ;; PHẦN TỰ ĐỘNG: . 3600 IN NS ns1.example.com. // dự kiến, tôi không biết nếu "." lúc bắt đầu là xấu, mặc dù. . 3600 IN NS ns2.example.com. // xem ở trên. ;; PHẦN BỔ SUNG: ns1.example.com. 3600 IN A 192.0.2.6 // không mong đợi, đây phải là 192.0.2.4 ns2.example.com. 3600 IN A 192.0.2.6 // không mong đợi, đây phải là 192.0.2.5
Làm thế nào để tôi sửa lỗi này? Tôi đang làm một cái gì đó khủng khiếp? Có cách nào tốt hơn để làm điều này?