本文とサイドメニューへジャンプするためのナビゲーションスキップです。

スタートアップガイド

J-Net21 中小企業ビジネス支援サイト

  • J-Net21とは
  • スタートアップガイド
中小機構
  • メルマガ登録
  • RSS一覧
  • お問い合わせ

HOME > 製品・技術を開発する > デジ・ステーション

デジ・ステーション


初級ネットワーク講座
第27回 高信頼設計のための冗長化

信頼性の高いネットワークを構築するには、冗長構成にする必要がある。冗長構成には、ホットデュアル構成、アクティブ・スタンバイ構成など、いくつかの種類がある。平常時に稼働するシステムとそのバックアップシステムとで構成されるアクティブ・スタンバイ構成がコストパフォーマンス的にみて有利なため、主流となっている。
 第20回の同講座ですでに、高信頼性設計を実現するための代表的な技術として、マルチホーミング、VRRP、スパニングツリーについて解説した。しかし、冗長構成が不適切だと、いざ障害発生時に待機系に切り替わらないばかりか、二次被害を生じるおそれがある。そこで今回は、冗長構成の基本、注意点などについて解説する。

1 経路の二重化

図1のように、3台のL2スイッチでスパニングツリーを構成するとしよう。L2スイッチ-AにはサーバXが接続されており、L2スイッチ-BにはPC・B群、L2スイッチ-CにはPC・C群が接続されている。主な通信形態は、概ねPCからサーバへのアクセスだけで、PC同士の通信はない。L2スイッチ-AとL2スイッチ-Bの間、L2スイッチ-AとL2スイッチ-Cの間の通信速度は1Gbps、L2スイッチ-BとL2スイッチ-Cの間の通信速度は100Mbpsである。

スパニングツリーの設定により、L2スイッチ-AとL2スイッチ-Bの間、L2スイッチ-AとL2スイッチ-Cの間を通常使用する経路とする。L2スイッチ-BとL2スイッチ-Cの間は、通常はブロックしておき、L2スイッチ-AとL2スイッチ-Bの間、L2スイッチ-AとL2スイッチ-Cの間に障害が発生したときの迂回経路とする。

図1
図1

L2スイッチ-AとL2スイッチ-Bの間で障害が発生した場合、サーバXとPC・B群との通信ができなくなるが、数十秒後にスパニングツリーの再計算により、 L2スイッチ-A → L2スイッチ-C → L2スイッチ-B の迂回ルートが形成され、通信が再開される。

しかし、このとき、L2スイッチ-BとL2スイッチ-Cの間は通信速度が100Mbpsしかないため、輻輳(通信の混雑)が発生する可能性がある。また、L2スイッチ-AとL2スイッチ-Cの間は重畳(幾重にも重なること)することになる。

つまり、図1の構成により、L2スイッチ-AとL2スイッチ-Bの間、L2スイッチ-AとL2スイッチ-Cの間の障害発生時でもPC・B群、PC・C群からもサーバXへアクセスすることは可能であるが、思わぬところにボトルネックが生ずることになり、通常時よりも性能が落ちることになる。

そこで、障害発生時の迂回ルートの通信速度(帯域)やトラフィック量を確認し、ボトルネックの発生可能性箇所を予測して対処しておく必要がある。

コラム:信頼性用語
 図1の例のように、障害発生時、本来の性能よりは劣るもののサービスは受けられることをフェールソフト、またはフォールバックと呼ぶ。
 ネットワークの信頼性に関しては、数多くの用語があるのでここで整理しておこう。
 信頼性には、次に故障するまでの時間に修復のための時間という要素が加わる。指標は「稼働率」である。

 まずは大きく次の2つに分類される。
  • フォールトアボイダンス Fault Avoidance(回避)→故障自体の発生を極力おさえる。
  • フォールトトレランス Fault Tolerance(許容)→故障が発生することを前提に、それぞれの構成部品の信頼性を高める設計をすること。
 さらにフォールトトレランスには以下のようなものがある。
  • フォールバック Fall Back(縮退運転)→故障発生箇所を切り離して運用すること。
  • フェールセーフ Fail Safe→障害発生時、安全性重視、安全側に動作する。(例:ファイアウォールの故障→全パケットを遮断する)
  • フェールソフト Fail Soft→障害発生時、継続性重視、本来の性能よりは劣るもののサービスを続行させる。
  • フェールオーバ Fail Over→障害発生時、継続性重視、フェールソフトのひとつで、冗長化させてサービスを続行させる。
  • フールプルーフ Fool Proof→安全性重視、無用な操作をさせないよう設計をすること。(例:入力チェック)

