ネットワークの障害試験とは
ネットワーク構築案件の試験フェーズにおいて実施する試験の一つに「障害試験」があります。
障害試験では、ネットワークにおける各障害ポイントにおいて意図的に障害を発生させ、その時のネットワークの状態が想定通りになることを確認します。
- 端末間通信への影響の有無や断時間が想定通りか
- 端末間通信の通信経路が想定通りか
- 各ネットワーク機器のステータスが想定通りか
なお、障害試験は機器や経路が冗長化されているネットワークに対して行われます。これらが冗長化されていないネットワークについては、障害試験を実施しても単に継続的な通信断が発生することが自明なため、障害試験は実施対象外となります。
障害試験の種類
筐体障害試験
ネットワーク機器そのものが故障し、完全に使用できなくなることを想定した障害試験です。機器の電源を断つことによって疑似的な筐体障害を発生させます。
リンク障害試験
ネットワーク機器間のリンク(ケーブル)に障害が発生し、そのリンクで通信ができなくなることを想定した障害試験です。機器からケーブルを抜線することによって疑似的なリンク障害を発生させます。
なお、機器のポートに障害が発生した場合もリンクがダウンするため、機器のポート障害の意味も含んでいます。
電源障害試験
電源モジュールが冗長化されているネットワーク機器において、片方の電源モジュールが故障することを想定した障害試験です。片方の電源モジュールから電源ケーブルを抜線することによって疑似的な電源障害を発生させます。
障害ポイントの例
障害試験を実施するにあたり、ネットワーク内のどこが障害ポイントになるかを考えます。
以下のネットワーク構成を考えます。

上の構成では、筐体障害は黄色の①~④のルータ4台分、リンク障害はオレンジの①~⑥の6本分が考えられます。
また一般的には、障害が発生すると完全に通信が断たれることが自明なポイントは障害試験における障害ポイントからは除外されます。
障害試験実施の流れ
障害試験実施の流れは以下です。
- 障害の発生試験
- 端末間で連続 Ping を開始する
- 対象障害ポイントの障害を発生させる
- 障害発生時の端末間の Ping の断時間を確認する
- 障害発生中の各機器のステータスを確認する
- 障害発生中の端末間の traceroute を確認する
- 障害の復旧試験
- 端末間で連続 Ping を開始する
- 対象障害ポイントの障害を復旧させる
- 障害復旧時の端末間の Ping の断時間を確認する
- 障害復旧後の各機器のステータスを確認する
- 障害復旧後の端末間の traceroute を確認する
上記流れの通り、障害ポイントごとに「障害発生」と「障害復旧」の 2 つの試験を実施することになります。
一般的にこの「障害発生」と「障害復旧」の試験のセットを「ショット」という単位で数えます。前述の障害ポイントの例でいうと「筐体障害試験が 4 ショット、リンク障害試験が 6 ショットあり、合計で 10 ショットの試験がある」というような言い方をします。
【ExPing】連続 Ping の実施方法
端末間の連続 Ping を実施するためには一般的には ExPing が使用されます。
ExPing では以下のように Ping の結果が表示され、ログの保存もできます。

ExPing の推奨設定
ExPing を使用する前に環境設定をすることを推奨します。
まずオプションの環境設定の基本設定タブにて、[Ping 結果の自動削除] のチェックをオフにしてください。これをしておかないと一定時間以上 Ping を継続していると古い Ping の結果が削除されていってしまいます。

次に、メイン画面の [環境] タブの設定です。推奨設定は以下画像の通りです。

まず、[繰り返し回数] を 1 にして、かつ [定期的に実行する] を 0 分間隔にすることによって、手動で止めるまで継続的に Ping を実施することができます。
[実行間隔] は通信断時間をどの程度細かく計測したいかによって設定してください。
Trace Route を実施する場合は [ホスト名の解決を行う] をオフにすることを推奨します。
ネットワーク機器ステータスの確認観点
障害の発生/復旧後の各ネットワーク機器の確認観点としては、以下のようなものがあります。
- 各インターフェースの状態
- ルーティングテーブルの状態
- 動的ルーティングのネイバーの状態
- Spanning Tree の状態
- HSRP/VRRP の状態
- HA の状態
- その他、使用している機能の状態
確認対象のネットワーク機器としては、基本的にはネットワークを構成するすべての機器が対象になります。障害に影響を受けない機器についても、影響がないことを確認します。
機器ログ取得方法の工夫が作業効率化の鍵
障害試験では毎ショット各機器のログを取得する必要があります。このログ取得をどのように行うかが作業効率に直結します。
- 各機器にコンソール接続するのか、Telnet/SSH でリモートアクセスするのか
- 手動でコマンド実行するのか、マクロを使用するのか
- 状態確認(ログ内容確認)はどう行うのか
少なくとも、機器へはリモートアクセスしてマクロでログを取得する方が効率的なため、そうすることができないかを考えることが重要になります。