松本直人/ネットワークバリューコンポネンツ ニュービジネスチーム

 キャリア・グレードNATには,機器に障害が発生した際にエンドユーザーが通信を続けられるようにする対策が必要になります。今回は,このしくみを見ていきましょう。

 まず,キャリア・グレードNAT装置を冗長化構成にします。手法はいくつかありますが,仮想IPアドレスを使う方法が一般的です。冗長化構成にしたキャリア・グレードNAT装置に対して,それぞれが持つIPアドレスとは別に,仮想的なIPアドレスを割り当てます。エンドユーザーのパソコンやブロードバンド・ルーターからの通信は,冗長化したキャリア・グレードに割り振られた仮想IPアドレスを経由して,あて先のホストに向かいます。

 冗長化構成にした場合の運用のしかたにも,いくつか手法があります。その一つがアクティブ-スタンバイです。これは,平常時は1台が稼働しもう1台は待機するもので,稼働中の方がダウンしたら待機中の方が処理を引き継ぎます。アクティブ-スタンバイでは,通常時は仮想IPアドレスを経由する通信を稼働している方のキャリア・グレードNAT装置が受け,セッションの処理やNAT変換などを行います。稼働中の装置がダウンした場合は,待機していた装置がその時点におけるセッションの処理を引き継ぎ,それ以降の仮想IPアドレスを経由する通信のセッションを処理します。

 プロバイダなどキャリア・グレードNATを運用する事業者は,障害対策として機器の構成についても考える必要があります。構成は大きく二つに分かれます。一つは,高性能な機器を使って少ない台数で構成する方法。もう一つは,それほど性能が高くない機器を多数並べて構成する方法です。前者の場合,管理する機器の数は少なくて済みますが,機器故障時の障害規模は大きくなりがちです。後者の場合,機器は多数ですので管理が煩雑となりますが,障害規模は小さく抑えられます。最近のインターネット通信関連の設備は,後者の思想で設計されることが多いようです。

NATテーブルまできちんと冗長化する

 キャリア・グレードNATにおける冗長化は,機器はもちろん,エンドユーザーのセッションを管理する「NATテーブル」についてもきちんと実施しなくてはなりません。最近は,ネット・バンキングやネット・ショッピングなど,エンドユーザーがWebでミッション・クリティカルな通信をすることが増えてきました。具体的には,TCPベースのHTTP/HTTPSを使って行われる通信です。これらは途切れないだけではなく,中抜けなどが起こらないように完了させることが重要です。

 つまり通信事業者は,エンドユーザーがTCP/UDPの通信を始めるたびに,冗長化しているキャリア・グレードNAT装置の間でNATテーブルを同期し,共有しなくてはなりません(図1)。

図1●冗長化構成にしたキャリア・グレードNAT装置の動きの例
図1●冗長化構成にしたキャリア・グレードNAT装置の動きの例
1台が通常時に稼働し,もう1台が待機状態になる「アクティブ-スタンバイ」の構成をとる場合を示した。

 本連載の第4回で説明しましたが,NATテーブルはキャリア・グレードNAT装置のメモリー上に置かれます。キャリア・グレードNAT装置を冗長化して運用する場合は,現在処理しているセッションの情報は,自分のNATテーブルに書き込む以外に,待機中のキャリア・グレードNAT装置のNATテーブルにも書き込みます。つまり,普段からNATテーブルを同期しておくのです。

 そしてスタンバイしている方の装置は,常時他方の装置が稼働しているかどうかを監視します。そしてダウンしていることを把握したらすぐに,仮想IPアドレスを引き継ぎます。


松本直人 (まつもと なおと)
ネットワークバリューコンポネンツ ニュービジネスチーム
1996年より特別第二種通信事業者のエンジニアとしてインターネット網整備に従事。その後システム・コンサルタント,ビジネス・コンサルタントを経て,2008年より株式会社ネットワークバリューコンポネンツにて新規ビジネス開発を担当。技術開発からビジネス構築までを一気通貫で担当する。システム延命技術の研究開発に取り組む「仮想化インフラ・オペレータズグループ(VIOPS)」発起人のひとりでもある。