2 L2スイッチの二重化

前章でL2スイッチ-AとL2スイッチ-Bの間、L2スイッチ-AとL2スイッチ-Cの間での障害発生を想定したが、L2スイッチそのものの障害発生は想定していない。

本来であれば、L2スイッチの障害に備えてすべてのL2スイッチを二重化することが理想だが、予算には限界があるため、必要な部分から優先的に二重化していくことになる。

先の例では、すべての通信が通過するL2スイッチ-Aが最優先となる。

そこで、L2スイッチ-Aの障害発生に備え、予備機としてL2スイッチ-Dを用意するとしよう。このときL2スイッチ-Dの性能はL2スイッチ-Aと同等である。サーバXには、2つのLANインターフェースを用意し、それぞれのインターフェースに同じIPアドレスを割り当てる。このときMACアドレスはインターフェースごとに異なる。一方のインターフェースからL2スイッチ-Aに、もう一方のインターフェースからL2スイッチ-DにLANケーブルで接続する。サーバXは、通常時はL2スイッチ-Aに接続されたインターフェースで通信する。L2スイッチ-Dに接続されたインターフェースはブロックしておく。

サーバXがL2スイッチ-Aに障害を検出した場合のみ、L2スイッチ-Dに接続されたインターフェースで通信を開始する。サーバXがL2スイッチ-Aの復旧を検出した場合は、L2スイッチ-Dに接続されたインターフェースは再びブロックし、L2スイッチ-Aに接続されたインターフェースで通信を開始する。


さて、下の図2に線を引いて冗長構成にしてみよう。

条件は、この4台のL2スイッチもしくはL2スイッチ間で障害が発生しても各PCとサーバXとの接続が確保されること。ただし、障害発生箇所は1箇所で同時に2箇所異常発生することはないものとする。

スイッチ-Bの障害発生時サーバXとPC-B群、スイッチ-Cの障害発生時サーバXとPC-C群の通信はできなくともよい。また、LANケーブルの通信速度はすべて1Gbpsで、トラフィック容量的には十分に余裕があるものとする。

図2(問題)
図2(問題)

あなたはどんな線を引いただろうか。すべてのL2スイッチ間に線を引いてはいないだろうか?むやみにたくさん線を引けばいいということではない。

二重化(冗長化)構成の設計には、手順がある。

まずは、通常時の線を引き、各PCとサーバXとの接続を確保する。

図2 通常時
図2 通常時

次に障害発生時の迂回ルートについて検討するが、その際、区間ごとに分けて検討する。

現在の通信形態は、サーバX ⇔ L2スイッチ-A ⇔ L2スイッチ-BまたはL2スイッチ-C ⇔ PC・B群またはPC・C群 である。これを、次の5つの区間に分ける。

1.サーバX ⇔ L2スイッチ-A間の障害
2.L2スイッチ-Aの障害
3.L2スイッチ-A ⇔ L2スイッチ-B間の障害
4.L2スイッチ-A ⇔ L2スイッチ-C間の障害
5.L2スイッチ-BまたはL2スイッチ-Cの障害
6.L2スイッチ-BまたはL2スイッチ-C ⇔ PC・B群またはPC・C群間の障害
1.サーバX ⇔ L2スイッチ-A間の障害の場合

サーバXがL2スイッチ-Aに接続されたインターフェースの障害を検出した場合、L2スイッチ-Dに接続されたインターフェースで通信を開始する。


