ネットワークをもっとやりたいという方々を増やしたい

登大遊氏(以下、登):本日は長い歴史があり、名誉ある「若手の会」で講演の機会をいただき、ありがとうございます。先ほどコメント欄も拝見しましたが、自宅の1Uサーバーを持っている方がどうとか。

本日の主題は、どうすればそういうみなさんのような方々が、日本の中でもっとたくさん増えるのかなということが1つ。2つ目は、自宅ラックのようなことを大規模にやろうとすると、どうしても家の中だけでは壁がありまして、そこをどう乗り越えるかというところで、その先にスケールするかというのがあるかと思います。

自分もまだうまいことやっているわけではありませんが、その手のおかしな話はそれなりに16年ぐらいやってきました。その間にいろんな壁があったのですが、いろいろなプロジェクトとか、これからお話します国のプロジェクトやNTT東日本など、偶然にいいつながりがありました。

今日のプレゼンの半分は、これからネットワークをもっとやりたいという方々が壁にぶつかったときに、どうすれば次に生きるかということに、ちょっとぐらい役に立てばいいなと、これが1つ目です。

1つ目もしばらくすると、もっと同じような方々がそのあとに出現するようにするにはどうすればいいかということを考える必要があると思います。そのような環境を作る側としてどうすればいいのかという議論をしたいと思います。

自己紹介は登大遊と言いまして、今はソフトイーサ社というのを立てて、筑波大で遊んでいます。独立行政法人 情報処理推進機構(IPA)でも、センターの変な部屋、サイバー技術研究室をやっています。最後にあとでお話します、けしからんNTT東日本にも入社しまして、この入社というか雇用、今はこの4つであります。

仮想プライベートネットワークを作ってきた話

今日は、仮想プライベートネットワークなどを作ってきたという話をします。その主題ですが、シン・テレワークというのがなぜか流行っていますが、これはニュースにもありますように、Raspberry Piを使ったC言語のSSL-VPNによる中継システムを、非常にスケーラブルに作りました。相場にすると、全部で1ユーザーあたり月に数十円のコストしかかからない、大規模SSL-VPN中継システムができたことになります。

この内容はどうでもいいので、今日はあまり説明しませんが、みなさんのようなICTシステムやソフトウェアに詳しい方々がどんどん増えることが、ITの発展の世界における重要な部分になるので、どうすればそれができるんだろうと考えてこのスライドを作りました。

(スライドを表示し)ちなみにこのシン・テレワークシステムですが、経産省系のIPAと、総務省系のNTT東日本で、日本は分かれてしまっていているので、一緒のことをやるときに調整が難しいんのですが、これは緊急時であるからがんばって一緒にやりましょうということで、これはぎょうせいという……名前がすごいですね。

ひらがなで「ぎょうせい」と、いかにも行政みたいなイメージのすばらしい冊子に載っていますが、これは自分とNTT東日本のネットワークのフレッツ大王こと山口さんとで、一緒にやっています。右はおもしろいアヒルですとか、IPAの中にあるおもしろコーナーとかもあります。こういうふうにやっています。わけがわからないですね。

(スライドを表示し)この大秘密なんですけど、このシン・テレワークシステムの中身のコードは、だいたいこれまで書き溜めてきたSoftEther VPNというものです。こういう厄介な仕様ものを開発するには、最初はHello Worldとかから始めるのですが、それだけだとダメで、次はコンピューターだけでもだめで、コンピューターとネットワークの両方を自律的に実験できる環境を自分で構築する必要があると思います。

その構築を面倒くさいからクラウドでいいやとか、他のインフラに頼ってしまおうかなど、最近は誘惑が多いので、それをやらずに自分で構築するのがますます困難になっていますが、やはり自分でやらないといけないんじゃないかということで、どうすればいいかという話です。

その1は、情報処理編で、これは国の情報処理の政策で支援いただいているいくつのプロジェクトを受けて機材を買い揃えていったというのが、本当の秘密なんです。これが1で、国の借り入れた外国製品の中にも、けしからん外国製品がありまして、そこが嫌なことをやってくるので、そこに起因する能力が増えたという、これがその1のプログラミング能力の発展です。

次がその2なのですが、これは偉大なるNTT東日本のけしからん電話局、光ファイバー、設備の自律的な活用をやってきたという話で、わけがわからないと思うのですが、今から文字はこれぐらいにしまして、写真ばかりでお話します。その1の情報処理編から行きます。

国から予算をもらうと説教がついてくる

2003年に、筑波大学という変わった大学に……。大学はどこも変わってはいるのですが、そこに入学しまして、経産省のIPAの未踏事業で300万円の予算を受けました。左にあるのが提案資料で、採択通知書が下にあります。やっぱり国からお金をもらうには、これで予算だけが来るのではなくて、説教というやつがついてくるんですね。

