第5章 Ceph の伝送時暗号化

Red Hat Ceph Storage 4 以降、messenger バージョン 2 プロトコルの導入により、ネットワーク上のすべての Ceph トラフィックの暗号化を有効にすることができます。メッセンジャー v2 の secure モード設定は、Ceph デーモンと Ceph クライアント間の通信を暗号化し、エンドツーエンドの暗号化を提供します。

Ceph の有線プロトコルの 2 つ目のバージョンである msgr2 には、以下の新機能が含まれています。

  • 安全なモードは、ネットワークを介したすべてのデータの移動を暗号化します。
  • 認証ペイロードのカプセル化による改善。
  • 機能のアドバタイズおよびネゴシエーションの改善。

Ceph デーモンは、レガシー、v1 互換、および新しい v2 互換の Ceph クライアントを同じストレージクラスターに接続することができるように、複数のポートにバインドします。Ceph Monitor デーモンに接続する Ceph クライアントまたはその他の Ceph デーモンは、まず v2 プロトコルの使用を試みますが、可能でない場合は古い v1 プロトコルが使用されます。デフォルトでは、メッセンジャープロトコル v1v2 の両方が有効です。新規の v2 ポートは 3300 で、レガシー v1 ポートはデフォルトで 6789 になります。

msgr2 プロトコルは、以下の 2 つの接続モードをサポートします。

  • crc

    • cephx で接続を確立すると、強固な初期認証を提供します。
    • ビットフリップから保護する crc32c 整合性チェックを提供します。
    • 悪意のある中間者攻撃に対する保護を提供しません。
    • 盗聴者がすべての認証後のトラフィックを見るのを妨げません。
  • secure

    • cephx で接続を確立すると、強固な初期認証を提供します。
    • 認証後トラフィックをすべて完全に暗号化します。
    • 暗号化整合性チェックを提供します。

デフォルトのモードは crc です。

Red Hat Ceph Storage クラスターを計画するときは、暗号化のオーバーヘッドを含めるために、クラスターの CPU 要件を必ず考慮してください。

重要

現在、secure なモードの使用は、Red Hat Enterprise Linux 8.2 上の CephFS や krbd など、Ceph カーネルクライアントでサポートされています。secure モードの使用は、OpenStack Nova、Glance、Cinder などの librbd を使用する Ceph クライアントでサポートされています。

アドレスの変更

メッセンジャープロトコルの両方のバージョンが、同じストレージクラスターに共存するために、アドレスのフォーマットが変更されました。

  • 古いアドレスの形式は、IP_ADDR : PORT / CLIENT_ID です (例: 1.2.3.4:5678/91011)。
  • 新しいアドレスの形式は、PROTOCOL_VERSION : IP_ADDR : PORT / CLIENT_ID です (例: v2:1.2.3.4:5678/91011)。たとえば、PROTOCOL_VERSIONv1 または v2 のいずれかになります。

Ceph デーモンは複数のポートにバインドするようになったため、デーモンは単一のアドレスではなく複数のアドレスを表示します。モニターマップのダンプの例を以下に示します。

epoch 1
fsid 50fcf227-be32-4bcb-8b41-34ca8370bd17
last_changed 2019-12-12 11:10:46.700821
created 2019-12-12 11:10:46.700821
min_mon_release 14 (nautilus)
0: [v2:10.0.0.10:3300/0,v1:10.0.0.10:6789/0] mon.a
1: [v2:10.0.0.11:3300/0,v1:10.0.0.11:6789/0] mon.b
2: [v2:10.0.0.12:3300/0,v1:10.0.0.12:6789/0] mon.c

また、mon_host 設定オプション、-m を使用してコマンドラインでアドレスを指定することで、新しいアドレス形式がサポートされます。

接続フェーズ

暗号化された接続を確立するには、以下の 4 つのフェーズがあります。

バナー
接続で、クライアントとサーバーの両方がバナーを送信します。現在、Ceph バナーは ceph 0 0n です。
認証エクスチェンジ
送信または受信されたすべてのデータは、接続の間、フレームに含まれます。サーバーは、認証が完了したかどうかについて、および接続モードについて決定します。フレームフォーマットは修正され、使用される認証フラグに応じて 3 つの異なる形式にすることができます。
メッセージフローハンドシェイクエクスチェンジ
ピアは相互に識別し、セッションを確立します。クライアントは最初のメッセージを送信し、サーバーは同じメッセージで応答します。クライアントが誤ったデーモンと通信すると、サーバーが接続を閉じることがあります。新しいセッションの場合、クライアントとサーバーはメッセージのエクスチェンジに進みます。クライアントのクッキーはセッションを識別するために使用され、既存のセッションに再接続できます。
メッセージエクスチェンジ
クライアントおよびサーバーは、接続が閉じられるまで、メッセージのエクスチェンジを開始します。

関連情報