9/11/2016

BGP: ナプキン・プロトコル

BGPの生まれた経緯からスリーナプキン・プロトコルと呼ばれるのは有名な話だが、コンピュータ・ヒストリー・ミュージアムではツーナプキン・プロトコルとある(Ciscoではそう呼ばれているのだろう)。ナプキンは3枚なのか2枚なのか... CiscoアーカイブにあるPDFは3ページだが、実際のナプキンは失われている。

Bgp napkin protocol

コンピュータ・ヒストリー・ミュージアムはサンノゼを拠点とするCiscoシステムズ社の30年の歴史を保存するために同社と共に新しい革新的な協力が行われている。新たに設置されたCiscoアーカイブはインターネットを形づくり、ネットワークの世界のリーダーとなるCiscoの重要な役割を記録し、保存し、公開するだろう。今まで収集されたもっとも素晴らしい作品の一つがよく知られるシリコンバレーの物語を語っている。

それは1989年だった。Ciscoのカーク・ロッキードとIBMのヤコフ・レクターはインターネット・エンジニアリング・タスク・フォース(IETF)の会議でミーティングホールのカフェテリアで昼食を共にしていた。

彼らはRFC 1105、考えを記録するために使ったナプキンに関連して"ツーナプキン・プロトコル"として知られるボーダ・ゲートウェイ・プロトコル(BGP)となる新しいルーティングプロトコルを書いた。

BGPは1989年当時8万のホストから今日の10億以上のホストとなったインターネットにまだ不可欠である。BGPとワールドワイドウェブは1989年に最初のウェブ提案を書いたティム・バーナーズ=リーのおかげで25歳の誕生日を共有する。

BGPはグローバルインターネットやプライベートネットワークのサービスプロバイダで使われるルーティングプロトコルである。BGPは当初のインターネットの到達性情報を運ぶ目的以上のものに拡張されている。今では、マルチキャスト、IPv6、VPN、他の様々なデータを運ぶことができる。言い換えれば、BGPは大量のデータの素早く効率的な移動をインターネットで可能にする重要な役割を演じ続けている。

Ciscoアーカイブへの最もユニークな寄贈品の一つは、ナプキンに書かれたBGPのメモのコピーである。そのナプキン自身は捨てられ失われている。

Ciscoアーカイブコレクションにはナプキンを補完する他のアイテムがある。例えば、Ciscoが顧客に送っていたニュースレターPacketの1989年冬季版である。BGPの巻頭特集を掲載している。それは、当初Ciscoの初期の時代こと、インターネットに合わせて会社が急速に成長していたことを示し、顧客のニーズに重点を置き、オープンな標準とポリシーを作る積極的役割を担ってきた。

あの日の夕方の数時間のブレインストーミングが25年間に渡って使われるプロトコルを作り出した。素晴らしい功績である。何回分のランチに相当する利益を生み出したのだろうか?

これらの物語を保存することは、コンピュータと我々の領域両方の歴史を保存するために不可欠である。しかし、常に次のイノベーションにこだわり、滅多に振り返ることがない変化がめざましいシリコンバレーにおいて、歴史をプロモートするのは簡単ではない。ミュージアムは、過去を知ることは自身の将来の取り組みに刺激を与えることができる。ユニーウな歴史を保存することに真剣に取り組むことを他のシリコンバレー企業に働きかけたいと考えている。その過去に投資することによって、企業はイノベーション、起業家精神、カスタマサービス、運営に責任を負う伝統を生かすことができる。ウェルズ・ファーゴのステージコーチはどのくらい歴史が会社に溶け込んでいるかを示す良い例である。ツーナプキン・プロトコルのブログは最初にCisco社内で投稿され、従業員のコメントが歴史を担う感動的な役割を紹介している。私のお気に入りは、「多くの人の利益に貢献した3人の頭脳の働きの魅了する... 素晴らしい... 面白い... 愛する事実!」と「これはCiscoを偉大にした歴史の逸話の瞬間を思い出させるものだ。Bring it back with a 2015 relevance!」。

過去に、ビジネスの歴史は従来の歴史研究の中で限定的な役割しか演じてこなかった。しかし、テクノロジーの高まり、21世紀経済への影響と共に、ビジネスは全ての人の生活の交差点を超えている。我々はどのようにインターネットの急増と国際的な交流が世界を変えたのかを文書化なしに生きする世界を理解できない。あなたの祖父の歴史を保存する方法と機関が今日の世界では十分ではない。我々の歴史を残す手助けをするためにもミュージアムに参加してほしい。

