BIND에로드 된 모든 영역 나열 주석 처리 등이 있습니다. 현재 BIND에로드

수천 개의 영역이로드 된 DNS 서버를 마이그레이션하려고합니다. named.conf 파일에는 약 17 개의 서로 다른 포함이 있으며 그중 일부에는 포함되어 있으며 많은 주석 처리 등이 있습니다.

현재 BIND에로드 된 모든 영역의 목록을 얻고 싶습니다. rndc dumpdb를 보았지만 영역 만 표시하지는 않습니다.

지저분한 포함 파일을 따르는 대신 BIND 내에서 권한 부여 영역 목록을 얻는 쉬운 방법이 있습니까? 감사!



답변

cache_dump.dbrndc dumpdb -zones 라는 파일을 작성하기 위해 실행할 수 있습니다 . 이 파일에는 모든 권한 영역이 포함되며 BIND의 데이터 디렉토리에 작성됩니다.


답변

확인 된 rndc dumpdb가 가장 좋은 방법입니다.

필자의 경우 동일한 서버에서 2 개의 별도 바인드 인스턴스가 실행 중이라는 것을 알았습니다 (요청하지 않음). PID를 지정하지 않으면 역 dns 만하는 PID에 연결되어 있었고 나에게만 보여주었습니다.


답변

구성 파일 (포함 파일 포함)을 표준 형식으로 인쇄하려면 다음을 호출하면됩니다.

named-checkconf -p(선택적으로 -t /some/chroot/dirBIND가 chrooted를 실행하고 chroot dir에서 구성을 읽어야하는 경우)

이렇게하면 모든 포함 파일이 평평 해지고 모든 주석이 제거되고 모든 것이 깔끔하게 포맷됩니다.

출력에는 정적으로 구성된 영역이 포함되지만로 추가 된 동적 영역은 나열되지 않습니다 rndc addzone.


답변

-all을 추가 하면 트릭이 발생합니다 (Ubuntu Ubuntu 16.04.2 LTS (xenial))

sudo rndc dumpdb -all && cat /var/cache/bind/named_dump.db

답변

9.12.0a1 기준으로 최신 버전의 BIND9; 또한 named-checkconf -l마스터 / 슬레이브 상태 및보기를 포함하여 영역을 쉬운 형식으로 나열 할 수 있습니다.

예:

$ sudo /usr/sbin/named-checkconf -l -t /chroot/bind/
example.com IN external master
otherdomain.com IN external slave
internal.example.com IN internal master
example.com IN internal in-view external
otherdomain.com IN internal in-view external

# this has 2 views: external, internal
# and 3 zones: example.com, otherdomain.com, internal.example.com
# the external view contains: example.com, and slaves otherdomain.com
# the internal view uses in-view statements to show
# the same version of external zones, plus contains a unique zone

답변

다음은 시작 중에로드 된 영역을 나열하는 정확한 명령입니다. 이것은 RHEL6.7 x86_64에서 테스트되었습니다.

/usr/sbin/named-checkconf -z -t /var/named/chroot | grep loaded

예:

[root@dnsserver ~]# /usr/sbin/named-checkconf -z -t /var/named/chroot | grep loaded
zone 0.0.127.in-addr.arpa/IN: loaded serial 2008040700
zone 19.58.10.in-addr.arpa/IN: loaded serial 2008040701
zone 11.54.10.in-addr.arpa/IN: loaded serial 2008040700
zone example.com/IN: loaded serial 2008040702
zone ./IN: loaded serial 2008040700

답변

또 다른 대안은 사용하는 것입니다 bind', 자신의 XML 형식으로 통계를 하면 당신이를 활성화 statistics-channel하고 (세계에서 예를 들어 존 통계를 사용할 수 있습니다 options { }). 이 방법을 사용하면 뷰, 구역 유형 및 구역 데이터 (예 : 일련 번호) 및 구역 별 통계를 쉽게 선택 / 표시 할 수 있습니다.

사용 wgetxml(xmlstarlet) :

wget -O - http://127.0.0.1:1080/xml/v3/zones |
  xml select -I -t -m '/statistics/views/view[@name="_default"]/zones/zone[type="master"]' \
    -v @name -nl

위 의 _default 보기 에 모든 마스터 도메인 목록이 표시되어 있습니다.

wget ... |
  xml select -I -t -m '/statistics/views/view/zones/zone' \
   -v @name -o , -v ../../@name -o , -v type -o , -v serial -nl

위의 모든 영역은 영역,보기, 유형, 직렬 등 CSV 형식으로 표시됩니다.

특정 보기영역 유형 만 선택하려면 다음을 수행하십시오 .

 wget ... |
   xml select -I -t -m '/statistics/views/view[@name="_bind"]/zones/zone[type="builtin"]' \
     -v @name -nl

(이 통계 기능은 2008 년 12 월 bind-9.6.0 이후에 /v3/사용 가능합니다. 위에서 사용 된 형식은 2014 년 4 월 bind-9.10 이후에만 사용 가능합니다. JSON 형식도 사용 가능할 수 있으므로와 유사한 항목이 가능해야합니다 jot.)