1.2. チューニング CNI を使用してオールマルチキャストモードを有効にする


OpenShift Container Platform のネットワークインターフェイスでオールマルチキャストモードを有効にするには、ネットワークアタッチメント定義でチューニング Container Network Interface (CNI) メタプラグインを使用できます。有効にすると、インターフェイスはネットワーク上のすべてのマルチキャストパケットを受信します。

手順

  1. 次の内容を含む、tuning-example.yaml などのネットワークアタッチメント定義を作成します。

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: <name>
      namespace: default
    spec:
      config: '{
        "cniVersion": "0.4.0",
        "name": "<name>",
        "plugins": [{
           "type": "<main_CNI_plugin>"
          },
          {
           "type": "tuning",
           "allmulti": true
            }
          }
         ]
    }

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

    <name>
    作成する追加のネットワーク割り当ての名前を指定します。名前は指定された namespace 内で一意である必要があります。
    default
    オブジェクトが関連付けられている namespace を指定します。
    0.4.0
    CNI 仕様のバージョンを指定します。
    < 名前 >
    設定の名前を指定します。設定の名前は、ネットワークアタッチメント定義の名前の値と一致させてください。
    "<main_CNI_plugin>"
    設定するメイン CNI プラグインの名前を指定します。
    " チューニング "
    CNI メタプラグインの名前を指定します。
    " 真実 "
    インターフェイスのオールマルチキャストモードを指定します。有効にすると、ネットワーク上のすべてのマルチキャストパケットがそのインターフェイスで受信されます。

    ネットワーク接続定義の例

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: setallmulti
      namespace: default
    spec:
      config: '{
        "cniVersion": "0.4.0",
        "name": "setallmulti",
        "plugins": [
          {
            "type": "bridge"
          },
          {
            "type": "tuning",
            "allmulti": true
          }
        ]
      }'

  2. 次のコマンドを実行して、YAML ファイルで指定された設定を適用します。

    $ oc apply -f tuning-allmulti.yaml

    出力例

    networkattachmentdefinition.k8s.cni.cncf.io/setallmulti created

  3. 次の examplepod.yaml サンプルファイルで指定されているものと同様のネットワークアタッチメント定義を使用して Pod を作成します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: allmultipod
      namespace: default
      annotations:
        k8s.v1.cni.cncf.io/networks: setallmulti
    spec:
      containers:
      - name: podexample
        image: centos
        command: ["/bin/bash", "-c", "sleep INF"]
        securityContext:
          runAsUser: 2000
          runAsGroup: 3000
          allowPrivilegeEscalation: false
          capabilities:
            drop: ["ALL"]
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault

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

    metadata.annotations.k8s.v1.cni.cncf.io/networks
    設定された NetworkAttachmentDefinition の名前を指定します。
    spec.containers.securityContext.runAsUser
    コンテナーを実行するユーザー ID を指定します。
    spec.containers.securityContext.runAsGroup
    コンテナーの実行に使用するプライマリーグループ ID を指定します。
    spec.containers.securityContext.allowPrivilegeEscalation
    Pod が特権昇格を許可するよう要求できるかどうかを指定します。指定しない場合、デフォルトで true に設定されます。このブール値は、no_new_privs フラグがコンテナープロセスに設定されるかどうかを直接制御します。
    spec.containers.securityContext.capabilities
    完全なルートアクセス権限を与えずに、特権的な操作を指定します。このポリシーにより、すべての機能が Pod から削除されます。
    spec.containers.securityContext.runAsNonRoot: true
    UID が 0 以外のユーザーでコンテナーが実行されるように指定します。
    spec.containers.securityContext.seccompProfile
    Pod またはコンテナーワークロードのデフォルトの seccomp プロファイルを指定します。
  4. 次のコマンドを実行して、YAML ファイルで指定された設定を適用します。

    $ oc apply -f examplepod.yaml
  5. 次のコマンドを実行して、Pod が作成されていることを確認します。

    $ oc get pod

    出力例

    NAME          READY   STATUS    RESTARTS   AGE
    allmultipod   1/1     Running   0          23s

  6. 次のコマンドを実行して、Pod にログインします。

    $ oc rsh allmultipod
  7. 次のコマンドを実行して、Pod に関連付けられているすべてのインターフェイスをリスト表示します。

    sh-4.4# ip link

    出力例

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8901 qdisc noqueue state UP mode DEFAULT group default
        link/ether 0a:58:0a:83:00:10 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    3: net1@if24: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default
        link/ether ee:9b:66:a4:ec:1d brd ff:ff:ff:ff:ff:ff link-netnsid 0

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

    eth0@if22
    プライマリーインターフェイスを指定します。
    net1@if24
    全マルチキャストモード (ALLMULTI フラグ) をサポートするネットワーク接続定義で設定されたセカンダリーインターフェイスを指定します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る