サーバX ⇔ L2スイッチ-D ⇔ L2スイッチ-B ⇔ PC・B群
サーバX ⇔ L2スイッチ-D ⇔ L2スイッチ-C ⇔ PC・C群
という迂回ルートで接続が確保される。

図2 1.での障害時
図2 1.での障害時

サーバX ⇔ L2スイッチ-D ⇔ L2スイッチ-B ⇔ PC・B群
サーバX ⇔ L2スイッチ-D ⇔ L2スイッチ-B ⇔ L2スイッチ-C ⇔ PC・C群
という迂回ルートで接続が確保される。


このL2スイッチ構成ではループがないので、障害切り替えの時間にスパニングツリーの再計算に要する時間を必要としない。サーバXがインターフェース障害を検出した時の、インターフェース切り替えの時間に加えて、PCがサーバXへのARPによるサーバXのMACアドレス取得の時間が鍵となる。

2.L2スイッチ-Aの障害の場合

サーバXがL2スイッチ-Aに接続されたインターフェースの障害を検出し、L2スイッチ-Dに接続されたインタフェースで通信を開始する。


サーバX ⇔ L2スイッチ-D ⇔ L2スイッチ-B ⇔ PC・B群
サーバX ⇔ L2スイッチ-D ⇔ L2スイッチ-C ⇔ PC・C群
という迂回ルートで接続が確保される。

図2 2.での障害時
図2 2.での障害時

サーバXがインタフェース障害を検出した時、インタフェース切り替えの時間に加えて、PCのARPによるサーバXのMACアドレス取得の時間が鍵となる。さらにこのL2スイッチ構成では、[L2スイッチ-A、L2スイッチ-B、 L2スイッチ-C、 L2スイッチ-D、L2スイッチ-A]。よってのループを構成している。スパニングツリーの再計算の時間が鍵となる。


サーバX ⇔ L2スイッチ-D ⇔ L2スイッチ-B ⇔ PC・B群
サーバX ⇔ L2スイッチ-D ⇔ L2スイッチ-C ⇔ PC・C群
という迂回ルートで接続が確保される。

3.L2スイッチ-A ⇔ L2スイッチ-B間の障害

そのままL2スイッチ-Aに接続されたインタフェースで通信を開始する。


サーバX ⇔ L2スイッチ-A ⇔ L2スイッチ-C ⇔ L2スイッチ-B ⇔ PC・B群
という迂回ルートで接続が確保される。

図2 3.での障害時
図2 3.での障害時
4.L2スイッチ-A ⇔ L2スイッチ-C間の障害

そのままL2スイッチ-Aに接続されたインターフェースで通信を開始する。


サーバX ⇔ L2スイッチ-A ⇔ L2スイッチ-B ⇔ L2スイッチ-C ⇔ PC・C群
という迂回ルートで接続性が確保される。

図2 4.での障害時
図2 4.での障害時

3.4.とも、この構成では、[L2スイッチ-A、L2スイッチ-B、L2スイッチ-C]と[L2スイッチ-D、L2スイッチ-B、L2スイッチ-C]と[L2スイッチ-A、L2スイッチ-B、 L2スイッチ-C、 L2スイッチ-D、 L2スイッチ-A]で32つのループを構成している。よってスパニングツリー機能を必要とし、スパニングツリーの再計算の時間が鍵となる。

5.L2スイッチ-BまたはL2スイッチ-Cの障害
6.L2スイッチ-BまたはL2スイッチ-C ⇔ PC・B群またはPC・C群間の障害

この2つの場合では、スイッチ-Bの障害発生時はサーバXとPC-B群、スイッチ-Cの障害発生時はサーバXとPC-C群の通信はできなくともよいので考慮しなくてよい。


