ネットワークの冗長化とは? 冗長化の種類や実施する方法なども解説
私たちが日常生活を過ごす上で当たり前のように使う水道や電気。これらが止まると、瞬く間に生活は立ち行かなくなります。そのような、生活に必要不可欠なサービスや設備などのことを「ライフライン」と呼びます。
企業活動においては、情報や通信ネットワークが非常に重要なライフラインです。ネットワークが止まれば、取引先にメールが送れない、ウェブサイトにアクセスできない、他の拠点にある社内サーバーにアクセスできない、IP電話を使っている企業については電話もつながらなくなり、仕事が何も進まないという状況に陥るでしょう。まさに命綱と言えます。
しかし、絶対に切れないLANケーブルや、絶対に故障しない機器、絶対に障害が起きない通信経路は存在しません。100%止まらないネットワークは実現不可であり、情報システム担当者は「もしかしたら止まるかもしれない」ということを前提にネットワーク構築を行わなければいけません。
本日は社内ネットワークを構築するうえで重要な冗長化についてお話したいと思います。
そもそも冗長化とは?
総務省いわく、「企業や組織における情報セキュリティとは、企業や組織の情報資産を「機密性」、「完全性」、「可用性」に関する脅威から保護することです。」とのことです。
※出典:国民のためのサイバーセキュリティサイト(総務省)
冗長化はこの3要素のうちの可用性(Availability)の維持に有効な対策となります。具体的には、機器やシステムの構成要素について、同じ機能や役割の要素をあらかじめ複数用意しておき、異常が発生した時に肩代わりできるよう待機させておくことを冗長化と言います。そうすることで、一部の機能が損なわれてもシステム全体が停止してしまうことを防ぎ、運用を継続することができます。
また、システムの持つそのような性質を「冗長性」(redundancy)といいます。企業が事業を継続していくためには冗長性の高いシステム構築が必要です。
冗長化するメリット
冗長化をするメリットとして最大のものは、「トラブルが起こっても事業を継続できる」ということです。
「可用性を脅かす脅威」と言われると、サイバー攻撃のことかと思いませんか?そして「うちはある程度セキュリティ対策もしているし、元より狙われるような企業じゃない」と考えた方はいないでしょうか?可用性を脅かす脅威は外部からの攻撃のみではありません。通信トラフィックの増加によるサーバーダウンやネットワーク機器の故障、キャリアの通信ネットワークにおける障害も、可用性を脅かす脅威となり得るのです。
あらゆるところに原因があり、ひとつでも問題が起これば業務が停止してしまう可能性があります。すべてに対応したいところですが、すべてを二重化・多重化しておくというのは、使わないかもしれないものに多額に投資するということにもなりかねません。
しかし、一度想像してみましょう。例えばゲートウェイのUTMが故障したとします。冗長構成がとられていない場合、新しいUTMを業者に手配して設定を入れて繋ぎなおして動作確認をしますが、これらは一日で終わる作業ではありません。例えばそれに1週間かかるとして、1週間突然会社を休みにすることなんてできません。また、3日でも1日でもゲートウェイのセキュリティ機能が停止することのリスクは大きく、UTM復旧までの間に不正アクセスを許してしまった場合にはさらに損失は大きくなります。自社の生産活動がストップする損失の他、取引先への損害賠償までとなったら…。想像しただけで冷や汗が止まりません。
個人の事に置き換えると、大ケガをして入院や手術費用を払わなければいけない上に、仕事ができなくて収入が途絶えては、家族の生活に支障が出てしまいます。もしもの時、取り返しのつかないことにならないために保険に入りますよね。冗長化のための投資は、掛け捨ての保険と同じです。あとになってから、あの時こうしておけばよかった…と後悔しないようにしたいですね。
冗長構成はどのように作るのか
冗長構成とは、同じ機能を持つシステムを2つ以上用意しておき、メインが異常をきたした際にサブを稼働させることでシステムそのものを動かし続ける構成のことですが、2つの種類があります。
ホットスタンバイ
メインとサブの切り替えが自動で行われるものをホットスタンバイと言います。自動で切り替えるということは、サブも常にネットワークに繋がっている状態ということになります。サブの方も「体はあったまっているのでいつでも動けます!」という状態なので「ホット」スタンバイ。わかりやすいですね。
切り替え時のダウンタイムが少ないことがメリットです。反対に障害時に自動的に、設計通り、正常に切り替わるようにしないといけないため、ネットワーク構成が複雑化することがデメリットです。もちろん事前検証も必要になりますので、設計・構築時に手間暇を多くかけてあげることが重要です。
コールドスタンバイ
電源数やラックの空きスペース、コストの兼ね合いで手動切り替えを選択することもあると思います。手動で切り替えが行われるものをコールドスタンバイと言います。こちらは待機時に電源が入ってないので、文字通り「体があったまっていないので準備運動が必要です!」という状態で、メインとして動かすまでの間に必ずダウンタイムが発生します。
また、常に同期しているホットスタンバイと違い、コールドスタンバイは過去に設定された状態のままとなっているため、運用の最中にメインにのみ設定変更を加えている場合は、設定内容にズレが生じてしまいます。
もしものことが起こらなければ使うことのない保険(サブ)にお金をかけるのはもったいないと感じる方もいるかもしれません。どうせお金をかけるなら、サブも平常時から使ってしまおうという考え方もあります。
ホットスタンバイの方は、メインが稼働している間、サブに待機させている状態の「アクティブ/スタンバイ構成」と、メインもサブも平常時から稼働させておいて負荷分散をし、有事の際には故障していないいずれかに通信を集約させる「アクティブ/アクティブ構成」が存在します。ホットスタンバイのうち、アクティブ/アクティブ構成であれば、使わないものに投資していることはなくなるうえに、平常時は高速レスポンスが可能で、かつ有事の際には止まらないという通信を確立できます。
ちなみにクラウドサービスの多くは、サービス品質を向上させるために、当然冗長構成になっているわけですが、複数のサーバーを連携させて利用者側から見た時に全体のサーバーが1台で構成されているように振る舞うクラスタ構成をとっています。
障害のリスクに備えてクラスタリングをすることで可用性の高いシステムが構築できます。サーバー運用においてのアクティブ/スタンバイ構成のことはHAクラスタ・HA構成などといい、アクティブ/アクティブ構成のことを負荷分散クラスタといいます。
もちろんクラウドサービスだけではなく、オンプレミスで多くの物理サーバーを運用する企業はこのような構成になっていることもあります。
ネットワーク冗長化の方法
冗長化はOSI参照モデルというネットワーク標準規格に則りレイヤー別に行われるものです。レイヤー1は物理層、レイヤー2はデータリンク層、レイヤー3はネットワーク層、レイヤー4はトランスポート層です。それぞれの層に冗長化対策を施すことで、ネットワーク全体が途切れないようにすることができるのです。
レイヤー1:物理層
レイヤー1は、ネットワークの物理的な接続についてのルール決めを行う層です。ネットワーク機器に複数の電源を搭載する「電源冗長」が一般的です。電源を複数搭載することで、1つの電源が切れてしまった場合にもそれ以外の電源によって稼働を続けられるため、ネットワークの停止を防ぐことができます。
レイヤー2:データリンク層
レイヤー2は、データリンク層と呼ばれ、信号の処理を行いデータの受け渡しを管理しています。レイヤー2における冗長化には、以下の4つの方法があります。
リンクアグリケーション
リンクアグリゲーションとは、スイッチポートの冗長化のことで、複数の物理リンクを一つの論理リンクにまとめることを指します。データ送受信における負荷分散としても利用される機能で、平常時には処理スピードを上げることができるほか、障害発生時には、もう片方のポートを使用することで通信を維持することが可能です。
スパニングツリープロトコル
スパニングツリープロトコル(STP)は、複数経路を持つネットワーク内でループ(環状構造になった通信経路内でデータが同じ箇所を繰り返し流れること)が起こらないようにする機能のことです。ループ状に構成されたネットワークの一部をブロックしておき、異常時にはブロックを解除し、通信できるようにします。
スタック
スタックとは、スイッチの冗長化のことです。複数のスイッチを一つのスイッチとして仮想化する技術で、一つのスイッチに何か起きても残りのスイッチで通信を維持する仕組みです。スタック接続されたスイッチは一括で管理ができるようになるというメリットもあります。
チーミング
チーミングとは、NICの冗長化のことで、一つの機器に挿入された複数のNICを疑似的に一本化する方法です。NICとはLANケーブルなどを接続し、ネットワークへアクセスする際に必要な機器のことです。チーミングには障害時の可用性を高める効果のほかに、帯域を拡張する効果もあるので、積極的に導入することをおすすめします。
レイヤー3:ネットワーク層
レイヤー3は、ネットワークのデータ中継と通信経路の選択をする層であり、目的の機器へ信号を受け渡す役割を持っています。レイヤー3の冗長化には、主に以下の2つの方法があります。
VRRP(Virtual Router Redundancy Protocol)
ネットワーク層の冗長化としては、VRRPが一般的です。VRRPとは、複数のルーターを一つの仮想ルーターとしてまとめることで、ルーターもスイッチなど同様に、一つが壊れてもそれ以外のルーターでカバーすることができます。
ちなみにシステムコムズが提供するルーター冗長化製品は、VRRPの中でも特別にHSRP(Hot Standby Router Protocol)と呼びます。
ECMP(Equal Cost Multi Path)
ECMPとは、同コストの経路が複数ある場合、すべての通信経路に負荷を分散させる方法です。ECMPには「Par packet ECMP」と「Par flow ECMP」の二種類があります。
「Par packet ECMP」は、パケットごとに経路を分散させる方法です。効率的に負荷を分散できる一方、電波障害などに弱く、パケットの追い越しが発生するなどの問題が起きやすいというデメリットがあります。
「Par flow ECMP」はフローごとに経路分散される方法で、一般的によく利用されています。負荷分散に偏りがあるものの、「Par packet ECMP」が持つデメリットを克服しています。
レイヤー4:トランスポート層
DSR(Direct Server Return)
DSRは、ロードバランサー(LB)を用いたネットワーク冗長化における技術の一つです。LBは、クライアントからのリクエストを複数のサーバーに分散させる役割を担っていますが、DSRでは、サーバーからの応答パケットをLBを経由せずに直接クライアントへ送信する仕組みです。
DSRは、ネットワークの負荷軽減、通信遅延の削減、サーバーの処理能力向上などのメリットがある一方で、複雑な設定やアプリケーションの対応状況などのデメリットもあります。
何を冗長化すればいいのか
それではどこに保険をかけるか?ということを考えてみましょう。ピアニストは自分の手に保険をかけたりするそうですが、それほどピアニストにとって自分の手を失うことが致命的だからと言えるでしょう。同様に、自社にとってどこが壊れたら致命的かを検討していきます。最重要ポイントから順に、ネットワーク上の単一障害点(SPOF:Single Point Of Failure)を払拭していくことを目指していきましょう。逆の視点で言うと、致命傷とならない箇所の停止はある程度許容し、できるだけ速やかに復旧できる運用をあらかじめ想定しておくことも一つの方法と言えます。
ECサイトやゲームアプリ、オンライン株取引などのインターネット上でサービスを展開している業態の企業であれば、サービス提供が止まることこそが致命傷となります。サービス停止だけでなく遅延も許されない世界かもしれません。
近年ではインターネット上でサービスを提供していない企業でも、インターネットに繋がらなければ業務が全く出来ない状態になる企業がほとんどですので、まずはインターネットの出入り口の設備だけでも冗長化しておくことをおすすめします。
ユーザーにとって、ネットワークインフラは止まらないことが前提となりますが、冒頭お話した通り、通信の世界に「100%止まらないネットワーク」はありません。それでもできるだけ100%にちかい可用性を目指し、単一障害点ゼロを心がけて試行錯誤するのが情報システム担当者です。致命的な業務停止に繋がらないよう、冗長化が必要なポイントがどこかを検討していきましょう。