この説教が極めて重要で、竹内郁雄先生という、当時の東大の先生で今もIPAのPMをやられているこの方の説教と予算がついてくる。この予算が非常に柔軟になっていて、人件費だけじゃなくて、機材もちゃんと買って自分の家に置いてやりなさいと、国がまさに自宅ラックを進めているような仕組みになっていたんです。

今でもできるかどうかよくわからないんですが、それで当時はまだ高かった光ファイバーと法人向けのグローバルIP16個と、ネットワーク機器、サーバー、ソフトウェアを買い揃えました。建前は借りてるんですけど、家を作業場所としてやるんだとやるとやらせてくれる。ここにあるように、MSDNなんかも買いまして、やっぱり高校生のころは買えないのですが、買えないといろいろ不都合があるので、買わないといけないじゃないかということで買うんですね。

それで作っていったものが、今はおもしろいことに世界中で480万の組織で使ってもらっていて、無料版が主ですが、日本では7,000社が有料版を使っています。

プログラムは30万行のC言語で、これは変な言葉で書いていますが、要するにプルリクエストが725件あって5,000人ぐらいがウォッチしていると。だから変なことを外国の人がコミットしてきても安全であると。そういう感じで、けっこう基礎的な部分で使われているプログラムです。

日本政府が配布停止を要請した唯一のサイバーセキュリティソフト

このけしからんSoftEther VPNは、日本政府が配布停止を要請した唯一のサイバーセキュリティソフトでもあります。左が経産省の要請によりVPN構築ソフトが配布停止したニュース。右がSlashdotです。

なんで配布停止要請をされたのかと言うと、VPN性能が強力すぎるじゃないか、簡単すぎて危ないんじゃないか、自治体でちょっと使ってみたら一方向性ファイアウォールを貫通して危ないじゃないか、ということでいったん配布を停止しましょうということになったんです。

しばらくすると、「この強力で使いやすいということはいいんじゃないか」ということになりまして、3年後に経済産業大臣表彰というのを受賞しました。さっき配布を停止しろと言ったところじゃないかと思ったんですが、表彰すると言われて表彰状もいただきました。これはいいことかなと思っています。

それでやる気が出まして、ちょうど大学のほうにもスペースを確保できたので、さっきIPAで2003年に買ってきたものを自宅から大学に持って来て、自宅ラックみたいなものから今度は大学ラックみたいなものになった。

ただお金がないものですから、大学の中に「物品廃棄日」というものがあることがわかって、多数のサーバー、ネットワーク機器がそこに転がっているので、雨降る前にこれを急いでかき集めてくる。

最後にこれを大学の「学情センター」というネットワークセンターの先生にお願いして、機材やネットワークをいじれるスペースと、もう1つ重要なのは、インターネットまでの直結回線とグローバルIPアドレス。クラウド事業者がポンポン1個ずつ割り当てるマネージドIPではなくて、本物のやつをいじるのが非常に重要なんじゃないかと思います。

無理難題のプロトコルスタック開発

2年後の2006年に大学4年になりまして、今度はまた変なことがありまして、内閣官房情報セキュリティセンターである「NISC」の山口英という先生が、今はお亡くなりになっていますが、当時は補佐官をやられていて、それで無理難題のプロトコルスタックをここで開発することになったんです。

何かというと、ネイティブで動くWindowsがVTの上で動いていて、仮想NICは使ってはいけないと。物理Intel NICとWindowsのネイティブ・デバイスドライバの間のパケットを、PCIの上でDMAとレジスタを読み書きするんだ、と。透過的にそれを差し替えて、自動的にVPNでカプセル化して、IPSec、ISAKMPでカプセル化するが、そのプログラムをライブラリを使ってはいけないと。全部自分で作れ。OSもない、と。VTのレイヤーでは当然ないですね。

そこで、VTのDMAの部分は、BitVisorと言いますが、筑波大に他のすごい未踏の方がいて、その方が書いていて。自分はその方が書いてるOSがまだないのに、それ用のライブラリとかデバイスドライバを書かされるという。

この左のプレスリリースをよく見ると、内閣官房から出ているプレスリリースで「OSを作る」と書いてあって、(3)で若手な研究者によるOS開発能力を有する人材育成とも書いてあるのですが、わけがわからなくって、最初は「これ何をやるんだろう?」と思っていたのですが、とにかく山口先生に会いに行くと、「君これくらい簡単やろ?」と、この上に書いてある無理難題をやれと言ってくるんですね。

それで無理難題の説教と予算もありますから、仕方ないからやってみたら、2つのことが得られて。1つは無理難題なプログラムは、だいたい書けるようになったということ。人がやる人材育成の話かと思ったらそうではなくて、強制的にやらされたというところですね。2つ目は、いいことだと思うのですが、もらった予算内でハードウェアとかがいろいろ買えるようになりました。

報酬もありましたから、それでこれまでしていたゴミ拾いをしなくてもよくなったと、そういうことなんですね。NISCは実は人材育成機関じゃないかと思っていて、これはすばらしいと思うんですね。10年に1回ぐらいこういうおもしろいことが出てくるんだと思います。