GNU/Linux >> Linux の 問題 >  >> Linux

Faucet:高速本番ネットワーク用のオープンソースSDNコントローラー

オープンソースソフトウェアのおかげで、ITシステムのほぼすべてのコンポーネントの動作を制御および変更できるようになりました。カーネルのネットワークスタックからユーザースペースのウェブサーバーコードに至るまで、すべてを変更して、改善や新機能の実装を行うことができます。

ハードウェアとソフトウェアスタックを完全に制御するための最後のハードルは、物理ネットワークハードウェアです。これらのデバイスは通常、私たちが愛するオープンソースツールから構築されていますが、ネットワークオペレーターが簡単に変更できないブラックボックスとして表示されます。

OpenFlowやP4などのオープンスタンダードは、プログラム可能なAPIを介してこれらのデバイスへのアクセスを開くことでランドスケープを改善することを約束しましたが、それでも、転送やルーティングなどの通常のスイッチ機能をマルチで再実装するためのコントローラーを作成する必要があります。ベンダー、標準に準拠した方法。これにより、私たちのグループはFaucetソフトウェア定義ネットワーク(SDN)コントローラーを作成しました。これにより、誰でもプログラム可能なネットワークの夢を完全に実現できます。

蛇口のしくみ

Faucetは、コンパクトなオープンソースのOpenFlowコントローラーであり、ユーザーがサーバークラスターを実行するのと同じ方法でネットワークを実行できるようにします。 Faucetは、DevOpsワークフローをネットワーキングに導入することで、ネットワーキングをすべての人にとって親しみやすいものにします。これは、ネットワーク機能(ルーティングプロトコル、近隣探索、スイッチングアルゴリズムなど)をサーバー上で実行される通常のソフトウェアに移動することで管理、テスト、拡張を容易にすることで実現します。これは、これらの機能をファームウェアに埋め込む従来のアプローチとは異なります。スイッチまたはルーターのFaucetは、ネットワークトポロジと必要なネットワーク機能を表すYAML構成ファイルを取り込むことで機能し、OpenFlowを使用してネットワーク上のすべてのデバイスをプログラムする機能を果たします。

Faucetのストーリーは、2015年9月にREANNZがワイカト大学のWAND NetworkResearchGroupによるプロトタイプコードに基づいてFaucetの最初のバージョンを作成したときに始まりました。それ以来、これらのグループやニュージーランドおよびさらに遠く離れた他の多くのグループは、大衆が使用できる機能的なOpenFlowコントローラーを作成および保守するために提携しています。コミュニティを支援するために貢献できる最善の方法であると考えており、これまでに40人を超えるさまざまな開発者からコードの変更を受け取ったことをうれしく思います。

テストとベンダー間の互換性

ネットワークコントローラーを作成するときは、アップグレード時に本番環境の展開を中断しない、リリースごとに機能するコードを提供することが重要です。結果として、テスト容易性はFaucetの重要な指針の1つです。リンティングと静的分析を使用してコード品質をテストするだけでなく、さまざまなFaucet機能を有効にして多数のネットワークトポロジをテストする包括的なテストスイートがあります。このテストは、コードが変更されるたびに自動的に実行されます。

テストスイートでは、Faucetのすべての機能をサポートするハードウェアデバイスを認定することもできます。多くのベンダーがQAプロセスの一部としてFaucetテストスイートを実行して、ファームウェアがFaucetをサポートしていることを検証するため、これによりベンダー間のSDN互換性が現実のものになりました。これにより、新しいデバイスをプログラムするために追加のドライバーやベンダー拡張機能を作成する必要がなくなり、コードベースを小さく一貫性のあるものに保つという追加の利点があります。

実世界の蛇口

蛇口は、世界中のさまざまなネットワークに導入されています。最近では、ACM / IEEE Supercomputing Conference 2018(SC18)会議と提携して、ショーフロアのブースに毎秒テラビットのインターネットを配信するSCinetネットワークの一部として大規模なFaucetネットワークを展開しました。私たちが構築したネットワークは、Allied Telesis、Cisco、およびNoviFlowの機能を備えたハードウェアであり、1秒あたり9テラビットの容量を超えることができました。

Barefoot Tofino P4特定用途向け集積回路(ASIC)を実行するNoviFlowデバイスは、ネットワークのコアルーターでした。 NoviFlowはOpenFlowをP4アプリケーションとして作成しました。これにより、FaucetはP4上でランタイムAPIとしてOpenFlowを使用できるようになりました。 SC18カスタマー接続データベースと統合してFaucet構成をその場で生成するために、いくつかのAnsible自動化コードを作成しました。データベースは、各ブースにVLANとサブネット情報を割り当てました。

Faucetの仕事は、ブースがインターネットにルーティングできるように、コアルーターと2つのコアSCinetルーターとのボーダーゲートウェイプロトコル(BGP)ピアでVLAN間ルーティングを行うことでした。 Faucet内のLinkAggregationControl Protocol(LACP)実装により、2x100Gリンクを各アップストリームルーターにバンドルして、復元力を確保できました(ファイバーの問題が発生した場合)。各ブースには、Faucetによって制御されているアクセススイッチ(ベンダーの1つが提供)からインターネット接続(1Gb、10Gb、または100Gb)が提供されていました。アクセススイッチは、ネットワークを保護するために、転送を行い、各アクセスポートにセキュリティポリシーを実装しました。追加のネットワークセキュリティは、Faucetと統合し、ネットワーク上の疑わしいエンドホストを識別できる機械学習ツールであるCyber​​RebootのPoseidonによって提供されました。動的ホスト構成プロトコル(DHCP)やBGPなどのネットワーク上のすべてのサービスは、Linuxサーバー上でネットワーク機能仮想化(NFV)サービスとして実行されていたオープンソースデーモン(dhcpdやBIRDなど)によって提供されました。

>

SC18の展開は、実際の大規模な本番ネットワークを実行するためのFaucetとOpenFlowの成熟度を示していると信じています。また、SDNを導入することで、他の人がネットワークを制御することに挑戦することを期待しています。蛇口とその展開方法の詳細については、チュートリアル、ドキュメント、およびユーザーディスカッション用のメーリングリストへのリンクがある当社のWebサイトにアクセスしてください。私たちのオープンソースプロジェクトに参加することに興味がある人のために、私たちは初めての貢献者を助けるための開発者ガイドを持っています。最後に、SC18と同様の今後の会議、チュートリアル、または展開の進捗状況と発表を追跡するには、Twitterでフォローしてください。


Brad Cowieは、オープンソースのSDNコントローラーを使用して、ニュージーランドのクライストチャーチで1月21〜25日に開催されるlinux.conf.auで高速本番ネットワークを展開する方法を紹介します。


Linux
  1. オープンソースセキュリティに関するリーナスの法則を理解する

  2. Timekpr(復活)-Linux用のオープンソースのペアレンタルコントロールアプリ

  3. Kdenlive –プロと初心者のためのオープンソースノンリニアビデオエディタ

  1. Linux用の10のオープンソース軽量Webブラウザ

  2. LyX –Linux用の強力なオープンソースドキュメントプロセッサ

  3. Linux用の10の最高のオープンソース会計ソフトウェア

  1. Linuxサーバーを実行するための4つのオープンソースツール

  2. Pixelorama –ピクセルアート用のオープンソースエディタ

  3. プロット–GNOME用のオープンソースグラフプロットアプリ