このプロジェクトについて

NebulaはSlack Technologiesで作られたオープンソースのオーバーレイネットワークツールです。Noise Protocol Framework上に相互認証されたピアツーピアのソフトウェア定義ネットワークを構築し、場所やクラウドプロバイダーに関係なくコンピューター同士を直接接続します。 READMEに記載されている主な機能は次のとおりです。 - スケーラビリティ: 数台から数万台のホストまで接続できるように設計されています。 - 移植性: Linux(64/32ビット、ARMなど)、Windows、macOS、FreeBSD、iOS、Androidで動作します。Arch、Fedora、Debian、Alpine、Homebrew、Docker向けの配布パッケージがあります。 - セキュリティモデル: 証明書はノードのIPアドレス、名前、ユーザー定義グループへの所属を証明します。デフォルトの暗号化はECDH鍵交換とAES-256-GCMを使用し、Curve25519がデフォルトの曲線です。オプションでNIST P256およびFIPS 140-3ビルドモードもあります。 - ディスカバリ: ルーティング可能なIPを持つ軽量な「lighthouse」ノードがピア同士を見つけられるようにし、オプションでUDPホールパンチングを使用してNATやファイアウォールを通過します。 - トラフィック制御: ユーザー定義グループにより、クラウドセキュリティグループと同様のスタイルでプロバイダーに依存しないファイアウォールルールを実現します。 はじめに: nebula-certで認証局(CA)を生成し、IPとグループを指定してホスト証明書に署名し、ホストごとの設定ファイルを作成して、nebulaバイナリを実行します。READMEでは、CAの秘密鍵が最も機密性の高いファイルであり、個々のノードにコピーしてはならないと警告しています。また、CAはデフォルトで1年後に失効することにも注意しています。 NebulaはGoを使用してソースからビルドでき、makeターゲットで全プラットフォームまたは特定のプラットフォーム向けにビルドできます。このプロジェクトはSlackがメンテナンスしており、独自のPKIやlighthouseを運用したくないユーザー向けに、Defined Networkingを通じたマネージドオプションも提供されています。