내 BIND9가 현재 내 마스터 DNS 서버에서 관리하는 도메인 이름의 전체 목록을 얻기 위해 실행할 수 있는 명령이 있는지 궁금합니다.
가정적으로 다음과 같은 것입니다.
named --list
그러면 현재 해당 마스터에 설정되어 있는 모든 영역의 이름이 모두 표시됩니다.
이제 묻는 이유는 내가 슬레이브 BIND9를 설정한 방식이 각 마스터 항목에 대해 새 항목을 추가하는 것이기 때문입니다. 예를 들어:
zone "example.app" {
type slave;
file "/var/cache/bind/example.app.zone";
masters { 192.168.0.1; };
allow-transfer { none; };
};
이를 통해 내 슬레이브 BIND9가 마스터 BIND9에 정보를 요청할 수 있습니다. 작동하며 항목이 몇 개 있으면 찾을 수 있습니다. 50개가 훨씬 넘으면 지루할 뿐만 아니라 많은 실수를 저지르고 이는 해당 실수에 대한 두 번째 DNS가 없다는 것을 의미하며 두 번째 DNS가 누락되었다는 것을 아무 것도 알려주지 않습니다.
마스터가 관리하는 모든 도메인 이름이 슬레이브에 복제된다는 점에서 슬레이브를 설정하는 훨씬 더 좋은 방법이 있을 것이라고 생각합니다. 하지만 나는 내 노예가 다른 사람의 DNS를 관리하는 것을 원하지 않습니다. 따라서 내 마스터(예제에서는 192.168.0.1)만 변경하도록 허용하세요.
어느 쪽이든 괜찮을 것입니다. 물론 두 번째가 더 좋을 것입니다.
답변1
우선, 일반적으로 사이트의 가용성과 참조에 더 좋기 때문에 게시물당 하나의 질문만 합니다...
첫 번째 질문의 경우 현재 관리 중인 영역을 덤프하도록 바인드에 요청할 수 있습니다. dumpdb
다음 명령을 참조하세요 rndc
.
dumpdb [-all|-cache|-zones|-adb|-bad|-fail] [view ...]
Dump cache(s) to the dump file (named_dump.db).
그럼에도 불구하고:
- 서버가 마스터인 영역만 덤프할지 확실하지 않습니다.
- 기본적으로 영역 목록이 아니라 전체 덤프이기 때문에 출력을 구문 분석해야 합니다.
두 번째 질문에는 실제로 두 가지 가능성이 있습니다.
Bind9가 이를 관리하기 위해 새로운 기능을 구현한 것 같습니다.http://ftp.isc.org/isc/bind9/cur/9.11/doc/arm/Bv9ARM.ch04.html#catz-info
마스터 구성에서 슬레이브 구성을 생성하는 스크립트를 작성하세요.