この記事は、 「ネットワーク上級編|要件定義・設計・クラウド・自動化へ進む」 の第69回です。
第7章では、設計・移行・顧客説明・障害分析など、 ネットワークエンジニアが実案件をリードするために必要な実務スキルを学びます。
大規模障害の原因分析|ネットワーク障害を根本原因まで追うRCAの進め方
大規模障害では「どの機器が故障したか」を見つけるだけでは不十分です。 なぜ障害が広範囲へ波及したのか、なぜ検知・防止できなかったのか、 なぜ復旧に時間がかかったのかまで分析し、 同じ障害を繰り返さない仕組みへつなげる必要があります。
ネットワーク障害が発生した直後の最優先事項は、 原因を完璧に説明することではなく、影響を抑えてサービスを復旧させることです。
しかし復旧後に 「ルーターが停止しました」「設定ミスでした」で終わらせてしまうと、 同じ障害が再発する可能性があります。
大規模障害では、技術的な故障点だけでなく、 設計、変更管理、監視、レビュー、手順、組織間連携まで含めて 原因を分析する必要があります。
この記事を読み終えるとできること
- 直接原因と根本原因を区別できる
- 障害タイムラインを作成できる
- ログ・設定差分・監視情報から事実を整理できる
- 原因と寄与要因を分けて分析できる
- 5 Whysなどを使って背景まで掘り下げられる
- 再発防止策を技術・運用・組織に分けて考えられる
- 経営層・顧客向けに障害原因を説明できる
- RCA報告書の基本構成を作成できる
大規模障害の原因分析とは何か
大規模障害の原因分析とは、 障害を発生・拡大させた事実を時系列で整理し、 直接原因・根本原因・寄与要因を特定して、 再発防止へつなげる活動です。
小規模な障害であれば、 「LANケーブルが抜けていた」「ルーティング設定が誤っていた」 といった故障点を修正することで対応を完了できる場合があります。
一方、大規模障害では複数の条件が重なっていることが珍しくありません。
- 誤った設定が投入された
- レビューで設定ミスを発見できなかった
- 試験環境が本番構成と異なっていた
- 監視で異常を検知できなかった
- 冗長構成だったが同じ設定が両系へ反映された
- 切り戻し判断に時間がかかった
- 関係者への情報共有が遅れた
この場合、 「設定ミス」が障害のきっかけだったとしても、 それだけを原因とすると分析が浅くなります。
原因分析の目的は、犯人を探すことではありません。
同じ条件が再び発生しても、 同じ規模の障害にならない仕組みを作ることが目的です。
直接原因・根本原因・寄与要因を区別する
障害原因を正しく説明するには、 すべてを「原因」という1つの言葉でまとめないことが重要です。
障害を「見えた現象」から「再発を生んだ構造」まで掘り下げる
| 分類 | 意味 | 例 |
|---|---|---|
| 障害事象 | 利用者・システムから見えた問題 | 全拠点からクラウド業務システムへ接続できない |
| トリガー | 障害が始まる契機となった出来事 | ルーターへの設定変更 |
| 直接原因 | 障害を直接発生させた技術要因 | 必要な経路がルーティングテーブルから消失した |
| 根本原因 | 直接原因を生み、防げなかった背景 | 変更前の経路差分確認と自動検証が存在しなかった |
| 寄与要因 | 影響範囲や復旧時間を増大させた要因 | 監視不足、切り戻し判断の遅れ、単一の変更経路 |
「作業者が設定を間違えた」を根本原因にしないことが重要です。
人が間違える可能性があることを前提に、 なぜレビュー・試験・自動検証・切り戻し手順などで 被害を防げなかったのかまで確認します。
まず障害タイムラインを作る
大規模障害では、多数のログや証言をいきなり分析すると混乱しやすくなります。 まず「いつ、何が起きたのか」を時系列へ並べます。
タイムラインの例
| 時刻 | 事実 | 情報源 | 判断 |
|---|---|---|---|
| 21:00 | ネットワーク変更作業を開始 | 作業記録 | 正常 |
| 21:07 | コアルーターへ経路ポリシー変更を投入 | 操作ログ | 障害トリガー候補 |
| 21:08 | クラウド宛経路数が大幅に減少 | ルーティング監視 | 異常 |
| 21:09 | 複数拠点でアプリケーション監視失敗 | 監視システム | 影響開始 |
| 21:12 | サービスデスクへ問い合わせ増加 | 問い合わせ記録 | 利用者影響拡大 |
| 21:18 | ネットワークチームが経路異常を認識 | 障害対応記録 | 原因調査開始 |
| 21:28 | 変更前コンフィグへの切り戻しを決定 | 障害対応記録 | 復旧対応 |
| 21:34 | 経路数が正常値へ復帰 | ルーティング監視 | 技術復旧 |
| 21:38 | 全拠点のアプリケーション監視正常 | 監視システム | サービス復旧確認 |
タイムラインを作ることで、 「設定変更の直後に経路が減少し、その後アプリケーション障害が発生した」 という因果関係の候補が見えてきます。
タイムラインには、 発生時刻・検知時刻・認知時刻・復旧開始・復旧完了 を分けて残すと分析しやすくなります。
証拠を集めて事実と推測を分ける
原因分析では、 「たぶんこれだと思う」という経験則だけで結論を出してはいけません。
仮説を立てたら、ログ・設定・監視データなどの客観的な証拠で確認します。
| 確認対象 | 確認する内容 |
|---|---|
| 機器ログ | リンク変化、ルーティング変化、プロトコル異常、CPU・メモリ異常 |
| 設定差分 | 障害発生前後で何が変更されたか |
| ルーティング情報 | 経路数、Next Hop、経路広告・受信状況 |
| 監視データ | トラフィック、遅延、ロス、CPU、セッション数など |
| フローデータ | 障害前後の通信量・通信方向・宛先変化 |
| パケットキャプチャー | 実際にどこまで通信が到達しているか |
| 作業ログ | 誰が、いつ、何を変更したか |
| 監視アラート | どの異常を何時に検知したか |
| 利用者申告 | 影響地域・サービス・開始時刻 |
「事実」と「仮説」を明確に分ける
証拠で確認できるもの
21:07に設定変更が実行され、 21:08にクラウド宛経路数が850から12へ減少した。
これから検証するもの
21:07の設定変更により、 クラウド向け経路が誤ってフィルタリングされた可能性がある。
仮説を事実のように扱うと、 調査が誤った方向へ進む可能性があります。
大規模障害を分析する8ステップ
- 障害事象と影響範囲を定義する 何が利用できなかったのか、誰にどの程度影響したのかを整理します。
- 障害タイムラインを作成する 変更、アラート、問い合わせ、判断、復旧作業を時系列へ並べます。
- 障害発生前との差分を確認する 設定、ソフトウェア、経路、回線、トラフィックなど、 正常時から何が変化したかを確認します。
- 原因仮説を複数作る 最初から1つに決めつけず、機器・回線・経路・DNS・セキュリティなど 複数の可能性を考えます。
- 証拠を使って仮説を検証する ログ、設定差分、監視データ、パケットなどで仮説を確認します。
- 直接原因と根本原因を分ける 「何が通信を止めたか」と「なぜそれを防げなかったか」を分離します。
- 寄与要因を洗い出す 監視不足、冗長化不足、手順不足など、 障害規模や復旧時間を増やした要因を整理します。
- 再発防止策と担当・期限を決める 改善案を書くだけではなく、実施責任者と期限まで決めます。
RCAは「原因を1つ見つける作業」ではありません。
障害を発生させた技術要因と、 それを大規模障害へ拡大させた仕組み上の要因を分けて考えます。
ケーススタディ:経路変更から全社障害へ
障害シナリオ
企業Aでは、全国30拠点からデータセンター経由で クラウド上の業務システムへ接続しています。
夜間作業でコアルーターの経路制御ポリシーを変更した直後から、 全拠点でクラウド上の業務システムへ接続できなくなりました。
- インターネット接続:正常
- 拠点間通信:正常
- クラウド向け通信:失敗
- コアルーター自体:稼働中
- インターフェース:Up
障害発生前
Branch
|
WAN
|
Core Router
|
Cloud Connection
|
Cloud System
Cloud routes: 850 prefixes
Status: Normal
障害発生後
Branch
|
WAN
|
Core Router
|
X Cloud routes missing
|
Cloud Connection
|
Cloud System
Cloud routes: 12 prefixes
Status: Application unreachable
設定差分を確認する
Before:
permit cloud-prefix-list
After:
deny cloud-prefix-list
permit any
設定変更により、 本来許可する必要があったクラウド向け経路が拒否されていました。
ここで分析を終えてはいけない
「原因:経路フィルターの設定ミス」 と書けば技術的な直接原因は説明できます。
しかし、本当に再発を防ぐにはさらに確認します。
- なぜ誤った設定が作成されたのか
- なぜレビューで発見できなかったのか
- なぜ投入前の検証で検出できなかったのか
- なぜ経路数の急減を即座に検知できなかったのか
- なぜ切り戻しまで20分以上かかったのか
分析結果の例
| 分類 | 分析結果 |
|---|---|
| 直接原因 | 経路フィルターの誤設定によりクラウド向け経路が削除された |
| 根本原因 | 設定変更前後の経路差分を検証する標準手順が存在しなかった |
| 寄与要因 | レビューが設定文法中心で、想定経路結果まで確認していなかった |
| 寄与要因 | 経路数の急減を検知する監視が設定されていなかった |
| 寄与要因 | 切り戻し条件が「通信影響発生時」程度の曖昧な表現だった |
5 Whysで根本原因を掘り下げる
直接原因が分かった後、 「なぜ」を繰り返して背景を掘り下げる方法があります。
先ほどのケースを例に考えます。
-
なぜクラウドへ接続できなくなったのか?
クラウド向け経路がルーティングテーブルから消失したため。 -
なぜ経路が消失したのか?
経路フィルターが対象経路を拒否していたため。 -
なぜ誤ったフィルターが本番へ投入されたのか?
設定レビューで誤りを発見できなかったため。 -
なぜレビューで発見できなかったのか?
レビューがコンフィグ内容の確認だけで、 経路広告結果まで確認するルールになっていなかったため。 -
なぜ経路結果を確認するルールがなかったのか?
過去の変更手順が機器設定中心で作られており、 サービス影響を検証する観点が標準化されていなかったため。
必ず5回質問すれば正解になるわけではありません。 重要なのは回数ではなく、 再発防止策を具体的に考えられる深さまで原因を掘ることです。
再発防止策の作り方
再発防止策として、 「今後は十分注意します」「ダブルチェックを徹底します」 だけを書くのは不十分です。
技術・プロセス・監視・復旧の複数レイヤーで改善します。
変更を防ぐ
- 設定テンプレート化
- Gitによる差分管理
- 自動構文チェック
- 承認フローの改善
投入前に検出する
- 検証環境での事前試験
- 経路数・疎通結果の比較
- レビュー観点の標準化
- 自動テスト
障害を早く検知する
- 経路数監視
- サービス監視
- 異常トラフィック監視
- テレメトリー活用
早く復旧する
- 切り戻し条件の数値化
- 復旧手順の事前準備
- バックアップ設定の確認
- 障害時の権限と判断者の明確化
再発防止策は原因と対応付ける
| 原因・課題 | 対策 | 確認方法 |
|---|---|---|
| 経路結果をレビューしていなかった | 変更レビューへ経路差分確認を追加 | レビュー記録を確認 |
| 経路急減を検知できなかった | 経路数監視としきい値アラートを追加 | テストアラートを発報 |
| 切り戻し判断が遅れた | 切り戻し条件を事前に数値化 | 次回変更時の手順レビュー |
| 手作業で設定を作成していた | 設定生成・差分チェックを自動化 | 自動テスト結果を保存 |
原因分析でよくある失敗
1.最初に見つかった異常を原因にする
最初に見つかったログエラーが、 原因ではなく結果として発生していることもあります。
2.人のミスで終わらせる
「担当者が間違えた」で終わると、 同じ条件で別の担当者が同じ障害を起こす可能性があります。
3.復旧操作を原因と勘違いする
再起動で復旧したからといって、 再起動しなかったことが原因とは限りません。
4.ログだけを見る
ログ、設定、メトリクス、通信経路、利用者影響など、 複数の情報を組み合わせて判断します。
5.再発防止策が「注意する」だけ
人の注意力だけに依存せず、 検証・自動化・監視・設計で防御します。
6.障害を隠そうとする
都合の悪い事実を省略すると、 本当の原因を特定できず、改善機会も失われます。
RCA報告書に残す内容
原因分析の結果は、 後から第三者が読んでも障害の全体像を追える形で残します。
大規模障害 RCA報告書テンプレート
- 障害概要
- 発生日時・復旧日時
- 影響範囲
- 利用者・業務への影響
- 障害タイムライン
- ネットワーク構成
- 確認した事実
- 直接原因
- 根本原因
- 寄与要因
- 暫定対応
- 恒久対応
- 再発防止策
- 担当者・期限
- 残存リスク
技術原因だけでなく業務影響も記載する
たとえば、
「BGPの経路が消失しました」
だけでは、技術に詳しくない関係者には障害の重要性が伝わりません。
「クラウド接続に必要な経路がネットワーク機器から消失したため、 全国30拠点から受発注システムへ接続できない状態が30分間発生しました。」
のように、 技術事象 → サービス影響 → 業務影響 の順番で整理すると伝わりやすくなります。
顧客・経営層への説明方法
技術担当者向け
技術担当者には、 原因となった設定、経路変化、ログ、再現条件などを詳細に説明します。
21:07の経路ポリシー変更により、
クラウド向けプレフィックスがフィルタリングされました。
変更前:850経路
変更後:12経路
その結果、各拠点からクラウド接続先への
有効な経路が失われました。
経営層・非技術者向け
経営層へ細かなルーティング設定を説明する必要はありません。
次の4点に絞ります。
- 何が起きたか
- どの業務へ影響したか
- なぜ防げなかったか
- 今後どう防ぐか
説明例
「ネットワーク設定変更により、クラウドサービスへ接続するための経路情報が 誤って削除され、全国の拠点から業務システムへ接続できない状態が発生しました。 設定自体の誤りに加えて、投入前に経路変化を確認する試験と、 異常を早期検知する監視が不足していました。 今後は自動検証、経路監視、切り戻し条件の明確化を実施します。」
障害原因分析で使われる英語表現
| 英語 | 意味 |
|---|---|
| Root Cause Analysis (RCA) | 根本原因分析 |
| Root cause | 根本原因 |
| Contributing factor | 寄与要因 |
| Trigger | 障害のきっかけ |
| Service impact | サービス影響 |
| Incident timeline | 障害タイムライン |
| Corrective action | 是正措置 |
| Preventive action | 予防措置 |
| Mitigation | 影響軽減・暫定対応 |
| Rollback | 切り戻し |
ベンダーとのやり取りで使える表現
We are conducting a root cause analysis of the network outage.
ネットワーク障害について根本原因分析を実施しています。
The issue occurred immediately after the configuration change.
設定変更の直後に問題が発生しました。
Please help us determine whether this event was the root cause or a contributing factor.
この事象が根本原因なのか寄与要因なのか確認するため、ご支援ください。
We have attached the logs and configuration differences before and after the incident.
障害前後のログと設定差分を添付しています。
理解度チェック
単に用語を覚えるのではなく、 原因をどの深さまで分析すべきか確認しましょう。
問題1.大規模障害の原因として 「担当者が設定を間違えた」と判明しました。 RCAとして次に確認すべき内容はどれですか。
- 担当者を交代する
- 設定ミスを防止・検出できなかった仕組みを確認する
- 障害報告を終了する
- ルーターを再起動する
解答を見る
RCAでは、人のミスだけで終了せず、 なぜレビュー・試験・監視などで防止できなかったかを分析します。
問題2.「設定変更の直後に障害が発生した」という情報だけで、 設定変更を根本原因と断定してよいでしょうか。
解答を見る
時系列上の関連は強い仮説になりますが、 設定差分、ログ、経路変化などの証拠を確認する必要があります。
問題3.次のうち「寄与要因」に最も近いものはどれですか。
- 障害を発生させた設定コマンド
- 障害影響や復旧時間を拡大させた監視不足
- 利用者が障害を申告したこと
- 復旧後に報告書を作成したこと
解答を見る
寄与要因は直接原因ではないものの、 障害規模や継続時間を大きくした要因です。
問題4.再発防止策として、より適切なのはどちらですか。
- 今後は作業担当者が注意する
- 設定差分の自動確認と変更後の経路数チェックを標準化する
解答を見る
注意力だけへ依存せず、 検証や監視などの仕組みで再発確率を下げます。
問題5.経営層への障害説明で優先すべき4項目を答えてください。
解答を見る
- 何が起きたか
- どの業務へ影響したか
- なぜ防げなかったか
- 今後どう防ぐか
実践演習:大規模障害のRCAを作成する
次の障害を担当したと仮定して、 原因分析を行ってみましょう。
演習シナリオ
本社と20拠点を接続する企業ネットワークで、 午前10時15分からすべての拠点で社内業務システムへの通信が不安定になりました。
- 10:10:コアスイッチの設定変更を開始
- 10:14:VLAN追加設定を投入
- 10:15:ネットワーク監視で大量の通信断を検知
- 10:16:複数スイッチでCPU使用率が90%を超える
- 10:17:大量のブロードキャスト通信を観測
- 10:22:変更作業を停止
- 10:28:追加したVLAN設定を削除
- 10:31:CPU使用率が正常値へ復帰
- 10:34:全拠点で通信正常を確認
追加調査の結果、 VLAN追加時に本来STPの対象とすべき接続で ループを防止できない状態になっていたことが判明しました。
課題1.障害事象を1文で整理する
解答例を見る
10:15から10:34まで、ネットワーク内で大量のブロードキャスト通信が発生し、 本社および20拠点から社内業務システムへの通信が不安定となった。
課題2.直接原因を考える
解答例を見る
レイヤー2ネットワーク内でループが発生し、 ブロードキャスト通信が大量に転送されたこと。
課題3.根本原因を考える
「設定ミスだった」だけで終わらせず、 次の観点から3つ以上考えてください。
- 設計
- 設定レビュー
- 事前試験
- 監視
- 変更手順
解答例を見る
- VLAN追加時のSTP影響を事前に確認する設計レビュー項目が不足していた
- 本番と同等構成でのループ発生試験が実施されていなかった
- 変更直後のブロードキャスト量を確認する手順がなかった
- CPU上昇を検知できたが、原因となるL2異常との関連付けに時間を要した
課題4.再発防止策を作る
解答例を見る
- VLAN・STP変更用のレビュー項目を標準化する
- 変更前に物理・論理構成図からL2ループ候補を確認する
- 本番投入前に検証環境でSTP動作を確認する
- 変更後確認へSTP状態とブロードキャスト量を追加する
- 異常発生時の切り戻し条件を事前に定義する
課題5.経営層向けに100〜200文字で説明する
説明例を見る
ネットワーク変更時の設定不備により不要な通信が大量に発生し、 約19分間、本社および20拠点から業務システムへの通信が不安定となりました。 設定の修正により復旧済みです。 今後は事前検証、レビュー項目、異常監視、切り戻し条件を強化します。
自分の言葉で説明する課題
後輩から 「原因が設定ミスだと分かったなら、それ以上調査する必要はないのでは?」 と質問されました。
1分程度で説明してください。
説明例を見る
設定ミスは障害の直接原因かもしれませんが、 大規模障害では「なぜそのミスが本番へ入り、 なぜレビューや試験、監視で防げなかったのか」まで確認する必要があります。 そこまで調べなければ、別の担当者が同じ条件で 同じ障害を起こす可能性があります。 原因分析の目的は責任者を探すことではなく、 同じ障害を繰り返さない仕組みを作ることです。
まとめ
- 大規模障害では復旧後に根本原因分析を行う
- 障害事象・トリガー・直接原因・根本原因・寄与要因を分けて考える
- 最初に障害タイムラインを作り、時系列を整理する
- 事実と仮説を分け、ログ・設定差分・監視データで検証する
- 「担当者が間違えた」だけでは根本原因にならない
- なぜレビュー・試験・監視・切り戻しで防げなかったかまで確認する
- 再発防止策は技術・プロセス・監視・復旧の複数レイヤーで考える
- 経営層には技術詳細より、業務影響・原因・対策を中心に説明する
優れた障害対応は「復旧できた」で終わりません。 障害から得られた事実を、次の設計・監視・変更作業へ反映し、 同じ失敗が大規模障害へ発展しない仕組みに変えるところまでが 上級ネットワークエンジニアの仕事です。
上級編では、要件定義から基本設計、高度なネットワーク技術、 クラウド、セキュリティ、自動化、設計・提案までを体系的に学びます。

コメント