URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

BINDのゾーン情報をPowerDNSへインポート

 PowerDNS関連の一連のインストールが完了したので、ゾーンを作成していきます。
 今回は既存のDNSサーバ(BIND 9)をリプレースするので、まずはBINDのゾーンファイルの内容を移行することにします。

 環境の前提はCentOS 7へPowerDNSとPowerDNS-Adminのインストールが完了していること。

 既存のDNSサーバから"named.conf"を含む設定ファイル一式をコピーしてきます。CentOSでchrootを使っている環境であれば、標準構成では"/var/named/chroot"配下が該当すると思います。
 今回は、この設定ファイル一式をPowerDNSサーバの"/tmp/bind"へ配置しました。

# cd /tmp/bind
# ls
dev  etc  run  usr  var
# ls ./etc
localtime  named  named.conf  named.iscdlv.key  named.rfc1912.zones  named.root.key
pki  protocols  rndc.key  services
# ls ./var/named/
chroot  data  dynamic  example.local.zone  named.ca  named.empty  named.localhost
named.loopback  slaves

 この設定ファイル一式はCentOS標準のBINDを使っているDNSサーバの"/var/named/chroot"配下を全てコピーしてきたものです。そのため、"dev"等の移行に関係ないファイル/ディレクトリも含まれています。
 また、"example.local.zone"というファイルが独自のゾーンファイルで、以下のような内容になっています。

$TTL 3600 @ IN SOA ns.example.local. root.example.local. ( 2019010801 ; serial 3600 ; refresh 1hr 900 ; retry 15min 604800 ; expire 1w 86400 ; min 24hr ) IN NS ns.example.local. ns IN A 172.16.11.250 gw01 IN A 172.16.11.1 www1 IN A 172.16.11.2 www2 IN A 172.16.11.3 db01 IN A 172.16.11.4

 これらのゾーンファイルをPowerDNSのデータベースへインポートするには、PowerDNSのパッケージに含まれている"zone2sql"コマンドを使います。このコマンドは、ゾーンファイルの内容をPowerDNSデータベースへインポートするためのSQL文へ変換します。
 ただし、今回の環境では単純に実行するとエラーになります。
 読み込む"named.conf"に記載されている関連ファイルのパスが、現在の配置場所"/tmp/bind"に合うように修正して再実行します。
 (下記の例では機械的に置き換えていますが、修正が必要な部分は"named.conf"の内容によって異なります。)

# sed -i "s/\/etc/\/tmp\/bind\/etc/g" ./etc/named.conf
# sed -i "s/\/var/\/tmp\/bind\/var/g" ./etc/named.conf
# sed -i "s/\/run/\/tmp\/bind\/run/g" ./etc/named.conf

 "zone2sql"を実行する際には、元となる"named.conf"の場所やデータベースの種類(今回はMySQL互換のため"--gmysql"を指定)を指定します。

# zone2sql --named-conf=./etc/named.conf --gmysql > zone.sql

 正常に完了すれば対象となったドメインやレコードの数が表示され、リダイレクト先のファイル(ここでは"zone.sql")へSQL文が出力されます。
 また、"named.conf"でタイプがMASTERゾーンであっても変換した後はNATIVEゾーンになってしまうため、必要に応じて修正します(SLAVEゾーンについては変換時に"--slave"オプションを付与すると"SLAVE"のまま維持される)。

# sed -i "s/NATIVE/MASTER/g" ./zone.sql

 作成したSQLをPowerDNS用データベースへ実行します。

# mysql -h 127.0.0.1 -u pdns -p powerdns < zone.sql

 PowerDNS-Adminへログインすると、インポートしたゾーン情報を確認することができるはずです。



 これで、今後はPowerDNS-Adminを使ってゾーン情報を管理できそうですね。
 ここでは省略しますが、念のため別のPC等からインポートしたゾーンの名前解決ができることも確認しておけばOKでしょう。


    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

プロフィール

1020@管理人

都内を彷徨っているインフラエンジニアとかいう雑用係。いつだって眠い…。

最近のつぶやき

@umkn1020 (07/03-18:57)
RT @kamo_hiroyasu: 「人口の1割は複文が処理できないのだから、そのつもりで行動しろ」と助言することが時々あるのですが、「何もしなければ、42万人死亡する」を「42万人死亡する」と誤読して「外した」と煽る人がわらわらと湧いてきたことで、説得力が増しました。
@umkn1020 (07/03-18:49)
RT @taijijiji: 外資企業が日本市場でhiring難しいとは聞いていましたがこれほどとは。。日本人の転職の心理的ハードルの高さ、英語ポジションへの苦手意識が伺える。。英語は実質的な語学スキルよりも「やっていける自信がない」「怖い」「どうせ落とされる」というメンタリテ…
@umkn1020 (07/03-13:03)
RT @yuutosi_hiyuu: 声だして笑った https://t.co/EjqAUuT3z0
@umkn1020 (07/02-16:02)
Smart LifeでIFTTT使えなくなっていたのか…
@umkn1020 (07/01-17:23)
RT @rioriost: だーかーらー、HAクラスタをすぐ組もうとしない!w オンプレの発想をそのまま持ってくるんじゃなく、クラウドに合ったやり方を学びましょうよ。 できるよ、IaaSでHAクラスタも組めるよ。 でも、スタンバイノードのコストを払い続けるの、なんかおかし…

エントリーリスト

カテゴリーリスト

タグ