インターネットは日々壊れている

2017/9/13-1

「壊れやすくて粘り強い」というのは、私がインターネットに対して持っているイメージです。 絶対に壊れないことを目指すのではなく、ある程度は部分的に壊れることを前提にしてある、また、ゆるさやいい加減さが逆に全体としての壊れにくさを実現しており、全体としては粘り強くなっている、という意味合いです。

絶対に壊れないシステムを目指して、細かい部分的な障害や不具合を許容しないシステムを設計してしまうと、部分的には壊れなくても、障害のレベルがある一定の閾値を超えた時点で全体として動作不能になる可能性があります。 「部分的に壊れることを許さないもの」を目指してしまうと、できるだけ耐えるけど、耐えきれなくなったら全部一気に崩壊するというモデルになってしまいがちなのです。

今の日本では、インターネットは非常に安く、高速で、いつでも使える社会基盤となりました。 その社会基盤が「壊れる」ことなんて想像できないという利用者も徐々に増えています。 これはひとえに日本国内の技術者の血と汗と涙の結晶でしょう。 しかし皮肉なことに、その努力によって、利用者がインターネットに対して「壊れない完璧さ」を求めてしまっているという面もあります。

多くの人にとって、インターネットは「いつも動いていて当たり前」です。いまや普通に使うだけであれば、その姿かたちがどのようになっているのかを意識することはないでしょう。意識する必要もありません。 SF作家のアーサー・C・クラーク氏の、「高度に発達したテクノロジーは魔法と見分けがつかない」という非常に有名な言葉がありますが、裏側で動いているテクノロジーをまったく意識しなければ、インターネットそのものも「魔法のように見える」かもしれません。

しかし、残念ながらインターネットは魔法ではありません。 それなりの仕組みとネットワークエンジニアによる日々の努力のもとにインターネットは動き続けています。 とはいえインターネットは、魔法とまではいえないまでも、ある程度の単純さとある程度の複雑さが絡み合って造り上げられている非常に不思議な場所であるとはいえます。

この不思議なインターネットは、普段は壊れるなんて意識しないほど、今の日本では当たり前の「モノ」になっています。ところが、実はインターネットはしょっちゅう壊れています。何だか急につながらなくなった、という経験がある人もいるでしょう。 インターネットは、魔法でも幻ではなく、現実であり、形ある「モノ」です。 形あるものは壊れます。インターネットだって壊れるのです。それも、実際には毎日のようにどこかが壊れているのです。

あんな「壊れた」、こんな「壊れた」

「インターネットが壊れた」というのは、多少誇張した表現ですが、「インターネットが壊れた」と言いたくなるような大規模障害は色々あります。

インターネット上で障害が発生したときに影響が大きくなりがちなのが、ネットワーク同士がつながっている部分であるBGP(Border Gateway Protocol)での障害と、名前解決を行うDNS(Domain Name System)です。 DNSまわりの障害で比較的大きかったものとしては、ドイツが「インターネットから消えた」ようになってしまった事例があります。スウェーデンのccTLDが障害を起こしたこともあります。その他、セルビアのccTLDがクラックされた事件など、ccTLDまわりの事件も色々あります。 光海底ケーブル、電源ケーブル、陸上の光ファイバなどの物理的な切断による「壊れた」もあります。

様々な「インターネットが壊れた」がありますが、ここではBGPにフォーカスした「インターネットが壊れた」を紹介します。

BGPでの障害は、週に数度の頻度で問題は発生している

BGPが関連する障害には、様々な種類がありますが、けっこう頻繁に発生している障害の例としては、BGPによる内部経路などのリーク(Leak/漏れ)があげられます。 オペレーションミスによるBGPリークは珍しいものではないのです。 BGPリーク問題を解説しているRFC 7908でも「週に数度」と書いてありますが、基本的に毎日どこかで起きているぐらいの頻度です。 bgpstream.comで世界中のBGPに関連する障害を見ることができますが、「BGP Leak」や「Possible hijack」というのが毎日何度もしているのがわかります。


bgpstream.comより

BGPリーク以外にも、ルータのバグであったり、ルータの性能による制約、意図的なBGPハイジャックを狙った攻撃、その他様々な理由で障害が発生することもあります。

BGPでの大規模障害例

それを多いと思うか、少ないと思うかは、それぞれの感想だと思いますが、世界中で同時に障害が発生するような大規模な障害は数年に一度ぐらい、中程度の障害は年に数度程度ぐらいかも知れません。

