sidetech

インフラエンジニアの寄り道メモ。

Infoblox(IB系)のアップグレード

9日にDNSの一部の製品でクリティカル(重大)な脆弱性が見つかりました。DNS回りはしょっちゅう脆弱性が出てくるので私自身は馴れっこですが、本来であれば『DNSに何かあれば通信不能に陥る』ようなものです。またDNSの不正書き換えによる不正サイトへの誘導など、通信ダウンするよりも色々なリスクを抱えたシステムですよね。

なーのーにっ、こんだけショッチュウDNS脆弱性が見つかってしまうのは「基本仕様の定義が不明確」なのと「各種実装の不備」という事らしいです。
詳しくは以下を読んでもらうとして・・・
http://jprs.jp/tech/security/2014-12-09-multiple-impl-vuln-delegation-limit.html

動的な機構を備えるという事は、それだけ穴も出来てしまうでしょうからね。僕は優しく見守りますよ(笑)
で、JPRSの情報によると・・・一般的に有名なBINDや他数製品が対象のようですね。MS-DNS(WindowsDNS)は含まれていないみたいです。

で、うちの環境はというと・・・Infobloxを愛用しています。元々はFreeBSDでBIND9を建てて10年間程運用してましたが、まぁ~こんなにBINDの脆弱性やらシステムのパッチやらやっていたら、24時間稼働環境でアップデートするのなんて何時するの?!みたいな。最初に言いましたが、DNSを見失う事は通信不能と変わりません。

今ではWindowsDNS(AD構築時にやりますよね)もだいぶ安定性を見せておりますが、ここは技術者の考え方の差なのであえてメリットデメリットの話をここで四の五の言いたくないですが、アカウントを管理しているサーバーとDNSのサーバーの仕事を両方やらせていいのかどうかを考えるぐらいですかね。場合によってはDHCPサーバーもやらせている環境があると思いますが、仮にADに何かあった際にDNSも影響するってなると・・・もう一台ADを建ててセカンダリDNSにしておけばいい?いいですとも。
インターネット用の公開DNSをMS-DNSでやらせる?イイですとも。毎月WindowsUpdateがあろうと複数ホストがあればいい環境で管理が出来ているなら問題ないと思います。最近は仮想化していれば再起動も速いしね。

Infobloxstatus
で、私はもしもの責任を考えた時にやもしものパニックに陥った場合やもしもの為に、お高いInfobloxを導入しちゃってます(来年はTrinzicが欲しいな)。
知っての通りInfobloxはBINDの商用版です。専用アプライアンス化されて(仮想版もある)専用特化されています。うちの会社みたいにDHCPゾーンだけで160超えてるとか、色々なDNSのゾーンを扱っているとか、ある程度の中大規模に向いてます。無停止で複数台数の環境で運用するとなると本来であれば運用が大変になるのですが・・・と言ったところでやっと本題。

『Infobloxのアップグレード』
最初に購入元の配信サイトからバイナリをダウンロードします。500MBぐらいです。
現在はNode1がActiveになっていますね。構成は6台です。
「Upload」するとマスターにバイナリが取り込まれます。
Infobloxupdate01

「Distribute」を押すとアップグレードパッケージの展開が始まります。
Infobloxupdate02

途中はこんな感じ。
Infobloxupdate03

展開が終わると自動的に「Test」が行われます。ファイルが壊れていないかのチェックとかでしょう。ここまでが準備段階です。対象となっているGRIDのグループ全てに展開が終わらないとアップグレードできません。
で、「Upgrade」ボタンをおすとアップグレード開始します。画像は全て手動展開ですが、スケジュールで実施する事も可能です。
Infobloxupdate04

まずはNode2のPassiveとなっているバックアップ側がアップグレードされてー、シンクロで入れ替わります。
Infobloxupdate05

入れ替わるタイミングでVIPの引き継ぎがあるのですが、この時PINGレベルだと4発ぐらいタイムアウトします。この4発すら耐えられない場合は時間帯を考えましょう。
Infobloxupdate06

全てがアップグレードがおわると、以下のような感じに。ActiveがNode2になっています。
InfobloxはアップグレードするたびにActive Nodeが入れ替わります。
Infobloxupdate07

ほぼ自動化出来ますが、最初のアップグレードのバイナリファイルだけは入れてあげる必要があります。6台の構成のアップグレードに大凡30分掛かりましたが、どのサービスもダウンタイムは4~5秒です。この程度であればDNSがよくわからない人にもアップグレードが託せちゃいますね。LinuxFreeBSDでBINDのアップデートマニュアル作ったらとても大変。想定外が発生した場合等に対応出来るかどうか。もしもの為のロールバックもあります(使ったことないけど)。
今回は説明の為にやってますが、日頃はアップグレードを走らせたら画面に張り付かないです。
脆弱性への即時対応
・対応パッチのディストリビューターでの事前展開検証

上記もあるので私は安心してブログが書ける訳です(笑)
あとは「HiddenDNS」という方針でやっているので、即時リスクも落ちいりにくい所でしょうか。
あとは時間ができたら色々ご紹介できたらなっとおもいます。