KDDIの大規模通信障害の原因を考えてみた。
はじめに
大きなニュースとなっていましたが、KDDIの通信サービスにおける障害が7月2日未明から発生し、5日15時36分に完全復旧したとのことです。
障害はメンテナンスの切戻しを契機とし、輻輳が輻輳を呼び、かつてない大規模になものになりました。
モバイルキャリアの障害では、いつも同じような機器(ノードと呼ばれる)が壊れて、"輻輳”が発生することで長期化する傾向があります。公開情報とZDNet Japanさんの記事から過去の障害も含めて振り返ってみたいと思います。
モバイル設備の大規模障害の発生状況
記憶にあたらしいところで、2018年にソフトバンクが、昨年10月にはドコモ、そして今月KDDIが大きな障害を発生させています。
※7/7にドコモの5Gにて障害があったようですが詳細不明のため未反映です。
影響範囲も、発生時間も今回のKDDIさんが記録を塗り替えたことが分かります。ソフトバンクさんの障害も大きいですが、KDDIさんは国内2位のシェアがあったことで、影響するユーザ数が多くなっています。
モバイル設備って何?どこが壊れてるの?
なんだかいつも同じような機器(ノード)の名前が出てくるので、過去の通信障害のネット記事をもとにLTEのモバイル設備図にマッピングしてみました。
モバイル端末は電源を入れると、音声用とパケット転送用の2本の通信経路を構築します。モバイルの通信の流れを簡単に言うと、端末から無線信号を飛ばし、アンテナが受けると、eNodeBからMMEへとコントロール信号が流れ、加入者DB参照や音声信号が処理されます。そのコントロール信号にて、SGW~PGWといった機器で通信経路が設定され、音声やインターネットなどのパケット通信が可能になるようです。
こうしてみると、信号を処理するMMEや、加入者DBをもつHSSといったノードにて輻輳が発生すると、大規模障害になってしまうのは合点がいきます。
輻輳ってなんなの?
では、輻輳とはどういうことなんでしょうか?検索したドコモのサイトには以下とあります。
また、輻輳は渋滞に例えられることも多いようですが、ただ待たされる状況ではなく、処理できない件数の信号が来ると、信号が再送されたり、人が電話をかけ直したりして、加速度的に信号が増え、最後はコア設備が機能停止に陥ってしまうようです。そうなると、予備系に切り替えようとしても、溜まった信号が予備系に行って、また同じことが発生してしまいます。輻輳へ対応しながら、サーバーを回復させていくのは、過去の経験からも、かなり大変なものと、KDDI技術統括本部長の吉村さんが今回の事故の会見にて説明されています。
今回の障害では何が起きたの?
今回の事象をKDDIさんは2つの事象が発生したと説明されています。
事象1:音声通信不通
最初にルーターのメンテナンスで通信経路が切り替わらずに音声通信が不通となっています。
事象2:VoLTE交換機・加入者DBにて輻輳発生
そして事象1を復旧させようと、ルーターをもとに戻したところ、15分間の間接続ができず、通常よりはるかに多い接続要求が溜まっていたことで、VoLTE交換機にアクセスが集中し輻輳が発生したようです。
※KDDIの会見では2倍の信号が流れてきたと説明がありました。
KDDIの障害対応
KDDIの障害対応を時系列で追うと、まずVoLTE交換機への無線流量制御を行うことで負荷低減させるも、今度は加入者DBが輻輳したため、その後モバイルコアのPGWを切り離すことでようやく、加入者DBの負荷を低減できたようです。ここまでで発生から14時間経過しています。
ただ、これだけでは終わらず、輻輳状態によってデータ不一致が加入DBで発生していたため、切り離し、リセットするといった作業を、すべてのPGWにて実施することで、最終的な復旧に至ったとのことです。長期化したのはこのあたりが原因だったようです。
過去の問題の水平展開施策は?
では過去の障害の対策は機能しなかったのでしょうか?
ドコモさんは以下のような対策を取られています。
実はここだけを見ても、事故を発生させない対策を取っているも、輻輳への対策がないようです。
KDDIさんも2012年にMMEで大障害を起こした際には、以下の対策を取られています。
ただ、こちらでも輻輳そのものに対する対策はありませんでした。
以下会見にてバックアップの機能は十分ある、と高橋社長は回答されています。
いくらキャパシティを増やしても、通常の2倍程度の信号で輻輳が発生しているので、問題は処理性能とは別にありそうです。適切に呼処理を分散し、輻輳にならないように制御が行えるアーキテクチャにしないと、輻輳は避けられないように思えます。また、最初の切戻しの際に、無線の流量制限を行っていれば、輻輳も発生せず、徐々に回復していったのではないのでしょうか。運用手順にも問題がありそうです。
素人考えですが、そもそもモバイルコアでは輻輳回避は運用対応となり、標準化されていなかったことが問題に思えます。現在各キャリアで対応されているような、無線の流量制限を行ったうえで、フェールオーバーさせる手順を確立する必要があります。
最後に
10年近く前にdocomoやKDDIもLTEにて障害を頻発させたことで、再発防止を徹底されたと思いますが、当時とは収容している加入者の数も桁違いに増えたことで、過去の施策が機能しなくなっているように思えます。
2012年の障害では700円の割引を対象ユーザにされています。今回は単純に全ユーザに700円配るとそれだけで、274億円の出費となります。KDDIさんには今回の事故を教訓に、世界最強のモバイルNWを作ってくれることを期待します。
なお、素人が想像と公開情報をもとに妄想しながら書いたので、誤りがあった場合は訂正させていただきます。
この記事が気に入ったらサポートをしてみませんか?