web-dev-qa-db-ja.com

データセンターホストに接続するための高スループットメッシュVPN

公共のデータセンターで多数のホストをレンタルしています。データセンターはプライベートVLANを提供していません。すべてのホストは1つ(または複数)のパブリックIPv4/IPv6アドレスを受け取ります。ホストには非常に最新のCPU(Haswellクアッドコア、3.4 GHz)が搭載され、ギガビットアップリンクを備えています。データセンターのさまざまな領域(部屋、床、建物など)は、Gbitまたは500Mbitリンクで相互接続されています。私たちのホストはdebian wheezyを実行しています。現在、10台を超えるホストを実行しており、近い将来の成長が見込まれています。

私は、すべてのホストが互いに安全かつ機密に通信できるようにする方法を探しています。レイヤー3は問題なく、レイヤー2は問題ありません(ただし必須ではありません)。私はVLANにアクセスできないため、ある種のVPNである必要があります。

私にとって重要なこと:

  1. ハイスループット、理想的にはワイヤスピードに近い
  2. 分散型のメッシュアーキテクチャ-これは、中央の要素(VPNコンセントレータなど)によってスループットが低下しないようにするためです。
  3. CPUフットプリントは過度ではありません(AESNIおよびGCM暗号スイートが与えられた場合、これはばかげた要件ではないことを願っています)
  4. 操作の使いやすさ。セットアップが複雑すぎない。確立された接続を失うことなくネットワークを拡張できます

現在 tinc を使用しています。 [2]と[4]を刻みますが、960Mbit/sのワイヤスピードの約600Mbit/s(シンプレックス)にしか到達せず、1つのコアを完全に失う。また、tinc 1.1(現在開発中)はまだマルチスレッド化されていないため、シングルコアのパフォーマンスに悩まされています。

従来のIPSecは、中央の要素、またはトンネルのsh * tloadを構成する必要があるため([2]を実現するため)、問題外です。日和見暗号化を備えたIPsecがソリューションになるでしょうが、それが安定した製品コードになったかどうかはわかりません。

今日、 tcpcrypt に遭遇しました。不足している認証を除いて、私が望んでいるように見えます。ユーザースペースの実装は臭いが遅いですが、他のすべてのVPNも同様です。そして彼らはカーネルの実装について語っています。私はまだ試していませんが、[1]と[3]の動作に興味があります。

他にどのようなオプションがありますか? AWSではいない人々は何をしていますか?

追加情報

GCMに興味があり、CPUフットプリントが削減されることを期待しています。 トピックに関するIntelの論文 を参照してください。ティンク開発者の1人と話しているとき、彼は暗号化にAESNIを使用しても、HMAC(たとえばSHA-1)はギガビット速度では依然として非常に高価であると説明しました。

最終更新

トランスポートモードのIPsecは完全に機能し、私が望んでいるとおりに動作します。多くの評価の結果、AES-GCMをサポートしているという理由だけで、ipsec-toolsよりOpenswanを選択しました。 Haswell CPUでは、1つのkworkerdの約8〜9%のCPU負荷で、約910〜920Mbit /秒のシンプレックススループットを測定します。

16
Hank

あなたが望まないのはVPNです。あなたがしたいは確かにIPsecですが、トンネルモードではありません。むしろ、transportモードのIPsecが必要です。

この構成では、各ホストはピアと直接通信し、パケットペイロードのみが暗号化され、IPヘッダーはそのまま残ります。このようにして、物事を機能させるためにルーティング体操を行う必要はありません。

はい、ホストごとにIPsec接続スタンザが必要です(ホストがサブネットにグループ化されている場合を除きます。その場合、CIDRブロックを介してこれを行うことができます)が、構成管理システムによってプログラムで簡単に生成できます。

構成の詳細については質問しませんでしたが、いくつかの指針が必要な場合(トランスポートモードに関するそれほど確かな情報はあまりありません)、 このブログ投稿 を参照してください。最近アップ。

15
EEAA