以下、大規模なBGP障害や事件をいくつか紹介します。

2004年にトルコがフルルートを漏らす

2004年のクリスマスイブの朝(米国時間)に、トルコのTTNetがBGPでフルルート(当時は約10万プレフィックス)を漏らしました。 その経路が最適だと選択してしまったASは、全てのインターネットトラフィックをトルコに向けて送ってしまい、数時間に渡りインターネットが使えない状態になってしまいました。

2008年2月にYouTubeが見られなくなる事件発生

パキスタン政府の命令に従ったパキスタンテレコムが、YouTubeをブロックするために、パキスタン国内のISP用にYouTubeの偽経路をBGPで広告しました。 その偽経路の広告を、香港のプロバイダであるPCCWが間違って外部へと「漏らして」しまったために、世界中がYouTubeへの偽経路を信じてしまったのです。

事件は、パキスタンテレコムから208.65.152.0/24という細かい経路についての情報が流されたことで発生します。 パキスタンテレコムがAS 17557で広告していた208.65.152.0/24の経路は、YouTubeがAS 36561から広告していた208.65.153.0/22よりも「プレフィックスの長い経路を広告している」こととなり、世界中がパキスタンテレコム側を優先的に扱うようになってしまいました。

この事件により、約2時間、世界中からYouTubeが消えました。

2009年2月にインターネットがバラバラに

個人的には、2009年2月に発生した事件が、最も「インターネットが壊れた」という表現に近かったと思います。 世界各所のAS間接続が切断され、1時間弱にわたり、インターネットの一部がバラバラになったのです。

障害の発生は、日本時間で01時23時頃からだったこともあり、当時は気がついていなかった人も多かったのですが、日本でも通信が不安定になったネットワークがありました。

この事件は、チェコのプロバイダが広告した経路の影響で、世界中のBGPルータがBGP接続を切断してしまったというものです。 BGP接続が切れた部分はネットワーク同士の疎通がなくなり、通信が不能になります。 ただし、常にBGP接続が切れ続けていたわけではありません。当時、BGP接続は切れたり張り直されたりを繰り返していました。

ルータはBGP接続が切断されると再度BGP接続を確立しようとします。そして、問題を発生させていた経路がくるとまた切断してしまいます。利用者から見ると、通信ができたりできなかったりする不安定な状態です。

2011年1月にエジプトがインターネットから抜けた

これはオペレーションミスによる障害ではなく意図的にBGPが遮断された事例ですが、国全体が自らインターネットから離脱するという事件もありました。

中東地域において、2010年と2011年に多くのデモなどを伴い、長く続いた政権が変わるなど、大きな変化が起きました。当時、その変化は「アラブの春」とも呼ばれていましたが、その過程でソーシャルメディアなどが活躍したという報道がありました。 激化するデモを背景として、エジプト国内のインターネット全体をBGPで落としてしまったのです。

このBGPでの遮断事例とは直接関係ありませんが、「アラブの春」以降、専制体制を維持するためにインターネットを規制したいという国家が増えたこともあり、国連でインターネットを規制するための流れが活発化しました。

2014年4月にインドネシアが世界中を吸い込む

2014年4月に、インドネシアの大手通信事業者が32万プレフィックスを漏らしました。 当時のフルルートが約50万なので、規模としてはかなり大きいです。

2014年8月に17万9000プレフィックスが漏れる

2014年8月に、世界中のBGPルータが不安定になってしまう事件がありました。不安定になった主な要因は、BGPルータの512K問題だったとされています(参考)。

RFC 7908によると、テレコムマレーシアが17万9000プレフィックスを漏らし、それをLevel 3が受け入れて伝搬させたことが原因だったとしています。

カンニング防止のためにインターネットを停止(2015年-2017年)

イラクでは、6年生の試験が人生を左右するものになってしまうため、試験で良い成績を取るための方法が過熱しているそうです。

試験が行われる朝の段階で、問題と解答がインターネットに流れ始め、あらかじめ問題と解答を記憶した状態で試験にのぞむ子供が登場するようになりました。 その対策として、イラクは試験の日にインターネットを停止してしまうという対策を続けています。

2016年には、シリアでも同様の理由でシリアをインターネットから離脱させています。

2015年11月の事例