L2スイッチ-AとL2スイッチ-Dの間の線はあってもよいが、ループの総数が5つ(A、B、C、D)(A、B、C)(A、B、D)(A、C、D)(B、C、D)となり、スパニングツリーの計算が複雑になるため、経路の変更に時間を要することになる。1.3.4.のケースの迂回路ともなるので冗長である。特に1.のケースは、スパニングツリーを必要としないので、さらに冗長となる。

コラム:パスコストのデフォルト値
 スパニングツリーを設定する際に、パス(経路)ごとのパスコスト(重み)を設定しなければならない。
 特に設定をしない場合、通信速度によってデフォルト値が設定される。
 かつては以下のような値になっていた。

 10Mbps   100
 100Mbps   10
 1Gbps以上   1

 しかし、10Gbpsや40Gbpsの台頭によって、変更せざるを得なくなった。現在の値は以下のとおり。

 10Mbps   100
 100Mbps   19
 1Gbps    4
 10Gbps    2
 10Gbps以上  1

 今後、さらに高速なLANが登場したら、このデフォルト値がまた変更されるであろう。

3 L3スイッチの冗長化

先の例で、L2スイッチをL3スイッチに変更してみよう。サーバXの仕様は前章と同じである。

L3スイッチ-Aの障害発生に備え、予備機としてL3スイッチ-Dを用意するとする。このときL3スイッチ-Dの性能はL3スイッチ-Aと同等である。サーバX、PC・B群、PC・C群でそれぞれVLANを構成、L3スイッチ-AとL3スイッチ-DでVRRPを構築する。各PCのデフォルトゲートウェイのIPアドレスは、VRRPの代表アドレスが設定されている。条件は前章と同じである。


通常時の構成を以下に示す。

PC・B群は、デフォルトゲートウェイのアドレスでARPを出しインターフェースa1のMACアドレスを取得する。PC・C群は、デフォルトゲートウェイのアドレスでARPを出しインターフェースa2のMACアドレスを取得する。

図3 平常時
図3 平常時
1.サーバX ⇔ L3Switch-A間の障害の場合

サーバXがL3スイッチ-Aに接続されたインタフェースの障害を検出した場合、L3スイッチ-Dに接続されたインタフェースで通信を開始する。L3スイッチ-Aは通常稼働しているので、VRRP機能は稼働しない。

PC・B群は、デフォルトゲートウェイのアドレスでARPを出しインターフェースa1のMACアドレスを取得する。PC・C群は、デフォルトゲートウェイのアドレスでARPを出しインターフェースa2のMACアドレスを取得する。


サーバX ⇔ L3スイッチ-D ⇔ L2スイッチ-A ⇔ L3スイッチ-B ⇔ PC・B群
サーバX ⇔ L2スイッチ-D ⇔ L2スイッチ-A ⇔ L3スイッチ-C ⇔ PC・C群
という迂回ルートで接続が確保される。

図3 1.での障害時
図3 1.での障害時

サーバXがインターフェース障害検出、インターフェース切り替えの時間が鍵となる。

2.L3スイッチ-Aの障害の場合

サーバXがL3スイッチ-Aに接続されたインターフェースの障害を検出し、L3スイッチ-Dに接続されたインターフェースで通信を開始する。

L3スイッチ-DがL3スイッチ-AからのVRRP広告パケットの未達(直通、L2スイッチ-B経由、L2スイッチ-C経由)をもって障害を検出し、VRRPの代表アドレスを引き継ぐ。


PC・B群は、デフォルトゲートウェイのアドレスでARPを出しインターフェースd1のMACアドレスを取得する。
PC・C群は、デフォルトゲートウェイのアドレスでARPを出しインターフェースd2のMACアドレスを取得する。


サーバX ⇔ L3スイッチ-D ⇔ L2スイッチ-B ⇔ PC・B群
サーバX ⇔ L3スイッチ-D ⇔ L2スイッチ-C ⇔ PC・C群
という迂回ルートで接続が確保される。

図3 2.での障害時
図3 2.での障害時

サーバXがインターフェース障害検出、インターフェース切り替えの時間、および、L3スイッチ-DがL3スイッチ-Aの障害を検出するまでの時間、PCがVRRP仮想アドレスへのARPによるL3スイッチ-DのMACアドレス取得の時間が鍵となる。