また、Wikipediaのヤコフ・レクターには次のようにある。

オースティンの第12回IETF会議のあった1989年1月に、ヤコフ・レクターとカーク・ロッキードは、最終的にボーダー・ゲートウェイ・プロトコル(BGP)となるデザインするためにテーブルに向かっていた。初期のBGPデザインは大量のケチャップにまみれていたと噂されるナプキンに記録された。そのナプキンにあったデザインをもとに初の相互運用可能なBGPの実装は素早く開発された。これらの3枚の紙のコピーがカリフォルニア州ミリピタスにあるCiscoシステムズのルーティングプロトコル開発エリアの壁に今も掛かっている。

そして、Internet HistoryメーリングリストでBGPの歴史のやり取りがあった。このメーリングリストは既に閉鎖されているサイトされているが、Googleキャッシュ上で確認できる。"The story of BGP?"というタイトルで、BGPの開発に関与していたGuy Almesの投稿。

1980年代終わり頃、私はNSFnetのリージョンネットワークの一つを指揮し、IETFの中で活動していた。我々はインターネットの急速な成長で新規(非政府機関)に相互接続を参加させる問題を整理するために相互接続ワーキンググループをもった。

初期のNSFnetでの状況は外部ゲートウェイ・プロトコルでEGP2を利用していた。

その動機は幾つかあった(Google tech talkでヤコフによるものを含め)。

EGP2は経路セットを完全に交換し、プロトコルはIP上に直接作られていた。ネットワーク数が増大するため、継続出来なくなっていた。

EGP2は基本的にARPAnet中心のとてもフラットなASの相互接続性グラフを前提とした。

我々の小さな相互接続性ワーキンググループは新しいプロトコルを開発しないことを宣言した。そして、我々はEGPの後継、すなわちEGP3のためにドラフト仕様に意見を1988年に求められた。EGP3はいろいろな意味で、うまくいき、イクリメントで、ネットワーク数の急速な成長に関してうまく対応した。

しかし、EGP3は上記フラットが残った。

我々はインターネットのASトポロジの進化の動向を知ることはできたが、私はNSFnetバックボーン〜リージョナル〜キャンパスという階層構造が持つ多くの利点に魅力を感じていた一人だった。ASの階層という考えを保ち続けることにも魅力を感じていた。各機関(一種のバックボーンを持つ幅広い組織の中で局のこと)が自身のトップレベルを持つかも知れない。従って、森のようなAS群をサポートすることを検討した。例えば、階層的な3つの構造の塊である。

EGP3への最小限の変更でこの森のアイデアを捉えることができるか?

かも。2つ、あるいは3つかも知れないASを保持することで...

NASAエイムズでのミーティング間の休み中のある時、ゼロワンインフィニティ概念と呼ばれるコンピュータプログラムのアイデアを我々は議論した。一つの以上のASを保持する必要があるなら、各経路のASパス全体を保持すべきかも知れない。

このアイデアはこの時は破棄された。しかし、BGPで再浮上し、BGPの素晴らしい主要アイデアの一つとなっている。

そして、階層のアイデアの断念を渋々承諾した。そして、プロトコルの中の可変長ASパスを検討するのに気が進まなかった。そして、プロトコルを実行することを言わなかった。明らかに、今になってみれば我々は臆病だった。

これが1988年終わりと、オースティンでの1989年1月のIETF会議の相互接続性ワーキンググループでの状況だった。ワーキンググループのセッション後のブレーク中に、ヤコフ・レクターとカーク・ロッキードは重要な突破口となったスリーナプキンを書いた。

  • メッセージ長の問題を克服するためにTCPを利用する
  • 増分アップデート(私にとって最も重要)
  • 各経路ごとに完全なASパスを持たせる

ヤコフはこのスリーナプキン・デザインと呼ばれる素晴らしい仕事を行っている。そして、なんと数ヶ月で複数の少なくとも2つの独立した実装が出た。

BGPの登場で、EGP3の開発を行う動機は消滅した。

ハワイのIETF(1989年10月)までに、BGPバージョン2が既に始まっていた。実用性、実装性、柔軟性はとても速かった。