23.5. IPsec 暗号化の設定
IPsec を有効にすると、OVN-Kubernetes クラスターネットワーク上のノード間の Pod 間ネットワークトラフィックはすべて IPsec トランスポートモード で暗号化されます。
IPsec はデフォルトで無効にされています。クラスターのインストール中またはインストール後に有効にできます。クラスターのインストールについて、詳しくは OpenShift Container Platform installation overview を参照してください。クラスターのインストール後に IPsec を有効にする必要がある場合は、IPsec ESP IP ヘッダーのオーバーヘッドを考慮して、まずクラスター MTU のサイズを変更する必要があります。
次のドキュメントでは、クラスターのインストール後に IPSec を有効または無効にする方法について説明します。
23.5.1. 前提条件
-
クラスター MTU のサイズを
46
バイト減らして、IPsec ESP ヘッダーにオーバーヘッドを追加している。クラスターが使用する MTU のサイズ変更について、詳しくは Changing the MTU for the cluster network を参照してください。
23.5.2. IPsec で暗号化したネットワークトラフィックフローのタイプ
IPsec を有効にすると、Pod 間の以下のネットワークトラフィックフローのみが暗号化されます。
- クラスターネットワーク上の複数の異なるノードの Pod 間のトラフィック
- ホストネットワークの Pod からクラスターネットワーク上の Pod へのトラフィック
以下のトラフィックフローは暗号化されません。
- クラスターネットワーク上の同じノードの Pod 間のトラフィック
- ホストネットワーク上の Pod 間のトラフィック
- クラスターネットワークの Pod からホストネットワークの Pod へのトラフィック
暗号化されていないフローと暗号化されていないフローを以下の図に示します。
23.5.2.1. IPsec が有効になっている場合のネットワーク接続要件
OpenShift Container Platform クラスターのコンポーネントが通信できるように、マシン間のネットワーク接続を設定する必要があります。すべてのマシンではクラスターの他のすべてのマシンのホスト名を解決できる必要があります。
プロトコル | ポート | 説明 |
---|---|---|
UDP |
| IPsec IKE パケット |
| IPsec NAT-T パケット | |
ESP | 該当なし | IPsec Encapsulating Security Payload (ESP) |
23.5.3. 暗号化プロトコルおよび IPsec モード
使用する暗号化は AES-GCM-16-256
です。整合性チェック値 (ICV) は 16
バイトです。鍵の長さは 256
ビットです。
使用される IPsec モードは トランスポートモード です。これは、元のパケットの IP ヘッダーに Encapsulated Security Payload (ESP) ヘッダーを追加してパケットデータを暗号化することで、エンドツーエンドの通信を暗号化するモードです。OpenShift Container Platform は現在、Pod 間通信に IPsec Tunnel モード を使用したり、サポートしたりしません。
23.5.4. セキュリティー証明書の生成およびローテーション
Cluster Network Operator (CNO) は、暗号化用に IPsec によって使用される自己署名の X.509 認証局 (CA) を生成します。各ノードの証明書署名要求 (CSR) は、CNO によって自動的に満たされます。
この CA は 10 年間有効です。個別のノード証明書は 5 年間有効で、4 年半が経過すると自動的にローテーションされます。
23.5.5. IPsec 暗号化の有効化
クラスター管理者は、クラスターのインストール後に IPsec 暗号化を有効にできます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてクラスターにログインする。 -
クラスター MTU のサイズを
46
バイト減らして、IPsec ESP ヘッダーにオーバーヘッドを設けている。
手順
IPsec 暗号化を有効にするには、次のコマンドを入力します。
$ oc patch networks.operator.openshift.io cluster --type=merge \ -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"ipsecConfig":{ }}}}}'
23.5.6. IPsec が有効であることを確認
クラスター管理者は、IPsec が有効になっていることを確認できます。
検証
OVN-Kubernetes コントロールプレーン Pod の名前を見つけるには、次のコマンドを入力します。
$ oc get pods -n openshift-ovn-kubernetes | grep ovnkube-master
出力例
ovnkube-master-4496s 1/1 Running 0 6h39m ovnkube-master-d6cht 1/1 Running 0 6h42m ovnkube-master-skblc 1/1 Running 0 6h51m ovnkube-master-vf8rf 1/1 Running 0 6h51m ovnkube-master-w7hjr 1/1 Running 0 6h51m ovnkube-master-zsk7x 1/1 Running 0 6h42m
クラスターで IPsec が有効になっていることを確認します。
$ oc -n openshift-ovn-kubernetes -c nbdb rsh ovnkube-master-<XXXXX> \ ovn-nbctl --no-leader-only get nb_global . ipsec
ここでは、以下のようになります。
<XXXXX>
- 前の手順の Pod の文字のランダムなシーケンスを指定します。
出力例
true
23.5.7. IPsec 暗号化の無効化
クラスター管理者は、クラスターのインストール後に IPsec を有効にした場合にのみ、IPsec 暗号化を無効にできます。
クラスターのインストール時に IPsec を有効にした場合、この手順では IPsec を無効化できません。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてクラスターにログインする。
手順
IPsec 暗号化を無効にするには、次のコマンドを入力します。
$ oc patch networks.operator.openshift.io/cluster --type=json \ -p='[{"op":"remove", "path":"/spec/defaultNetwork/ovnKubernetesConfig/ipsecConfig"}]'
-
オプション: IP パケットの IPsec ESP ヘッダーからのオーバーヘッドがなくなるため、クラスター MTU のサイズを
46
バイト増やすことができます。