4.2.9. セカンダリーネットワークを使用した MetalLB の設定


OpenShift Container Platform 4.14 以降、デフォルトのネットワーク動作では、ネットワークインターフェイス間での IP パケットの転送は許可されません。したがって、MetalLB がセカンダリーインターフェイス上に設定されている場合は、必要なインターフェイスに対してのみ IP 転送を有効にするマシン設定を追加する必要があります。

注記

4.13 からアップグレードされた OpenShift Container Platform クラスターは、アップグレード中にグローバル IP 転送を有効にするグローバルパラメーターが設定されるため、影響を受けません。

セカンダリーインターフェイスの IP 転送を有効にするには、次の 2 つのオプションがあります。

  • 特定のインターフェイスの IP 転送を有効にします。
  • すべてのインターフェイスで IP 転送を有効にします。
注記

特定のインターフェイスに対して IP 転送を有効にすると、よりきめ細かい制御が可能になりますが、すべてのインターフェイスに対して有効にすると、グローバル設定が適用されます。

手順

  1. 以下のコマンドを実行して、Cluster Network Operator のパラメーター routingViaHost を true に設定し、パッチを適用します。

    $ oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig": {"routingViaHost": true} }}}}' --type=merge
  2. 特定のセカンダリーインターフェイス (bridge-net など) の転送を有効にするには、MachineConfig CR を作成して適用します。

    1. ローカルマシンで次のコマンドを実行して、ネットワークカーネルパラメーターを設定するために使用される文字列を Base64 でエンコードします。

      $ echo -e "net.ipv4.conf.bridge-net.forwarding = 1" | base64 -w0

      出力例

      bmV0LmlwdjQuY29uZi5icmlkZ2UtbmV0LmZvcndhcmRpbmcgPSAxCg==

    2. bridge-net という名前のセカンダリーインターフェイスの IP 転送を有効にするために、MachineConfig CR を作成します。
    3. 以下の YAML を enable-ip-forward.yaml ファイルに保存します。

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfig
      metadata:
        labels:
          machineconfiguration.openshift.io/role: <node_role>
        name: 81-enable-global-forwarding
      spec:
        config:
          ignition:
            version: 3.2.0
          storage:
            files:
            - contents:
                source: data:text/plain;charset=utf-8;base64,bmV0LmlwdjQuY29uZi5icmlkZ2UtbmV0LmZvcndhcmRpbmcgPSAxCg==
                verification: {}
              filesystem: root
              mode: 420
              path: /etc/sysctl.d/enable-global-forwarding.conf
        osImageURL: ""
      # ...

      ここでは、以下のようになります。

      <node_role>
      IP 転送を有効にしたいノードのロール。たとえば、ワーカー
      contents.source
      生成された Base64 文字列を入力します。
    4. 以下のコマンドを実行して設定を適用します。

      $ oc apply -f enable-ip-forward.yaml
  3. オプション: 次のコマンドを実行して、IP 転送をグローバルに有効にします。

    $ oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}' --type=merge

検証

  1. マシン設定を適用した後、以下の手順を実行して変更内容を確認してください。

    1. 以下のコマンドを実行して、対象ノードでデバッグセッションに入ります。このコマンドは 、<node-name>-debug という名前のデバッグ Pod をインスタンス化します。

      $ oc debug node/<node-name>
    2. 次のコマンドを実行して、デバッグシェル内で /host をルートディレクトリーとして設定します。デバッグ Pod は、ホストのルートファイルシステムを Pod 内の /host にマウントします。ルートディレクトリーを /host に変更することで、ホストの実行可能パスに含まれるバイナリーを実行できるようになります。

      $ chroot /host
    3. 次のコマンドを実行して、IP 転送が有効になっていることを確認します。

      $ cat /etc/sysctl.d/enable-global-forwarding.conf

      出力例

      net.ipv4.conf.bridge-net.forwarding = 1

      この出力は、bridge-net インターフェイスで IPv4 転送が有効になっていることを示しています。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る