DNS ký tự đại diện với BIND


14

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.comns2.example.com cho tất cả các yêu cầu A, ngoại trừ nơi nó là ns1.example.comhoặc ns2.example.com, trả lại 192.0.2.6. Để ns1.example.comtrả lại 192.0.2.4, cho ns2.example.comtrả 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?

Câu trả lời:


12

Nguồn gốc của bạn cho khu vực là .theo cấu hình của bạn. Bạn đang tạo các bản ghi cho ns1.ns2.thay vì ns1.example.com.ns2.example.com.ns1.example.comns2.example.comkhông được xác định, chúng được khớp với ký tự đại diện.

EDIT: đây là bản chỉnh sửa cấu hình và vùng của bạn:

zone "example.com." {
        type master;
        file "ext.zone";
};

máy lẻ

$TTL    3600
@       IN      SOA     ns1 root (
                              1         ; Serial
                         3600         ; Refresh
                          300         ; Retry
                         3600         ; Expire
                         300 )        ; Negative Cache TTL


        IN      NS      ns1
        IN      NS      ns2
        IN      A       192.0.2.6


ns1     IN      A       192.0.2.4
ns2     IN      A       192.0.2.5

*      IN      A       192.0.2.6

Mọi thứ trong vùng đều liên quan đến tên vùng trong cấu hình đã đặt tên, vì vậy việc thêm vùng thứ hai chỉ vào cùng một tệp:

zone "example.net." {
    type master;
    file "ext.zone";
};

Tôi đã quyết định thử chỉ định tên miền đầy đủ trong RR, vì vậy tôi đã thay đổi: ns1 IN A 1.2.3.4 thành ns1.nsdomain.com. Trong phiên bản 1.2.3.4, điều này không hoạt động. Bây giờ tất cả các yêu cầu của tôi trả về SOA thay vì NS / A.
Jon Wu

Bạn có thể cập nhật hoặc thêm vùng mới?
Cakemox

Tôi đã thêm một vùng mới cho nsdomain.com và để lại "." khu một mình. trong vùng nsdomain.com, tôi đã thêm ext.zone của bạn (được đổi tên thành nsdomain.zone). Bây giờ yêu cầu cho bất kỳ tên miền nào ngoại trừ nsdomain.com hoạt động như chúng được yêu cầu, chúng trả về ns1.nsdomain.com/ns2.nsdomain.com với IP chính xác (1.2.3.4/1.23.5). Nhưng, bất kỳ yêu cầu nào đối với nsdomain.com đều trả về SOA và không có phản hồi hợp lệ :(. Đóng!
Jon Wu

Bạn cần phải khám phá thêm một bản ghi A cho đỉnh. Ký tự đại diện không bao gồm điều đó. Tôi sẽ cập nhật ví dụ của tôi.
Cakemox

Cảm ơn, điều đó làm việc! Tại sao bạn không chỉ định A bit hai lần trong vùng này, nhưng không phải trong vùng "ký tự đại diện" (vùng ".", Ext.zone gốc của tôi)? Có bất kỳ liên kết tốt để đọc lên những thứ này? Cảm ơn một lần nữa!
Jon Wu

1

Để đặt ký tự đại diện tên miền phụ, bindbạn nên sử dụng định dạng sau:

name.tld.   IN  A   IP    # main domain ip
*.name.tld. IN  A   IP    # wildcard subdomains ip

Thí dụ:

mydomain.com.   IN  A   1.1.1.1
*.mydomain.com. IN  A   1.1.1.1 

0

Dựa trên cấu hình của bạn ns1.example.com192.0.2.4ns2.example.com192.0.2.5. Bạn phải định cấu hình độ phân giải tên máy chủ NS trong example.comvùng để có IP phù hợp.

Tôi hy vọng tôi làm cho mình rõ ràng. Hãy quay lại với tôi nếu bạn cần thêm thông tin.


Vì vậy, tôi nên thêm một khu vực khác cho nsdomain.com và thiết lập NS / A ở đó cho nsdomain.com?
Jon Wu

Vì vậy, nếu bạn có 2 vùng như somedomain.com và nsdomain.com, bạn phải thiết lập thông tin liên quan đến nsdomain trong vùng thích hợp. Câu trả lời ngắn gọn là có, bạn phải thiết lập một khu vực khác.
Istvan

-5

Ký tự DNS có thể gây rắc rối!

vì vậy tôi không muốn thêm một vùng rõ ràng cho mọi miền.

Có rất nhiều cách để đi - từ kịch bản SHELL cho đến các máy chủ DNS dựa trên SQL.


CẬP NHẬT. (2019-11) : Như tôi đã nói 8 năm trước , SHELL-scripting là một cách để đi và nó đã được chứng minh bằng giải pháp đề xuất câu trả lời được chấp nhận "thêm mục nhập khu vực" - rõ ràng không dựa trên việc sử dụng ký tự đại diện. ;-)

Vào năm 2019, việc tìm kiếm các tài nguyên giải thích các nhược điểm của ký tự đại diện DNS thậm chí còn dễ dàng hơn và mặc dù hầu hết chúng được viết "vào buổi bình minh của Internet" nhưng chúng vẫn giữ một số giá trị. Ví dụ, RFC1912 đề cập đến một số điều liên quan đến việc sử dụng ký tự đại diện DNS. Vấn đề chính được giải thích rõ ràng là "

MX Wildcard có thể xấu, bởi vì chúng làm cho một số hoạt động thành công khi thay vào đó chúng nên thất bại . Càng "

Nó cũng có một số ví dụ thực tế kiểu cũ mặc dù.


Tại sao sẽ là DNS wildcard ác? Nó hoàn toàn không xấu ....
Istvan


@poige 1) URL đó không giải quyết được nữa, 2) bạn trích dẫn một tài liệu 8 năm tại thời điểm trả lời của bạn, hiện được cho là 16 tuổi giống như vĩnh cửu trên Internet và 3) ảnh chụp nhanh của nó tại web.archive.org /web/20030922093331/https://www.iab.org/ Từ nó chủ yếu hiểu rõ về "Đặc biệt, chúng tôi khuyên bạn không nên sử dụng các ký tự DNS trong một khu vực trừ khi nhà điều hành khu vực hiểu rõ về các rủi ro và rằng chúng không nên được sử dụng mà không có sự đồng ý của những thực thể được ủy quyền bên dưới khu vực. "
Patrick Mevzek

Tôi đã viết điều này 8. + nhiều năm trước vẫn đang đọc và trả lời. :)
poige
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.