23.9. IPsec 暗号化の設定


IPsec を有効にすると、OVN-Kubernetes クラスターネットワーク上のノード間のすべての Pod 間ネットワークトラフィックが IPsec トランスポートモード で暗号化されます。

IPsec はデフォルトで無効にされています。クラスターのインストール中またはインストール後に有効にできます。クラスターのインストールの詳細は、OpenShift Container Platform インストールの概要 を参照してください。クラスターのインストール後に IPsec を有効にする必要がある場合は、IPsec ESP IP ヘッダーのオーバーヘッドを考慮して、まずクラスター MTU のサイズを変更する必要があります。

OpenShift Container Platform クラスター上の IPsec には次のサポート制限があります。

  • OpenShift Container Platform 4.15 に更新する前に、IPsec を無効にする必要があります。IPsec を無効にしたら、関連する IPsec デーモンセットも削除する必要があります。IPsec を無効にせずに更新すると、Pod 間通信が中断される可能性があるという既知の問題があります。(OCPBUGS-42763)

次のドキュメントでは、クラスターのインストール後に IPSec を有効または無効にする方法について説明します。

23.9.1. 前提条件

  • クラスター MTU のサイズを 46 バイト減らして、IPsec ESP ヘッダーにオーバーヘッドを追加している。クラスターが使用する MTU のサイズ変更の詳細は クラスターネットワークの MTU 変更 を参照してください。

23.9.2. IPsec で暗号化したネットワークトラフィックフローのタイプ

IPsec を有効にすると、Pod 間の以下のネットワークトラフィックフローのみが暗号化されます。

  • クラスターネットワーク上の複数の異なるノードの Pod 間のトラフィック
  • ホストネットワークの Pod からクラスターネットワーク上の Pod へのトラフィック

以下のトラフィックフローは暗号化されません。

  • クラスターネットワーク上の同じノードの Pod 間のトラフィック
  • ホストネットワーク上の Pod 間のトラフィック
  • クラスターネットワークの Pod からホストネットワークの Pod へのトラフィック

暗号化されていないフローと暗号化されていないフローを以下の図に示します。

IPsec の暗号化および暗号化されていないトラフィックフロー

23.9.2.1. IPsec が有効になっている場合のネットワーク接続要件

OpenShift Container Platform クラスターのコンポーネントが通信できるように、マシン間のネットワーク接続を設定する必要があります。すべてのマシンではクラスターの他のすべてのマシンのホスト名を解決できる必要があります。

表23.11 すべてのマシンからすべてのマシンへの通信に使用されるポート
プロトコルポート説明

UDP

500

IPsec IKE パケット

4500

IPsec NAT-T パケット

ESP

該当なし

IPsec Encapsulating Security Payload (ESP)

23.9.3. 暗号化プロトコルおよび IPsec モード

使用する暗号化は AES-GCM-16-256 です。整合性チェック値 (ICV) は 16 バイトです。鍵の長さは 256 ビットです。

使用される IPsec モードは トランスポートモード です。これは、元のパケットの IP ヘッダーに Encapsulated Security Payload (ESP) ヘッダーを追加して、パケットデータを暗号化することで、エンドツーエンドの通信を暗号化するモードです。OpenShift Container Platform は現在、Pod 間通信に IPsec トンネルモード を使用およびサポートしていません。

23.9.4. セキュリティー証明書の生成およびローテーション

Cluster Network Operator (CNO) は、暗号化用に IPsec によって使用される自己署名の X.509 認証局 (CA) を生成します。各ノードの証明書署名要求 (CSR) は、CNO によって自動的に満たされます。

この CA は 10 年間有効です。個別のノード証明書は 5 年間有効で、4 年半が経過すると自動的にローテーションされます。

23.9.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":{ }}}}}'

検証

  1. OVN-Kubernetes コントロールプレーン Pod の名前を見つけるには、次のコマンドを入力します。

    $ oc get pods -l app=ovnkube-master -n openshift-ovn-kubernetes

    出力例

    NAME                   READY   STATUS    RESTARTS   AGE
    ovnkube-master-fvtnh   6/6     Running   0          122m
    ovnkube-master-hsgmm   6/6     Running   0          122m
    ovnkube-master-qcmdc   6/6     Running   0          122m

  2. 次のコマンドを実行して、クラスターで IPsec が有効になっていることを確認します。コマンド出力には、ノードで IPsec が有効になっていることを示すために true が表示されるはずです。

    $ oc -n openshift-ovn-kubernetes rsh ovnkube-master-<pod_number_sequence> \ 1
      ovn-nbctl --no-leader-only get nb_global . ipsec
    1
    & lt;pod_number_sequence& gt; を直前の手順のデータプレーン Pod の文字 fvtnh のランダムなシーケンスに置き換えます。

23.9.6. IPsec 暗号化の無効化

クラスター管理者は、クラスターのインストール後に IPsec を有効にした場合にのみ、IPsec 暗号化を無効にできます。

重要

IPsec を無効にした後、関連する IPsec daemonset Pod を削除する必要があります。これらの Pod を削除しない場合、クラスターで問題が発生する可能性があります。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてクラスターにログインする。

手順

  1. IPsec 暗号化を無効にするには、次のコマンドを入力します。

    $ oc patch networks.operator.openshift.io/cluster --type=json \
      -p='[{"op":"remove", "path":"/spec/defaultNetwork/ovnKubernetesConfig/ipsecConfig"}]'
  2. クラスターの マスター ノードに存在する OVN-Kubernetes データプレーン Pod の名前を見つけるには、次のコマンドを入力します。

    $ oc get pods -n openshift-ovn-kubernetes -l=app=ovnkube-master

    出力例

    ovnkube-master-5xqbf                      8/8     Running   0              28m
    ...

  3. 次のコマンドを入力して、クラスターの マスター ノードで IPsec が無効になっていることを確認します。コマンド出力には、ノードで IPsec が無効になっていることを示す false が表示されるはずです。

    $ oc -n openshift-ovn-kubernetes -c nbdb rsh ovnkube-master-<pod_number_sequence> \1
      ovn-nbctl --no-leader-only get nb_global . ipsec
    1
    & lt;pod_number_sequence& gt; を直前の手順のデータプレーン Pod の 5xqbf などの文字のランダムなシーケンスに置き換えます。
  4. ノードの openshift-ovn-kubernetes 名前空間から IPsec ovn-ipsec daemonset Pod を削除するには、次のコマンドを入力します。

    $ oc delete daemonset ovn-ipsec -n openshift-ovn-kubernetes 1
    1
    ovn-ipsec daemonset は、ノード上の east-west トラフィックの IPsec 接続を設定します。
  5. 次のコマンドを入力して、ovn-ipsec daemonset Pod がクラスター内のすべてのノードから削除されたことを確認します。コマンドの出力に Pod が一覧表示されない場合、削除操作は正常です。

    $ oc get pods -n openshift-ovn-kubernetes -l=app=ovn-ipsec
    注記

    最初のコマンド試行により Pod が削除されない可能性があるため、Pod の削除用にコマンドを再実行する必要がある場合があります。

  6. オプション: IP パケットの IPsec ESP ヘッダーからのオーバーヘッドがなくなるため、クラスター MTU のサイズを 46 バイト増やすことができます。

23.9.7. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.