ソフトバンク大規模通信障害の原因

   このエントリをはてなブックマークに登録    2019/2/4-1

2018年12月6日、ソフトバンクのネットワークにおいて、4時間25分にわたり約3060万回線の利用者に影響を及ぼす通信障害が発生しました。 ソフトバンクおよびワイモバイルの4G(LTE)携帯電話サービス、「おうちのでんわ」、Softbank Air、3Gサービスなどが影響を受けました。

この障害は、EricssonのMME内部にハードコーディングされた証明書が期限切れになったため、SGSN-MME(Serving GPRS Support Nodex - Mobility Management Entity)が再起動を繰り返してしまったのが原因です。 ただ、証明書が期限切れになることで、なぜ大規模な通信障害に繋がってしまうのかが良くわかりませんでした。 どのような設計をしたら、証明書が期限切れになったことで通信機器が再起動を繰り返すような状況になるのか、昨年段階では、いまいち理解できなかったのです。

その後、原因を知ることができたので、障害発生から少し時間が経過していますが、記事としてまとめてみました。

障害の影響範囲

日本国内ではソフトバンクの通信障害として注目されていますが、日本以外でも世界11カ国で通信障害が発生していました。 ソフトバンクからの公式発表に、世界11カ国で同時発生していたことが記載されています。

イギリスのO2やベトナムのMobifoneに関して言及している記事として、以下のものがあります。

TLS証明書の失効による再起動

通信障害が発生した原因などに関して、その後、いくつかのイベントで発表されたり、関連する業界関係者向けに説明などが行われています。 たとえば、2018年12月19日に行われた「ソフトバンク株式会社 上場記者会見」の録画映像の25分ごろから副社長の宮川氏が通信障害に関して発表したものを見ることができます。

この動画によると、証明書が期限切れになり、Ericsson製のMMEが再起動を繰り返したとあります。 再起動を繰り返したMMEのソフトウェアバージョンは、MME Ver.1.14で、そのバージョンから機器内部の通信においてTLSを利用するように変わっていたとあります。 12月6日の障害からの復旧は、MME Ver.1.14にアップデートする前のバージョンであるMME Ver.1.08に戻すことで行われています。

宮川氏の発表では、次のように正常性監視機能とユーザ管理機能(LDAP)との間で行われるTLS通信で利用される証明書が期限切れになったと説明があります。


ソフトバンク株式会社 上場記者会見動画より

この図で非常に大事なのは、この図で描かれている灰色の四角が物理的な機器を示しているという点です。 一見、正常性監視機能とユーザ管理機能が別々の機器のように誤解しがちですが、両方とも同じ機器内で動いている別プロセスのようなものです。 正常性監視機能とユーザ管理機能は、同一機器内での情報共有にTLSを使っていたのです。 そして、証明書が期限切れになることでTLSによる通信が確立できなくなり、正常性監視機能がユーザ管理機能に異常が発生したと認識してしまいました。 正常性監視機能は、異常な状態から復帰するためにリブートを行ったため、MMEがリブートしてしまったのです。

しかし、証明書が期限切れになっていることが異常の原因であるため、リブートしても問題は解決しません。 同じ問題が再度発生してMMEがリブートします。 LTE交換機であるMMEがリブートを繰り返してしまう状態になってしまったため、ソフトバンクの4G(LTE)ネットワークが利用不能になってしまったのです。

確認不能

ソフトバンクの発表によると、障害が発生した12月6日の段階では、問題となったTLS証明書をMMEを管理するネットワークオペレータが確認することはできなかったそうです。

機器内部で機能間が情報共有などをするための通信にTLSを使っており、そのTLSで利用される証明書であったため、証明書の利用が各MME内で完結していました。 障害が発生するまでは、ソフトバンクのネットワークオペレータは、機器内部の機能同士でTLS通信が行われていることや、そのために証明書がソフトウェア内に埋め込まれていることを知らなかったとのことでした。 さらに、障害発生時点では、証明書の有効期限をネットワークオペレータが知る手段も存在しなかったようです。


ソフトバンク株式会社 上場記者会見動画より

以後、同様の通信障害を発生させないための恒久対策として、MMEに埋め込まれている証明書の有効期限を確認したり、証明書の更新をできるようにソフトウェアを更新してもらったと表現している点も印象的です。


ソフトバンク株式会社 上場記者会見動画より

LDAPは使われてなかった?

MMEがリブートを繰り返しす要因となったLDAP機能はVer.1.08にはなく、Ver.1.14において利用されています。

MMEで「ユーザ管理」と書かれると、「あれ?このユーザは、何のユーザだろう?」と疑問に思いがちですが、ここにある「ユーザ」とはMMEを設定するシステムオペレータのことです。 LTEネットワーク利用者という意味の「ユーザ」ではありません。

何故LDAPを導入したのかは不明ですが、複数のMME間で同じ管理者アカウントを共有することが目的にあったのかもしれません。 少し例えがアレかもですが、NIS(Network Information Service)みたいな使い方を想定したものですかね。

では、すべての管理者アカウントをLDAP機能が担っていたのかという疑問が浮かびますが、おそらく、そうではなかったと気がしています。 12月6日の障害からの復旧は、何らかの手段でMME Ver.1.08に戻すという作業が行われているので、LDAP機能とは関係なく、ローカルに設定してある管理者アカウントも存在していると推測できます。 そのため、障害の原因であったLDAPの新機能は、昨年12月時点におけるソフトバンクネットワークでは使われていなかったものと思われます。

特に使っているわけでもない新機能が無限リブートの原因だったのかも知れません。

大手モバイル3社のうちソフトバンクのみが影響を受けた原因を推測

日本では、12月6日に大規模な通信障害が発生したのは大手モバイル3社のうちソフトバンクだけです。 どこで違いが出たのかを推測してみようと思います。

まず、Ericssonのプレスリリースには、以下のように書かれています。

Ericsson has identified an issue in certain nodes in the core network resulting in network disturbances for a limited number of customers in multiple countries using two specific software versions of the SGSN-MME

上記プレスリリースのタイトルにもあるように、「特定の」もしくは「一部の」顧客のみが影響を受けたとあります。 そして、文中では、2つの特定のソフトウェアバージョンを利用しているSGSN-MMEが原因となったとあります。 その2つのバージョンのうちの一つがMME Ver.1.14です。

ソフトバンクがEricssonの証明書問題に巻き込まれたのは、MME Ver.1.14を利用していたという要素があります。 SGSN-MMEに対しての最近のアップデートとして、IoT系の機能追加や機能改修が多く、NB-IoTを採用しているソフトバンクは新しいバージョンへとアップデートすることが多かったという意見もあるようです。

この他、ソフトバンクではマルチベンダによるMME運用を行っていなかったという要素があると思われます。 すべてのMMEがEricsson製であったため、それらが一斉に誤動作を起こした時に、バックアップとなるMMEがありませんでした。 上場記者会見の映像では、恒久対策のひとつとしてマルチベンダ化をあげています。

他の2社は、それらの要素を含めて大規模障害が発生する要素が重ならなかったのかも知れません。

   このエントリをはてなブックマークに登録   

プロフェッショナルIPv6解説動画シリーズ再生リスト

動画で学ぶ「プロフェッショナルIPv6」を作っています。 もしよろしければご覧ください。お楽しみいただければ幸いです!

   このエントリをはてなブックマークに登録