2015年11月2日に数千のASがインドのASによってBGPハイジャックされました。

このときの状況を紹介した発表がJANOG 37で行われています。

JANOG37 2015年に起きたBGPハイジャック from Chika Yoshimura

他にも色々

BGPに関連する大規模障害は、ここで紹介したもの以外にも色々あります。 解説記事も色々あるので、ご興味のある方々は是非、探してみてください。 たとえば、BGPMon、Dyn(旧Renesys)、Arbor Networksにある記事がオススメです。

報道されると「重大事件」と認識される!?

いつもは表に出ないBGPによる障害がニュースとして広く報道されることもあります。 Googleの誤設定によって引き起こされた2017年8月25日の大規模障害も、「Googleが引き起こした」という点がニュースになりやすかったので大きなニュースになったという要素もありそうです。

実際の障害発生時には注目されず、後から世界中が注目したBGPでの障害もあります。 2010年4月には、中国のISPが世界中のインターネットの15%の経路を20分弱ハイジャックしたのではないかという事件が発生しました(参考)。

発生当時はほとんど話題にならなかったこの事件が2010年11月に世界中で話題になりました。 この事件と、中国でのRoot DNSパケット改竄が公になった事件を中国の脅威として紹介した米国議会の諮問機関報告書が公表されたためです。

当時の報道の多くは、やや誇張気味なものでした。BGPに関連するインターネット上での大規模障害の報道は、インターネット運用者にとっては日常的であっても、一般の利用者にとっては衝撃のようです。 大規模障害が発生していた時点においては、世界中のほとんどの人々が気がつかなったのですが、報道されることによって世界中が注目したのです。

多くの利用者は普段は問題が起きていることに気づかないけれど、いったん気がつくと「そんな恐ろしいことが起きているのか!!!!」という反応になってしまうのかもしれません。 そういったギャップもインターネットの面白さと言えそうです。

今後も「壊れる」、でも、おそらく修復される

ネットワーク間をつなぐ仕組みであるBGPは、インターネットの要であるともいえます。 この要となる部分で障害が発生し、ネットワーク間接続が「壊れる」こともあります。 ネットワーク間接続が「壊れる」ことで、ネットワークのネットワークであるインターネットは部分的に壊れます。 そして、このような壊れ方をしたときに、その影響範囲は世界全体に及ぶこともあります。

しかし、過去の「インターネットが壊れた」事例に対しては、比較的短い時間で対処が施されています。 BGPが関連する障害で、何日も、何週間も、何ヶ月も「まだ治らない」という状況は、稀であるとも言えます。

インターネットの運用者の間には、ネットワーク同士をつなぐという仕事の性格上、組織間の交流が継続的に行われ、その交流のおかげで全体に及ぶような問題への対処が行いやすいという文化が育っているという側面があります。 BGPの運用を行なっているネットワークオペレータは、日々、他の組織とやりとりをしながら、インターネットを動かす人として、インターネットの一部を保守運用し続けているのです。

今後もネットワーク間が「壊れる」新たな事例が発生していくと思われますが、人知れず活躍しているネットワークオペレータによって、比較的短時間で問題への対処が行われることを期待しましょう。 一般ユーザの身としては、それを治すことはできないので、どちらにせよ待つしかありませんし。 (各種公開情報などから、何が起きているのかを推測して楽しむということは可能かもですが。)

拙著のご紹介

インターネットのカタチ もろさが織り成す粘り強い世界 過去に実際に起きた「インターネットが壊れて復旧した」事件を端緒に、「粘り強いが壊れやすく、壊れやすいが粘り強い」という視点でインターネットの形を探る「インターネットのカタチ - もろさが織り成す粘り強い世界」という本を2011年に書きました。 インターネットを構成する基礎技術TCP/IPを解説した書籍は非常に多くありましたが、そのTCP/IPを使ってインターネットがどのように運用構築されているのかに関しては、あまり知られていません。本書は「TCP/IPを知っていてもインターネットはわからない、一方でインターネットを知るにはTCP/IPの細かい話を全て知る必要もない」という思想で、教科書的にならずに、あくまで「読み物」として楽しんで頂けることを目標に書いています。

この記事は、「インターネットのカタチ」に含まれる文章を再構成しつつ、新しい事例などを付け足して書いています。

最近のエントリ

過去記事

過去記事一覧

IPv6基礎検定

YouTubeチャンネルやってます!