orangeitems’s diary

クラウドではたらくエンジニアの日々の感想です。

東証のシステム障害は、「仮想サーバートラブル」ではなく「ネットワークトラブル」だった

f:id:orangeitems:20181009182920j:plain

 

東京証券取引所の障害

東京証券取引所の株式売買システムの一部で障害が発生し、一部の証券会社が影響を受けたシステム障害の件に言及したいと思います。

 

当初「仮想サーバー」というキーワードが出てきて大変混乱しました。午前の段階では表現は以下の通りでした。

 

jp.reuters.com

東京証券取引所は9日、株式取引の一部でシステム障害が発生していると明らかにした。現物の売買システム「アローヘッド」にある仮想サーバの一部で障害が発生した。一部の証券会社で株式取引ができない状況となっている。

 

夕方の報道では、内容が変わっています。

 

www.asahi.com

JPXによると、9日午前7時32分、東証のシステムへ電文が「極めて短い時間に大量に送られてきた」という。売買注文ではなく通信経路を確認する電文で、通常の1千倍の量だったという。それが原因でシステム障害が起き、証券会社が売買注文を出す4回線のうち1回線が使えなくなった。電文を送った証券会社名は公表していない。

 

これなら、とてもよくわかります。東証の売買システムはarrowheadですが、これにつなぎこむネットワークのことをarrownetと言います。このarrownetの仕組みを表す構成図の記事がありますので紹介しておきます。

 

arrownetの仕組み

下記の記事が良くまとめられています。

 

cloud.watch.impress.co.jp

東証ではこれまでも、株式売買システム「arrowhead」のネットワークシステム「arrownet」においてジュニパーのルーター「M320」「M120」を採用し、2010年に運用を開始していたが、技術の進化と顧客のニーズの高まりを受け、東証のためだけのネットワークインフラではなく、国内の金融取引全体を統合するネットワークとしてarrownet v2を構築することになったという。

(中略)

arrownet v2は2012年の稼働開始後、2015年9月にアクセスポイントを2つから3つに増設し、2016年2月には利用者への10Gbps回線サービス提供を実現した。

 

下記の図は最も重要でしょう。

f:id:orangeitems:20181009181322p:plain

 

記事にもありますが、Juniper Networksの事例にも記載されています。

https://www.juniper.net/assets/jp/jp/local/pdf/case-studies/jpx-jp.pdf

 

上記の図では3か所のアクセスポイントしか記載されていませんが、おそらく4か所目も追加されたのではないかと推測します。ここに複数の証券会社がつなぎこんでいて、普段利用するアクセスポイントが決められていたのでしょう。

このネットワークに対して、特定の証券会社のネットワーク設定もしくは不具合により、「経路ループ」が起こりCPU負荷やトラフィックが急増し、アクセスポイントごとダウンしたのではないかと思われます。

 

経路ループについては、下記の記事が詳しいです。

 

ルーティング・プロトコルの役割を理解する:IPルーティング入門(1) - @IT

しかし、設定ミスや機器障害により誤まった経路情報がアナウンスされると、これらの情報もネットワーク全般に伝達されるため、広範囲にわたり通信不能に陥ってしまうという短所もあります。さらに最悪なケースでは、経路ループを引き起こし、CPU負荷やトラフィックが急速に増加し、ネットワークそのものがダウンすることも考えられます。

 

私自身もこれは体験したことがあるのですが、必ずしも設定ミスだけではありません。ネットワーク機器の障害が引き起こすこともあります。

今回素晴らしいなと思ったのは、アクセスポイントの中だけで障害が収束し、他のアクセスポイントやその裏のMPLS網には影響を及ぼさなかったことです。

 

実際、朝日新聞の記事中に、

 

横山氏はこうした事態について「複数(の回線)につないでくれとしか仕様書に書いていなかった我々の不十分さがあった。振り分け時の障害でどのようにするかを確認していればもっと(対応)できた」と述べた。東証では売買自体はできたが、システム障害は9日の取引時間中は終日続いた。
 6~8日の三連休明けのトラブルだが、東証側ではシステムの変更は行っておらず、証券会社側が一部設定を変更したとみられるという。

 

とあるため、アクセスポイントの手動切替は、障害対応手順としてはシナリオにあったものの、証券会社側はそれを理解していなかったというふうに読めます。

 

東証の判断は正しかったか

アクセスポイント1つが麻痺している状況で、取引を開始してしまったことについて議論が起こっています。取引参加者からすれば、証券会社によって参加できたりできなかったりするのは不公平ですよね。

システムエンジニアとすればアクセスポイントを複数用意しているんだから、(設計通り)切り替えて使ってほしいというのは正論ですが、結果として、不公平な状況が生まれてしまいました。

どういう振り返りとなるかは不明ですが、今後の報道に目を配っていきたいと思います。

 

続報(2018/10/9 21:55)

接続していた証券会社が、メリルリンチであると日経が報道しました。

 

www.nikkei.com

東京証券取引所で9日発生した株式売買のシステム障害で、不具合の原因となった大量の不正電文をメリルリンチ日本証券が送信していたことが関係者への取材で分かった。

 

現時点で、設定ミス(ヒューマンエラー)と断じるのは早計だと思っています。ネットワーク機器の障害の可能性もあり続報待ちです。また、1社のブロードキャストストーム等でアクセスポイントごとつぶれるアーキテクチャーも問題はあると思います。

ファイアウォール等でせき止められれば・・。これは高速取引を実行するうえではボトルネックの原因となるのでしょうけれども。

 

 

日本経済の心臓 証券市場誕生!