数千のゾーンがロードされているDNSサーバーを移行しようとしています。 named.confファイルには約17種類のインクルードがあり、それらのファイルの一部にはインクルードがあり、コメントアウトされているなどの問題があります。これは厄介な混乱です。
現在BINDにロードされているすべてのゾーンのリストを取得したいと考えています。 rndc dumpdbを確認しましたが、ゾーンだけが表示されません。
厄介なインクルードファイルをたどる代わりに、BIND内の権限のあるゾーンのリストを取得する簡単な方法はありますか?ありがとう!
rndc dumpdb -zones
cache_dump.dbというファイルを作成します。このファイルにはすべての信頼できるゾーンが含まれ、BINDのデータディレクトリに作成されます。
構成(インクルードファイルを含む)を正規の形式で印刷したい場合は、次のように呼び出すだけです。
named-checkconf -p
(オプションで-t /some/chroot/dir
BINDがchrootされて実行されていて、設定をchrootディレクトリから読み取る必要がある場合)
これにより、すべてのインクルードファイルが平坦化され、すべてのコメントが削除され、すべてが適切にフォーマットされます。
出力には静的に構成されたゾーンが含まれますが、 rndc addzone
。
Rndc dumpdbが最善の方法であることを確認しました。
私の場合、同じサーバーで2つの別々のバインドインスタンスが実行されていることを確認しました(質問しないでください)。1つはフォワードDNSを実行し、もう1つはリバースDNSを実行しています。 PIDを指定せずに、リバースDNSのみを行うものに接続し、それだけを示しました。
-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
もう1つの方法は、bind'
s独自のXML形式の統計情報を使用することです。ifstatistics-channel
を有効にした場合ゾーン統計が有効になっている(たとえば、グローバルoptions { }
で)。この方法を使用すると、ビュー、ゾーンタイプ、ゾーンデータ(シリアル番号など)、およびゾーンごとの統計情報を簡単に選択/表示できます。
wget
およびxml
(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ビューのすべてのmasterドメインのリストを示しています。
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
。)