ネットワークには多様性を意図的に組み込むべし

ネットワーク化された多数のノードが一斉にダウンして、社会問題になるという事件が連続して発生した。

後者のNTT東の障害では、地理的に分散している2000台ものルータが、たった3秒で連続的にダウンしてしまったそうだ。

私はどちらについても、問題の技術的な詳細は把握してないが、あってはならないけどあって当然の障害だと感じている。コンピュータがネットワークでつながって、自動的に情報を交換しているのだから、そこに問題のある情報が紛れこめば、問題が拡散していくのは必然である。

どちらの問題も防止策が無いわけではない。しかし、ソフトの不具合の発生箇所や影響範囲は、事前に予想することは不可能だ。99%は対策できても、どうしても予想不可能な部分が残り、そこには人間の判断を必要とする部分が残る。人間が判断する以上、間違いや見落としはどうしても発生する。

それは、コンピュータやネットワークに限らず、あらゆる技術について同じように言えることだが、コンピュータがネットワークでつながって、常時情報を交換している場合には、問題の波及範囲にも不確定性があり、今回のような事件も100%防ぐのは不可能だと思う。

ただ、できることが一つだけある。

全てのノードが一斉に倒れないように、意図的に種類の違うノードを配置することだ。

どちらの障害も、たまたまあった多様性の為に、最悪の事態には至ってない。

MicroSoftの問題は、全てのWindowsマシンで発生するわけではなく、パッチや導入ソフト等の何らかの条件で発生するマシンとしないマシンに分かれたようだ。

NTT東の場合は、問題の経路情報を受け取ったのは4000台だが、約半分はルータのソフトウエアのバージョンが違うためにダウンには至らなかった。バージョンが新しい方が助かったのはたまたまであり、新しいバージョンに新しい不具合が含まれていることも実際にはよくある。

似たようなノードの中に、たまたまあった微妙な違いが、全ノード一斉ダウンという、本当の最悪のケースを回避したとも言えると思う。

ネットワーク全体を完全にコントロールする為には、ソフトのバージョンやパッチの内容を揃えた方がいいように思える。事前に完全に試験したソフトのみを、一斉に全ノードに配信した方が安全性が高いように思える。

確かに、コントロールを強化することで、今回のような障害を回避できる確率は高くなるだろう。だが、回避確率は高くなってもゼロにはできない。そして、より強いコントロールの元では、もし万が一発生した時の波及範囲は大きくなる可能性が高い。

要するに、金太郎飴集団は攻めには強いが守りには弱い。いや、定型的な攻撃に対する守りには強いが、ゲリラ的に弱点をつかれた時は脆い。何年も正常に稼働していたものが、3秒で瞬殺されてしまうことがある。

今回の二つの事件で、社会全体として教訓とすべきことは、「なぜこのようなことが起こったか?」ではなく「なぜ、インターネット全体ではこのようなことが起こらないか?」である。広いインターネットの中では、常時、大小さまざまなトラブルが起きているが、それがネット全体に波及することはめったにない。広いネットのどこにだって、2〜3秒で任意のパケットを送り届けることはできるのに、インターネット全体が一瞬で倒れたことはない。ネットが今のようであり続ければ、これからもそういうことは起こり得ないだろう。

それは、インターネットを構成するたくさんの要素について、同じ機能をさまざまなベンダーが違う形で実装しているからだ。

多様性がネットを安定稼働させているのだ。中央でコントロールされてないから、ネットは何があっても倒れないのだ。中身が同じであるかどうかを気にせず、一定の会話が成立する奴であれば、誰でも参加できる。それがネットの哲学である。

これを一般常識として、これを「美しい」と思う感性を育てるべきだと思う。そういう意味の「美しい国、日本」に、この国はなるべきだと思う。

網状に相互接続し、激しくコミュニケーションを交わすのは、コンピュータも人間も同じである。中身を揃えてコントロールすることを美しいと思う感性では、いつか一斉に高負荷になったり3秒で揃ってダウンしたりすることになる。プロトコルはきちんと定義するけど、中身はなるべくバラバラになるように、多様性を意図的に仕込むべきである。

当ブログの関連記事:

(5/18 追記)

多様性が重要という主張はとても共感できるのだけれど、インターネットがそこまで強固と信じ込むのはnaiveすぎる。IPv4アドレスの枯渇問題、経路数の急増、プロトコルに潜む脆弱性、特定国家による介入、脆弱なDNSと、すぐに思いつくだけでもこれだけの問題がある。とても楽観できる状況ではない。

というツッコミがありました。

政治的な圧力については多少意識していて、「ネットが今のようであり続ければ」と留保しています。しかし、技術的問題については、ちょっと認識が浅かったかもしれません。

これまで運がよかったからこの先も大丈夫なんてとても言えない。そう考えている人たちがかろうじて支えているのが、今のインターネットなんだと思う。

このことを忘れてはいけないということは、全くその通りだと思います。