3.L3スイッチ-A ⇔ L2スイッチ-B間の障害

そのままL3スイッチ-Aに接続されたインターフェースで通信を開始する。L3スイッチ-DがL3スイッチ-AからのVRRP広告パケットの未達(L2スイッチ-B経由)をもって障害を検出し、VRRPの代表アドレスを引き継ぐ。

PC・B群は、デフォルトゲートウェイのアドレスでARPを出しインターフェースd1のMACアドレスを取得する。PC・C群は、デフォルトゲートウェイのアドレスでARPを出しインターフェースa2のMACアドレスを取得する。

L3スイッチ-Dは、ルーティング機能によって、サーバXとPC・B群間のパケットをL3スイッチ-AとL2スイッチ-Bに中継する。


サーバX ⇔ L3スイッチ-A ⇔ L3スイッチ-D ⇔ L2スイッチ-B ⇔ PC・B群
サーバX ⇔ L3スイッチ-A ⇔ L2スイッチ-C ⇔ PC・C群
という迂回ルートで接続が確保される。

図3 3.での障害時
図3 3.での障害時
4.L3スイッチ-A ⇔ L2スイッチ-C間の障害

そのままL3スイッチ-Aに接続されたインタフェースで通信を開始する。L3スイッチ-DがL3スイッチ-AからのVRRP広告パケットの未達(L2スイッチ-C経由)をもって障害を検出し、VRRPの代表アドレスを引き継ぐ。

PC・B群は、デフォルトゲートウェイのアドレスでARPを出しインタフェースa1のMACアドレスを取得する。PC・C群は、デフォルトゲートウェイのアドレスでARPを出しインタフェースd2のMACアドレスを取得する。

L3スイッチ-Dは、ルーティング機能によって、サーバXとPC・C群間のパケットをL3スイッチ-AとL2スイッチ-Cにパケットを中継する。


サーバX ⇔ L3スイッチ-A ⇔ L2スイッチ-B ⇔ PC・B群
サーバX ⇔ L3スイッチ-A ⇔ L3スイッチ-D ⇔ L3スイッチ-C ⇔ PC・C群
という迂回ルートで接続が確保される。

図3 4.での障害時
図3 4.での障害時

3.4.とも、このL2スイッチ構成ではループがない、よってスパニングツリー機能は必要ない。

L3スイッチ-DがL3スイッチ-Aの障害を検出するまでの時間、PCがVRRP仮想アドレスへのARPによるL3スイッチ-DのMACアドレス取得の時間が鍵となる。

5.L2スイッチ-BまたはL2スイッチ-Cの障害
6.L2スイッチ-BまたはL2スイッチ-C ⇔ PC・B群またはPC・C群間の障害

スイッチ-Bの障害発生時サーバXとPC-B群、スイッチ-Cの障害発生時サーバXとPC-C群の通信はできなくともよいので考慮しなくてよい。

L2スイッチ-BとL2スイッチ-Cの間の線は、あってもいいのだが、ループ構成となりスパニングツリーの計算が必要となる。経路切り替えにさらに時間がかかるので冗長である。

【次回予告】
FTP(ファイル転送プロトコル)は,その名のとおりファイルを転送するプロトコルであり、httpやsmtp、popに次いで頻繁に使用されるプロトコルである。
FTPは、インターネット草創期からあるプロトコルだが、他のプロトコルとは異なり、制御用とデータ転送用の2種類のコネクションでファイル転送を実現する。そのため、後に出てきたファイアウォールや暗号化、アドレス変換などの技術と相性が悪く、併用には何らかの工夫が必要となる。
次回は、パケット解析をもとにFTPの仕組みなどについて解説する。

取材協力 : 株式会社アイテック

掲載日:2010年2月24日

キーマンズネット

出典元:株式会社リクルート キーマンズネット 2010年1月12日掲載分

検索

このページの先頭へ