サンキュー、Cumulus!

執筆者 | 1月 16, 2023 | Blog

これを読んでいるあなたは、おそらくオープンネットワーキング革命が現実のものとなったことに同意していることだろう! 私は最近、OCP Global Summit と Linux Foundation ONE Summit に参加したが、そこには確かに電気が流れていた。 コミュニティの規模は劇的に成長し、日々新しいユーザーやベンダーを惹きつけています。

Hedgehog は、モダンなクラウドネイティブワークロードに対応したフルオープンソースの NOS (SONiC) を使用したネットワークファブリックをが構築することができます。 NOS (SONiCSONiCのエコシステムで起こっていることについて話すと、最も多い反応は "Cumulus Networksがやろうとしたことではありませんか?"というものです。

オープン・ネットワーキング "は新しいものではない。 ネットワーキング業界のこの分野に詳しい人なら、キュムラス・ネットワークスという会社が台頭してきたことをご存じだろう。

ロケットタートルの登場

Cumulusは、スターダムにのし上がったものの、業界が必要としていた "真の革命 "を起こすことはできませんでした。

Cumulus社は、すべてのサーバー・インフラがすでにプロプライエタリなオペレーティング・システムからLinuxに移行しているという考えに基づいて、会社全体の戦略を立てていた。 サーバー管理者は現在、何千ものデバイスを管理できるツール(Ansible/Chef/Puppet)を持っているが、ネットワークオペレータはCLIベースの不便な石器時代のツールセットから抜け出せず、その結果、より多くのデバイスを管理するために専門知識を拡張することができなかった。 そこでCumulusは、ホワイトボックスのハードウェアで動作する汎用ディストリビューション(Debian)をベースにした、Linuxベースのネットワーク・オペレーティング・システム(NOS)の開発に着手した。

ホワイトボックススイッチも当時はやや新しかった。 世界最大の顧客(主にハイパースケーラー)は、Broadcom、Marvell、MellanoxのASICを搭載したODM(Original Device Manufacturers)から汎用スイッチを購入していました。 当時、シスコは自社製品の多くにブロードコムのTrident 2を使用していたため、Cumulusは、ASICを適切にプログラムするソフトウェアを入手できれば、同じレベルのスループットを約束することができた。 エーシック のハードウエアです。

まあ、とにかくそういう計画だった。 このコンセプトには多くの興奮があった。当時、ネットワーク管理者は、高価なライセンスや、顧客が1/10の価格で購入できるものと同じ、非常識な価格の専有SFP光学部品、ボックスの "解約"(新しいプラットフォームがリリースされると、1つのプラットフォームがEOLになる)など、不満だらけだった。 ある有名なアナリストは、Cumulus とホワイトボックススイッチが大手ベンダーに対して存亡の危機であるとまで言っています。 Cumulusとホワイトボックス・スイッチングが主要なボックス・ベンダーにとって存亡の危機であると。 その予測は、顧客がLinuxのbashプロンプトのためにCLIを手放すことを厭わないということに基づいていた。

キュムラスは軌道に乗り、確かに多くの顧客を獲得したが、それぞれの顧客を獲得するのは信じられないほど大変だった。 2000年から2010年にかけて、多くのベンダーが興味深い販売戦術をとっていた。 そのひとつが、""Turn It On"". 基本的に、SEは顧客に可能な限りすべての機能をオンにさせるよう指示された。 あるデバイスのコンフィグを別のベンダーのシンタックスに簡単に変換することはできなかった。 これらの機能の中には確かにクールなものもあれば、余分な荷物に過ぎないものもあった。 顧客にとっては、自分たちのコンフィグがどんどんプロプライエタリになっていくことはあまり問題ではなかった。 このイニシアチブは功を奏し、当時の多くの顧客はRFP/RFQにプロプライエタリな機能を要件として挙げていた。

顧客を獲得するために、キュムラスはシスコやアリスタと機能パリティ戦争に突入した。 基本的に、彼らは市場が求める機能をすべて追加しようとした。 これらの機能の中には、間違いなく必要なものもあれば、そうでないものもあった。 しかし、Cumulusの課題は、CiscoのスイッチにできることをLinuxデバイスにやらせることだった。 Linuxはサーバー用オペレーティング・システムとして設計されたため、ネットワークのベスト・プラクティスにはあまり関心がありませんでした。 そのため、ネットワーキングに理想的な機能がなかったり、機能しなかったりした。 それでは、大きな問題とCumulusがどのようにこれらの問題を解決したかを見てみましょう:

Cumulusのオープンネットワーキングへの貢献

スイッチASICアクセラレーション - switchd & サイ

Linuxはもともとイーサネットスイッチを管理するために設計されたものではありません。 TCAMやフローテーブルをプログラミングして管理するためのデーモンやサービスもなかった。 サーバー管理者は、変更を加えた数秒後に新しいフローがNICにプログラムされることに抵抗はありませんでした。 しかし、データセンター・ネットワーキングではどうでしょう。 数秒は永遠です。 そこでCumulusはswitchdという新しいデーモンを作り、ハードウェアとASICの処理を担当させました。 これは、当時の顧客にとってまったく新しいコンセプトでした。 残念ながら、Cumulusは、この特定のコードのビットをプロプライエタリでクローズドソースに保つという戦略的決定を下しました。 スイッチング・ハードウェア上でCumulusが動作するためにはswitchdが必要であるため、この結果、「オープン・ネットワーキング」と「オープン・ソース」という奇妙なマーケティング上の区別が生まれた。 ほらね、 Cumulus Linux は「オープンネットワーキング」、つまり、この新しい分解されたハードウェア/ソフトウェアモデルを消費させるものでしたが、完全なオープンソースではありませんでした。 Switchdは、ユーザーがライセンスキーを入力しないと正しく機能しないのです。 SAIが存在していれば、Cumulusはスイッチドをオープンソース化する可能性のあるオプションをもっと持っていたはずですが、もう一度言いますが、タイミングが重要です!

しかし、これは本当に素晴らしいアイデアで、現在私たちがSONiCで使っている、複数のハードウェアプラットフォームをサポートするSAI(Switch Abstraction Interface)の前身となるものでした。

レイヤ3ルーティング - クアッガがFRRになる

Linuxは常に必要不可欠なルーティングスタックを欠いていました。  当時は静的ルート、独占的で高価なルーターソフトウェア、あるいはQuaggaと呼ばれる奇妙なソフトウェアパッケージなど、選択肢も限られていました。  最初に誰かが "Quagga "と言ったのを聞いたとき、誰もが “一体これはなんなんだよ!"のような怒りの瞬間があったことを覚えています。  なんとも奇妙な名前でしょう?  Quaggaは、19世紀に狩猟によって絶滅してしまったシマウマの一種です。  それが伏線になっているのかもしれない。 とにかく、Quagga(哀愁を帯びた馬のほうではなく、ネットワーク関連のほう)は BGP やOSPFを含むルーティングプロトコルデーモンのスイート製品です。  Cumulusの前、Quaggaはほとんど実験的なものでした。  それは多くのバグを持ち、まったくスケールしませんでした。  BGP愛好家のためのドアノブがたくさん欠落していました。  CumulusはQuaggaの改良を始め、そのすべての変更を、奇妙なバージョン管理方法を用いる一人のメンテナンス要員に託しました。  これには膨大なエンジニアリングが必要でした。  FIBとTCAMのルートスケーリング制限を実際に決定することは非常に難しいです。そして、もしあなたがデバイスのプロダクトマネージャーで一つのデバイスだけでなく、複数のASIC、CPU、SerDes、ポートブロック、光学系にまたがって管理するとしたらどうでしょうか? 

クレイジーだろ? しかし実際、Cumulusはこの複雑さをアウトエンジニアし、アウトオートメーションする決意をもって突き進んだ。 時間の経過とともに、Quaggaのパフォーマンスはかなり信頼できるものとなり、現在ではグローバル・ルーティング・テーブル全体の取り込みをサポートするためにスケールアップすることが示されている。 私たちは皆、FRRがインターネットテーブルを扱えることを知っている。 しかし、元のメンテナが変更を統合するスピードに問題があったため、Cumulusは最終的にQuaggaをFree Range Routing (FRR)という新しいプロジェクトにフォークすることにした。 このプロジェクトは現在、AzureやAWSのような大規模なクラウドで動作する、最も広くデプロイされ使用されているオープンソースのルーティング・スイートだ。

クールなアイディアが正当に評価される

これはCumulusがネットワーキングの民主化をどのように実証したかを示す、私のお気に入りの例のひとつである。 BGP Unnumberedです。 そうです、これは "大手ベンダー "が作ったものではないことをご存知でしたか? CumulusはBGP Unnumberedの実装を設計し、磨き上げ、推進し、そしてその傑作をみんなにコピーさせたのです。 コピーはお世辞の最たるものでしょう? 他のベンダーは一夜にしてNOSにこのシンプルなテクニックを実装しました。

基本的に、Cumulus はデータセンター向けに最適化されたLinuxネットワークを構築していました。

Linuxネットワーク・インターフェース管理 - ifupdownがアップグレード

前にも言ったように、LinuxはスイッチOSとして設計されておらず、Linuxネイティブのネットワーキング・コマンドで1つのポートに変更を加えようとするたびに、それは痛いほど明らかだった。 基本的に、ポートのコンフィギュレーションを変更したり、ポートをバウンスしたりしようとすると、サーバー上のすべてのポートを一度にバウンスすることになる。 しかし、48ポートのスイッチでインターフェイスをバウンスし、すべてのポートがダウンすることを想像してみてください。 これはリナックスにかなり根付いた技術設計で、これを変更するには膨大な労力が必要だった。 Cumulusは最終的にifupdown2をリリースし、アップストリーム化することで誰もがその恩恵を受けられるようにした。

自動化・プログラマビリティ - CLIからAnsibleへ

Cumulusは発売当初、CLIやAPIを提供しなかった。 CLIは行き詰まり、誰もデータセンターのファブリックスイッチの管理にCLIを使うべきではないという考えだった。 そのため、Cumulusは率先して、ネットワークを自動化するための最初の本格的なAnsibleプレイブックを作成し、Ciscoはサードパーティの開発者にNexus 9k用のAnsibleツールを作成させることで、素早く "me too "を行った。 実際、DevOpsファーストのアプローチは非常に先進的で、業界をよりプログラマブルなモデルへと加速させた。

収入の少ない新興企業にとっては、膨大な開発費と技術的負債を解決しなければならない。 この結末をすでに知っている人もいるだろう。

2020年、NvidiaはCumulus Networksを買収し、その直後にMellanoxを買収した。 当時、CumulusはBroadcomとMellanoxという2つの主要ASICベンダーをサポートしていた。 買収が発表された直後、BroadcomはCumulusのBroadcom SDKへのアクセス権を剥奪し、CumulusのBroadcom ASICへのサポートは事実上消滅した。 非公式な推定では、Cumulusの顧客のうち90%がBroadcom ASIC(Dell、Edgecoreなどとして販売)を使用していました。 Cumulusのマルチベンダー機能は終了し、現在のCumulusは、AI/MLワークロードとストレージネットワーキング向けに特定の最適化を施したNvidiaネットワーキング・ポートフォリオの一部となっている。

レッツ・ヒア・イット・フォー・キュムラス

私は、Cumulus が全精力を傾けて業界の壁を壊し、その過程で自分たちの首が折れてしまったのだとお伝えしたい。  つまり、Cumulus はオープンソースとオープンネットワークのコミュニティのために信じられないほどの前進をしましたが、そうすることであまりにも多くのリソース(開発コストと時間)を投入したため、単なる linux NOS を超えて効果的に差別化することができなくなったということなのです。  Cumulus は私たちが現在取り組んでいる革命を最初に起こしましたが、市場は分散型モデルを採用するにはあまりにも遅れていました。  彼らは、誰もが望んでいた業界の破壊者とまではいきませんでしたが、多くのレガシー・ビジネスモデルを破壊しました。そして、現在多くのベンダーがまだまだこの新しくなった現状への対応に苦慮しています。

そこで早速ですが、コミュニティを代表して、Cumulus社と、ネットワーク技術の発展に貢献したすべての従業員に、心からの感謝を捧げたいと思います。

今日では何が変わったのでしょうか?

Cumulus社は、自社の技術を市場の主要な移行に効果的に結びつけることはできなかった。 しかし、CLIの代わりにbashを使い、Cisco T2の代わりにwhitebox T2を使うだけでは、企業がNOCや監視システムをすべて更新し、CCIEをリナックスの専門家に置き換える動機付けには不十分だった。 移行のきっかけを作るには不十分だった。 それよりも、もっと大きな移行を模索すべきであった。

SONiCには大きな勢いがある。 最新のアプリケーションのように自動化できるように設計されている。 Hedgehog は、Kubernetes プラットフォームの優れた点をすべて SONiC ネットワーキングに移行するよう取り組んでいます。 これには現在、データセンターのネットワークファブリックとエッジアプリケーションホスティングプラットフォームが含まれますが、いつかキャンパス、WAN、その他のデプロイメントモデルにまで拡大する予定です。 これほど大規模な貢献コミュニティを持つオープンソースの NOS は他になく、現在、主要ベンダーはすべて SONiC をサポートしているため、近い将来、SONiC が大半の新規ビルドの標準 NOS になることが予想されます。 SONiCの採用は今がチャンスです。

次回まで...。

ジョシュ・ソール
ジョシュ・ソール

Josh Saulは、25年以上にわたってオープンソースのネットワークソリューションの先駆者です。アーキテクトとして、GE、Pfizer、NBC Universalのコアネットワークを構築。 Cisco のエンジニアとして、Fortune 100 の金融セクターの顧客にアドバイスを提供し、顧客に新しい技術を普及させました。最近では、VMware(Broadcomが買収)、Cumulus Networks(Nvidiaが買収)、Apstra(Juniperが買収)でマーケティングと製品チームを率いていました。ニューヨークで2人の子供と暮らしており、熱心なスキューバダイビングの愛好家でもあります。