RHEL 互換の BIND バージョンアップ手順メモ

どこぞで BIND アップデートが盛り上がっていたので、自分も便乗。

Rev.2016/11/25:querylog 周辺の追記と、手順一部見直し。

■アップデータの確認
# yum check-update bind\*
 →これでバージョン確認。基本的にRHEL 系は、ベースバージョン変わらないはず。

■ダウングレードパッケージの確認
# rpm -qa bind\*
 →これらをインストールパッケージ、ちゃんと持っているよね?
  切り戻しありきで構えておかないと危険。

■Configのバックアップ
# cp -piav /etc/named.conf /etc/named.conf.YYYYMMDD
 →過去に何度かRedHatが「Configを上書きする」というバグやらかしてるので。

■保持しているゾーンの数確認
# rndc status
 →number of zones を確認する。アップデート後に増えたらびっくりだ。
  ※特にメジャーバージョンアップしたときに、automatic empty zone が増えることがある。
   この辺は、ちゃんとリリースノートを読みましょう。

■Config の確認
# named-checkconf -z
 →-z 引数で、保持しているゾーンのチェックもしてくれる。
  ついでに読まれるゾーン数もココで控えておく。

■アップデート前後での dnsperf を使った Response codes 割合確認
# dnsperf -s localhost6 -d /tmp/00_queryperf_data.txt -t 15 -q 1
 →これは自分のツールで querylog から問い合わせの履歴をランダムに5000個取り出したものを
  dnsperf に食わせている。
  Response codes の割合を見ることで、BIND の名前解決の動きに差異がないことを確認。
  もし何か機能変わったりしたら、結果ががらりと変わる筈。はず。たぶん。きっと。

■BIND の停止
# service named stop
 → EL7 で chroot してる場合、named-chroot を停止する。

■BIND のバージョンアップ
# yum update bind\*

■Config 差分確認
# diff /etc/named.conf.YYYYMMDD /etc/named.conf

■Config の確認
# named-checkconf -z
 →バージョンアップ前の出力と差分がないこと。

■BIND の起動
# service named start
 → EL7 で chroot してる場合、named-chroot を起動する。

■保持しているゾーンの数確認
# rndc status
 →バージョンアップ前とnumber of zones に差分がないこと。

■起動ログ確認
# grep named /var/log/messages
 →automatic empty zone の内容や、その他エラーが出てないか確認。

■アップデート前後での dnsperf を使った Response codes 割合確認
# dnsperf -s localhost6 -d /tmp/00_queryperf_data.txt -t 15 -q 1
 →バージョンアップ前と同じリストで試験。
  SERVFAIL が大量に増えてなきゃ基本的に大丈夫なはず。たぶん。

■その他動作確認用ゾーンの確認
 ・ローカルで持っている物
 ・再起問合せの確認
 ・逆引きの確認
 ・他。

■次回に向けて BIND パッケージの確保
※2016/1/24 時点の最新Verの場合。
# mkdir /usr/local/src/bind-9.8.2-0.37.rc1.el6_7.5
# cd /usr/local/src/bind-9.8.2-0.37.rc1.el6_7.5/
# yumdownloader \*9.8.2-0.37.rc1.el6_7.5\*
# ls -la ./
 →必要そうなパッケージが全部あることを確認。

【2016/11/25 追記】
■querylog 周辺について
●named.conf に

・【category queries】が定義されている場合、named 起動時にクエリログ取得はONになっている。

・【category queries】が定義されていない場合、named 起動時にクエリログ取得はOFFになっている。

●rndc querylog でクエリログ取得のON/OFFをした際

・【category queries】が定義されている場合、その定義されたログファイルに出力される。

・【category queries】が定義されていない場合、【category default】のファイルに出力される。

・【category queries】と【category default】が定義されていない場合、syslog の info レベルに出力される。

★querylog の取得を開始する場合
# rndc status
 → query logging is OFF である場合、次のコマンドを入れてログ取得を開始。
   ON の場合、取得されている。
# rndc querylog
# rndc status
 → query logging is ON であることを確認

★querylog の取得を停止する場合
# rndc status
 → query logging is ON である場合、次のコマンドを入れてログ取得を開始。
   OFF の場合、取得されていない。
# rndc querylog
# rndc status
 → query logging is OFF であることを確認

カテゴリー: めも パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です